35{
36 Super::ActivateAbility(Handle, ActorInfo, ActivationInfo, TriggerEventData);
37
38 if (!CommitAbility(Handle, ActorInfo, ActivationInfo))
39 {
40 EndAbility(Handle, ActorInfo, ActivationInfo,
false,
true);
41 return;
42 }
43
45 {
46 EndAbility(Handle, ActorInfo, ActivationInfo,
true,
true);
47 return;
48 }
49
53
54 if (
IAttackableInterface* AttackableInterface = Cast<IAttackableInterface>(GetAvatarActorFromActorInfo()))
55 {
56 AttackableInterface->CacheAttackContext();
57 }
58
60
61
62 if (UAbilityTask_WaitGameplayEvent* WaitBegin = UAbilityTask_WaitGameplayEvent::WaitGameplayEvent(
63 this, TAG_EVENT_PLAYER_COMBAT_COMBOWINDOW_BEGIN, nullptr, false, false))
64 {
65 WaitBegin->EventReceived.AddDynamic(this, &ThisClass::OnComboWindowBeginReceived);
66 WaitBegin->ReadyForActivation();
67 }
68
69 if (UAbilityTask_WaitGameplayEvent* WaitEnd = UAbilityTask_WaitGameplayEvent::WaitGameplayEvent(
70 this, TAG_EVENT_PLAYER_COMBAT_COMBOWINDOW_END, nullptr, false, false))
71 {
72 WaitEnd->EventReceived.AddDynamic(this, &ThisClass::OnComboWindowEndReceived);
73 WaitEnd->ReadyForActivation();
74 }
75
77
78 if (!PlayAttackTask)
79 {
80 EndAbility(Handle, ActorInfo, ActivationInfo,
true,
true);
81 return;
82 }
83
84 PlayAttackTask->OnCompleted.AddDynamic(this, &ThisClass::OnAbilityMontageCompleted);
85 PlayAttackTask->OnInterrupted.AddDynamic(this, &ThisClass::OnAbilityMontageInterrupted);
86 PlayAttackTask->ReadyForActivation();
87}
Definition AttackableInterface.h:21
FName GetNextSection()
Definition GA_Attack.cpp:119
virtual void EndAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, bool bReplicateEndAbility, bool bWasCancelled) override
Definition GA_Attack.cpp:109
TObjectPtr< class UAnimMontage > ComboMontage
Definition GA_Attack.h:42
void SetupCancelableListener()
Definition GA_Base.cpp:53
void SetupHitCheckListener()
Definition GA_CombatBase.cpp:62
void ApplyEffectsToSelf(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo)
Definition GA_CombatBase.cpp:265
void UpdateAttackWarpTargetForRange(FName WarpTargetName=FName("Target"))
Definition GA_CombatBase.cpp:456
float GetAttackSpeedRate() const
Definition GA_CombatBase.cpp:483