GASATHON/Project/Source/Gasa/AbilitySystem/GasaAttributeSet.h

104 lines
3.3 KiB
C
Raw Normal View History

2024-04-21 15:56:57 -07:00
// Generated by GasaGen/GasaGen_UGasaAttributeSet.cpp
#pragma once
2024-04-13 07:19:45 -07:00
#include "AttributeSet.h"
2024-04-13 07:19:45 -07:00
#include "GasaAttributeSet.generated.h"
UCLASS()
class GASA_API UGasaAttributeSet : public UAttributeSet
2024-04-13 07:19:45 -07:00
{
GENERATED_BODY()
2024-04-24 17:18:38 -07:00
2024-04-13 07:19:45 -07:00
public:
2024-04-24 15:18:26 -07:00
UGasaAttributeSet();
2024-04-24 17:18:38 -07:00
UPROPERTY(ReplicatedUsing = Client_OnRep_Health, EditAnywhere, BlueprintReadWrite, Category = "Attributes")
FGameplayAttributeData Health;
2024-04-24 17:18:38 -07:00
UPROPERTY(ReplicatedUsing = Client_OnRep_MaxHealth, EditAnywhere, BlueprintReadWrite, Category = "Attributes")
FGameplayAttributeData MaxHealth;
2024-04-24 17:18:38 -07:00
UPROPERTY(ReplicatedUsing = Client_OnRep_Mana, EditAnywhere, BlueprintReadWrite, Category = "Attributes")
FGameplayAttributeData Mana;
2024-04-24 17:18:38 -07:00
UPROPERTY(ReplicatedUsing = Client_OnRep_MaxMana, EditAnywhere, BlueprintReadWrite, Category = "Attributes")
FGameplayAttributeData MaxMana;
UFUNCTION()
2024-04-24 17:18:38 -07:00
void Client_OnRep_Health(FGameplayAttributeData& PrevHealth);
UFUNCTION()
2024-04-24 17:18:38 -07:00
void Client_OnRep_MaxHealth(FGameplayAttributeData& PrevMaxHealth);
UFUNCTION()
2024-04-24 17:18:38 -07:00
void Client_OnRep_Mana(FGameplayAttributeData& PrevMana);
UFUNCTION()
2024-04-24 17:18:38 -07:00
void Client_OnRep_MaxMana(FGameplayAttributeData& PrevMaxMana);
#pragma region Getters
static FGameplayAttribute GetHealthAttribute()
{
2024-04-24 17:18:38 -07:00
static FProperty* Prop = FindFieldChecked<FProperty>(UGasaAttributeSet::StaticClass(), GET_MEMBER_NAME_CHECKED(UGasaAttributeSet, Health));
return Prop;
}
2024-04-24 17:18:38 -07:00
static FGameplayAttribute GetMaxHealthAttribute()
{
2024-04-24 17:18:38 -07:00
static FProperty* Prop = FindFieldChecked<FProperty>(UGasaAttributeSet::StaticClass(), GET_MEMBER_NAME_CHECKED(UGasaAttributeSet, MaxHealth));
return Prop;
}
2024-04-24 17:18:38 -07:00
static FGameplayAttribute GetManaAttribute()
{
2024-04-24 17:18:38 -07:00
static FProperty* Prop = FindFieldChecked<FProperty>(UGasaAttributeSet::StaticClass(), GET_MEMBER_NAME_CHECKED(UGasaAttributeSet, Mana));
return Prop;
}
2024-04-24 17:18:38 -07:00
static FGameplayAttribute GetMaxManaAttribute()
{
2024-04-24 17:18:38 -07:00
static FProperty* Prop = FindFieldChecked<FProperty>(UGasaAttributeSet::StaticClass(), GET_MEMBER_NAME_CHECKED(UGasaAttributeSet, MaxMana));
return Prop;
}
2024-04-21 15:56:57 -07:00
FORCEINLINE float GetHealth() const { return Health.GetCurrentValue(); }
FORCEINLINE float GetMaxHealth() const { return MaxHealth.GetCurrentValue(); }
FORCEINLINE float GetMana() const { return Mana.GetCurrentValue(); }
FORCEINLINE float GetMaxMana() const { return MaxMana.GetCurrentValue(); }
2024-04-24 17:18:38 -07:00
#pragma endregion Getters
#pragma region Setters
2024-04-24 17:18:38 -07:00
FORCEINLINE void SetHealth(float NewVal);
FORCEINLINE void SetMaxHealth(float NewVal);
FORCEINLINE void SetMana(float NewVal);
FORCEINLINE void SetMaxMana(float NewVal);
2024-04-21 15:56:57 -07:00
2024-04-24 17:18:38 -07:00
FORCEINLINE void InitHealth(float NewVal)
{
2024-04-24 17:18:38 -07:00
Health.SetBaseValue(NewVal);
Health.SetCurrentValue(NewVal);
}
2024-04-24 17:18:38 -07:00
FORCEINLINE void InitMaxHealth(float NewVal)
{
2024-04-24 17:18:38 -07:00
MaxHealth.SetBaseValue(NewVal);
MaxHealth.SetCurrentValue(NewVal);
}
2024-04-24 17:18:38 -07:00
FORCEINLINE void InitMana(float NewVal)
{
2024-04-24 17:18:38 -07:00
Mana.SetBaseValue(NewVal);
Mana.SetCurrentValue(NewVal);
}
2024-04-24 17:18:38 -07:00
FORCEINLINE void InitMaxMana(float NewVal)
{
2024-04-24 17:18:38 -07:00
MaxMana.SetBaseValue(NewVal);
MaxMana.SetCurrentValue(NewVal);
}
2024-04-24 17:18:38 -07:00
#pragma endregion Setters
2024-04-24 15:18:26 -07:00
#pragma region AttributeSet
2024-04-24 17:18:38 -07:00
void PreAttributeChange(const FGameplayAttribute& Attribute, float& NewValue) override;
void PostGameplayEffectExecute(FGameplayEffectModCallbackData const& Data) override;
2024-04-24 15:18:26 -07:00
#pragma endregion AttributeSet
#pragma region UObject
2024-04-24 17:18:38 -07:00
void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
#pragma endregion UObject
};