diff --git a/Elistria_Calling/Elistria_Calling.uproject b/Elistria_Calling/Elistria_Calling.uproject index 71793b1..4ff9a19 100644 --- a/Elistria_Calling/Elistria_Calling.uproject +++ b/Elistria_Calling/Elistria_Calling.uproject @@ -151,10 +151,6 @@ "Name": "NetworkPrediction", "Enabled": true }, - { - "Name": "MassEntity", - "Enabled": true - }, { "Name": "GameplayInteractions", "Enabled": true @@ -330,10 +326,6 @@ "Name": "AnimatorKit", "Enabled": true }, - { - "Name": "GeneSplicer", - "Enabled": true - }, { "Name": "CurveExpression", "Enabled": true diff --git a/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/ElistriaAttributesSet.cpp b/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/ElistriaAttributesSet.cpp index defe99c..cd862b8 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/ElistriaAttributesSet.cpp +++ b/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/ElistriaAttributesSet.cpp @@ -3,4 +3,91 @@ #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& 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); +} diff --git a/Elistria_Calling/Source/Elistria_Calling/Private/Player/MagickPlayerState.cpp b/Elistria_Calling/Source/Elistria_Calling/Private/Player/MagickPlayerState.cpp index 6078dbc..176ce91 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Private/Player/MagickPlayerState.cpp +++ b/Elistria_Calling/Source/Elistria_Calling/Private/Player/MagickPlayerState.cpp @@ -11,6 +11,7 @@ AMagickPlayerState::AMagickPlayerState() HealthSet = CreateDefaultSubobject(TEXT("HealthSet")); StaminaSet = CreateDefaultSubobject(TEXT("StaminaSet")); LevelSet = CreateDefaultSubobject(TEXT("XPSet")); + } UElistriaAbilitySystemComponent* AMagickPlayerState::GetAbilitySystemComponent() const diff --git a/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/ElistriaAttributesSet.h b/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/ElistriaAttributesSet.h index e32667e..057d79a 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/ElistriaAttributesSet.h +++ b/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/ElistriaAttributesSet.h @@ -3,7 +3,9 @@ #pragma once #include "CoreMinimal.h" +#include "ElistriaAbilitySystemComponent.h" #include "ElistriaAttributeSetBase.h" +#include "Net/UnrealNetwork.h" #include "ElistriaAttributesSet.generated.h" /** @@ -13,5 +15,115 @@ UCLASS() class ELISTRIA_CALLING_API UElistriaAttributesSet : public UElistriaAttributeSetBase { GENERATED_BODY() +public: + UElistriaAttributesSet(); + virtual void GetLifetimeReplicatedProps(TArray& 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; }; diff --git a/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/HealthAttributeSet.h b/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/HealthAttributeSet.h index d232e1b..83b5283 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/HealthAttributeSet.h +++ b/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/HealthAttributeSet.h @@ -3,7 +3,7 @@ #pragma once #include "CoreMinimal.h" -#include "AbilitySystemComponent.h" +#include "ElistriaAbilitySystemComponent.h" #include "AttributeSet.h" #include "ElistriaAttributeSetBase.h" #include "Net/UnrealNetwork.h" diff --git a/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/LevelAttributeSet.h b/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/LevelAttributeSet.h index af6f0b1..6e61274 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/LevelAttributeSet.h +++ b/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/LevelAttributeSet.h @@ -4,7 +4,7 @@ #include "CoreMinimal.h" #include "ElistriaAttributeSetBase.h" -#include "AbilitySystemComponent.h" +#include "ElistriaAbilitySystemComponent.h" #include "Net/UnrealNetwork.h" #include "GameplayEffectExtension.h" #include "ManaAttributeSet.h" diff --git a/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/ManaAttributeSet.h b/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/ManaAttributeSet.h index 9b9714b..7d40997 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/ManaAttributeSet.h +++ b/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/ManaAttributeSet.h @@ -3,7 +3,7 @@ #pragma once #include "CoreMinimal.h" -#include "AbilitySystemComponent.h" +#include "ElistriaAbilitySystemComponent.h" #include "ElistriaAttributeSetBase.h" #include "Net/UnrealNetwork.h" #include "GameplayEffectExtension.h" diff --git a/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/StaminaAttributeSet.h b/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/StaminaAttributeSet.h index ba3828a..0d18524 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/StaminaAttributeSet.h +++ b/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/StaminaAttributeSet.h @@ -3,7 +3,7 @@ #pragma once #include "CoreMinimal.h" -#include "AttributeSet.h" +#include "ElistriaAbilitySystemComponent.h" #include "ElistriaAttributeSetBase.h" #include "HealthAttributeSet.h" #include "StaminaAttributeSet.generated.h" diff --git a/Elistria_Calling/Source/Elistria_Calling/Public/ElistriaAttributeSetBase.h b/Elistria_Calling/Source/Elistria_Calling/Public/ElistriaAttributeSetBase.h index b351967..9e3396a 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Public/ElistriaAttributeSetBase.h +++ b/Elistria_Calling/Source/Elistria_Calling/Public/ElistriaAttributeSetBase.h @@ -3,6 +3,7 @@ #pragma once #include "CoreMinimal.h" +#include "ElistriaAbilitySystemComponent.h" #include "AttributeSet.h" #include "ElistriaAttributeSetBase.generated.h"