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

#include <BaseAttributeSet.h>

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

Public 멤버 함수

 UBaseAttributeSet ()
 
virtual void PreAttributeChange (const FGameplayAttribute &Attribute, float &NewValue) override
 
virtual void PostGameplayEffectExecute (const struct FGameplayEffectModCallbackData &Data) override
 
void InitBaseStats (float InMaxHealth, float InMoveSpeed, float InAttack, float InAttackSpeed, float InStunDuration)
 
 ATTRIBUTE_ACCESSORS (UBaseAttributeSet, Health)
 
 ATTRIBUTE_ACCESSORS (UBaseAttributeSet, MaxHealth)
 
 ATTRIBUTE_ACCESSORS (UBaseAttributeSet, MoveSpeed)
 
 ATTRIBUTE_ACCESSORS (UBaseAttributeSet, Attack)
 
 ATTRIBUTE_ACCESSORS (UBaseAttributeSet, AttackSpeed)
 
 ATTRIBUTE_ACCESSORS (UBaseAttributeSet, Damage)
 
 ATTRIBUTE_ACCESSORS (UBaseAttributeSet, StunDuration)
 

Public 속성

FDeathDelegate OnDeathDelegate
 
FOnDamageTakenDelegate OnDamageDelegate
 
bool bOutOfHealth = false
 
FGameplayAttributeData Health
 
FGameplayAttributeData MaxHealth
 
FGameplayAttributeData MoveSpeed
 
FGameplayAttributeData Attack
 
FGameplayAttributeData AttackSpeed
 
FGameplayAttributeData Damage
 
FGameplayAttributeData DamageIsCritical
 
FGameplayAttributeData StunDuration
 

생성자 & 소멸자 문서화

◆ UBaseAttributeSet()

UBaseAttributeSet::UBaseAttributeSet ( )
10 :
11 MaxHealth(1.0f),
12 MoveSpeed(1.0f),
13 Attack(0.0f),
14 AttackSpeed(1.0f),
15 Damage(0.0f),
16 StunDuration(1.0f)
17{
18 InitHealth(GetMaxHealth());
19}
FGameplayAttributeData Attack
Definition BaseAttributeSet.h:57
FGameplayAttributeData Damage
Definition BaseAttributeSet.h:63
FGameplayAttributeData AttackSpeed
Definition BaseAttributeSet.h:60
FGameplayAttributeData StunDuration
Definition BaseAttributeSet.h:69
FGameplayAttributeData MoveSpeed
Definition BaseAttributeSet.h:54
FGameplayAttributeData MaxHealth
Definition BaseAttributeSet.h:51

멤버 함수 문서화

◆ ATTRIBUTE_ACCESSORS() [1/7]

UBaseAttributeSet::ATTRIBUTE_ACCESSORS ( UBaseAttributeSet  ,
Attack   
)

◆ ATTRIBUTE_ACCESSORS() [2/7]

UBaseAttributeSet::ATTRIBUTE_ACCESSORS ( UBaseAttributeSet  ,
AttackSpeed   
)

◆ ATTRIBUTE_ACCESSORS() [3/7]

UBaseAttributeSet::ATTRIBUTE_ACCESSORS ( UBaseAttributeSet  ,
Damage   
)

◆ ATTRIBUTE_ACCESSORS() [4/7]

UBaseAttributeSet::ATTRIBUTE_ACCESSORS ( UBaseAttributeSet  ,
Health   
)

◆ ATTRIBUTE_ACCESSORS() [5/7]

UBaseAttributeSet::ATTRIBUTE_ACCESSORS ( UBaseAttributeSet  ,
MaxHealth   
)

◆ ATTRIBUTE_ACCESSORS() [6/7]

UBaseAttributeSet::ATTRIBUTE_ACCESSORS ( UBaseAttributeSet  ,
MoveSpeed   
)

◆ ATTRIBUTE_ACCESSORS() [7/7]

UBaseAttributeSet::ATTRIBUTE_ACCESSORS ( UBaseAttributeSet  ,
StunDuration   
)

◆ InitBaseStats()

void UBaseAttributeSet::InitBaseStats ( float  InMaxHealth,
float  InMoveSpeed,
float  InAttack,
float  InAttackSpeed,
float  InStunDuration 
)
22{
23 InitMaxHealth(InMaxHealth);
24 InitHealth(InMaxHealth);
25 InitMoveSpeed(InMoveSpeed);
26 InitAttack(InAttack);
27 InitAttackSpeed(InAttackSpeed);
28 InitStunDuration(InStunDuration);
29}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ PostGameplayEffectExecute()

void UBaseAttributeSet::PostGameplayEffectExecute ( const struct FGameplayEffectModCallbackData &  Data)
overridevirtual
46{
47 Super::PostGameplayEffectExecute(Data);
48
49 float MinimumHealth = 0.0f;
50
51 if (Data.EvaluatedData.Attribute == GetHealthAttribute())
52 {
53 LOG_INFO(LogCKAttribute,"Direct Health Access : %f", GetHealth());
54 SetHealth(FMath::Clamp(GetHealth(), MinimumHealth, GetMaxHealth()));
55 }
56 else if (Data.EvaluatedData.Attribute == GetDamageAttribute())
57 {
58 float LocalDamage = GetDamage();
59 float bIsCritical = GetDamageIsCritical() > 0.0f ? 1.0f : 0.0f;
60
61 SetHealth(FMath::Clamp(GetHealth() - LocalDamage, MinimumHealth, GetMaxHealth()));
62
63 if (LocalDamage > 0.0f)
64 {
65 AActor* TargetActor = GetOwningActor();
66 bool bCriticalHit = bIsCritical > 0.0f;
67
68 OnDamageDelegate.Broadcast(TargetActor, LocalDamage, bCriticalHit);
69 }
70
71 SetDamage(0.0f);
72 SetDamageIsCritical(0.0f);
73 }
74
75 if (GetHealth() <= MinimumHealth && !bOutOfHealth)
76 {
77 bOutOfHealth = true;
78 Data.Target.AddLooseGameplayTag(TAG_CHARACTER_STATE_ISDEAD);
79 OnDeathDelegate.Broadcast();
80 }
81}
#define LOG_INFO(Category, Format,...)
Definition CK_UE.h:30
bool bOutOfHealth
Definition BaseAttributeSet.h:46
FOnDamageTakenDelegate OnDamageDelegate
Definition BaseAttributeSet.h:43
FDeathDelegate OnDeathDelegate
Definition BaseAttributeSet.h:42

◆ PreAttributeChange()

void UBaseAttributeSet::PreAttributeChange ( const FGameplayAttribute &  Attribute,
float &  NewValue 
)
overridevirtual
32{
33 Super::PreAttributeChange(Attribute, NewValue);
34
35 if (Attribute == GetHealthAttribute())
36 {
37 NewValue = FMath::Clamp(NewValue, 0.0f, GetMaxHealth());
38 }
39 else if (Attribute == GetDamageAttribute())
40 {
41 NewValue = NewValue < 0.0f ? 0.0f : NewValue;
42 }
43}

멤버 데이터 문서화

◆ Attack

FGameplayAttributeData UBaseAttributeSet::Attack

◆ AttackSpeed

FGameplayAttributeData UBaseAttributeSet::AttackSpeed

◆ bOutOfHealth

bool UBaseAttributeSet::bOutOfHealth = false

◆ Damage

FGameplayAttributeData UBaseAttributeSet::Damage

◆ DamageIsCritical

FGameplayAttributeData UBaseAttributeSet::DamageIsCritical

◆ Health

FGameplayAttributeData UBaseAttributeSet::Health

◆ MaxHealth

FGameplayAttributeData UBaseAttributeSet::MaxHealth

◆ MoveSpeed

FGameplayAttributeData UBaseAttributeSet::MoveSpeed

◆ OnDamageDelegate

FOnDamageTakenDelegate UBaseAttributeSet::OnDamageDelegate

◆ OnDeathDelegate

FDeathDelegate UBaseAttributeSet::OnDeathDelegate
mutable

◆ StunDuration

FGameplayAttributeData UBaseAttributeSet::StunDuration

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