diff --git a/Source/Aura/Private/AbilitySystem/AuraAttributeSet.cpp b/Source/Aura/Private/AbilitySystem/AuraAttributeSet.cpp index 694859a..f3cc93b 100644 --- a/Source/Aura/Private/AbilitySystem/AuraAttributeSet.cpp +++ b/Source/Aura/Private/AbilitySystem/AuraAttributeSet.cpp @@ -2,4 +2,40 @@ #include "AbilitySystem/AuraAttributeSet.h" +#include "AbilitySystemComponent.h" +#include "Net/UnrealNetwork.h" +UAuraAttributeSet::UAuraAttributeSet() +{ +} + +void UAuraAttributeSet::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const +{ + Super::GetLifetimeReplicatedProps(OutLifetimeProps); + + DOREPLIFETIME_CONDITION_NOTIFY(UAuraAttributeSet, Health, COND_None, REPNOTIFY_Always) + DOREPLIFETIME_CONDITION_NOTIFY(UAuraAttributeSet, MaxHealth, COND_None, REPNOTIFY_Always) + + DOREPLIFETIME_CONDITION_NOTIFY(UAuraAttributeSet, Mana, COND_None, REPNOTIFY_Always) + DOREPLIFETIME_CONDITION_NOTIFY(UAuraAttributeSet, MaxMana, COND_None, REPNOTIFY_Always) +} + +void UAuraAttributeSet::OnRep_Health(const FGameplayAttributeData& OldHealth) const +{ + GAMEPLAYATTRIBUTE_REPNOTIFY(UAuraAttributeSet, Health, OldHealth) +} + +void UAuraAttributeSet::OnRep_MaxHealth(const FGameplayAttributeData& OldMaxHealth) const +{ + GAMEPLAYATTRIBUTE_REPNOTIFY(UAuraAttributeSet, MaxHealth, OldMaxHealth) +} + +void UAuraAttributeSet::OnRep_Mana(const FGameplayAttributeData& OldMana) const +{ + GAMEPLAYATTRIBUTE_REPNOTIFY(UAuraAttributeSet, Mana, OldMana) +} + +void UAuraAttributeSet::OnRep_MaxMana(const FGameplayAttributeData& OldMaxMana) const +{ + GAMEPLAYATTRIBUTE_REPNOTIFY(UAuraAttributeSet, MaxMana, OldMaxMana) +} diff --git a/Source/Aura/Public/AbilitySystem/AuraAttributeSet.h b/Source/Aura/Public/AbilitySystem/AuraAttributeSet.h index e14fce0..091d002 100644 --- a/Source/Aura/Public/AbilitySystem/AuraAttributeSet.h +++ b/Source/Aura/Public/AbilitySystem/AuraAttributeSet.h @@ -13,5 +13,32 @@ UCLASS() class AURA_API UAuraAttributeSet : public UAttributeSet { GENERATED_BODY() - + +public: + UAuraAttributeSet (); + virtual void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override; + + UPROPERTY (BlueprintReadOnly, ReplicatedUsing = OnRep_Health, Category = "Vital Attributes") + FGameplayAttributeData Health; + + UPROPERTY (BlueprintReadOnly, ReplicatedUsing = OnRep_MaxHealth, Category = "Vital Attributes") + FGameplayAttributeData MaxHealth; + + UPROPERTY (BlueprintReadOnly, ReplicatedUsing = OnRep_Mana, Category = "Vital Attributes") + FGameplayAttributeData Mana; + + UPROPERTY (BlueprintReadOnly, ReplicatedUsing = OnRep_MaxMana, Category = "Vital Attributes") + FGameplayAttributeData MaxMana; + + UFUNCTION () + void OnRep_Health(const FGameplayAttributeData& OldHealth) const; + + UFUNCTION () + void OnRep_MaxHealth(const FGameplayAttributeData& OldMaxHealth) const; + + UFUNCTION () + void OnRep_Mana(const FGameplayAttributeData& OldMana) const; + + UFUNCTION () + void OnRep_MaxMana(const FGameplayAttributeData& OldMaxMana) const; };