diff --git a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Cheats.cpp b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Cheats.cpp index 85bf7ca..1df1a32 100644 --- a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Cheats.cpp +++ b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Cheats.cpp @@ -16,13 +16,20 @@ void FCogEngineWindow_Cheats::RenderHelp() { ImGui::Text( "This window can be used to apply cheats to the selected actor (by default). " - "The cheats can be configured in the '%s' data asset. " "When clicking a cheat button, press:\n" " [CTRL] to apply the cheat to controlled actor\n" " [ALT] to apply the cheat to the allies of the selected actor\n" " [SHIFT] to apply the cheat to the enemies of the selected actor\n" - , TCHAR_TO_ANSI(*GetNameSafe(Asset.Get())) ); + + if (Asset == nullptr) + { + ImGui::Text("Create a DataAsset child of 'CogEngineDataAsset' to configure the cheats. "); + } + else + { + ImGui::Text("The cheats can be configured in the '%s' data asset. ", StringCast(*GetNameSafe(Asset.Get())).Get()); + } } //-------------------------------------------------------------------------------------------------------------------------- @@ -436,6 +443,9 @@ void FCogEngineWindow_Cheats::RequestCheat(ACogEngineReplicator& Replicator, AAc //-------------------------------------------------------------------------------------------------------------------------- const FCogEngineCheat* FCogEngineWindow_Cheats::FindCheatByName(const FString& CheatName, const bool OnlyPersistentCheats) { + if (Asset == nullptr) + { return nullptr; } + for (const FCogEngineCheatCategory& CheatCategory : Asset->CheatCategories) { for (const FCogEngineCheat& Cheat : CheatCategory.PersistentCheats) @@ -447,9 +457,7 @@ const FCogEngineCheat* FCogEngineWindow_Cheats::FindCheatByName(const FString& C } if (OnlyPersistentCheats) - { - continue; - } + { continue; } for (const FCogEngineCheat& Cheat : CheatCategory.InstantCheats) { @@ -458,8 +466,6 @@ const FCogEngineCheat* FCogEngineWindow_Cheats::FindCheatByName(const FString& C return &Cheat; } } - - } return nullptr; diff --git a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityCheat_Execution_ActivateAbility.cpp b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityCheat_Execution_ActivateAbility.cpp index 3cf28c9..0a2ec45 100644 --- a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityCheat_Execution_ActivateAbility.cpp +++ b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityCheat_Execution_ActivateAbility.cpp @@ -110,6 +110,5 @@ bool UCogAbilityCheat_Execution_ActivateAbility::GetColor(const FCogWindow& InCa const UCogAbilityConfig_Alignment* Config = InCallingWindow.GetConfig(); const UCogAbilityDataAsset* Asset = InCallingWindow.GetAsset(); - OutColor = Config->GetAbilityColor(Asset, *GameplayAbility); - return true; + return Config->GetAbilityColor(Asset, *GameplayAbility, OutColor); } diff --git a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityCheat_Execution_ApplyEffect.cpp b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityCheat_Execution_ApplyEffect.cpp index 4e09f52..8bd0b58 100644 --- a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityCheat_Execution_ApplyEffect.cpp +++ b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityCheat_Execution_ApplyEffect.cpp @@ -7,6 +7,7 @@ #include "CogAbilityConfig_Alignment.h" #include "CogImguiHelper.h" #include "CogWindow.h" +#include "MeshPaintVisualize.h" //-------------------------------------------------------------------------------------------------------------------------- void UCogAbilityCheat_Execution_ApplyEffect::Execute_Implementation(const UObject* WorldContextObject, const AActor* Instigator, const TArray& Targets) const @@ -106,6 +107,5 @@ bool UCogAbilityCheat_Execution_ApplyEffect::GetColor(const FCogWindow& InCallin const UCogAbilityConfig_Alignment* Config = InCallingWindow.GetConfig(); const UCogAbilityDataAsset* Asset = InCallingWindow.GetAsset(); - OutColor = Config->GetEffectColor(Asset, *GameplayEffect); - return true; + return Config->GetEffectColor(Asset, *GameplayEffect, OutColor); } diff --git a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityConfig_Alignment.cpp b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityConfig_Alignment.cpp index dfd74d4..2ca4385 100644 --- a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityConfig_Alignment.cpp +++ b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityConfig_Alignment.cpp @@ -24,35 +24,55 @@ FVector4f UCogAbilityConfig_Alignment::GetAttributeColor(const UAbilitySystemCom } //-------------------------------------------------------------------------------------------------------------------------- -FVector4f UCogAbilityConfig_Alignment::GetAbilityColor(const UCogAbilityDataAsset* Asset, const UGameplayAbility& Ability) const +bool UCogAbilityConfig_Alignment::GetAbilityColor(const UCogAbilityDataAsset* Asset, const UGameplayAbility& Ability, FLinearColor& OutColor) const { if (Asset == nullptr) - { return NeutralColor; } + { + OutColor = NeutralColor; + return false; + } const FGameplayTagContainer& Tags = Ability.GetAssetTags(); if (Tags.HasTag(Asset->NegativeAbilityTag)) - { return NegativeColor; } + { + OutColor = NegativeColor; + return true; + } if (Tags.HasTag(Asset->PositiveAbilityTag)) - { return PositiveColor; } + { + OutColor = PositiveColor; + return true; + } - return NeutralColor; + OutColor = NeutralColor; + return true; } //-------------------------------------------------------------------------------------------------------------------------- -FVector4f UCogAbilityConfig_Alignment::GetEffectColor(const UCogAbilityDataAsset* Asset, const UGameplayEffect& Effect) const +bool UCogAbilityConfig_Alignment::GetEffectColor(const UCogAbilityDataAsset* Asset, const UGameplayEffect& Effect, FLinearColor& OutColor) const { if (Asset == nullptr) - { return NeutralColor; } + { + OutColor = NeutralColor; + return false; + } const FGameplayTagContainer& Tags = Effect.GetAssetTags(); if (Tags.HasTag(Asset->NegativeEffectTag)) - { return NegativeColor; } + { + OutColor = NegativeColor; + return true; + } if (Tags.HasTag(Asset->PositiveEffectTag)) - { return PositiveColor; } + { + OutColor = PositiveColor; + return true; + } - return NeutralColor; + OutColor = NeutralColor; + return true; } //-------------------------------------------------------------------------------------------------------------------------- diff --git a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Effects.cpp b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Effects.cpp index 0d0e031..3af1525 100644 --- a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Effects.cpp +++ b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Effects.cpp @@ -192,7 +192,9 @@ void FCogAbilityWindow_Effects::RenderEffectRow(UAbilitySystemComponent& Ability //------------------------ ImGui::TableNextColumn(); - ImGui::PushStyleColor(ImGuiCol_Text, FCogImguiHelper::ToImVec4(AlignmentConfig->GetEffectColor(Asset, Effect))); + FLinearColor Color; + AlignmentConfig->GetEffectColor(Asset, Effect, Color); + ImGui::PushStyleColor(ImGuiCol_Text, FCogImguiHelper::ToImVec4(Color)); if (ImGui::Selectable(EffectName.Get(), Selected == Index, ImGuiSelectableFlags_SpanAllColumns | ImGuiSelectableFlags_AllowOverlap | ImGuiSelectableFlags_AllowDoubleClick)) { diff --git a/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityConfig_Alignment.h b/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityConfig_Alignment.h index 8b9f573..e2153b4 100644 --- a/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityConfig_Alignment.h +++ b/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityConfig_Alignment.h @@ -23,13 +23,13 @@ public: FVector4f GetAttributeColor(const UAbilitySystemComponent& AbilitySystemComponent, const FGameplayAttribute& Attribute) const; - FVector4f GetAbilityColor(const UCogAbilityDataAsset* Asset, const UGameplayAbility& Ability) const; + bool GetAbilityColor(const UCogAbilityDataAsset* Asset, const UGameplayAbility& Ability, FLinearColor& OutColor) const; FVector4f GetEffectModifierColor(const FModifierSpec& ModSpec, const FGameplayModifierInfo& ModInfo, float BaseValue) const; FVector4f GetEffectModifierColor(float ModifierValue, EGameplayModOp::Type ModifierOp, float BaseValue) const; - FVector4f GetEffectColor(const UCogAbilityDataAsset* Asset, const UGameplayEffect& Effect) const; + bool GetEffectColor(const UCogAbilityDataAsset* Asset, const UGameplayEffect& Effect, FLinearColor& OutColor) const; UPROPERTY(Config) FVector4f PositiveColor = FVector4f(0.0f, 1.0f, 0.5f, 1.0f);