diff --git a/Elistria_Calling/.vsconfig b/Elistria_Calling/.vsconfig index 7f5f4b3..3b919ea 100644 --- a/Elistria_Calling/.vsconfig +++ b/Elistria_Calling/.vsconfig @@ -1,10 +1,14 @@ { "version": "1.0", "components": [ + "Component.Unreal.Debugger", + "Component.Unreal.Ide", "Microsoft.Net.Component.4.6.2.TargetingPack", + "Microsoft.VisualStudio.Component.VC.14.38.17.8.ATL", "Microsoft.VisualStudio.Component.VC.14.38.17.8.x86.x64", + "Microsoft.VisualStudio.Component.VC.Llvm.Clang", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", - "Microsoft.VisualStudio.Component.Windows10SDK.22621", + "Microsoft.VisualStudio.Component.Windows11SDK.22621", "Microsoft.VisualStudio.Workload.CoreEditor", "Microsoft.VisualStudio.Workload.ManagedDesktop", "Microsoft.VisualStudio.Workload.NativeDesktop", diff --git a/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BPC_PlayerStats.uasset b/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BPC_PlayerStats.uasset index 1a133bb..39386f2 100644 --- a/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BPC_PlayerStats.uasset +++ b/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BPC_PlayerStats.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:87e7bcc1b80589f072e55d60e7547963d775b682da0848dac1cd8936ad5f2cb3 -size 661584 +oid sha256:c336f316b68227e1436bb2a9cdfee8b6a8bb38d1a919a0d298bfe31218c56133 +size 653503 diff --git a/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_PlayerController.uasset b/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_PlayerController.uasset index f84b3e1..dea1c4e 100644 --- a/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_PlayerController.uasset +++ b/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_PlayerController.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4b657eaa907256967eb6a9c092a2aaddfa2fc4a53e48e018fadf0e0c76d64ab6 -size 707950 +oid sha256:c9cc6abd5a196b4bcfe5082adc9a5bde867f1dbe91649927fd113aea889d7bf9 +size 722516 diff --git a/Elistria_Calling/Content/MAIN_CONTENT/GameplayAbilitySystem/GameplayEffects/GE_XP20Gain.uasset b/Elistria_Calling/Content/MAIN_CONTENT/GameplayAbilitySystem/GameplayEffects/GE_XP20Gain.uasset index ec53f7b..259fbf5 100644 --- a/Elistria_Calling/Content/MAIN_CONTENT/GameplayAbilitySystem/GameplayEffects/GE_XP20Gain.uasset +++ b/Elistria_Calling/Content/MAIN_CONTENT/GameplayAbilitySystem/GameplayEffects/GE_XP20Gain.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0f204ed985bfc0ee3c5f44a2e5771d7ebdfe0b3050eca6504c697a4e5b4a1463 -size 13092 +oid sha256:f63b7c2355724b8d6eebe1a128ed90ad79428d110f8b39769c2d140f8f1e2410 +size 13476 diff --git a/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/Spells/Gameplay_Abilities/BLOOD/GA_BloodCage.uasset b/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/Spells/Gameplay_Abilities/BLOOD/GA_BloodCage.uasset index 356b101..bbe931d 100644 --- a/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/Spells/Gameplay_Abilities/BLOOD/GA_BloodCage.uasset +++ b/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/Spells/Gameplay_Abilities/BLOOD/GA_BloodCage.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:99df4e64884711745e9656d6efa9b59427d86e85eac91bb2d475a4443ff0f432 -size 84269 +oid sha256:cec28847ab60aaaa9aa2638f41337077ce29b87cfe5397399af624d7c7cb66a5 +size 86056 diff --git a/Elistria_Calling/Content/MAIN_CONTENT/UI/Materials/M_RadialProgress.uasset b/Elistria_Calling/Content/MAIN_CONTENT/UI/Materials/M_RadialProgress.uasset index a6068c5..014cfbf 100644 --- a/Elistria_Calling/Content/MAIN_CONTENT/UI/Materials/M_RadialProgress.uasset +++ b/Elistria_Calling/Content/MAIN_CONTENT/UI/Materials/M_RadialProgress.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fdac82707eef815ea933250125d73a551a77a07afbf21bd2aa6a7885b3d26322 -size 20590 +oid sha256:1ab62b7c0e16c367153a0ee2bf7ec953904680eb8e8d30bdad6be76db2bdfe20 +size 21850 diff --git a/Elistria_Calling/Content/MAIN_CONTENT/UI/Materials/M_RadialProgress_Inst.uasset b/Elistria_Calling/Content/MAIN_CONTENT/UI/Materials/M_RadialProgress_Inst.uasset new file mode 100644 index 0000000..2c5746c --- /dev/null +++ b/Elistria_Calling/Content/MAIN_CONTENT/UI/Materials/M_RadialProgress_Inst.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90a48c48a59ccd89ee81752437cde5beea9f04eceed603a4cadca311d7f36e2d +size 6779 diff --git a/Elistria_Calling/Content/MAIN_CONTENT/UI/WB_MainHUD.uasset b/Elistria_Calling/Content/MAIN_CONTENT/UI/WB_MainHUD.uasset index a39dea9..8996614 100644 --- a/Elistria_Calling/Content/MAIN_CONTENT/UI/WB_MainHUD.uasset +++ b/Elistria_Calling/Content/MAIN_CONTENT/UI/WB_MainHUD.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a9193e9515e7be2abd80e87c1e5ae26b34acc4c3fa08a200e2183e4c74761a26 -size 134213 +oid sha256:f2c5f3265a3f3e57ec0b48fee385a8e4e384643ff71e660bd2104a1c0a4b925e +size 378106 diff --git a/Elistria_Calling/Content/StarterContent/Architecture/Floor_400x400.uasset b/Elistria_Calling/Content/StarterContent/Architecture/Floor_400x400.uasset index a9c59a6..5dd7b41 100644 --- a/Elistria_Calling/Content/StarterContent/Architecture/Floor_400x400.uasset +++ b/Elistria_Calling/Content/StarterContent/Architecture/Floor_400x400.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7e4d29566853dff28656c57968876d7f867e251ea5e84244f1f54baf8204e081 -size 15406 +oid sha256:4c6ebbf076d324135c3e433d826fcfc2da522de6b11f085215504b78d7ef29c4 +size 15316 diff --git a/Elistria_Calling/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset b/Elistria_Calling/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset index a921d14..03f8c1b 100644 --- a/Elistria_Calling/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset +++ b/Elistria_Calling/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:da40da021e32f6cc63b30a447fc40b587371ad7f5d8967eaf606b9621528bb7d -size 1511514 +oid sha256:d349596c41196a344495235d570b05b68be237375acf511170b87a807d87fb7f +size 1428731 diff --git a/Elistria_Calling/Elistria_Calling.uproject b/Elistria_Calling/Elistria_Calling.uproject index e37bc22..7a13f78 100644 --- a/Elistria_Calling/Elistria_Calling.uproject +++ b/Elistria_Calling/Elistria_Calling.uproject @@ -1,6 +1,6 @@ { "FileVersion": 3, - "EngineAssociation": "5.4", + "EngineAssociation": "5.6", "Category": "", "Description": "", "Modules": [ diff --git a/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/HealthAttributeSet.cpp b/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/HealthAttributeSet.cpp index 969b2f0..da14e18 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/HealthAttributeSet.cpp +++ b/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/HealthAttributeSet.cpp @@ -66,3 +66,23 @@ void UHealthAttributeSet::PostGameplayEffectExecute(const FGameplayEffectModCall } } +void UHealthAttributeSet::PostAttributeChange(const FGameplayAttribute& Attribute, float OldValue, float NewValue) +{ + Super::PostAttributeChange(Attribute, OldValue, NewValue); + if (Attribute == GetHealthAttribute()) + { + const float ClampedHealth = FMath::Clamp(NewValue, 0.0f, GetMaxHealth()); + if (ClampedHealth != NewValue) + { + SetHealth(ClampedHealth); + } + } + if (Attribute == GetMaxHealthAttribute()) + { + const float ClampedMaxHealth = FMath::Max(1.0f, NewValue); + if (ClampedMaxHealth != NewValue) + { + SetMaxHealth(ClampedMaxHealth); + } + } +} \ No newline at end of file diff --git a/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/LevelAttributeSet.cpp b/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/LevelAttributeSet.cpp index f7e8873..5713abd 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/LevelAttributeSet.cpp +++ b/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/LevelAttributeSet.cpp @@ -48,8 +48,12 @@ void ULevelAttributeSet::ConsumeXPGain() const float Gain = GetXPGain(); if (Gain > 0.0f) { - SetXP(GetXP() + Gain); + float OldXP = GetXP(); + float NewXP =OldXP + Gain; + SetXP(NewXP); SetXPGain(0.0f); + OnXPChanged.Broadcast(this, GetXP(), Gain); + OnLevelChanged.Broadcast(this, GetXP()-Gain, Level.GetCurrentValue()); } } @@ -108,5 +112,6 @@ void ULevelAttributeSet::PostGameplayEffectExecute(const FGameplayEffectModCallb SetLevel(static_cast(Lvl)); SetXP(FMath::Clamp(GetXP(),0.0f,ComputeXPForLevel(Lvl))); SetXPToNextLevel(ComputeXPForLevel(Lvl)); + OnXPToNextLevelChanged.Broadcast(this, XPToNextLevel.GetCurrentValue(), XPToNextLevel.GetCurrentValue()); } } diff --git a/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/ManaAttributeSet.cpp b/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/ManaAttributeSet.cpp index 993ec7a..0dee79f 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/ManaAttributeSet.cpp +++ b/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/ManaAttributeSet.cpp @@ -38,6 +38,7 @@ void UManaAttributeSet::PostGameplayEffectExecute(const FGameplayEffectModCallba if (Data.EvaluatedData.Attribute == GetManaAttribute()) { SetMana(FMath::Clamp(GetMana(), 0.0f, GetMaxMana())); + ; } if (Data.EvaluatedData.Attribute == GetCostAttribute()) { @@ -48,7 +49,9 @@ void UManaAttributeSet::PostGameplayEffectExecute(const FGameplayEffectModCallba if (OldMana!=NewMana) { SetMana(NewMana); + OnManaChanged.Broadcast(this, OldMana, NewMana); } + OnManaChanged.Broadcast(this, OldMana, NewMana); SetCost(0.0f); } if (Data.EvaluatedData.Attribute==GetRestoreAttribute()) @@ -60,7 +63,9 @@ void UManaAttributeSet::PostGameplayEffectExecute(const FGameplayEffectModCallba if (OldMana!=NewMana) { SetMana(NewMana); + OnManaChanged.Broadcast(this, OldMana, NewMana); } + OnManaChanged.Broadcast(this, OldMana, NewMana); SetRestore(0.0f); } } diff --git a/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/StaminaAttributeSet.cpp b/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/StaminaAttributeSet.cpp index f3b92bc..2f75a73 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/StaminaAttributeSet.cpp +++ b/Elistria_Calling/Source/Elistria_Calling/Private/Attributes/StaminaAttributeSet.cpp @@ -45,6 +45,7 @@ void UStaminaAttributeSet::PostGameplayEffectExecute(const FGameplayEffectModCal if (OldStamina!=NewStamina) { SetStamina(NewStamina); + OnMaxStaminaChanged.Broadcast(this, OldStamina, NewStamina); } SetDrain(0.0f); } @@ -57,6 +58,7 @@ void UStaminaAttributeSet::PostGameplayEffectExecute(const FGameplayEffectModCal if (OldStamina!=NewStamina) { SetStamina(NewStamina); + OnMaxStaminaChanged.Broadcast(this, OldStamina, NewStamina); } } } \ No newline at end of file diff --git a/Elistria_Calling/Source/Elistria_Calling/Private/Player/MagickPlayerState.cpp b/Elistria_Calling/Source/Elistria_Calling/Private/Player/MagickPlayerState.cpp index 58e8716..6078dbc 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Private/Player/MagickPlayerState.cpp +++ b/Elistria_Calling/Source/Elistria_Calling/Private/Player/MagickPlayerState.cpp @@ -33,6 +33,7 @@ void AMagickPlayerState::GetLifetimeReplicatedProps(TArray& O DOREPLIFETIME_CONDITION_NOTIFY(AMagickPlayerState, ManaSet, COND_None, REPNOTIFY_Always); DOREPLIFETIME_CONDITION_NOTIFY(AMagickPlayerState, HealthSet, COND_None, REPNOTIFY_Always); DOREPLIFETIME_CONDITION_NOTIFY(AMagickPlayerState, StaminaSet, COND_None, REPNOTIFY_Always); + DOREPLIFETIME_CONDITION_NOTIFY(AMagickPlayerState, LevelSet, COND_None, REPNOTIFY_Always); } void AMagickPlayerState::SetupAbilityActorInfo() @@ -70,5 +71,9 @@ void AMagickPlayerState::SetupAbilityActorInfo() ElistriaAbilitySystemComponent->AddAttributeSetSubobject(LevelSet.Get()); } } - +} +void AMagickPlayerState::OnRep_ElistriaAbilitySystemComponent() +{ + // Whenever the ability system component is replicated, we need to refresh the actor info + return; } diff --git a/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/HealthAttributeSet.h b/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/HealthAttributeSet.h index 1340614..d232e1b 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/HealthAttributeSet.h +++ b/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/HealthAttributeSet.h @@ -24,6 +24,10 @@ public: virtual void PostGameplayEffectExecute(const FGameplayEffectModCallbackData& Data) override; + + + virtual void PostAttributeChange(const FGameplayAttribute& Attribute, float OldValue, float NewValue) override; + virtual void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override; UPROPERTY(VisibleAnywhere,BlueprintReadOnly,ReplicatedUsing=OnRep_Health) diff --git a/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/StaminaAttributeSet.h b/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/StaminaAttributeSet.h index 956a511..ba3828a 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/StaminaAttributeSet.h +++ b/Elistria_Calling/Source/Elistria_Calling/Public/Attributes/StaminaAttributeSet.h @@ -11,7 +11,6 @@ /** * */ - UCLASS() class ELISTRIA_CALLING_API UStaminaAttributeSet : public UElistriaAttributeSetBase { diff --git a/Elistria_Calling/Source/Elistria_Calling/Public/Player/MagickPlayerState.h b/Elistria_Calling/Source/Elistria_Calling/Public/Player/MagickPlayerState.h index 33420d9..f8ade03 100644 --- a/Elistria_Calling/Source/Elistria_Calling/Public/Player/MagickPlayerState.h +++ b/Elistria_Calling/Source/Elistria_Calling/Public/Player/MagickPlayerState.h @@ -31,7 +31,7 @@ public: void SetupAbilityActorInfo(); protected: - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Abilities, Replicated) + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Abilities, ReplicatedUsing = OnRep_ElistriaAbilitySystemComponent) TObjectPtr ElistriaAbilitySystemComponent; UPROPERTY(Replicated) @@ -46,6 +46,8 @@ protected: UPROPERTY(Replicated) TObjectPtr LevelSet; + UFUNCTION() + void OnRep_ElistriaAbilitySystemComponent(); private: };