worked on attributes

This commit is contained in:
Nyx
2025-11-15 01:35:35 -07:00
parent b7d8468984
commit e7205dcb1d
9 changed files with 205 additions and 12 deletions

View File

@@ -151,10 +151,6 @@
"Name": "NetworkPrediction", "Name": "NetworkPrediction",
"Enabled": true "Enabled": true
}, },
{
"Name": "MassEntity",
"Enabled": true
},
{ {
"Name": "GameplayInteractions", "Name": "GameplayInteractions",
"Enabled": true "Enabled": true
@@ -330,10 +326,6 @@
"Name": "AnimatorKit", "Name": "AnimatorKit",
"Enabled": true "Enabled": true
}, },
{
"Name": "GeneSplicer",
"Enabled": true
},
{ {
"Name": "CurveExpression", "Name": "CurveExpression",
"Enabled": true "Enabled": true

View File

@@ -3,4 +3,91 @@
#include "Attributes/ElistriaAttributesSet.h" #include "Attributes/ElistriaAttributesSet.h"
UElistriaAttributesSet::UElistriaAttributesSet()
{
InitArchery(1);
InitAthletics(1);
InitDeceit(1);
InitDefensibility(1);
InitDiscernment(1);
InitLightWeaponry(1);
InitHeavyWeaponry(1);
InitPerception(1);
InitStealth(1);
InitSurvival(1);
InitAttributePoints(0);
}
void UElistriaAttributesSet::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
DOREPLIFETIME_CONDITION_NOTIFY(UElistriaAttributesSet, Archery, COND_None, REPNOTIFY_Always);
DOREPLIFETIME_CONDITION_NOTIFY(UElistriaAttributesSet, Athletics, COND_None, REPNOTIFY_Always);
DOREPLIFETIME_CONDITION_NOTIFY(UElistriaAttributesSet, Deceit, COND_None, REPNOTIFY_Always);
DOREPLIFETIME_CONDITION_NOTIFY(UElistriaAttributesSet, Defensibility, COND_None, REPNOTIFY_Always);
DOREPLIFETIME_CONDITION_NOTIFY(UElistriaAttributesSet, Discernment, COND_None, REPNOTIFY_Always);
DOREPLIFETIME_CONDITION_NOTIFY(UElistriaAttributesSet, LightWeaponry, COND_None, REPNOTIFY_Always);
DOREPLIFETIME_CONDITION_NOTIFY(UElistriaAttributesSet, HeavyWeaponry, COND_None, REPNOTIFY_Always);
DOREPLIFETIME_CONDITION_NOTIFY(UElistriaAttributesSet, Perception, COND_None, REPNOTIFY_Always);
DOREPLIFETIME_CONDITION_NOTIFY(UElistriaAttributesSet, Stealth, COND_None, REPNOTIFY_Always);
DOREPLIFETIME_CONDITION_NOTIFY(UElistriaAttributesSet, Survival, COND_None, REPNOTIFY_Always);
DOREPLIFETIME_CONDITION_NOTIFY(UElistriaAttributesSet, AttributePoints, COND_None, REPNOTIFY_Always);
}
void UElistriaAttributesSet::PostGameplayEffectExecute(const FGameplayEffectModCallbackData& Data)
{
Super::PostGameplayEffectExecute(Data);
}
void UElistriaAttributesSet::OnRep_Archery(const FGameplayAttributeData& OldValue)
{
GAMEPLAYATTRIBUTE_REPNOTIFY(UElistriaAttributesSet, Archery, OldValue);
}
void UElistriaAttributesSet::OnRep_Athletics(const FGameplayAttributeData& OldValue)
{
GAMEPLAYATTRIBUTE_REPNOTIFY(UElistriaAttributesSet, Athletics, OldValue);
}
void UElistriaAttributesSet::OnRep_Deceit(const FGameplayAttributeData& OldValue)
{
GAMEPLAYATTRIBUTE_REPNOTIFY(UElistriaAttributesSet, Deceit, OldValue);
}
void UElistriaAttributesSet::OnRep_Defensibility(const FGameplayAttributeData& OldValue)
{
GAMEPLAYATTRIBUTE_REPNOTIFY(UElistriaAttributesSet, Defensibility, OldValue);
}
void UElistriaAttributesSet::OnRep_Discernment(const FGameplayAttributeData& OldValue)
{
GAMEPLAYATTRIBUTE_REPNOTIFY(UElistriaAttributesSet, Discernment, OldValue);
}
void UElistriaAttributesSet::OnRep_LightWeaponry(const FGameplayAttributeData& OldValue)
{
GAMEPLAYATTRIBUTE_REPNOTIFY(UElistriaAttributesSet, LightWeaponry, OldValue);
}
void UElistriaAttributesSet::OnRep_HeavyWeaponry(const FGameplayAttributeData& OldValue)
{
GAMEPLAYATTRIBUTE_REPNOTIFY(UElistriaAttributesSet, HeavyWeaponry, OldValue);
}
void UElistriaAttributesSet::OnRep_Perception(const FGameplayAttributeData& OldValue)
{
GAMEPLAYATTRIBUTE_REPNOTIFY(UElistriaAttributesSet, Perception, OldValue);
}
void UElistriaAttributesSet::OnRep_Stealth(const FGameplayAttributeData& OldValue)
{
GAMEPLAYATTRIBUTE_REPNOTIFY(UElistriaAttributesSet, Stealth, OldValue);
}
void UElistriaAttributesSet::OnRep_Survival(const FGameplayAttributeData& OldValue)
{
GAMEPLAYATTRIBUTE_REPNOTIFY(UElistriaAttributesSet, Survival, OldValue);
}
void UElistriaAttributesSet::OnRep_AttributePoints(const FGameplayAttributeData& OldValue)
{
GAMEPLAYATTRIBUTE_REPNOTIFY(UElistriaAttributesSet, AttributePoints, OldValue);
}
void UElistriaAttributesSet::OnRep_Thievery(const FGameplayAttributeData& OldValue)
{
GAMEPLAYATTRIBUTE_REPNOTIFY(UElistriaAttributesSet, Thievery, OldValue);
}
void UElistriaAttributesSet::OnRep_Will(const FGameplayAttributeData& OldValue)
{
GAMEPLAYATTRIBUTE_REPNOTIFY(UElistriaAttributesSet, Will, OldValue);
}

View File

@@ -11,6 +11,7 @@ AMagickPlayerState::AMagickPlayerState()
HealthSet = CreateDefaultSubobject<UHealthAttributeSet>(TEXT("HealthSet")); HealthSet = CreateDefaultSubobject<UHealthAttributeSet>(TEXT("HealthSet"));
StaminaSet = CreateDefaultSubobject<UStaminaAttributeSet>(TEXT("StaminaSet")); StaminaSet = CreateDefaultSubobject<UStaminaAttributeSet>(TEXT("StaminaSet"));
LevelSet = CreateDefaultSubobject<ULevelAttributeSet>(TEXT("XPSet")); LevelSet = CreateDefaultSubobject<ULevelAttributeSet>(TEXT("XPSet"));
} }
UElistriaAbilitySystemComponent* AMagickPlayerState::GetAbilitySystemComponent() const UElistriaAbilitySystemComponent* AMagickPlayerState::GetAbilitySystemComponent() const

View File

@@ -3,7 +3,9 @@
#pragma once #pragma once
#include "CoreMinimal.h" #include "CoreMinimal.h"
#include "ElistriaAbilitySystemComponent.h"
#include "ElistriaAttributeSetBase.h" #include "ElistriaAttributeSetBase.h"
#include "Net/UnrealNetwork.h"
#include "ElistriaAttributesSet.generated.h" #include "ElistriaAttributesSet.generated.h"
/** /**
@@ -13,5 +15,115 @@ UCLASS()
class ELISTRIA_CALLING_API UElistriaAttributesSet : public UElistriaAttributeSetBase class ELISTRIA_CALLING_API UElistriaAttributesSet : public UElistriaAttributeSetBase
{ {
GENERATED_BODY() GENERATED_BODY()
public:
UElistriaAttributesSet();
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
virtual void PostGameplayEffectExecute(const FGameplayEffectModCallbackData& Data) override;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing=OnRep_Archery)
FGameplayAttributeData Archery;
ATTRIBUTE_ACCESSORS(UElistriaAttributesSet, Archery)
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing=OnRep_Athletics)
FGameplayAttributeData Athletics;
ATTRIBUTE_ACCESSORS(UElistriaAttributesSet, Athletics)
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing=OnRep_Deceit)
FGameplayAttributeData Deceit;
ATTRIBUTE_ACCESSORS(UElistriaAttributesSet, Deceit)
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing = OnRep_Defensibility)
FGameplayAttributeData Defensibility;
ATTRIBUTE_ACCESSORS(UElistriaAttributesSet, Defensibility)
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing=OnRep_Discernment)
FGameplayAttributeData Discernment;
ATTRIBUTE_ACCESSORS(UElistriaAttributesSet, Discernment)
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing=OnRep_LightWeaponry)
FGameplayAttributeData LightWeaponry;
ATTRIBUTE_ACCESSORS(UElistriaAttributesSet, LightWeaponry)
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing = OnRep_HeavyWeaponry)
FGameplayAttributeData HeavyWeaponry;
ATTRIBUTE_ACCESSORS(UElistriaAttributesSet, HeavyWeaponry)
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing=OnRep_Perception)
FGameplayAttributeData Perception;
ATTRIBUTE_ACCESSORS(UElistriaAttributesSet, Perception)
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing=OnRep_Stealth)
FGameplayAttributeData Stealth;
ATTRIBUTE_ACCESSORS(UElistriaAttributesSet, Stealth)
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing=OnRep_Survival)
FGameplayAttributeData Survival;
ATTRIBUTE_ACCESSORS(UElistriaAttributesSet, Survival)
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing=OnRep_Thievery)
FGameplayAttributeData Thievery;
ATTRIBUTE_ACCESSORS(UElistriaAttributesSet, Thievery)
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing=OnRep_Will)
FGameplayAttributeData Will;
ATTRIBUTE_ACCESSORS(UElistriaAttributesSet, Will)
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, ReplicatedUsing=OnRep_AttributePoints)
FGameplayAttributeData AttributePoints;
ATTRIBUTE_ACCESSORS(UElistriaAttributesSet, AttributePoints)
UFUNCTION()
void OnRep_Archery(const FGameplayAttributeData& OldValue);
UFUNCTION()
void OnRep_Athletics(const FGameplayAttributeData& OldValue);
UFUNCTION()
void OnRep_Deceit(const FGameplayAttributeData& OldValue);
UFUNCTION()
void OnRep_Defensibility(const FGameplayAttributeData& OldValue);
UFUNCTION()
void OnRep_Discernment(const FGameplayAttributeData& OldValue);
UFUNCTION()
void OnRep_LightWeaponry(const FGameplayAttributeData& OldValue);
UFUNCTION()
void OnRep_HeavyWeaponry(const FGameplayAttributeData& OldValue);
UFUNCTION()
void OnRep_Perception(const FGameplayAttributeData& OldValue);
UFUNCTION()
void OnRep_Stealth(const FGameplayAttributeData& OldValue);
UFUNCTION()
void OnRep_Survival(const FGameplayAttributeData& OldValue);
UFUNCTION()
void OnRep_Thievery(const FGameplayAttributeData& OldValue);
UFUNCTION()
void OnRep_Will(const FGameplayAttributeData& OldValue);
UFUNCTION()
void OnRep_AttributePoints(const FGameplayAttributeData& OldValue);
UPROPERTY(BlueprintAssignable)
FAttributeChangedEvent OnArcheryChanged;
UPROPERTY(BlueprintAssignable)
FAttributeChangedEvent OnAthleticsChanged;
UPROPERTY(BlueprintAssignable)
FAttributeChangedEvent OnDeceitChanged;
UPROPERTY(BlueprintAssignable)
FAttributeChangedEvent OnDefensibilityChanged;
UPROPERTY(BlueprintAssignable)
FAttributeChangedEvent OnDiscernmentChanged;
UPROPERTY(BlueprintAssignable)
FAttributeChangedEvent OnLightWeaponryChanged;
UPROPERTY(BlueprintAssignable)
FAttributeChangedEvent OnHeavyWeaponryChanged;
UPROPERTY(BlueprintAssignable)
FAttributeChangedEvent OnPerceptionChanged;
UPROPERTY(BlueprintAssignable)
FAttributeChangedEvent OnStealthChanged;
UPROPERTY(BlueprintAssignable)
FAttributeChangedEvent OnSurvivalChanged;
UPROPERTY(BlueprintAssignable)
FAttributeChangedEvent OnThieveryChanged;
UPROPERTY(BlueprintAssignable)
FAttributeChangedEvent OnWillChanged;
UPROPERTY(BlueprintAssignable)
FAttributeChangedEvent OnAttributePointsChanged;
}; };

View File

@@ -3,7 +3,7 @@
#pragma once #pragma once
#include "CoreMinimal.h" #include "CoreMinimal.h"
#include "AbilitySystemComponent.h" #include "ElistriaAbilitySystemComponent.h"
#include "AttributeSet.h" #include "AttributeSet.h"
#include "ElistriaAttributeSetBase.h" #include "ElistriaAttributeSetBase.h"
#include "Net/UnrealNetwork.h" #include "Net/UnrealNetwork.h"

View File

@@ -4,7 +4,7 @@
#include "CoreMinimal.h" #include "CoreMinimal.h"
#include "ElistriaAttributeSetBase.h" #include "ElistriaAttributeSetBase.h"
#include "AbilitySystemComponent.h" #include "ElistriaAbilitySystemComponent.h"
#include "Net/UnrealNetwork.h" #include "Net/UnrealNetwork.h"
#include "GameplayEffectExtension.h" #include "GameplayEffectExtension.h"
#include "ManaAttributeSet.h" #include "ManaAttributeSet.h"

View File

@@ -3,7 +3,7 @@
#pragma once #pragma once
#include "CoreMinimal.h" #include "CoreMinimal.h"
#include "AbilitySystemComponent.h" #include "ElistriaAbilitySystemComponent.h"
#include "ElistriaAttributeSetBase.h" #include "ElistriaAttributeSetBase.h"
#include "Net/UnrealNetwork.h" #include "Net/UnrealNetwork.h"
#include "GameplayEffectExtension.h" #include "GameplayEffectExtension.h"

View File

@@ -3,7 +3,7 @@
#pragma once #pragma once
#include "CoreMinimal.h" #include "CoreMinimal.h"
#include "AttributeSet.h" #include "ElistriaAbilitySystemComponent.h"
#include "ElistriaAttributeSetBase.h" #include "ElistriaAttributeSetBase.h"
#include "HealthAttributeSet.h" #include "HealthAttributeSet.h"
#include "StaminaAttributeSet.generated.h" #include "StaminaAttributeSet.generated.h"

View File

@@ -3,6 +3,7 @@
#pragma once #pragma once
#include "CoreMinimal.h" #include "CoreMinimal.h"
#include "ElistriaAbilitySystemComponent.h"
#include "AttributeSet.h" #include "AttributeSet.h"
#include "ElistriaAttributeSetBase.generated.h" #include "ElistriaAttributeSetBase.generated.h"