25. Attribut accessors complete
There is some jank, with the ability system init on character (I'll fix later). Cog replaces the usuals showdebug command
This commit is contained in:
@ -8,7 +8,7 @@
|
||||
#include "GasaAbilitySystemComponent.generated.h"
|
||||
|
||||
|
||||
UCLASS()
|
||||
UCLASS(BlueprintType)
|
||||
class GASA_API UGasaAbilitySystemComp : public UAbilitySystemComponent
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
@ -7,6 +7,10 @@
|
||||
|
||||
UGasaAttributeSet::UGasaAttributeSet()
|
||||
{
|
||||
InitHealth( 100.f );
|
||||
InitMaxHealth( 100.f );
|
||||
InitMana( ( 50.f ) );
|
||||
InitMaxMana( 50.f );
|
||||
}
|
||||
|
||||
void UGasaAttributeSet::Client_OnRep_Health( FGameplayAttributeData& PrevHealth )
|
||||
|
@ -1,7 +1,7 @@
|
||||
// This was generated by GasaGen/GasaGen.cpp
|
||||
|
||||
#include "AttributeSet.h"
|
||||
|
||||
#include "AbilitySystemComponent.h"
|
||||
#include "GasaAttributeSet.generated.h"
|
||||
|
||||
UCLASS() class GASA_API UGasaAttributeSet : public UAttributeSet
|
||||
@ -11,13 +11,13 @@ public:
|
||||
UPROPERTY( ReplicatedUsing = Client_OnRep_Health, EditAnywhere, BlueprintReadWrite, Category = "Attributes" )
|
||||
FGameplayAttributeData Health;
|
||||
|
||||
UPROPERTY( ReplicatedUsing = Client_OnRep_Health, EditAnywhere, BlueprintReadWrite, Category = "Attributes" )
|
||||
UPROPERTY( ReplicatedUsing = Client_OnRep_MaxHealth, EditAnywhere, BlueprintReadWrite, Category = "Attributes" )
|
||||
FGameplayAttributeData MaxHealth;
|
||||
|
||||
UPROPERTY( ReplicatedUsing = Client_OnRep_Health, EditAnywhere, BlueprintReadWrite, Category = "Attributes" )
|
||||
UPROPERTY( ReplicatedUsing = Client_OnRep_Mana, EditAnywhere, BlueprintReadWrite, Category = "Attributes" )
|
||||
FGameplayAttributeData Mana;
|
||||
|
||||
UPROPERTY( ReplicatedUsing = Client_OnRep_Health, EditAnywhere, BlueprintReadWrite, Category = "Attributes" )
|
||||
UPROPERTY( ReplicatedUsing = Client_OnRep_MaxMana, EditAnywhere, BlueprintReadWrite, Category = "Attributes" )
|
||||
FGameplayAttributeData MaxMana;
|
||||
|
||||
UGasaAttributeSet();
|
||||
@ -31,6 +31,117 @@ public:
|
||||
UFUNCTION()
|
||||
void Client_OnRep_MaxMana( FGameplayAttributeData& PrevMaxMana );
|
||||
|
||||
#pragma region Getters
|
||||
|
||||
static FGameplayAttribute GetHealthAttribute()
|
||||
{
|
||||
static FProperty* Prop = FindFieldChecked< FProperty >( UGasaAttributeSet::StaticClass(), GET_MEMBER_NAME_CHECKED( UGasaAttributeSet, Health ) );
|
||||
return Prop;
|
||||
}
|
||||
|
||||
static FGameplayAttribute GetMaxHealthAttribute()
|
||||
{
|
||||
static FProperty* Prop = FindFieldChecked< FProperty >( UGasaAttributeSet::StaticClass(), GET_MEMBER_NAME_CHECKED( UGasaAttributeSet, MaxHealth ) );
|
||||
return Prop;
|
||||
}
|
||||
|
||||
static FGameplayAttribute GetManaAttribute()
|
||||
{
|
||||
static FProperty* Prop = FindFieldChecked< FProperty >( UGasaAttributeSet::StaticClass(), GET_MEMBER_NAME_CHECKED( UGasaAttributeSet, Mana ) );
|
||||
return Prop;
|
||||
}
|
||||
|
||||
static FGameplayAttribute GetMaxManaAttribute()
|
||||
{
|
||||
static FProperty* Prop = FindFieldChecked< FProperty >( UGasaAttributeSet::StaticClass(), GET_MEMBER_NAME_CHECKED( UGasaAttributeSet, MaxMana ) );
|
||||
return Prop;
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
#pragma endregion Getters
|
||||
|
||||
#pragma region Setters
|
||||
FORCEINLINE void SetHealth( float NewVal )
|
||||
{
|
||||
UAbilitySystemComponent* AbilityComp = GetOwningAbilitySystemComponent();
|
||||
if ( ensure( AbilityComp ) )
|
||||
{
|
||||
AbilityComp->SetNumericAttributeBase( GetHealthAttribute(), NewVal );
|
||||
};
|
||||
}
|
||||
|
||||
FORCEINLINE void SetMaxHealth( float NewVal )
|
||||
{
|
||||
UAbilitySystemComponent* AbilityComp = GetOwningAbilitySystemComponent();
|
||||
if ( ensure( AbilityComp ) )
|
||||
{
|
||||
AbilityComp->SetNumericAttributeBase( GetMaxHealthAttribute(), NewVal );
|
||||
};
|
||||
}
|
||||
|
||||
FORCEINLINE void SetMana( float NewVal )
|
||||
{
|
||||
UAbilitySystemComponent* AbilityComp = GetOwningAbilitySystemComponent();
|
||||
if ( ensure( AbilityComp ) )
|
||||
{
|
||||
AbilityComp->SetNumericAttributeBase( GetManaAttribute(), NewVal );
|
||||
};
|
||||
}
|
||||
|
||||
FORCEINLINE void SetMaxMana( float NewVal )
|
||||
{
|
||||
UAbilitySystemComponent* AbilityComp = GetOwningAbilitySystemComponent();
|
||||
if ( ensure( AbilityComp ) )
|
||||
{
|
||||
AbilityComp->SetNumericAttributeBase( GetMaxManaAttribute(), NewVal );
|
||||
};
|
||||
}
|
||||
|
||||
FORCEINLINE void InitHealth( float NewVal )
|
||||
{
|
||||
Health.SetBaseValue( NewVal );
|
||||
Health.SetCurrentValue( NewVal );
|
||||
}
|
||||
|
||||
FORCEINLINE void InitMaxHealth( float NewVal )
|
||||
{
|
||||
MaxHealth.SetBaseValue( NewVal );
|
||||
MaxHealth.SetCurrentValue( NewVal );
|
||||
}
|
||||
|
||||
FORCEINLINE void InitMana( float NewVal )
|
||||
{
|
||||
Mana.SetBaseValue( NewVal );
|
||||
Mana.SetCurrentValue( NewVal );
|
||||
}
|
||||
|
||||
FORCEINLINE void InitMaxMana( float NewVal )
|
||||
{
|
||||
MaxMana.SetBaseValue( NewVal );
|
||||
MaxMana.SetCurrentValue( NewVal );
|
||||
}
|
||||
|
||||
#pragma endregion Setters
|
||||
|
||||
#pragma region UObject
|
||||
|
||||
void GetLifetimeReplicatedProps( TArray< FLifetimeProperty >& OutLifetimeProps ) const override;
|
||||
|
Reference in New Issue
Block a user