Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
BaseAttributeSet.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "AttributeSet.h"
7#include "AbilitySystemComponent.h"
8#include "BaseAttributeSet.generated.h"
9
11DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnDamageTakenDelegate, AActor*, TargetActor, float, DamageAmount, bool, bIsCritical);
12
13#define ATTRIBUTE_ACCESSORS(ClassName, PropertyName) \
14GAMEPLAYATTRIBUTE_PROPERTY_GETTER(ClassName, PropertyName) \
15GAMEPLAYATTRIBUTE_VALUE_GETTER(PropertyName) \
16GAMEPLAYATTRIBUTE_VALUE_SETTER(PropertyName) \
17GAMEPLAYATTRIBUTE_VALUE_INITTER(PropertyName)
18
19UCLASS(Abstract)
20class CK_UE_API UBaseAttributeSet : public UAttributeSet
21{
22 GENERATED_BODY()
23
24public:
26
27 virtual void PreAttributeChange(const FGameplayAttribute& Attribute, float& NewValue) override;
28 virtual void PostGameplayEffectExecute(const struct FGameplayEffectModCallbackData& Data) override;
29
30 // 초기화 헬퍼 함수
31 void InitBaseStats(float InMaxHealth, float InMoveSpeed, float InAttack, float InAttackSpeed, float InStunDuration);
32
39 ATTRIBUTE_ACCESSORS(UBaseAttributeSet, DamageIsCritical)
41
42 mutable FDeathDelegate OnDeathDelegate;
43 FOnDamageTakenDelegate OnDamageDelegate;
44
45public:
46 bool bOutOfHealth = false;
47 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (AllowPrivateAccess = true))
48 FGameplayAttributeData Health;
49
50 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (AllowPrivateAccess = true))
51 FGameplayAttributeData MaxHealth;
52
53 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (AllowPrivateAccess = true))
54 FGameplayAttributeData MoveSpeed;
55
56 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (AllowPrivateAccess = true))
57 FGameplayAttributeData Attack;
58
59 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (AllowPrivateAccess = true))
60 FGameplayAttributeData AttackSpeed;
61
62 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (HideFromModifiers))
63 FGameplayAttributeData Damage;
64
65 UPROPERTY(BlueprintReadOnly, Category = "Damage", meta = (HideFromModifiers))
66 FGameplayAttributeData DamageIsCritical;
67
68 UPROPERTY(BlueprintReadOnly, Category = "Stat", meta = (AllowPrivateAccess = true))
69 FGameplayAttributeData StunDuration;
70};
DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnDamageTakenDelegate, AActor *, TargetActor, float, DamageAmount, bool, bIsCritical)
#define ATTRIBUTE_ACCESSORS(ClassName, PropertyName)
Definition BaseAttributeSet.h:13
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FDeathDelegate)
Definition BaseAttributeSet.h:21
ATTRIBUTE_ACCESSORS(UBaseAttributeSet, Damage)
ATTRIBUTE_ACCESSORS(UBaseAttributeSet, AttackSpeed)
ATTRIBUTE_ACCESSORS(UBaseAttributeSet, MoveSpeed)
ATTRIBUTE_ACCESSORS(UBaseAttributeSet, Attack)
ATTRIBUTE_ACCESSORS(UBaseAttributeSet, MaxHealth)
ATTRIBUTE_ACCESSORS(UBaseAttributeSet, Health)