25 virtual void ActivateAbility(
const FGameplayAbilitySpecHandle Handle,
const FGameplayAbilityActorInfo* ActorInfo,
const FGameplayAbilityActivationInfo ActivationInfo,
const FGameplayEventData* TriggerEventData)
override;
26 virtual void EndAbility(
const FGameplayAbilitySpecHandle Handle,
const FGameplayAbilityActorInfo* ActorInfo,
const FGameplayAbilityActivationInfo ActivationInfo,
bool bReplicateEndAbility,
bool bWasCancelled)
override;
29 virtual void ApplyCombatData()
override;
32 bool ResolveWeaponLocation(
const FGameplayEventData* TriggerEventData, FVector& OutLocation)
const;
35 void PerformPullAtLocation(
const FVector& WeaponLocation, AActor* Avatar,
bool bApplyAreaEffects);
39 void OnPullDurationFinished();
45 void ClearPullState();
49 float PullRadius = 0.0f;
52 float PullStrength = 0.0f;
55 float PullZComponent = 0.0f;
58 float PullDuration = 1.0f;
61 float PullInterval = 0.0f;
65 TEnumAsByte<ECollisionChannel> OverlapChannel = ECC_Pawn;
68 TArray<TSubclassOf<UGameplayEffect>> AreaEffects;
72 TObjectPtr<class UAbilityTask_WaitDelay> WaitDurationTask =
nullptr;
75 FVector CachedWeaponLocation = FVector::ZeroVector;
76 FTimerHandle PullTickTimer;