Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
GA_Skill_StarField.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "GA_Skill_StarField.generated.h"
8
9class UGameplayEffect;
10
19UCLASS()
20class CK_UE_API UGA_Skill_StarField : public UGA_SkillBase
21{
22 GENERATED_BODY()
23
24public:
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;
27
28protected:
29 virtual void ApplyCombatData() override;
30
31 // 트리거 이벤트로부터 끌어당김 중심 좌표를 해석. 실패 시 false.
32 bool ResolveWeaponLocation(const FGameplayEventData* TriggerEventData, FVector& OutLocation) const;
33
34 // 검색 → 필터링 → 끌어당김 → (선택)GE 적용. bApplyAreaEffects=false면 광역 GE는 건너뛰고 끌어당김만 수행 — 펄스 반복 시 중첩 방지.
35 void PerformPullAtLocation(const FVector& WeaponLocation, AActor* Avatar, bool bApplyAreaEffects);
36
37 // WaitDelay 종료 콜백 — N초 경과 시 EndAbility.
38 UFUNCTION()
39 void OnPullDurationFinished();
40
41 // PullInterval마다 호출되는 펄스 — 캐시된 위치 기준 끌어당김만 재적용.
42 void OnPullTick();
43
44 // 타이머/태스크 정리. EndAbility 및 OnPullDurationFinished에서 공통 호출.
45 void ClearPullState();
46
47private:
48 UPROPERTY(Transient)
49 float PullRadius = 0.0f;
50
51 UPROPERTY(Transient)
52 float PullStrength = 0.0f;
53
54 UPROPERTY(Transient)
55 float PullZComponent = 0.0f;
56
57 UPROPERTY(Transient)
58 float PullDuration = 1.0f;
59
60 UPROPERTY(Transient)
61 float PullInterval = 0.0f;
62
63private:
64 UPROPERTY(Transient)
65 TEnumAsByte<ECollisionChannel> OverlapChannel = ECC_Pawn;
66
67 UPROPERTY(Transient)
68 TArray<TSubclassOf<UGameplayEffect>> AreaEffects;
69
70private:
71 UPROPERTY()
72 TObjectPtr<class UAbilityTask_WaitDelay> WaitDurationTask = nullptr;
73
74private:
75 FVector CachedWeaponLocation = FVector::ZeroVector;
76 FTimerHandle PullTickTimer;
77};
Definition GA_SkillBase.h:14
Definition GA_Skill_StarField.h:21