From 78508fda24b42cb3aa20d39934846b6b802a0e85 Mon Sep 17 00:00:00 2001 From: Arnaud Jamin Date: Mon, 6 Jan 2025 02:03:07 -0500 Subject: [PATCH] Add the removal of an active gameplay effect --- .../CogAbility/Private/CogAbilityWindow_Effects.cpp | 11 +++++++++-- .../CogAbility/Public/CogAbilityWindow_Effects.h | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Effects.cpp b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Effects.cpp index 38c657d..c488eaa 100644 --- a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Effects.cpp +++ b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Effects.cpp @@ -85,7 +85,7 @@ void FCogAbilityWindow_Effects::RenderContent() //-------------------------------------------------------------------------------------------------------------------------- void FCogAbilityWindow_Effects::RenderEffectsTable() { - const UAbilitySystemComponent* AbilitySystemComponent = UAbilitySystemGlobals::GetAbilitySystemComponentFromActor(GetSelection(), true); + UAbilitySystemComponent* AbilitySystemComponent = UAbilitySystemGlobals::GetAbilitySystemComponentFromActor(GetSelection(), true); if (AbilitySystemComponent == nullptr) { ImGui::TextDisabled("Selection has no ability system component"); @@ -170,7 +170,7 @@ void FCogAbilityWindow_Effects::RenderEffectsTable() } //-------------------------------------------------------------------------------------------------------------------------- -void FCogAbilityWindow_Effects::RenderEffectRow(const UAbilitySystemComponent& AbilitySystemComponent, const FActiveGameplayEffectHandle& ActiveHandle, int32 Index, int32& Selected) +void FCogAbilityWindow_Effects::RenderEffectRow(UAbilitySystemComponent& AbilitySystemComponent, const FActiveGameplayEffectHandle& ActiveHandle, int32 Index, int32& Selected) { const FActiveGameplayEffect* ActiveEffectPtr = AbilitySystemComponent.GetActiveGameplayEffect(ActiveHandle); if (ActiveEffectPtr == nullptr) @@ -238,6 +238,13 @@ void FCogAbilityWindow_Effects::RenderEffectRow(const UAbilitySystemComponent& A } ImGui::CloseCurrentPopup(); } + + if (ImGui::Button("Remove")) + { + AbilitySystemComponent.RemoveActiveGameplayEffect(ActiveHandle); + ImGui::CloseCurrentPopup(); + } + ImGui::EndPopup(); } diff --git a/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityWindow_Effects.h b/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityWindow_Effects.h index 36237dd..bd91498 100644 --- a/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityWindow_Effects.h +++ b/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityWindow_Effects.h @@ -38,7 +38,7 @@ protected: virtual void RenderEffectsTable(); - virtual void RenderEffectRow(const UAbilitySystemComponent& AbilitySystemComponent, const FActiveGameplayEffectHandle& ActiveHandle, int32 Index, int32& Selected); + virtual void RenderEffectRow(UAbilitySystemComponent& AbilitySystemComponent, const FActiveGameplayEffectHandle& ActiveHandle, int32 Index, int32& Selected); virtual void RenderEffectInfo(const UAbilitySystemComponent& AbilitySystemComponent, const FActiveGameplayEffect& ActiveEffect, const UGameplayEffect& Effect);