Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
UGA_Attack 클래스 참조

#include <GA_Attack.h>

UGA_Attack에 대한 상속 다이어그램 :
Inheritance graph
UGA_Attack에 대한 협력 다이어그램:
Collaboration graph

Public 멤버 함수

virtual void ActivateAbility (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, const FGameplayEventData *TriggerEventData) override
 
virtual void InputPressed (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo) override
 
virtual void CancelAbility (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, bool bReplicateCancelAbility) override
 
virtual void EndAbility (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, bool bReplicateEndAbility, bool bWasCancelled) override
 
- UGA_CombatBase(으)로부터 상속된 Public 멤버 함수
virtual void OnGiveAbility (const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilitySpec &Spec) override
 
- UGA_Base(으)로부터 상속된 Public 멤버 함수
 UGA_Base ()
 

Protected 멤버 함수

virtual void ApplyCombatData () override
 
FName GetNextSection ()
 
void OnComboWindowBeginReceived (FGameplayEventData Payload)
 
void OnComboWindowEndReceived (FGameplayEventData Payload)
 
virtual void HandleCancelable (FGameplayEventData Payload) override
 
- UGA_CombatBase(으)로부터 상속된 Protected 멤버 함수
void SetupHitCheckListener ()
 
void OnHitCheckStart (FGameplayEventData Payload)
 
void OnHitCheckEnd (FGameplayEventData Payload)
 
void OnTraceResultCallback (const FGameplayAbilityTargetDataHandle &TargetDataHandle, float CombatDataLevel, int32 CombatHitDataIndex)
 
void OnFinisherResultCallback (const FGameplayAbilityTargetDataHandle &TargetDataHandle, float CombatDataLevel, int32 CombatHitDataIndex)
 
virtual TOptional< FTransform > GetTraceTransformForHitCheck () const
 
void ApplyEffectsToSelf (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo)
 
FCombatHitPayload BuildCombatHitPayload (const FCombatHitData &HitData, float DamageMultiplier, bool bRequestKnockback)
 
TArray< FGameplayEffectSpecHandle > BuildCombatEffectSpecs (const FCombatHitData &HitData, float DamageMultiplier)
 
FGameplayEffectSpecHandle BuildEffectSpec (const FCombatEffectData &EffectData, float CombatDataLevel)
 
void PlayCombatHitAudio (const FVector &HitLocation)
 
void CacheAudioTagComponents ()
 
const FKnockbackDataFindKnockbackData (const FCombatHitData &HitData) const
 
void NotifyCameraHitConfirmed () const
 
float GetAttackSpeedRate () const
 
void UpdateAttackWarpTargetForRange (FName WarpTargetName=FName("Target"))
 
void UpdateAttackWarpTargetForRange (FName WarpTargetName, ITargetableInterface *Target)
 
- UGA_Base(으)로부터 상속된 Protected 멤버 함수
UCharacterMotionWarpingComponentBase * GetMotionWarpingComponent () const
 
void SetupCancelableListener ()
 
void OnCancelableInputDetected (FGameplayEventData Payload)
 
virtual void OnAbilityMontageCompleted ()
 
virtual void OnAbilityMontageInterrupted ()
 
virtual void OnAbilityMontageCancellable ()
 

Protected 속성

TObjectPtr< class UAnimMontage > ComboMontage
 
FString MontageSectionNamePrefix
 
uint8 MaxComboCount = 0
 
uint8 CurrentCombo = 0
 
bool bIsComboWindowOpen = false
 
bool bHasNextComboInput = false
 
- UGA_CombatBase(으)로부터 상속된 Protected 속성
TObjectPtr< UCombatDataBaseCombatData
 
float AttackRange = 450.0f
 
float AttackRangeCorrectionDistance = 250.0f
 
float AttackRangeCorrectionInnerOffset = 30.0f
 
TObjectPtr< UAT_TraceActiveTraceTask
 
TArray< TSubclassOf< UGameplayEffect > > SelfEffectClasses
 
FGameplayTag WeaponHitCueTag
 
TArray< TObjectPtr< UAudioEmitterComponent > > CachedAudioTagComponents
 

Private 멤버 함수

void ProceedToNextCombo ()
 

멤버 함수 문서화

◆ ActivateAbility()

void UGA_Attack::ActivateAbility ( const FGameplayAbilitySpecHandle  Handle,
const FGameplayAbilityActorInfo *  ActorInfo,
const FGameplayAbilityActivationInfo  ActivationInfo,
const FGameplayEventData *  TriggerEventData 
)
overridevirtual
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
44 if (!ComboMontage)
45 {
46 EndAbility(Handle, ActorInfo, ActivationInfo, true, true);
47 return;
48 }
49
50 ApplyEffectsToSelf(Handle, ActorInfo, ActivationInfo);
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
76 UAbilityTask_PlayMontageAndWait* PlayAttackTask = UAbilityTask_PlayMontageAndWait::CreatePlayMontageAndWaitProxy(this, TEXT("PlayAttack"), ComboMontage, GetAttackSpeedRate(), GetNextSection());
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
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ApplyCombatData()

void UGA_Attack::ApplyCombatData ( )
overrideprotectedvirtual

UGA_CombatBase(으)로부터 재구현되었습니다.

17{
18 Super::ApplyCombatData();
19
20 if (!CombatData)
21 {
22 return;
23 }
24
25 const FAttackComboData* Payload = CombatData->FindExtendedData<FAttackComboData>();
26 check(Payload);
27
28 ComboMontage = Payload->ComboMontage;
31}
uint8 MaxComboCount
Definition GA_Attack.h:46
FString MontageSectionNamePrefix
Definition GA_Attack.h:44
TObjectPtr< UCombatDataBase > CombatData
Definition GA_CombatBase.h:75
Definition ExtendedDatas.h:27
uint8 MaxComboCount
Definition ExtendedDatas.h:38
FString MontageSectionNamePrefix
Definition ExtendedDatas.h:35
TObjectPtr< UAnimMontage > ComboMontage
Definition ExtendedDatas.h:32

◆ CancelAbility()

void UGA_Attack::CancelAbility ( const FGameplayAbilitySpecHandle  Handle,
const FGameplayAbilityActorInfo *  ActorInfo,
const FGameplayAbilityActivationInfo  ActivationInfo,
bool  bReplicateCancelAbility 
)
overridevirtual
104{
105 Super::CancelAbility(Handle, ActorInfo, ActivationInfo, bReplicateCancelAbility);
106}

◆ EndAbility()

void UGA_Attack::EndAbility ( const FGameplayAbilitySpecHandle  Handle,
const FGameplayAbilityActorInfo *  ActorInfo,
const FGameplayAbilityActivationInfo  ActivationInfo,
bool  bReplicateEndAbility,
bool  bWasCancelled 
)
overridevirtual

UGA_CombatBase(으)로부터 재구현되었습니다.

110{
111 CurrentCombo = 0;
112 bIsComboWindowOpen = false;
113 bHasNextComboInput = false;
114
115 Super::EndAbility(Handle, ActorInfo, ActivationInfo, bReplicateEndAbility, bWasCancelled);
116}
bool bIsComboWindowOpen
Definition GA_Attack.h:49
bool bHasNextComboInput
Definition GA_Attack.h:50
uint8 CurrentCombo
Definition GA_Attack.h:48
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetNextSection()

FName UGA_Attack::GetNextSection ( )
protected
120{
121 CurrentCombo = FMath::Clamp(CurrentCombo + 1, 1, MaxComboCount);
122 FName NextSection = *FString::Printf(TEXT("%s%d"), *MontageSectionNamePrefix, CurrentCombo);
123 LOG_INFO(LogCKCharacter, "Next Section Name: %s", *NextSection.ToString());
124 return NextSection;
125}
#define LOG_INFO(Category, Format,...)
Definition CK_UE.h:38
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ HandleCancelable()

void UGA_Attack::HandleCancelable ( FGameplayEventData  Payload)
overrideprotectedvirtual

UGA_Base(으)로부터 재구현되었습니다.

150{
152 {
154 return;
155 }
156
157 Super::HandleCancelable(Payload);
158}
void ProceedToNextCombo()
Definition GA_Attack.cpp:161
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ InputPressed()

void UGA_Attack::InputPressed ( const FGameplayAbilitySpecHandle  Handle,
const FGameplayAbilityActorInfo *  ActorInfo,
const FGameplayAbilityActivationInfo  ActivationInfo 
)
overridevirtual
91{
93 {
95 }
96 else
97 {
98 bHasNextComboInput = true;
99 }
100}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnComboWindowBeginReceived()

void UGA_Attack::OnComboWindowBeginReceived ( FGameplayEventData  Payload)
protected
129{
130 bIsComboWindowOpen = true;
131
133 {
134 //다음 공격이 없다면 그저 대기.
135 return;
136 }
137
139}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnComboWindowEndReceived()

void UGA_Attack::OnComboWindowEndReceived ( FGameplayEventData  Payload)
protected
143{
144 bIsComboWindowOpen = false;
145 bHasNextComboInput = false;
146}

◆ ProceedToNextCombo()

void UGA_Attack::ProceedToNextCombo ( )
private
162{
164 {
165 bHasNextComboInput = false;
166 return;
167 }
168
169 bIsComboWindowOpen = false;
170 bHasNextComboInput = false;
171
172 if (UCharacterMotionWarpingComponentBase* WarpComponent = GetMotionWarpingComponent())
173 {
174 WarpComponent->ResetLockOnTarget();
175 }
176
177 if (IAttackableInterface* AttackableInterface = Cast<IAttackableInterface>(GetAvatarActorFromActorInfo()))
178 {
179 AttackableInterface->CacheAttackContext();
180 }
181
183 MontageJumpToSection(GetNextSection());
184
185}
UCharacterMotionWarpingComponentBase * GetMotionWarpingComponent() const
Definition GA_Base.cpp:33
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ bHasNextComboInput

bool UGA_Attack::bHasNextComboInput = false
protected

◆ bIsComboWindowOpen

bool UGA_Attack::bIsComboWindowOpen = false
protected

◆ ComboMontage

TObjectPtr<class UAnimMontage> UGA_Attack::ComboMontage
protected

◆ CurrentCombo

uint8 UGA_Attack::CurrentCombo = 0
protected

◆ MaxComboCount

uint8 UGA_Attack::MaxComboCount = 0
protected

◆ MontageSectionNamePrefix

FString UGA_Attack::MontageSectionNamePrefix
protected

이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: