From dc2c5af68a027f4f975cfda0d606149058f23742 Mon Sep 17 00:00:00 2001 From: Nyx Date: Fri, 26 Sep 2025 17:50:32 -0600 Subject: [PATCH] magic update #2 --- Elistria_Calling/.vsconfig | 13 ++++ .../DefaultEditorPerProjectUserSettings.ini | 9 ++- Elistria_Calling/Config/DefaultEngine.ini | 3 + Elistria_Calling/Config/Tags/Spells.ini | 38 ++++++++++++ .../Blueprints/BPI_PlayerControlled.uasset | 4 +- .../BP_MagickPlayerController.uasset | 3 + .../Blueprints/BP_MagickPlayerState.uasset | 3 + .../Blueprints/BP_PlayerController.uasset | 4 +- .../Blueprints/BP_PlayerState.uasset | 3 - .../Crafting_System/UI/WB_CraftMenuUI.uasset | 4 +- .../Magick_System/DT_Spells.uasset | 2 +- .../Spells/GA_PhoenixFlame.uasset | 3 + .../Spells/GBP_PhoenixFlame.uasset | 4 +- .../Architecture/Floor_400x400.uasset | 2 +- .../Blueprints/BP_ThirdPersonCharacter.uasset | 4 +- .../Blueprints/BP_ThirdPersonGameMode.uasset | 4 +- .../Input/Actions/IA_UseAbility.uasset | 3 + .../ThirdPerson/Input/IMC_Default.uasset | 4 +- Elistria_Calling/Elistria_Calling.uproject | 33 +++++++++++ .../Source/Elistria_Calling.Target.cs | 15 +++++ .../Elistria_Calling.Build.cs | 23 ++++++++ .../Elistria_Calling/Elistria_Calling.cpp | 6 ++ .../Elistria_Calling/Elistria_Calling.h | 6 ++ .../ElistriaAbilitySystemComponent.cpp | 5 ++ .../Private/HealthAttributeSet.cpp | 5 ++ .../Private/MagickPlayerController.cpp | 17 ++++++ .../Private/MagickPlayerState.cpp | 59 +++++++++++++++++++ .../Private/ManaAttributeSet.cpp | 34 +++++++++++ .../Public/ElistriaAbilitySystemComponent.h | 17 ++++++ .../Public/HealthAttributeSet.h | 17 ++++++ .../Public/MagickPlayerController.h | 19 ++++++ .../Public/MagickPlayerState.h | 36 +++++++++++ .../Public/ManaAttributeSet.h | 52 ++++++++++++++++ .../Source/Elistria_CallingEditor.Target.cs | 15 +++++ 34 files changed, 449 insertions(+), 20 deletions(-) create mode 100644 Elistria_Calling/.vsconfig create mode 100644 Elistria_Calling/Config/Tags/Spells.ini create mode 100644 Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_MagickPlayerController.uasset create mode 100644 Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_MagickPlayerState.uasset delete mode 100644 Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_PlayerState.uasset create mode 100644 Elistria_Calling/Content/MAIN_CONTENT/Magick_System/Spells/GA_PhoenixFlame.uasset create mode 100644 Elistria_Calling/Content/ThirdPerson/Input/Actions/IA_UseAbility.uasset create mode 100644 Elistria_Calling/Source/Elistria_Calling.Target.cs create mode 100644 Elistria_Calling/Source/Elistria_Calling/Elistria_Calling.Build.cs create mode 100644 Elistria_Calling/Source/Elistria_Calling/Elistria_Calling.cpp create mode 100644 Elistria_Calling/Source/Elistria_Calling/Elistria_Calling.h create mode 100644 Elistria_Calling/Source/Elistria_Calling/Private/ElistriaAbilitySystemComponent.cpp create mode 100644 Elistria_Calling/Source/Elistria_Calling/Private/HealthAttributeSet.cpp create mode 100644 Elistria_Calling/Source/Elistria_Calling/Private/MagickPlayerController.cpp create mode 100644 Elistria_Calling/Source/Elistria_Calling/Private/MagickPlayerState.cpp create mode 100644 Elistria_Calling/Source/Elistria_Calling/Private/ManaAttributeSet.cpp create mode 100644 Elistria_Calling/Source/Elistria_Calling/Public/ElistriaAbilitySystemComponent.h create mode 100644 Elistria_Calling/Source/Elistria_Calling/Public/HealthAttributeSet.h create mode 100644 Elistria_Calling/Source/Elistria_Calling/Public/MagickPlayerController.h create mode 100644 Elistria_Calling/Source/Elistria_Calling/Public/MagickPlayerState.h create mode 100644 Elistria_Calling/Source/Elistria_Calling/Public/ManaAttributeSet.h create mode 100644 Elistria_Calling/Source/Elistria_CallingEditor.Target.cs diff --git a/Elistria_Calling/.vsconfig b/Elistria_Calling/.vsconfig new file mode 100644 index 0000000..7f5f4b3 --- /dev/null +++ b/Elistria_Calling/.vsconfig @@ -0,0 +1,13 @@ +{ + "version": "1.0", + "components": [ + "Microsoft.Net.Component.4.6.2.TargetingPack", + "Microsoft.VisualStudio.Component.VC.14.38.17.8.x86.x64", + "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", + "Microsoft.VisualStudio.Component.Windows10SDK.22621", + "Microsoft.VisualStudio.Workload.CoreEditor", + "Microsoft.VisualStudio.Workload.ManagedDesktop", + "Microsoft.VisualStudio.Workload.NativeDesktop", + "Microsoft.VisualStudio.Workload.NativeGame" + ] +} diff --git a/Elistria_Calling/Config/DefaultEditorPerProjectUserSettings.ini b/Elistria_Calling/Config/DefaultEditorPerProjectUserSettings.ini index d3d6cc0..4ad49ba 100644 --- a/Elistria_Calling/Config/DefaultEditorPerProjectUserSettings.ini +++ b/Elistria_Calling/Config/DefaultEditorPerProjectUserSettings.ini @@ -1,2 +1,9 @@ [ContentBrowser] -ContentBrowserTab1.SelectedPaths=/Game/ThirdPersonBP \ No newline at end of file +ContentBrowserTab1.SelectedPaths=/Game/ThirdPersonBP + +[/Script/GameplayDebugger.GameplayDebuggerUserSettings] +bEnableGameplayDebuggerInEditor=True +MaxViewDistance=25000.000000 +MaxViewAngle=45.000000 +FontSize=10 + diff --git a/Elistria_Calling/Config/DefaultEngine.ini b/Elistria_Calling/Config/DefaultEngine.ini index 99be106..701ddd9 100644 --- a/Elistria_Calling/Config/DefaultEngine.ini +++ b/Elistria_Calling/Config/DefaultEngine.ini @@ -164,3 +164,6 @@ ClientSettings=(DisplayName="",AvatarColor=(R=1.000000,G=1.000000,B=1.000000,A=1 SourceControlSettings=(ValidationMode=Soft) EndpointSettings=(bEnableLogging=False,PurgeProcessedMessageDelaySeconds=30,RemoteEndpointTimeoutSeconds=60) + +[CoreRedirects] ++ClassRedirects=(OldName="/Script/Elistria_Calling.MagickPlayerState",NewName="/Script/Elistria_Calling.MagickPlayerState") \ No newline at end of file diff --git a/Elistria_Calling/Config/Tags/Spells.ini b/Elistria_Calling/Config/Tags/Spells.ini new file mode 100644 index 0000000..7589249 --- /dev/null +++ b/Elistria_Calling/Config/Tags/Spells.ini @@ -0,0 +1,38 @@ +[/Script/GameplayTags.GameplayTagsList] +GameplayTagList=(Tag="Spell.Chaos.Air.BuffetingWinds",DevComment="") +GameplayTagList=(Tag="Spell.Chaos.Air.GaleThrust",DevComment="") +GameplayTagList=(Tag="Spell.Chaos.Air.Suffocate",DevComment="") +GameplayTagList=(Tag="Spell.Chaos.Lightning.FieldOfLightning",DevComment="") +GameplayTagList=(Tag="Spell.Chaos.Lightning.Squall",DevComment="") +GameplayTagList=(Tag="Spell.Chaos.Lightning.ThunderStrikes",DevComment="") +GameplayTagList=(Tag="Spell.Chaos.Water.CleansingWave",DevComment="") +GameplayTagList=(Tag="Spell.Chaos.Water.CurrentBash",DevComment="") +GameplayTagList=(Tag="Spell.Chaos.Water.Tsunami",DevComment="") +GameplayTagList=(Tag="Spell.Death.Darkness.Oblivion",DevComment="") +GameplayTagList=(Tag="Spell.Death.Darkness.StolenSight",DevComment="") +GameplayTagList=(Tag="Spell.Death.Darkness.TurnToShadow",DevComment="") +GameplayTagList=(Tag="Spell.Death.Ice.FallenFrost",DevComment="") +GameplayTagList=(Tag="Spell.Death.Ice.PillarsOfIce",DevComment="") +GameplayTagList=(Tag="Spell.Death.Ice.Winter",DevComment="") +GameplayTagList=(Tag="Spell.Death.Necromancy.Apocalypse",DevComment="") +GameplayTagList=(Tag="Spell.Death.Necromancy.RaiseTheDead",DevComment="") +GameplayTagList=(Tag="Spell.Death.Necromancy.VitalityDrain",DevComment="") +GameplayTagList=(Tag="Spell.Life.Blood.Annihilate",DevComment="") +GameplayTagList=(Tag="Spell.Life.Blood.BleedingWounds",DevComment="") +GameplayTagList=(Tag="Spell.Life.Blood.BloodCage",DevComment="") +GameplayTagList=(Tag="Spell.Life.Earth.Entomb",DevComment="") +GameplayTagList=(Tag="Spell.Life.Earth.SplitTheEarth",DevComment="") +GameplayTagList=(Tag="Spell.Life.Earth.StoneShield",DevComment="") +GameplayTagList=(Tag="Spell.Life.Healing.GiveLife",DevComment="") +GameplayTagList=(Tag="Spell.Life.Healing.RestoringTouch",DevComment="") +GameplayTagList=(Tag="Spell.Life.Healing.Sanctuary",DevComment="") +GameplayTagList=(Tag="Spell.Light.Fire.FireLights",DevComment="") +GameplayTagList=(Tag="Spell.Light.Fire.Meteor",DevComment="") +GameplayTagList=(Tag="Spell.Light.Fire.PheonixFire",DevComment="") +GameplayTagList=(Tag="Spell.Light.Solar.Radiance",DevComment="") +GameplayTagList=(Tag="Spell.Light.Solar.SearingRay",DevComment="") +GameplayTagList=(Tag="Spell.Light.Solar.ShieldOfTheSun",DevComment="") +GameplayTagList=(Tag="Spell.Light.Starlight.Constellation",DevComment="") +GameplayTagList=(Tag="Spell.Light.Starlight.SongOfFallingStars",DevComment="") +GameplayTagList=(Tag="Spell.Light.Starlight.StarGuide",DevComment="") + diff --git a/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BPI_PlayerControlled.uasset b/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BPI_PlayerControlled.uasset index 5cf5194..3da6238 100644 --- a/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BPI_PlayerControlled.uasset +++ b/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BPI_PlayerControlled.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2c25f45a6f638c297198aa17a7a3cfdcb8b94c071ad29b6f88eb005b4311e4fd -size 49543 +oid sha256:82a17e362d9ae552ccd85350d58dba4d49dde4fe843c5205ce62fcd7042c0754 +size 51458 diff --git a/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_MagickPlayerController.uasset b/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_MagickPlayerController.uasset new file mode 100644 index 0000000..8dd614b --- /dev/null +++ b/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_MagickPlayerController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64b8cb2d0256d3c6932480de5d06f2a5db803cb779fbd761955166227c217ecc +size 20676 diff --git a/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_MagickPlayerState.uasset b/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_MagickPlayerState.uasset new file mode 100644 index 0000000..3d21d72 --- /dev/null +++ b/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_MagickPlayerState.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81377c0fea41cf55adfa56c15334ed44fdfce9553cda02e22d17e66747780904 +size 40510 diff --git a/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_PlayerController.uasset b/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_PlayerController.uasset index 751d93f..3056b9e 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:5267d1283afc8c24d984d7aa7b4fc9ba9876fdf92a86b2af774e7aea53523cef -size 628427 +oid sha256:29d64571f6460819033c27ed73cb7ae0fc341533414a45bc7eca96719146263d +size 631354 diff --git a/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_PlayerState.uasset b/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_PlayerState.uasset deleted file mode 100644 index b61ce3d..0000000 --- a/Elistria_Calling/Content/MAIN_CONTENT/Blueprints/BP_PlayerState.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:307183ef9f7856224a958811282425954f15c24b756afaa000c6d228f39835c6 -size 26295 diff --git a/Elistria_Calling/Content/MAIN_CONTENT/Crafting_System/UI/WB_CraftMenuUI.uasset b/Elistria_Calling/Content/MAIN_CONTENT/Crafting_System/UI/WB_CraftMenuUI.uasset index 0f9f3a4..e6ee943 100644 --- a/Elistria_Calling/Content/MAIN_CONTENT/Crafting_System/UI/WB_CraftMenuUI.uasset +++ b/Elistria_Calling/Content/MAIN_CONTENT/Crafting_System/UI/WB_CraftMenuUI.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ef1198d12ae12a44ae330d19d6c681c07ac61c37d1d4e32ae5643cfd061f6540 -size 344882 +oid sha256:9b5c9bd9d2c553f59efea93210aa16b41d3ce0c29edd86751f8f25a228bccaf0 +size 338962 diff --git a/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/DT_Spells.uasset b/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/DT_Spells.uasset index ec63bbe..4e49b30 100644 --- a/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/DT_Spells.uasset +++ b/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/DT_Spells.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:818b35ef4da177168a4f086dcae74d2a890c674f2749a90e252d525ef0b1d8e5 +oid sha256:88c3286646c33346cf72c552553c41dadf5bd1284d83ecc8b38b1fd875c0dcf1 size 40880 diff --git a/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/Spells/GA_PhoenixFlame.uasset b/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/Spells/GA_PhoenixFlame.uasset new file mode 100644 index 0000000..59828c0 --- /dev/null +++ b/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/Spells/GA_PhoenixFlame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5249343c265ad7efaa6e7cb054dd89c25747e7eb106419ca4f9153619d15003b +size 54769 diff --git a/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/Spells/GBP_PhoenixFlame.uasset b/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/Spells/GBP_PhoenixFlame.uasset index 395d3b1..6bbef19 100644 --- a/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/Spells/GBP_PhoenixFlame.uasset +++ b/Elistria_Calling/Content/MAIN_CONTENT/Magick_System/Spells/GBP_PhoenixFlame.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fd55a1aca6c53f26e20287e4e9202d55be42709b151e74239c17eaf44216a4a1 -size 34669 +oid sha256:b9fbf1ee3289dc7711445f470ef96ef38ee070f70a4794129a5ef6846d026c7d +size 2797 diff --git a/Elistria_Calling/Content/StarterContent/Architecture/Floor_400x400.uasset b/Elistria_Calling/Content/StarterContent/Architecture/Floor_400x400.uasset index da99644..3f00340 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:ea2a6797840f1630482ad1e9bf7b0619da5beaff02c8b610389814633efc99d9 +oid sha256:c6d2d79168f442b1b8573130dc5d76681167a55a3ea1af46db55cf9d02228312 size 15406 diff --git a/Elistria_Calling/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset b/Elistria_Calling/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset index eb2b95b..d835c03 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:9c036e104dc65138ad0a395489484330c38ad21be9b7887303f936cf212bbaf7 -size 1436103 +oid sha256:14804ce910d3731bbc91645873e604e45005f987cd44007849e7fa0ae2e8711c +size 1463008 diff --git a/Elistria_Calling/Content/ThirdPerson/Blueprints/BP_ThirdPersonGameMode.uasset b/Elistria_Calling/Content/ThirdPerson/Blueprints/BP_ThirdPersonGameMode.uasset index 54880d0..600380a 100644 --- a/Elistria_Calling/Content/ThirdPerson/Blueprints/BP_ThirdPersonGameMode.uasset +++ b/Elistria_Calling/Content/ThirdPerson/Blueprints/BP_ThirdPersonGameMode.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8c1deaabeb77c4f376b5ffffb7ab04959dc338fb476cfd2b7fac1bfc3a5f2926 -size 16340 +oid sha256:2e09136c73a260a5fbc18eff76c18cf5b8ce6056f3cf5e8456b0d7036f3a3c20 +size 16586 diff --git a/Elistria_Calling/Content/ThirdPerson/Input/Actions/IA_UseAbility.uasset b/Elistria_Calling/Content/ThirdPerson/Input/Actions/IA_UseAbility.uasset new file mode 100644 index 0000000..43bf4c9 --- /dev/null +++ b/Elistria_Calling/Content/ThirdPerson/Input/Actions/IA_UseAbility.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a7e91764960d799d82dcabcb7f85595443504b5d9079f00889d17bd8b25f3dc +size 1418 diff --git a/Elistria_Calling/Content/ThirdPerson/Input/IMC_Default.uasset b/Elistria_Calling/Content/ThirdPerson/Input/IMC_Default.uasset index 56c6748..a592304 100644 --- a/Elistria_Calling/Content/ThirdPerson/Input/IMC_Default.uasset +++ b/Elistria_Calling/Content/ThirdPerson/Input/IMC_Default.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b5794727327d13effcf440efe752e7146f84bd499a9c2a2b213d4a256b14cc04 -size 21670 +oid sha256:102b39983335d985bb26c123ad8654d8a7cefc1888daabc52fd3b6660f97ab2f +size 22355 diff --git a/Elistria_Calling/Elistria_Calling.uproject b/Elistria_Calling/Elistria_Calling.uproject index b590f8f..d9417c2 100644 --- a/Elistria_Calling/Elistria_Calling.uproject +++ b/Elistria_Calling/Elistria_Calling.uproject @@ -3,6 +3,17 @@ "EngineAssociation": "5.4", "Category": "", "Description": "", + "Modules": [ + { + "Name": "Elistria_Calling", + "Type": "Runtime", + "LoadingPhase": "Default", + "AdditionalDependencies": [ + "GameplayAbilities", + "Engine" + ] + } + ], "Plugins": [ { "Name": "ModelingToolsEditorMode", @@ -289,6 +300,28 @@ { "Name": "PerforceSourceControl", "Enabled": false + }, + { + "Name": "Buoyancy", + "Enabled": true + }, + { + "Name": "Volumetrics", + "Enabled": true + }, + { + "Name": "VirtualHeightfieldMesh", + "Enabled": true + }, + { + "Name": "SteamSockets", + "Enabled": true } + ], + "TargetPlatforms": [ + "Linux", + "LinuxArm64", + "Windows", + "Mac" ] } \ No newline at end of file diff --git a/Elistria_Calling/Source/Elistria_Calling.Target.cs b/Elistria_Calling/Source/Elistria_Calling.Target.cs new file mode 100644 index 0000000..750c006 --- /dev/null +++ b/Elistria_Calling/Source/Elistria_Calling.Target.cs @@ -0,0 +1,15 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; +using System.Collections.Generic; + +public class Elistria_CallingTarget : TargetRules +{ + public Elistria_CallingTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Game; + DefaultBuildSettings = BuildSettingsVersion.V5; + + ExtraModuleNames.AddRange( new string[] { "Elistria_Calling" } ); + } +} diff --git a/Elistria_Calling/Source/Elistria_Calling/Elistria_Calling.Build.cs b/Elistria_Calling/Source/Elistria_Calling/Elistria_Calling.Build.cs new file mode 100644 index 0000000..cbd6e72 --- /dev/null +++ b/Elistria_Calling/Source/Elistria_Calling/Elistria_Calling.Build.cs @@ -0,0 +1,23 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; + +public class Elistria_Calling : ModuleRules +{ + public Elistria_Calling(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore","GameplayAbilities", "GameplayTags", "GameplayTasks" }); + + PrivateDependencyModuleNames.AddRange(new string[] { }); + + // Uncomment if you are using Slate UI + PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); + + // Uncomment if you are using online features + PrivateDependencyModuleNames.Add("OnlineSubsystem"); + + // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true + } +} diff --git a/Elistria_Calling/Source/Elistria_Calling/Elistria_Calling.cpp b/Elistria_Calling/Source/Elistria_Calling/Elistria_Calling.cpp new file mode 100644 index 0000000..4f8148b --- /dev/null +++ b/Elistria_Calling/Source/Elistria_Calling/Elistria_Calling.cpp @@ -0,0 +1,6 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "Elistria_Calling.h" +#include "Modules/ModuleManager.h" + +IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, Elistria_Calling, "Elistria_Calling" ); diff --git a/Elistria_Calling/Source/Elistria_Calling/Elistria_Calling.h b/Elistria_Calling/Source/Elistria_Calling/Elistria_Calling.h new file mode 100644 index 0000000..90aad9e --- /dev/null +++ b/Elistria_Calling/Source/Elistria_Calling/Elistria_Calling.h @@ -0,0 +1,6 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" + diff --git a/Elistria_Calling/Source/Elistria_Calling/Private/ElistriaAbilitySystemComponent.cpp b/Elistria_Calling/Source/Elistria_Calling/Private/ElistriaAbilitySystemComponent.cpp new file mode 100644 index 0000000..5aaeef4 --- /dev/null +++ b/Elistria_Calling/Source/Elistria_Calling/Private/ElistriaAbilitySystemComponent.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ElistriaAbilitySystemComponent.h" + diff --git a/Elistria_Calling/Source/Elistria_Calling/Private/HealthAttributeSet.cpp b/Elistria_Calling/Source/Elistria_Calling/Private/HealthAttributeSet.cpp new file mode 100644 index 0000000..e2c623e --- /dev/null +++ b/Elistria_Calling/Source/Elistria_Calling/Private/HealthAttributeSet.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "HealthAttributeSet.h" + diff --git a/Elistria_Calling/Source/Elistria_Calling/Private/MagickPlayerController.cpp b/Elistria_Calling/Source/Elistria_Calling/Private/MagickPlayerController.cpp new file mode 100644 index 0000000..343b571 --- /dev/null +++ b/Elistria_Calling/Source/Elistria_Calling/Private/MagickPlayerController.cpp @@ -0,0 +1,17 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "MagickPlayerController.h" + +#include "MagickPlayerState.h" + +void AMagickPlayerController::OnPossess(APawn *InPawn) +{ + Super::OnPossess(InPawn); + UE_LOG(LogTemp, Display, TEXT("OnPossess")); + AMagickPlayerState* PS = GetPlayerState(); + if (PS) + { + PS->SetupAbilityActorInfo(); + } +} diff --git a/Elistria_Calling/Source/Elistria_Calling/Private/MagickPlayerState.cpp b/Elistria_Calling/Source/Elistria_Calling/Private/MagickPlayerState.cpp new file mode 100644 index 0000000..c394434 --- /dev/null +++ b/Elistria_Calling/Source/Elistria_Calling/Private/MagickPlayerState.cpp @@ -0,0 +1,59 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "MagickPlayerState.h" + + + + +AMagickPlayerState::AMagickPlayerState() +{ + ElistriaAbilitySystemComponent = CreateDefaultSubobject(TEXT("AbilitySystem")); + ManaSet = CreateDefaultSubobject(TEXT("ManaSet")); +} + +UElistriaAbilitySystemComponent* AMagickPlayerState::GetAbilitySystemComponent() const +{ + return ElistriaAbilitySystemComponent; +} + +void AMagickPlayerState::BeginPlay() +{ + Super::BeginPlay(); + + +} + +void AMagickPlayerState::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const +{ + Super::GetLifetimeReplicatedProps(OutLifetimeProps); + + DOREPLIFETIME_CONDITION_NOTIFY(AMagickPlayerState, ElistriaAbilitySystemComponent, COND_None, REPNOTIFY_Always); + DOREPLIFETIME_CONDITION_NOTIFY(AMagickPlayerState, ManaSet, COND_None, REPNOTIFY_Always); +} + +void AMagickPlayerState::SetupAbilityActorInfo() +{ + AMagickPlayerController* PC = Cast(GetOwner()); + if (!PC) + { + return; + } + + APawn* Pawn = PC->GetPawn(); + + if (!Pawn) + { + return; + } + if (ElistriaAbilitySystemComponent) + { + ElistriaAbilitySystemComponent->InitAbilityActorInfo(this,Pawn); + + if (ManaSet) + { + ElistriaAbilitySystemComponent->AddAttributeSetSubobject(ManaSet.Get()); + } + } + +} diff --git a/Elistria_Calling/Source/Elistria_Calling/Private/ManaAttributeSet.cpp b/Elistria_Calling/Source/Elistria_Calling/Private/ManaAttributeSet.cpp new file mode 100644 index 0000000..17503ab --- /dev/null +++ b/Elistria_Calling/Source/Elistria_Calling/Private/ManaAttributeSet.cpp @@ -0,0 +1,34 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ManaAttributeSet.h" + +UManaAttributeSet::UManaAttributeSet() +{ + InitMana(100.0f); + InitMaxMana(100.0f); +} + +void UManaAttributeSet::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const +{ + Super::GetLifetimeReplicatedProps(OutLifetimeProps); + + DOREPLIFETIME_CONDITION_NOTIFY(UManaAttributeSet, Mana, COND_None, REPNOTIFY_Always); + DOREPLIFETIME_CONDITION_NOTIFY(UManaAttributeSet, MaxMana, COND_None, REPNOTIFY_Always); +} + +void UManaAttributeSet::OnRep_Mana(const FGameplayAttributeData& OldValue) +{ + GAMEPLAYATTRIBUTE_REPNOTIFY(UManaAttributeSet, Mana, OldValue); + const float OldMana = OldValue.GetCurrentValue(); + const float NewMana = GetMana(); + OnManaChanged.Broadcast(this, OldMana, NewMana); +} + +void UManaAttributeSet::OnRep_MaxMana(const FGameplayAttributeData& OldValue) +{ + GAMEPLAYATTRIBUTE_REPNOTIFY(UManaAttributeSet, MaxMana, OldValue); + const float OldMaxMana = OldValue.GetCurrentValue(); + const float NewMaxMana = GetMaxMana(); + OnMaxManaChanged.Broadcast(this, OldMaxMana, NewMaxMana); +} \ No newline at end of file diff --git a/Elistria_Calling/Source/Elistria_Calling/Public/ElistriaAbilitySystemComponent.h b/Elistria_Calling/Source/Elistria_Calling/Public/ElistriaAbilitySystemComponent.h new file mode 100644 index 0000000..49fa0bd --- /dev/null +++ b/Elistria_Calling/Source/Elistria_Calling/Public/ElistriaAbilitySystemComponent.h @@ -0,0 +1,17 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "AbilitySystemComponent.h" +#include "ElistriaAbilitySystemComponent.generated.h" + +/** + * + */ +UCLASS() +class ELISTRIA_CALLING_API UElistriaAbilitySystemComponent : public UAbilitySystemComponent +{ + GENERATED_BODY() + +}; diff --git a/Elistria_Calling/Source/Elistria_Calling/Public/HealthAttributeSet.h b/Elistria_Calling/Source/Elistria_Calling/Public/HealthAttributeSet.h new file mode 100644 index 0000000..c56acab --- /dev/null +++ b/Elistria_Calling/Source/Elistria_Calling/Public/HealthAttributeSet.h @@ -0,0 +1,17 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "AttributeSet.h" +#include "HealthAttributeSet.generated.h" + +/** + * + */ +UCLASS() +class ELISTRIA_CALLING_API UHealthAttributeSet : public UAttributeSet +{ + GENERATED_BODY() + +}; diff --git a/Elistria_Calling/Source/Elistria_Calling/Public/MagickPlayerController.h b/Elistria_Calling/Source/Elistria_Calling/Public/MagickPlayerController.h new file mode 100644 index 0000000..d8b2030 --- /dev/null +++ b/Elistria_Calling/Source/Elistria_Calling/Public/MagickPlayerController.h @@ -0,0 +1,19 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/PlayerController.h" +#include "MagickPlayerController.generated.h" + +/** + * + */ +UCLASS() +class ELISTRIA_CALLING_API AMagickPlayerController : public APlayerController +{ + GENERATED_BODY() + + + virtual void OnPossess(APawn* InPawn) override; +}; diff --git a/Elistria_Calling/Source/Elistria_Calling/Public/MagickPlayerState.h b/Elistria_Calling/Source/Elistria_Calling/Public/MagickPlayerState.h new file mode 100644 index 0000000..70bfbcd --- /dev/null +++ b/Elistria_Calling/Source/Elistria_Calling/Public/MagickPlayerState.h @@ -0,0 +1,36 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/PlayerState.h" +#include "AbilitySystemInterface.h" +#include "ElistriaAbilitySystemComponent.h" +#include "ManaAttributeSet.h" +#include "MagickPlayerController.h" +#include "MagickPlayerState.generated.h" + +UCLASS(Config=game) +class ELISTRIA_CALLING_API AMagickPlayerState : public APlayerState, public IAbilitySystemInterface +{ + GENERATED_BODY() + + + + virtual void BeginPlay() override; + +public: + AMagickPlayerState(); + + virtual void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override; + virtual UElistriaAbilitySystemComponent* GetAbilitySystemComponent() const override; + + void SetupAbilityActorInfo(); + +protected: + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Abilities, Replicated) + TObjectPtr ElistriaAbilitySystemComponent; + + UPROPERTY(Replicated) + TObjectPtr ManaSet; +}; diff --git a/Elistria_Calling/Source/Elistria_Calling/Public/ManaAttributeSet.h b/Elistria_Calling/Source/Elistria_Calling/Public/ManaAttributeSet.h new file mode 100644 index 0000000..925e3fd --- /dev/null +++ b/Elistria_Calling/Source/Elistria_Calling/Public/ManaAttributeSet.h @@ -0,0 +1,52 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "AttributeSet.h" +#include "AbilitySystemComponent.h" +#include "Net/UnrealNetwork.h" +#include "ManaAttributeSet.generated.h" + +/** + * + */ + +#define ATTRIBUTE_ACCESSORS(ClassName, PropertyName) \ + GAMEPLAYATTRIBUTE_PROPERTY_GETTER(ClassName, PropertyName) \ + GAMEPLAYATTRIBUTE_VALUE_GETTER(PropertyName) \ + GAMEPLAYATTRIBUTE_VALUE_SETTER(PropertyName) \ + GAMEPLAYATTRIBUTE_VALUE_INITTER(PropertyName) + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FAttributeChangedEvent, UAttributeSet*, AttributeSet, float, OldValue, float, NewValue); + +UCLASS() +class ELISTRIA_CALLING_API UManaAttributeSet : public UAttributeSet +{ + GENERATED_BODY() + +public: + UManaAttributeSet(); + + virtual void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing=OnRep_Mana) + FGameplayAttributeData Mana; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing=OnRep_MaxMana) + FGameplayAttributeData MaxMana; + + ATTRIBUTE_ACCESSORS(UManaAttributeSet, Mana) + ATTRIBUTE_ACCESSORS(UManaAttributeSet, MaxMana) + + UFUNCTION() + void OnRep_Mana(const FGameplayAttributeData& OldValue); + UFUNCTION() + void OnRep_MaxMana(const FGameplayAttributeData& OldValue); + + UPROPERTY(BlueprintAssignable) + FAttributeChangedEvent OnManaChanged; + + UPROPERTY(BlueprintAssignable) + FAttributeChangedEvent OnMaxManaChanged; +}; diff --git a/Elistria_Calling/Source/Elistria_CallingEditor.Target.cs b/Elistria_Calling/Source/Elistria_CallingEditor.Target.cs new file mode 100644 index 0000000..470edd0 --- /dev/null +++ b/Elistria_Calling/Source/Elistria_CallingEditor.Target.cs @@ -0,0 +1,15 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; +using System.Collections.Generic; + +public class Elistria_CallingEditorTarget : TargetRules +{ + public Elistria_CallingEditorTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Editor; + DefaultBuildSettings = BuildSettingsVersion.V5; + + ExtraModuleNames.AddRange( new string[] { "Elistria_Calling" } ); + } +}