56 : public UAttributeSet
57{
58 GENERATED_BODY()
59
60public:
62
63public:
64 virtual void PreAttributeChange(const FGameplayAttribute& Attribute, float& NewValue) override;
65 virtual void PostGameplayEffectExecute(const struct FGameplayEffectModCallbackData& Data) override;
66
67
68 void InitBaseStats(float InMaxHealth, float InMoveSpeed, float InAttack, float InAttackSpeed, float InKnockbackResistance = 0.0f, float InCooldownMultiplier = 1.0f);
69
70 FDamageResultData GenerateDamageResultData(const struct FGameplayEffectModCallbackData& Data,
float LocalDamage,
bool bCriticalHit) const;
71
81
82public:
83 FORCEINLINE bool IsOutOfHealth() const
84 {
85 return bOutOfHealth;
86 }
87
88public:
89 mutable FDeathDelegate OnDeathDelegate;
90 mutable FOnDamageTakenDelegate OnDamageDelegate;
91
92protected:
93 bool bOutOfHealth = false;
94
95protected:
96 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (AllowPrivateAccess = true))
97 FGameplayAttributeData Health;
98
99 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (AllowPrivateAccess = true))
100 FGameplayAttributeData MaxHealth;
101
102 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (AllowPrivateAccess = true))
103 FGameplayAttributeData MoveSpeed;
104
105 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (AllowPrivateAccess = true))
106 FGameplayAttributeData Attack;
107
108 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (AllowPrivateAccess = true))
109 FGameplayAttributeData AttackSpeed;
110
111
112 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (AllowPrivateAccess = true))
113 FGameplayAttributeData KnockbackResistance;
114
115
116
117 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (AllowPrivateAccess = true))
118 FGameplayAttributeData CooldownMultiplier;
119
120protected:
121 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (HideFromModifiers))
122 FGameplayAttributeData Damage;
123
124
125 UPROPERTY(BlueprintReadOnly, Category = "Damage", meta = (HideFromModifiers))
126 FGameplayAttributeData DamageIsCritical;
127};
#define ATTRIBUTE_ACCESSORS(ClassName, PropertyName)
Definition BaseAttributeSet.h:50
Definition BaseAttributeSet.h:58
Definition BaseAttributeSet.h:15