void UAbilityTask_WaitGameplayEffectApplied_Target::RemoveDelegate() { GetASC()->OnGameplayEffectAppliedDelegateToTarget.Remove(OnApplyGameplayEffectCallbackDelegateHandle); if (OnPeriodicGameplayEffectExecuteCallbackDelegateHandle.IsValid()) { GetASC()->OnGameplayEffectAppliedDelegateToTarget.Remove(OnPeriodicGameplayEffectExecuteCallbackDelegateHandle); } }
void UAbilityTask_WaitGameplayEffectApplied_Target::RegisterDelegate() { OnApplyGameplayEffectCallbackDelegateHandle = GetASC()->OnGameplayEffectAppliedDelegateToTarget.AddUObject(this, &UAbilityTask_WaitGameplayEffectApplied::OnApplyGameplayEffectCallback); if (ListenForPeriodicEffects) { OnPeriodicGameplayEffectExecuteCallbackDelegateHandle = GetASC()->OnPeriodicGameplayEffectExecuteDelegateOnTarget.AddUObject(this, &UAbilityTask_WaitGameplayEffectApplied::OnApplyGameplayEffectCallback); } }
void UAbilityTask_WaitGameplayEffectApplied::Activate() { if (GetASC()) { RegisterDelegate(); } }
void UAbilityTask_WaitGameplayEffectApplied::OnDestroy(bool AbilityEnded) { if (GetASC()) { RemoveDelegate(); } Super::OnDestroy(AbilityEnded); }
void UAbilityTask_WaitGameplayEffectApplied_Target::RemoveDelegate() { GetASC()->OnGameplayEffectAppliedDelegateToTarget.Remove(OnApplyGameplayEffectCallbackDelegateHandle); }
void UAbilityTask_WaitGameplayEffectApplied_Target::RegisterDelegate() { OnApplyGameplayEffectCallbackDelegateHandle = GetASC()->OnGameplayEffectAppliedDelegateToTarget.AddUObject(this, &UAbilityTask_WaitGameplayEffectApplied::OnApplyGameplayEffectCallback); }