Merge branch 'lorealisnat:main' into main

This commit is contained in:
Hartzell Max Phillips
2025-09-30 23:32:24 -06:00
committed by GitHub
187 changed files with 1216 additions and 30 deletions

View File

@@ -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"
]
}

View File

@@ -1,2 +1,9 @@
[ContentBrowser]
ContentBrowserTab1.SelectedPaths=/Game/ThirdPersonBP
[/Script/GameplayDebugger.GameplayDebuggerUserSettings]
bEnableGameplayDebuggerInEditor=True
MaxViewDistance=25000.000000
MaxViewAngle=45.000000
FontSize=10

View File

@@ -147,3 +147,23 @@ ManualIPAddress=
[/Script/Water.WaterRuntimeSettings]
CollisionChannelForWaterTraces=ECC_WorldDynamic
[/Script/ConcertClient.ConcertClientConfig]
bIsHeadless=False
bInstallEditorToolbarButton=True
bAutoConnect=False
bRetryAutoConnectOnError=False
ServerType=Slate
DefaultServerURL=
DefaultSessionName=
DefaultSessionToRestore=
DefaultSaveSessionAs=
ReadOnlyAssignment=(GameplayTags=)
SendOnlyAssignment=(GameplayTags=)
bShouldPromptForHotReloadOnLevel=False
ClientSettings=(DisplayName="",AvatarColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),DesktopAvatarActorClass="/ConcertSyncClient/DesktopPresence.DesktopPresence_C",VRAvatarActorClass="/ConcertSyncClient/VRPresence.VRPresence_C",ServerPort=0,DiscoveryTimeoutSeconds=5,SessionTickFrequencySeconds=1,LatencyCompensationMs=0.000000,bReflectLevelEditorInGame=False,bSupportMixedBuildTypes=False,Tags=,ClientAuthenticationKey="")
SourceControlSettings=(ValidationMode=Soft)
EndpointSettings=(bEnableLogging=False,PurgeProcessedMessageDelaySeconds=30,RemoteEndpointTimeoutSeconds=60)
[CoreRedirects]
+ClassRedirects=(OldName="/Script/Elistria_Calling.MagickPlayerState",NewName="/Script/Elistria_Calling.MagickPlayerState")

View File

@@ -11,3 +11,17 @@ InsertPack=(PackSource="StarterContent.upack",PackName="StarterContent")
[/Script/AIModule.AISense_Sight]
bAutoRegisterAllPawnsAsSources=false
[/Script/Engine.AssetManagerSettings]
-PrimaryAssetTypesToScan=(PrimaryAssetType="Map",AssetBaseClass=/Script/Engine.World,bHasBlueprintClasses=False,bIsEditorOnly=True,Directories=((Path="/Game/Maps")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
-PrimaryAssetTypesToScan=(PrimaryAssetType="PrimaryAssetLabel",AssetBaseClass=/Script/Engine.PrimaryAssetLabel,bHasBlueprintClasses=False,bIsEditorOnly=True,Directories=((Path="/Game")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
+PrimaryAssetTypesToScan=(PrimaryAssetType="Map",AssetBaseClass="/Script/Engine.World",bHasBlueprintClasses=False,bIsEditorOnly=True,Directories=((Path="/Game/Maps")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
+PrimaryAssetTypesToScan=(PrimaryAssetType="PrimaryAssetLabel",AssetBaseClass="/Script/Engine.PrimaryAssetLabel",bHasBlueprintClasses=False,bIsEditorOnly=True,Directories=((Path="/Game")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
+PrimaryAssetTypesToScan=(PrimaryAssetType="GameFeatureData",AssetBaseClass="/Script/GameFeatures.GameFeatureData",bHasBlueprintClasses=False,bIsEditorOnly=False,Directories=,SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=AlwaysCook))
bOnlyCookProductionAssets=False
bShouldManagerDetermineTypeAndName=False
bShouldGuessTypeAndNameInEditor=True
bShouldAcquireMissingChunksOnLoad=False
bShouldWarnAboutInvalidAssets=True
MetaDataTagsForAssetRegistry=()

View File

@@ -0,0 +1,40 @@
[/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",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",DevComment="")
GameplayTagList=(Tag="Spell.Light.Starlight.Constellation",DevComment="")
GameplayTagList=(Tag="Spell.Light.Starlight.SongOfFallingStars",DevComment="")
GameplayTagList=(Tag="Spell.Light.Starlight.StarGuide",DevComment="")

View File

@@ -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="")

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1b08a87918f47e08831794dd6d5eaacf8d98472e05a23994cb5735446b63f22e
size 524140
oid sha256:b705ff69ba0538245d7490a5ebc51f3c343aeaac811166db53f320f47192407c
size 522628

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:64b8cb2d0256d3c6932480de5d06f2a5db803cb779fbd761955166227c217ecc
size 20676

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:be98126b50f3dc113fc4d14a8d163c19d9973a059e1b1613092fdad8458ac33d
size 54875

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:132f887b0172d93247c480b7c570abaa4fc9dfe83782761266983b0889705ac1
size 294563
oid sha256:29d64571f6460819033c27ed73cb7ae0fc341533414a45bc7eca96719146263d
size 631354

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1ac891075bcd07258fa49672b5b0c107c19c4fe98b2ebf94f8d57d4b688bacf7
size 25350

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:780c412f922b58cc72728a92dd394d90169b91636b3824149e7f144ce69f62c0
size 352198
oid sha256:9b5c9bd9d2c553f59efea93210aa16b41d3ce0c29edd86751f8f25a228bccaf0
size 338962

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:22dfcbb926d826d25214bd154cc54787519717ef4bcebfe88d7256957af603ef
size 262156
oid sha256:b25d672147fabde7b600b9a3f17861de67a1276b7314149ba13d50e36aaf8f4b
size 261649

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ede166b7c7268bf378cf18df6098e00ab3ecd948ea9e484262ff808614a8d272
size 29128

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8aa4205ca1c9fc1958287f42ec3fff5f390d29b8fd77b00f28eb7a74b53c91cf
size 2892

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5436d05cfe13d140726568221a5fec5557db5d4094824ecf2091946d7c73afcd
size 65521

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:469b566f30a2880fcc59c250b2b050ae3057980b2bb6394dfcf2a08d3d887845
size 36057

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4d6060913f3290392096e06d6f4363d99ae3a25cbb81c6e810b60eac03834795
size 125238

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8edc391aa5ee09f96d579396ab81138f5db44f1744d41f4c49f6c50575e70994
size 405347

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ea2a6797840f1630482ad1e9bf7b0619da5beaff02c8b610389814633efc99d9
oid sha256:c6d2d79168f442b1b8573130dc5d76681167a55a3ea1af46db55cf9d02228312
size 15406

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d81436aaaa88a95ed3c577f44af5264c39b7d8d3832eaa2d1fa1607591e1f0f2
size 1108433
oid sha256:8f87e4aa3e40fcaaa8f752c3f25db408df50eceb46d7de1da4a2dc81d892c45c
size 1455786

View File

@@ -3,6 +3,17 @@
"EngineAssociation": "5.4",
"Category": "",
"Description": "",
"Modules": [
{
"Name": "Elistria_Calling",
"Type": "Runtime",
"LoadingPhase": "Default",
"AdditionalDependencies": [
"GameplayAbilities",
"Engine"
]
}
],
"Plugins": [
{
"Name": "ModelingToolsEditorMode",
@@ -38,6 +49,279 @@
{
"Name": "Iris",
"Enabled": true
},
{
"Name": "GameplayBehaviors",
"Enabled": true
},
{
"Name": "MultiUserClient",
"Enabled": true
},
{
"Name": "SunPosition",
"Enabled": true
},
{
"Name": "ChaosClothAsset",
"Enabled": true
},
{
"Name": "NaniteDisplacedMesh",
"Enabled": true
},
{
"Name": "CommonUI",
"Enabled": true
},
{
"Name": "HDRIBackdrop",
"Enabled": true
},
{
"Name": "ChaosVehiclesPlugin",
"Enabled": true
},
{
"Name": "ChaosModularVehicle",
"Enabled": true
},
{
"Name": "ChaosClothAssetEditor",
"Enabled": true
},
{
"Name": "GeoReferencing",
"Enabled": true
},
{
"Name": "LandscapePatch",
"Enabled": true
},
{
"Name": "PCGBiomeCore",
"Enabled": true
},
{
"Name": "StateGraph",
"Enabled": true
},
{
"Name": "SurfaceEffects",
"Enabled": true
},
{
"Name": "GameFeatures",
"Enabled": true
},
{
"Name": "GameplayAbilities",
"Enabled": true
},
{
"Name": "AbilitySystemGameFeatureActions",
"Enabled": true
},
{
"Name": "DataRegistry",
"Enabled": true
},
{
"Name": "GameplayStateTree",
"Enabled": true
},
{
"Name": "ModularGameplay",
"Enabled": true
},
{
"Name": "TargetingSystem",
"Enabled": true
},
{
"Name": "StateTree",
"Enabled": true
},
{
"Name": "SmartObjects",
"Enabled": true
},
{
"Name": "NetworkPrediction",
"Enabled": true
},
{
"Name": "MassEntity",
"Enabled": true
},
{
"Name": "GameplayInteractions",
"Enabled": true
},
{
"Name": "PropertyBindingUtils",
"Enabled": true
},
{
"Name": "OnlineSubsystemGooglePlay",
"Enabled": false,
"SupportedTargetPlatforms": [
"Android"
]
},
{
"Name": "AndroidPermission",
"Enabled": false
},
{
"Name": "AndroidFileServer",
"Enabled": false
},
{
"Name": "GooglePAD",
"Enabled": false
},
{
"Name": "MassAI",
"Enabled": true
},
{
"Name": "MassCrowd",
"Enabled": true
},
{
"Name": "Soundscape",
"Enabled": true
},
{
"Name": "JsonBlueprintUtilities",
"Enabled": true
},
{
"Name": "BlueprintFileUtils",
"Enabled": true
},
{
"Name": "ContentBrowserAliasDataSource",
"Enabled": true
},
{
"Name": "Mutable",
"Enabled": true
},
{
"Name": "OptiXDenoise",
"Enabled": true
},
{
"Name": "PCGExternalDataInterop",
"Enabled": true
},
{
"Name": "PCGWaterInterop",
"Enabled": true
},
{
"Name": "ActorPalette",
"Enabled": true
},
{
"Name": "AdvancedRenamer",
"Enabled": true
},
{
"Name": "NiagaraFluids",
"Enabled": true
},
{
"Name": "AndroidMedia",
"Enabled": false
},
{
"Name": "AndroidMoviePlayer",
"Enabled": false
},
{
"Name": "AppleMoviePlayer",
"Enabled": false
},
{
"Name": "AvfMedia",
"Enabled": false
},
{
"Name": "LocationServicesBPLibrary",
"Enabled": false
},
{
"Name": "MobilePatchingUtils",
"Enabled": false
},
{
"Name": "GoogleCloudMessaging",
"Enabled": false
},
{
"Name": "OnlineSubsystemIOS",
"Enabled": false,
"SupportedTargetPlatforms": [
"IOS",
"TVOS"
]
},
{
"Name": "ColorCorrectRegions",
"Enabled": true
},
{
"Name": "Reflex",
"Enabled": true
},
{
"Name": "ChaosFlesh",
"Enabled": true
},
{
"Name": "CodeView",
"Enabled": true
},
{
"Name": "CodeEditor",
"Enabled": true
},
{
"Name": "SubversionSourceControl",
"Enabled": false
},
{
"Name": "PlasticSourceControl",
"Enabled": false
},
{
"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"
]
}

View File

@@ -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" } );
}
}

View File

@@ -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
}
}

View File

@@ -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" );

View File

@@ -0,0 +1,6 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"

View File

@@ -0,0 +1,5 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "ElistriaAbilitySystemComponent.h"

View File

@@ -0,0 +1,5 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "HealthAttributeSet.h"

View File

@@ -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<AMagickPlayerState>();
if (PS)
{
PS->SetupAbilityActorInfo();
}
}

View File

@@ -0,0 +1,59 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "MagickPlayerState.h"
AMagickPlayerState::AMagickPlayerState()
{
ElistriaAbilitySystemComponent = CreateDefaultSubobject<UElistriaAbilitySystemComponent>(TEXT("AbilitySystem"));
ManaSet = CreateDefaultSubobject<UManaAttributeSet>(TEXT("ManaSet"));
}
UElistriaAbilitySystemComponent* AMagickPlayerState::GetAbilitySystemComponent() const
{
return ElistriaAbilitySystemComponent;
}
void AMagickPlayerState::BeginPlay()
{
Super::BeginPlay();
}
void AMagickPlayerState::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& 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<AMagickPlayerController>(GetOwner());
if (!PC)
{
return;
}
APawn* Pawn = PC->GetPawn();
if (!Pawn)
{
return;
}
if (ElistriaAbilitySystemComponent)
{
ElistriaAbilitySystemComponent->InitAbilityActorInfo(this,Pawn);
if (ManaSet)
{
ElistriaAbilitySystemComponent->AddAttributeSetSubobject(ManaSet.Get());
}
}
}

View File

@@ -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<FLifetimeProperty>& 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);
}

View File

@@ -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()
};

View File

@@ -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()
};

View File

@@ -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;
};

View File

@@ -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<FLifetimeProperty>& OutLifetimeProps) const override;
virtual UElistriaAbilitySystemComponent* GetAbilitySystemComponent() const override;
void SetupAbilityActorInfo();
protected:
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Abilities, Replicated)
TObjectPtr<class UElistriaAbilitySystemComponent> ElistriaAbilitySystemComponent;
UPROPERTY(Replicated)
TObjectPtr<class UManaAttributeSet> ManaSet;
};

View File

@@ -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<FLifetimeProperty>& 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;
};

View File

@@ -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" } );
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ecaff198859df1e4c07cec4817442026df9e6a4f3841bfdfe35a0fefd33480f2
size 49712

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0bb5fd75469cadb7dd0ff342f4d957c86b2e9609560184beb9c8e61ae8f1a417
size 51376

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b67cfedd98210a3bac165d2432827bf12e84c875678bce1065e188ab5b65d187
size 88832

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b518cf619a05ca7055bf04679d814991ed4fd32430cb776bebc9fb9fd263c0e7
size 38224

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1be6590f61cd5a3c291cff43f30efac304cc3e85ae01a4ce14736b4e32f588da
size 62992

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:787131b74b5febea618037c99ddd47f8b90580ff1544d095357ad6d025f488ba
size 90768

Some files were not shown because too many files have changed in this diff Show More