64. Properly Clamping Attributes

This commit is contained in:
2024-10-19 22:34:51 -04:00
parent 3a3f0c0271
commit 067c2f03c5
3 changed files with 62 additions and 21 deletions

View File

@ -6,6 +6,7 @@
#include "AbilitySystemComponent.h"
#include "Net/UnrealNetwork.h"
#include "Networking/GasaNetLibrary.h"
#include "GameplayEffectExtension.h"
UGasaAttributeSet::UGasaAttributeSet()
{
@ -47,6 +48,23 @@ void UGasaAttributeSet::PostGameplayEffectExecute( FGameplayEffectModCallbackDat
Super::PostGameplayEffectExecute( Data );
FEffectProperties Props;
Props.Populate( Data );
if ( Data.EvaluatedData.Attribute == GetHealthAttribute() )
{
SetHealth( FMath::Clamp( GetHealth(), 0, GetMaxHealth() ) );
}
if ( Data.EvaluatedData.Attribute == GetMaxHealthAttribute() )
{
SetMaxHealth( FMath::Clamp( GetMaxHealth(), 0, 99999.000000 ) );
}
if ( Data.EvaluatedData.Attribute == GetManaAttribute() )
{
SetMana( FMath::Clamp( GetMana(), 0, GetMaxMana() ) );
}
if ( Data.EvaluatedData.Attribute == GetMaxManaAttribute() )
{
SetMaxMana( FMath::Clamp( GetMaxMana(), 0, 99999.000000 ) );
}
}
void UGasaAttributeSet::PreAttributeChange( FGameplayAttribute const& Attribute, float& NewValue )