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

83 lines
3.2 KiB
C++
Raw Permalink Normal View History

2024-04-21 15:56:57 -07:00
// Generated by GasaGen/GasaGen_UGasaAttributeSet.cpp
#include "GasaAttributeSet.h"
2024-04-21 15:56:57 -07:00
#include "GasaAttributeSet_Inlines.h"
2024-04-24 17:18:38 -07:00
#include "EffectProperties.h"
2024-04-13 07:19:45 -07:00
#include "AbilitySystemComponent.h"
#include "Net/UnrealNetwork.h"
#include "Networking/GasaNetLibrary.h"
UGasaAttributeSet::UGasaAttributeSet()
{
2024-04-24 21:30:54 -07:00
InitHealth( 100.f );
InitMaxHealth( 100.f );
InitMana( 50.f );
InitMaxMana( 50.f );
}
#pragma region Rep Notifies
2024-04-24 21:30:54 -07:00
void UGasaAttributeSet::Client_OnRep_Health( FGameplayAttributeData& PrevHealth )
{
2024-04-22 09:01:30 -07:00
// From GAMEPLAYATTRIBUTE_REPNOTIFY
2024-04-24 21:30:54 -07:00
static FProperty* UGasaAttributeSetProperty = FindFieldChecked<FProperty>( StaticClass(), GET_MEMBER_NAME_CHECKED( UGasaAttributeSet, Health ) );
GetOwningAbilitySystemComponentChecked()->SetBaseAttributeValueFromReplication( FGameplayAttribute( UGasaAttributeSetProperty ), Health, PrevHealth );
}
2024-04-24 21:30:54 -07:00
void UGasaAttributeSet::Client_OnRep_MaxHealth( FGameplayAttributeData& PrevMaxHealth )
{
2024-04-22 09:01:30 -07:00
// From GAMEPLAYATTRIBUTE_REPNOTIFY
2024-04-24 21:30:54 -07:00
static FProperty* UGasaAttributeSetProperty = FindFieldChecked<FProperty>( StaticClass(), GET_MEMBER_NAME_CHECKED( UGasaAttributeSet, MaxHealth ) );
GetOwningAbilitySystemComponentChecked()->SetBaseAttributeValueFromReplication( FGameplayAttribute( UGasaAttributeSetProperty ), MaxHealth, PrevMaxHealth );
}
2024-04-24 21:30:54 -07:00
void UGasaAttributeSet::Client_OnRep_Mana( FGameplayAttributeData& PrevMana )
{
2024-04-22 09:01:30 -07:00
// From GAMEPLAYATTRIBUTE_REPNOTIFY
2024-04-24 21:30:54 -07:00
static FProperty* UGasaAttributeSetProperty = FindFieldChecked<FProperty>( StaticClass(), GET_MEMBER_NAME_CHECKED( UGasaAttributeSet, Mana ) );
GetOwningAbilitySystemComponentChecked()->SetBaseAttributeValueFromReplication( FGameplayAttribute( UGasaAttributeSetProperty ), Mana, PrevMana );
}
2024-04-24 21:30:54 -07:00
void UGasaAttributeSet::Client_OnRep_MaxMana( FGameplayAttributeData& PrevMaxMana )
{
2024-04-22 09:01:30 -07:00
// From GAMEPLAYATTRIBUTE_REPNOTIFY
2024-04-24 21:30:54 -07:00
static FProperty* UGasaAttributeSetProperty = FindFieldChecked<FProperty>( StaticClass(), GET_MEMBER_NAME_CHECKED( UGasaAttributeSet, MaxMana ) );
GetOwningAbilitySystemComponentChecked()->SetBaseAttributeValueFromReplication( FGameplayAttribute( UGasaAttributeSetProperty ), MaxMana, PrevMaxMana );
}
2024-04-22 09:01:30 -07:00
#pragma endregion Rep Notifies
2024-04-24 21:30:54 -07:00
void UGasaAttributeSet::PostGameplayEffectExecute( FGameplayEffectModCallbackData const& Data )
2024-04-24 15:18:26 -07:00
{
2024-04-24 21:30:54 -07:00
Super::PostGameplayEffectExecute( Data );
2024-04-24 17:18:38 -07:00
FEffectProperties Props;
2024-04-24 21:30:54 -07:00
Props.Populate( Data );
2024-04-24 17:18:38 -07:00
}
2024-04-24 15:18:26 -07:00
2024-04-24 21:30:54 -07:00
void UGasaAttributeSet::PreAttributeChange( FGameplayAttribute const& Attribute, float& NewValue )
2024-04-24 17:18:38 -07:00
{
2024-04-24 21:30:54 -07:00
Super::PreAttributeChange( Attribute, NewValue );
2024-04-24 17:18:38 -07:00
2024-04-24 21:30:54 -07:00
if ( Attribute == GetHealthAttribute() )
2024-04-24 15:18:26 -07:00
{
2024-04-24 21:30:54 -07:00
NewValue = FMath::Clamp( NewValue, 0, GetMaxHealth() );
2024-04-24 15:18:26 -07:00
}
2024-04-24 21:30:54 -07:00
if ( Attribute == GetMaxHealthAttribute() )
2024-04-24 15:18:26 -07:00
{
2024-04-24 21:30:54 -07:00
NewValue = FMath::Clamp( NewValue, 0, 99999.000000 );
2024-04-24 15:18:26 -07:00
}
2024-04-24 21:30:54 -07:00
if ( Attribute == GetManaAttribute() )
2024-04-24 15:18:26 -07:00
{
2024-04-24 21:30:54 -07:00
NewValue = FMath::Clamp( NewValue, 0, GetMaxMana() );
2024-04-24 15:18:26 -07:00
}
2024-04-24 21:30:54 -07:00
if ( Attribute == GetMaxManaAttribute() )
2024-04-24 15:18:26 -07:00
{
2024-04-24 21:30:54 -07:00
NewValue = FMath::Clamp( NewValue, 0, 99999.000000 );
2024-04-24 15:18:26 -07:00
}
}
2024-04-24 17:18:38 -07:00
2024-04-24 21:30:54 -07:00
void UGasaAttributeSet::GetLifetimeReplicatedProps( TArray<FLifetimeProperty>& OutLifetimeProps ) const
{
2024-04-24 21:30:54 -07:00
Super::GetLifetimeReplicatedProps( OutLifetimeProps );
2024-04-24 21:30:54 -07:00
DOREPLIFETIME_DEFAULT_GAS( UGasaAttributeSet, Health );
DOREPLIFETIME_DEFAULT_GAS( UGasaAttributeSet, MaxHealth );
DOREPLIFETIME_DEFAULT_GAS( UGasaAttributeSet, Mana );
DOREPLIFETIME_DEFAULT_GAS( UGasaAttributeSet, MaxMana );
}