commit 4d87f6e4ab8ea78ce34b24651bb8db1ac67f11b3 Author: amasson42 Date: Wed Mar 20 16:21:19 2024 +0100 Migration diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..424a82d --- /dev/null +++ b/.gitattributes @@ -0,0 +1,13 @@ +# UE file types +*.uasset filter=lfs diff=lfs merge=lfs -text +*.umap filter=lfs diff=lfs merge=lfs -text +# Raw Content types +*.fbx filter=lfs diff=lfs merge=lfs -text +*.3ds filter=lfs diff=lfs merge=lfs -text +*.psd filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.mp3 filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.xcf filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..becb75e --- /dev/null +++ b/.gitignore @@ -0,0 +1,88 @@ +# Visual Studio 2015 user specific files +.vs/ +.vsconfig + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app +*.ipa + +# These project files can be generated by the engine +*.xcodeproj +*.xcworkspace +*.sln +*.suo +*.opensdf +*.sdf +*.VC.db +*.VC.opendb +*.code-workspace +/Makefile +.vscode + +# Precompiled Assets +SourceArt/**/*.png +SourceArt/**/*.tga + +# Binary Files +Binaries/* +Plugins/*/Binaries/* + +# Builds +Build/* + +# Whitelist PakBlacklist-.txt files +!Build/*/ +Build/*/** +!Build/*/PakBlacklist*.txt + +# Don't ignore icon files in Build +!Build/**/*.ico + +# Built data for maps +*_BuiltData.uasset + +# Configuration files generated by the Editor +Saved/* + +# Compiled source files for the engine to use +Intermediate/* +Plugins/*/Intermediate/* + +# Cache files for the editor to use +DerivedDataCache/* + +# OS utility files +.DS_Store + + +# Generation of project always modify it +.ignore + +.obsidian + diff --git a/Aura.png b/Aura.png new file mode 100644 index 0000000..5c65c53 --- /dev/null +++ b/Aura.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea687eedd5cb6050d94f72ef60db8b0d42cfa2d09e88e01c505c5b28190129b8 +size 48854 diff --git a/Aura.uproject b/Aura.uproject new file mode 100644 index 0000000..181b907 --- /dev/null +++ b/Aura.uproject @@ -0,0 +1,59 @@ +{ + "FileVersion": 3, + "EngineAssociation": "5.2", + "Category": "", + "Description": "", + "Modules": [ + { + "Name": "Aura", + "Type": "Runtime", + "LoadingPhase": "Default", + "AdditionalDependencies": [ + "Engine", + "GameplayAbilities", + "UMG", + "CoreUObject", + "EnhancedInput", + "AIModule", + "InteractionSystem", + "SlotBasedInventorySystem", + "LibAmasson" + ] + } + ], + "Plugins": [ + { + "Name": "ModelingToolsEditorMode", + "Enabled": true, + "TargetAllowList": [ + "Editor" + ] + }, + { + "Name": "GameplayAbilities", + "Enabled": true + }, + { + "Name": "MotionWarping", + "Enabled": true + }, + { + "Name": "MassCrowd", + "Enabled": true + }, + { + "Name": "FunctionalTestingEditor", + "Enabled": true + }, + { + "Name": "RestartEditor", + "Enabled": true, + "MarketplaceURL": "com.epicgames.launcher://ue/marketplace/product/a00eb1e478ae4a8fb655aa22f9125b07" + }, + { + "Name": "BlueprintAssist", + "Enabled": true, + "MarketplaceURL": "com.epicgames.launcher://ue/marketplace/content/9e895371fa3a471c87337860d6f341ff" + } + ] +} \ No newline at end of file diff --git a/Cmd/regenerate.sh b/Cmd/regenerate.sh new file mode 100755 index 0000000..61d7d7a --- /dev/null +++ b/Cmd/regenerate.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +cd .. + +PROJECT_NAME=`find . -name "*.uproject" -exec basename {} .uproject \;` + +sh Script/remove_binaries.sh + +rm -rf $PROJECT_NAME.code-workspace\ + Makefile\ + Saved\ + .vscode + +GenerateProjectFiles.sh -project="$PWD/$PROJECT_NAME.uproject" -game diff --git a/Cmd/remove_binaries.sh b/Cmd/remove_binaries.sh new file mode 100755 index 0000000..2f9952f --- /dev/null +++ b/Cmd/remove_binaries.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +cd .. + +rm -rf Binaries\ + DerivedDataCache\ + Intermediate + +rm -rf Plugins/*/Binaries\ + Plugins/*/DerivedDataCache\ + Plugins/*/Intermediate diff --git a/Cmd/resize_images.sh b/Cmd/resize_images.sh new file mode 100644 index 0000000..aafc8c1 --- /dev/null +++ b/Cmd/resize_images.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +# example: +# sh resize_images.sh ./Game "*.PNG" 50% + +IMAGES=$(find $1 -type f -name $2) + +for image in $IMAGES +do + echo $image + magick $image -resize $3 $image +done + diff --git a/Config/DefaultEditor.ini b/Config/DefaultEditor.ini new file mode 100644 index 0000000..f38756e --- /dev/null +++ b/Config/DefaultEditor.ini @@ -0,0 +1,2 @@ +[/Script/AdvancedPreviewScene.SharedProfiles] + diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini new file mode 100644 index 0000000..448a3fe --- /dev/null +++ b/Config/DefaultEngine.ini @@ -0,0 +1,156 @@ +[ConsoleVariables] +net.MaxRPCPerNetUpdate = 10 + +[/Script/EngineSettings.GameMapsSettings] +GameDefaultMap=/Game/Maps/MainMenu/MainMenu.MainMenu +EditorStartupMap=/Game/Maps/Playground/Playground.Playground +bUseSplitscreen=True + +[/Script/WindowsTargetPlatform.WindowsTargetSettings] +DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 +-D3D12TargetedShaderFormats=PCD3D_SM5 ++D3D12TargetedShaderFormats=PCD3D_SM6 +-D3D11TargetedShaderFormats=PCD3D_SM5 ++D3D11TargetedShaderFormats=PCD3D_SM5 +Compiler=Default +AudioSampleRate=48000 +AudioCallbackBufferFrameSize=1024 +AudioNumBuffersToEnqueue=1 +AudioMaxChannels=0 +AudioNumSourceWorkers=4 +SpatializationPlugin= +SourceDataOverridePlugin= +ReverbPlugin= +OcclusionPlugin= +CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) +CacheSizeKB=65536 +MaxChunkSizeOverrideKB=0 +bResampleForDevice=False +MaxSampleRate=48000.000000 +HighSampleRate=32000.000000 +MedSampleRate=24000.000000 +LowSampleRate=12000.000000 +MinSampleRate=8000.000000 +CompressionQualityModifier=1.000000 +AutoStreamingThreshold=0.000000 +SoundCueCookQualityIndex=-1 + + +[/Script/HardwareTargeting.HardwareTargetingSettings] +TargetedHardwareClass=Desktop +AppliedTargetedHardwareClass=Desktop +DefaultGraphicsPerformance=Maximum +AppliedDefaultGraphicsPerformance=Maximum + +[/Script/Engine.RendererSettings] +r.GenerateMeshDistanceFields=True +r.DynamicGlobalIlluminationMethod=1 +r.ReflectionMethod=1 +r.Shadow.Virtual.Enable=1 +r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True +r.CustomDepth=3 + +[/Script/WorldPartitionEditor.WorldPartitionEditorSettings] +CommandletClass=Class'/Script/UnrealEd.WorldPartitionConvertCommandlet' + +[/Script/Engine.UserInterfaceSettings] +bAuthorizeAutomaticWidgetVariableCreation=False + +[/Script/Engine.Engine] ++ActiveGameNameRedirects=(OldGameName="TP_BlankBP",NewGameName="/Script/Aura") ++ActiveGameNameRedirects=(OldGameName="/Script/TP_BlankBP",NewGameName="/Script/Aura") +AssetManagerClassName=/Script/Aura.AuraAssetManager + +[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] +bEnablePlugin=True +bAllowNetworkConnection=True +SecurityToken=163520794CA3B087E7F313ABA4A5D7AB +bIncludeInShipping=False +bAllowExternalStartInShipping=False +bCompileAFSProject=False +bUseCompression=False +bLogFiles=False +bReportStats=False +ConnectionType=USBOnly +bUseManualIPAddress=False +ManualIPAddress= + +[/Script/Engine.CollisionProfile] +-Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision",bCanModify=False) +-Profiles=(Name="BlockAll",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=,HelpMessage="WorldStatic object that blocks all actors by default. All new custom channels will use its own default response. ",bCanModify=False) +-Profiles=(Name="OverlapAll",CollisionEnabled=QueryOnly,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) +-Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=,HelpMessage="WorldDynamic object that blocks all actors by default. All new custom channels will use its own default response. ",bCanModify=False) +-Profiles=(Name="OverlapAllDynamic",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) +-Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that ignores Pawn and Vehicle. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that overlaps Pawn, Camera, and Vehicle. All other channels will be set to default. ",bCanModify=False) +-Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object. Can be used for capsule of any playerable character or AI. ",bCanModify=False) +-Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,ObjectTypeName="Pawn",CustomResponses=((Channel="WorldStatic",Response=ECR_Block),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Pawn object that ignores all other actors except WorldStatic.",bCanModify=False) +-Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,ObjectTypeName="Pawn",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object that is used for Character Mesh. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors",bCanModify=False) +-Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors",bCanModify=False) +-Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.",bCanModify=False) +-Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.",bCanModify=False) +-Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that is used for trigger. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Simulating Skeletal Mesh Component. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Vehicle",CustomResponses=,HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="UI",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Block),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) ++Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision") ++Profiles=(Name="BlockAll",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Projectile")),HelpMessage="WorldStatic object that blocks all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="OverlapAll",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap),(Channel="Projectile",Response=ECR_Overlap),(Channel="CursorHit",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Projectile")),HelpMessage="WorldDynamic object that blocks all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="OverlapAllDynamic",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap),(Channel="Projectile",Response=ECR_Overlap),(Channel="CursorHit",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that overlaps all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Projectile")),HelpMessage="WorldDynamic object that ignores Pawn and Vehicle. All other channels will be set to default.") ++Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Projectile")),HelpMessage="WorldDynamic object that overlaps Pawn, Camera, and Vehicle. All other channels will be set to default. ") ++Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Projectile",Response=ECR_Overlap)),HelpMessage="Pawn object. Can be used for capsule of any playerable character or AI. ") ++Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Pawn object that ignores all other actors except WorldStatic.") ++Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore)),HelpMessage="Pawn object that is used for Character Mesh. All other channels will be set to default.") ++Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors") ++Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Destructible",CustomResponses=((Channel="Projectile",Response=ECR_Overlap)),HelpMessage="Destructible actors") ++Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Projectile")),HelpMessage="WorldStatic object that is invisible.") ++Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Projectile")),HelpMessage="WorldDynamic object that is invisible.") ++Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that is used for trigger. All other channels will be set to default.") ++Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Simulating Skeletal Mesh Component. All other channels will be set to default.") ++Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Vehicle",CustomResponses=((Channel="Projectile",Response=ECR_Overlap)),HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.") ++Profiles=(Name="UI",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap),(Channel="CursorHit",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="Ground",CollisionEnabled=QueryAndPhysics,bCanModify=True,ObjectTypeName="",CustomResponses=((Channel="Projectile"),(Channel="CursorHit")),HelpMessage="WorldStatic objects that blocks all actors by default and is a walkable ground") ++Profiles=(Name="Projectile",CollisionEnabled=QueryAndPhysics,bCanModify=True,ObjectTypeName="Projectile",CustomResponses=((Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="Projectile are blocked by world static, ignore camera and overlap everything else") ++DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,DefaultResponse=ECR_Ignore,bTraceType=False,bStaticObject=False,Name="Projectile") ++DefaultChannelResponses=(Channel=ECC_GameTraceChannel2,DefaultResponse=ECR_Ignore,bTraceType=True,bStaticObject=False,Name="CursorHit") ++EditProfiles=(Name="CharacterMesh",CustomResponses=((Channel="Visibility"),(Channel="CursorHit"))) ++EditProfiles=(Name="Pawn",CustomResponses=((Channel="Projectile",Response=ECR_Overlap),(Channel="CursorHit",Response=ECR_Ignore))) ++EditProfiles=(Name="Destructible",CustomResponses=((Channel="Projectile",Response=ECR_Overlap),(Channel="CursorHit",Response=ECR_Ignore),(Channel="Pawn"),(Channel="Camera",Response=ECR_Ignore))) ++EditProfiles=(Name="Vehicle",CustomResponses=((Channel="Projectile",Response=ECR_Overlap),(Channel="CursorHit",Response=ECR_Ignore))) ++EditProfiles=(Name="BlockAll",CustomResponses=((Channel="Projectile"),(Channel="CursorHit",Response=ECR_Ignore))) ++EditProfiles=(Name="OverlapAll",CustomResponses=((Channel="Projectile",Response=ECR_Overlap),(Channel="CursorHit",Response=ECR_Overlap))) ++EditProfiles=(Name="BlockAllDynamic",CustomResponses=((Channel="Projectile"),(Channel="CursorHit",Response=ECR_Ignore))) ++EditProfiles=(Name="OverlapAllDynamic",CustomResponses=((Channel="Projectile",Response=ECR_Overlap),(Channel="CursorHit",Response=ECR_Overlap))) ++EditProfiles=(Name="IgnoreOnlyPawn",CustomResponses=((Channel="Projectile"),(Channel="CursorHit",Response=ECR_Ignore))) ++EditProfiles=(Name="OverlapOnlyPawn",CustomResponses=((Channel="Projectile"),(Channel="CursorHit",Response=ECR_Ignore))) ++EditProfiles=(Name="InvisibleWall",CustomResponses=((Channel="Projectile"),(Channel="CursorHit",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore))) ++EditProfiles=(Name="InvisibleWallDynamic",CustomResponses=((Channel="Projectile"),(Channel="CursorHit",Response=ECR_Ignore))) ++EditProfiles=(Name="UI",CustomResponses=((Channel="CursorHit",Response=ECR_Overlap))) +-ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") +-ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") +-ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") +-ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") +-ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") ++ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") ++ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") ++ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") ++ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") ++ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") +-CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") +-CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") +-CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") +-CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") ++CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") ++CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") ++CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") ++CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") + +[/Script/NavigationSystem.NavigationSystemV1] +bAllowClientSideNavigation=True + +[/Script/NavigationSystem.RecastNavMesh] +RuntimeGeneration=DynamicModifiersOnly + diff --git a/Config/DefaultGame.ini b/Config/DefaultGame.ini new file mode 100644 index 0000000..b7aef70 --- /dev/null +++ b/Config/DefaultGame.ini @@ -0,0 +1,22 @@ + + +[/Script/EngineSettings.GeneralProjectSettings] +ProjectID=70BA0A3B40E2B9899612678C078FC24A +ProjectName=Aura +CopyrightNotice=Amasson +PrivacyPolicy= +ProjectDisplayedTitle=NSLOCTEXT("[/Script/EngineSettings]", "940B61A29A724E64AA4BDC9685925A54", "Aura") +CompanyName=Amasson + +[/Script/GameplayAbilitiesEditor.GameplayEffectCreationMenu] ++Definitions=(MenuPath="GameplayEffect",BaseName="Gameplay Effect",ParentGameplayEffect=/Script/CoreUObject.Class'"/Script/GameplayAbilities.GameplayEffect"') + +[/Script/GameplayAbilities.AbilitySystemGlobals] +AbilitySystemGlobalsClassName="/Script/Aura.AuraAbilitySystemGlobals" ++GameplayCueNotifyPaths="/Game/Blueprints/AbilitySystem/GameplayCues" + +[/Script/UnrealEd.ProjectPackagingSettings] +BuildConfiguration=PPBC_Shipping +ForDistribution=True +FullRebuild=True + diff --git a/Config/DefaultGameplayTags.ini b/Config/DefaultGameplayTags.ini new file mode 100644 index 0000000..078ff1e --- /dev/null +++ b/Config/DefaultGameplayTags.ini @@ -0,0 +1,72 @@ +[/Script/GameplayTags.GameplayTagsSettings] +ImportTagsFromConfig=True +WarnOnInvalidTags=True +ClearInvalidTags=False +AllowEditorTagUnloading=True +AllowGameTagUnloading=False +FastReplication=False +InvalidTagCharacters="\"\'," ++GameplayTagTableList=/Game/Blueprints/AbilitySystem/GameplayTags/DT_PrimaryAttributes.DT_PrimaryAttributes +NumBitsForContainerSize=6 +NetIndexFirstBitSegment=16 ++GameplayTagList=(Tag="Ability.AI.Summon",DevComment="") ++GameplayTagList=(Tag="Ability.Cooldown.Arcane.Blink",DevComment="") ++GameplayTagList=(Tag="Ability.Cooldown.Arcane.CrystalWall",DevComment="") ++GameplayTagList=(Tag="Ability.Cooldown.Fake",DevComment="") ++GameplayTagList=(Tag="Ability.Cooldown.Fake.KillOverTime",DevComment="") ++GameplayTagList=(Tag="Ability.Cooldown.Fire.Firebolt",DevComment="") ++GameplayTagList=(Tag="Ability.Cooldown.Fury.Swing",DevComment="") ++GameplayTagList=(Tag="Ability.Cooldown.Grace.Dodge",DevComment="") ++GameplayTagList=(Tag="Ability.Cooldown.Shock.Electrocute",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Arcane.Blink",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Arcane.CrystalWall",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Fake.Five",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Fake.Four",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Fake.KillOverTime",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Fake.One",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Fake.Six",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Fake.SomeDamages",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Fake.Three",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Fake.Two",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Fire.Firebolt",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Fire.FireboltDot",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Fury",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Fury.Swing",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Grace",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Grace.Dodge",DevComment="") ++GameplayTagList=(Tag="Ability.ID.Shock.Electrocute",DevComment="") ++GameplayTagList=(Tag="CharacterClass.Elementalist",DevComment="") ++GameplayTagList=(Tag="CharacterClass.Ranger",DevComment="") ++GameplayTagList=(Tag="CharacterClass.Warrior",DevComment="") ++GameplayTagList=(Tag="CombatMontage.Attack.Mellee",DevComment="") ++GameplayTagList=(Tag="CombatMontage.Attack.Mellee.Reverse",DevComment="") ++GameplayTagList=(Tag="CombatMontage.Attack.Ranged",DevComment="") ++GameplayTagList=(Tag="CombatMontage.Attack.Spell",DevComment="") ++GameplayTagList=(Tag="CombatMontage.Attack.Spell.Channel",DevComment="") ++GameplayTagList=(Tag="CombatMontage.Attack.Spell.Incant",DevComment="") ++GameplayTagList=(Tag="CombatMontage.Attack.Spell.Throw",DevComment="") ++GameplayTagList=(Tag="CombatMontage.HitReact",DevComment="") ++GameplayTagList=(Tag="CombatSocket.Body",DevComment="") ++GameplayTagList=(Tag="CombatSocket.LeftHand",DevComment="") ++GameplayTagList=(Tag="CombatSocket.RightHand",DevComment="") ++GameplayTagList=(Tag="CombatSocket.Weapon",DevComment="") ++GameplayTagList=(Tag="Effects.Duration",DevComment="") ++GameplayTagList=(Tag="Effects.Type",DevComment="") ++GameplayTagList=(Tag="Effects.Type.Mellee",DevComment="") ++GameplayTagList=(Tag="Event.Montage.Channel",DevComment="") ++GameplayTagList=(Tag="Event.Montage.End",DevComment="") ++GameplayTagList=(Tag="Event.Montage.Hit",DevComment="") ++GameplayTagList=(Tag="Event.Montage.Incant",DevComment="") ++GameplayTagList=(Tag="Event.Montage.Throw",DevComment="") ++GameplayTagList=(Tag="GameplayCue.Fake.KillOverTime",DevComment="") ++GameplayTagList=(Tag="GameplayCue.Impact.FlyingRock",DevComment="") ++GameplayTagList=(Tag="GameplayCue.Impact.Punch",DevComment="") ++GameplayTagList=(Tag="GameplayCue.Impact.Spear",DevComment="") ++GameplayTagList=(Tag="GameplayCue.Impact.Sword",DevComment="") ++GameplayTagList=(Tag="GameplayCue.Shock.Burst",DevComment="") ++GameplayTagList=(Tag="GameplayCue.Shock.Loop",DevComment="") ++GameplayTagList=(Tag="Message.Burning",DevComment="") ++GameplayTagList=(Tag="Message.HurtEffect",DevComment="") ++GameplayTagList=(Tag="Message.Potion.Health",DevComment="") ++GameplayTagList=(Tag="Message.Potion.Mana",DevComment="") + diff --git a/Config/DefaultInput.ini b/Config/DefaultInput.ini new file mode 100644 index 0000000..c7c0f59 --- /dev/null +++ b/Config/DefaultInput.ini @@ -0,0 +1,85 @@ +[/Script/Engine.InputSettings] +-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) +-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) +-AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) ++AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) +bAltEnterTogglesFullscreen=True +bF11TogglesFullscreen=True +bUseMouseForTouch=False +bEnableMouseSmoothing=True +bEnableFOVScaling=True +bCaptureMouseOnLaunch=True +bEnableLegacyInputScales=True +bEnableMotionControls=True +bFilterInputByPlatformUser=False +bShouldFlushPressedKeysOnViewportFocusLost=True +bAlwaysShowTouchInterface=False +bShowConsoleOnFourFingerTap=True +bEnableGestureRecognizer=False +bUseAutocorrect=False +DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown +DefaultViewportMouseLockMode=LockOnCapture +FOVScale=0.011110 +DoubleClickTime=0.200000 +DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput +DefaultInputComponentClass=/Script/Aura.AuraInputComponent +DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks +-ConsoleKeys=Tilde ++ConsoleKeys=Tilde ++ConsoleKeys=Caret + diff --git a/Content/AssetPacks/EasyBuildingSystem/Effects/PS_CampFire.uasset b/Content/AssetPacks/EasyBuildingSystem/Effects/PS_CampFire.uasset new file mode 100644 index 0000000..7b6621f --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Effects/PS_CampFire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5d4a647b9eacedb03388e38d12c7e308e9f6d15cfe5e0b0fdcda69b7ce26bba +size 322880 diff --git a/Content/AssetPacks/EasyBuildingSystem/Effects/PS_Dummy_Campfire.uasset b/Content/AssetPacks/EasyBuildingSystem/Effects/PS_Dummy_Campfire.uasset new file mode 100644 index 0000000..3a1462d --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Effects/PS_Dummy_Campfire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:751135bc245e3d97a1f78f44d6863d0d37b8970cedd1765af8e68dff8e5f9c90 +size 21702 diff --git a/Content/AssetPacks/EasyBuildingSystem/Effects/PS_Dummy_Torch.uasset b/Content/AssetPacks/EasyBuildingSystem/Effects/PS_Dummy_Torch.uasset new file mode 100644 index 0000000..ec7bb1c --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Effects/PS_Dummy_Torch.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc88fd47fab54a0cd3eebc6916fdf3a2688ae5ffac18e362e27db12408194208 +size 18776 diff --git a/Content/AssetPacks/EasyBuildingSystem/Effects/PS_Dust.uasset b/Content/AssetPacks/EasyBuildingSystem/Effects/PS_Dust.uasset new file mode 100644 index 0000000..88d8f16 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Effects/PS_Dust.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54a13cd52de0a17c2170575c60dc4f2993a030e9d26733a1971b362c7304e1be +size 72153 diff --git a/Content/AssetPacks/EasyBuildingSystem/Effects/PS_TorchFire.uasset b/Content/AssetPacks/EasyBuildingSystem/Effects/PS_TorchFire.uasset new file mode 100644 index 0000000..8ae5c78 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Effects/PS_TorchFire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d47920aa0ea6c49d982585954f03fce7a114984e5cc798d16789008bdd1dc4b +size 325733 diff --git a/Content/AssetPacks/EasyBuildingSystem/Effects/PS_Wind.uasset b/Content/AssetPacks/EasyBuildingSystem/Effects/PS_Wind.uasset new file mode 100644 index 0000000..59f8171 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Effects/PS_Wind.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e982bfef657ee406f3655048a8631852e0d9c0e4682175b24450af31c52e6c3a +size 32175 diff --git a/Content/AssetPacks/EasyBuildingSystem/Effects/VF_Noise.uasset b/Content/AssetPacks/EasyBuildingSystem/Effects/VF_Noise.uasset new file mode 100644 index 0000000..c65b993 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Effects/VF_Noise.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f8d5c99ad4cf59ecd65260e17adddf213683bcefa30b9dce94b0cf010560939 +size 2099035 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Cliff_001.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Cliff_001.uasset new file mode 100644 index 0000000..993606d --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Cliff_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de24e1d3ae3c256b02e4c54f9946b2a3f10783c943dbccfa8ec0ca702faac0b9 +size 9276 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Cliff_002.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Cliff_002.uasset new file mode 100644 index 0000000..29dcbbb --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Cliff_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c644566b40b04b9a290c9c05b7de39feadc1b55c4a95a22f90de5a5540ab0f9 +size 9692 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Cliff_003.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Cliff_003.uasset new file mode 100644 index 0000000..0ebd99f --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Cliff_003.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7497220cf978f4ee4b973403ecca2958274c715d3579cc0dd452570864a5705d +size 9814 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Cliff_004.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Cliff_004.uasset new file mode 100644 index 0000000..64cea42 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Cliff_004.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78c6ed48aef8c366e0fd434e07b5f319fa192338c8c9bab01915fd09b7ea64e8 +size 9554 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Fern_001.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Fern_001.uasset new file mode 100644 index 0000000..1ecee24 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Fern_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8414b4aac3cb2add64e7533e9c7bdc4ba02134607b0a167b74a76225cc982e34 +size 94316 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Flowers_001.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Flowers_001.uasset new file mode 100644 index 0000000..671898d --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Flowers_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2ede37b92e79956f18a7d69f917e23cd429defc4debb3e8b9f47ffca9220bec +size 82372 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Flowers_002.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Flowers_002.uasset new file mode 100644 index 0000000..682613a --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Flowers_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:127d6de4b4204c6c6f58c2819ac6e20d0e88a2ecfbd21cd864806cc758f4c764 +size 6568 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Grass_001.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Grass_001.uasset new file mode 100644 index 0000000..42c46e4 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Grass_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:901053cb65eceae6c6768b468c592b1964d33c7f46819ab36f553a36716551d2 +size 90474 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Grass_002.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Grass_002.uasset new file mode 100644 index 0000000..4ae5f04 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Grass_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edd4e0493ad0da7ebcd6e0bb0b381385852259b1a24cd5cb23b738780b68e282 +size 102292 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Grass_003.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Grass_003.uasset new file mode 100644 index 0000000..be271a5 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Grass_003.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:196e26e350c01dab8ee869d7c9b56126f0d556c1bd139b1dd2e341c4f044b160 +size 96018 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Roots_001.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Roots_001.uasset new file mode 100644 index 0000000..5e9bedd --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Roots_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02396042e871e418aec153e5fa3e442405290d52a596009e7b9b0eab833c9de5 +size 97402 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_001.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_001.uasset new file mode 100644 index 0000000..6bad99c --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64cf16ed08a44a56ca4c0b58fb65bd7c773cb9a985592b44ad9e32d0159e99d1 +size 107209 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_002.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_002.uasset new file mode 100644 index 0000000..f5b344a --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1ca758dbe921816daf84c2923823ee027eb8bc845b115102c3d6e702f0f1f78 +size 113503 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_003.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_003.uasset new file mode 100644 index 0000000..c82aba5 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_003.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5216405b27431610bbc3b927da464e5433876f167240047c4c93f8a4b22b7a08 +size 104194 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_004.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_004.uasset new file mode 100644 index 0000000..fdc6024 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_004.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bad03c87904ea85d524b03881e2dda483355e8acf5939edea8aaaf706039a8fe +size 94679 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_005.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_005.uasset new file mode 100644 index 0000000..d896c96 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_005.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88502d8509bfc5f436388a4cd377c9a3185b18297c4603dcf9d1f7c1911250a0 +size 91551 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_006.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_006.uasset new file mode 100644 index 0000000..cc68bef --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_SmallRock_006.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61ba0c2b27508592a43a06bf91bd3069ca818f7112d051fe1695a102117697b2 +size 101839 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Tree_001.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Tree_001.uasset new file mode 100644 index 0000000..3ed66dd --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Tree_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:569ec01e8c02ea2c8067976ec42e7a9320aa59861aa0bf9b55e80d299d12d654 +size 107234 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Tree_002.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Tree_002.uasset new file mode 100644 index 0000000..44612c7 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Tree_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7f325903f1e2cca77925db86236405b9e57ccb73836da6a270db8edeb11124e +size 104561 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Tree_003.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Tree_003.uasset new file mode 100644 index 0000000..2ad2ca7 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Tree_003.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd3b9832e75d50cba8b160239e767a39b710aaae0869b18d8908dca2bd31ad11 +size 107519 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Tree_004.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Tree_004.uasset new file mode 100644 index 0000000..34d8b6b --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/FT_Tree_004.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20338e5ce650ec66aca31d698afcce28f56b3009e66e985aef5ae749baddb5e7 +size 107304 diff --git a/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/LG_Grass_001.uasset b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/LG_Grass_001.uasset new file mode 100644 index 0000000..f86c4ae --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/FoliageType/Stylized/LG_Grass_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b88f02215591a096a77b3147ad39fef2c57d839aca1728c84f62988f5e48051c +size 4045 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Collections/MPC_Wind.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Collections/MPC_Wind.uasset new file mode 100644 index 0000000..0400ac1 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Collections/MPC_Wind.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b11bb6f99ff9a22e1c2bdc245e7b291d7f4113f5dc653d7f2e48c7dc15fe19a5 +size 2186 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Distance.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Distance.uasset new file mode 100644 index 0000000..a27cd1d --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Distance.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85738fbd8ea804512d3ef3d19e42705cc5a1adc1a53376e98ab77010ab3bed5b +size 103510 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Distance_Fade.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Distance_Fade.uasset new file mode 100644 index 0000000..2be5c96 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Distance_Fade.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4820dd1047545823b7aaf06ca2ce39bdfe0de65ae3283e8d9ea4781432b0a30e +size 109321 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Dithering.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Dithering.uasset new file mode 100644 index 0000000..6916d53 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Dithering.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ba48d81d487062925943d04fd54dbd1c1315a6352013c9e73aa2f81024d9d98 +size 106075 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Grass_Cover.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Grass_Cover.uasset new file mode 100644 index 0000000..4d50a50 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Grass_Cover.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ff37a1b52b84196c4240f9a565c5f3732d3833e5818294ee41ec3645cf07c28 +size 127986 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_L1_Slope.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_L1_Slope.uasset new file mode 100644 index 0000000..d128ba9 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_L1_Slope.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a00207c90a48021e9f8199258ded0640ca2398da6a49ff90b21151b5bce3837 +size 41480 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_L2_Grass.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_L2_Grass.uasset new file mode 100644 index 0000000..821986e --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_L2_Grass.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54b384256f4d18179a43d3842e56afa80a43de15c932312f79a2add688a8a6a6 +size 107896 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_L3_Dirt.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_L3_Dirt.uasset new file mode 100644 index 0000000..4104bd3 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_L3_Dirt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88dc6955839cfa6e60cd9ad4e9c9146371a64f06c9e9800e290bbc97ec519262 +size 45148 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Landscape_Lerp.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Landscape_Lerp.uasset new file mode 100644 index 0000000..9f722d9 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Landscape_Lerp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22d9a191c527f5dddb0bcbac4e662abbe9a6af12e3e1b23c7354b742fb6fe5a8 +size 116264 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Moss_Cover.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Moss_Cover.uasset new file mode 100644 index 0000000..c905cbc --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Moss_Cover.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e01603c3c8ec1a176a314da5723421d456026ef384e044692414012dcca6c607 +size 108120 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Moss_Cover_3DPoints.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Moss_Cover_3DPoints.uasset new file mode 100644 index 0000000..06e3584 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Moss_Cover_3DPoints.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af466ded18eafe3400c1232dadba8ac62a114eecdbd99ff04f66de11f696ac85 +size 137987 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Moss_Cover_Fade.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Moss_Cover_Fade.uasset new file mode 100644 index 0000000..d2c1861 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Moss_Cover_Fade.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fba33699a3484b9647c95e634287d253330381db3360415aa94d12d3812274f9 +size 124970 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Rocks_Detailing.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Rocks_Detailing.uasset new file mode 100644 index 0000000..06c7bc5 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Rocks_Detailing.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd39dc92598d26c1d6212aaf662ddb241cd6003cad92626ac61acf3d82e30e6f +size 127706 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Specular.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Specular.uasset new file mode 100644 index 0000000..d1623cd --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Specular.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c7cd0c4ed7919438049b9e34e544672d589b3981104edc354794aeeb48c0f05 +size 102590 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Texture_Sample_RMA.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Texture_Sample_RMA.uasset new file mode 100644 index 0000000..d94a5b8 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Texture_Sample_RMA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98b9d92a76e2f1cf2a2e0453da05a6335b6b9c2992e730d64b7c15f7d7293343 +size 108323 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Texture_Tune_RMA.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Texture_Tune_RMA.uasset new file mode 100644 index 0000000..5278cb2 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Texture_Tune_RMA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d97a6c6663eb1c5869245275a86ad1b6f656fbe2172b292f5eb92e14dc9ebbf +size 117493 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Texture_Tune_RMA_Mask.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Texture_Tune_RMA_Mask.uasset new file mode 100644 index 0000000..48cae08 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Functions/MF_Texture_Tune_RMA_Mask.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cccef6ef7e26cc2b978d453d3a03afead981cdc8d451481f187d980198c9b50d +size 125358 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Effects/MI_Fire_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Effects/MI_Fire_001.uasset new file mode 100644 index 0000000..1f425a4 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Effects/MI_Fire_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47763e5907ce85911b34c19952618b10d74e8db714cb70b3fbf10d4144391949 +size 111209 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Effects/MI_Fire_Wave_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Effects/MI_Fire_Wave_001.uasset new file mode 100644 index 0000000..c2c50fd --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Effects/MI_Fire_Wave_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d30e6fa93602c4d8a141494cd793ee066e567d4bdbad54aa55b7d3b9d4d1bf4 +size 78440 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Effects/MI_Fire_Wave_002.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Effects/MI_Fire_Wave_002.uasset new file mode 100644 index 0000000..b1ac274 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Effects/MI_Fire_Wave_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec5c9c5d930a65dd63595dbfff6a4c0720c343b382d886ad195dfe3b6276cd5b +size 90300 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Cliff_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Cliff_001.uasset new file mode 100644 index 0000000..49d70e1 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Cliff_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:befb9c1ecd387d2bb244c8720870b979d1a655371a719f3acd0e8d702f4017b7 +size 20410 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Cliff_002.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Cliff_002.uasset new file mode 100644 index 0000000..272cdda --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Cliff_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14eefb1d2c8b0b94c7c43ba215d21b1a53b82de64e275f3424130911e8f9d3e1 +size 173782 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Cliff_003.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Cliff_003.uasset new file mode 100644 index 0000000..fb079f5 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Cliff_003.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09ff26ef03c68c87254d33e35145d2d58bf691ecd96fecb84463d2c4b457ce97 +size 21672 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Flowers_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Flowers_001.uasset new file mode 100644 index 0000000..3d0af5b --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Flowers_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c74151b6d303c91965817b8f3fc0449da81ddd906e706863934cc02f5056613 +size 131054 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Grass_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Grass_001.uasset new file mode 100644 index 0000000..e02f1b6 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Grass_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3be74626c56e635b2d1f3730b34923948b42b3f1f1bda022db7696d342d4b12e +size 144898 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Grass_002.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Grass_002.uasset new file mode 100644 index 0000000..dc4d33e --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Grass_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e869368324b05d0770438958856bfe2f2312c7f2588d4d35dd33b202da44fb3e +size 17977 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_RockPile_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_RockPile_001.uasset new file mode 100644 index 0000000..dad58d4 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_RockPile_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30a2f2c6e8732330a00e5e5e061dd828bc29f5bb14d26fd84e9d1f9654275744 +size 175690 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_SmallRocks_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_SmallRocks_001.uasset new file mode 100644 index 0000000..4be5cd4 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_SmallRocks_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82692fdd708610c826d0507e7e23964d6f7f68810b6de8531b5fe675a23ced58 +size 169306 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Bed.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Bed.uasset new file mode 100644 index 0000000..e30f465 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Bed.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6e033bfb54aa4c83f517bfb1bd9585851e8ddf831a475f1294f2ffbc5699e12 +size 140610 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Fern_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Fern_001.uasset new file mode 100644 index 0000000..d1de279 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Fern_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba98031b2f50c243937838f2e34c1be26bc03a5d05256c2a6b5743577d9a59f1 +size 147838 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Landscape.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Landscape.uasset new file mode 100644 index 0000000..66e5eb9 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Landscape.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb05260ca6cac7c52dbb520d4d0d91909fbc9b9913ef5fc7c8a8407aeed8ba14 +size 92081 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Props.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Props.uasset new file mode 100644 index 0000000..d8da476 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Props.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3a2b653a43f546a85c05c436dea8d510ee2437a76e73faefaff439a34972fd5 +size 115222 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Structures_Doors.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Structures_Doors.uasset new file mode 100644 index 0000000..4bdc9da --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Structures_Doors.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46098c9a5ca77792d3e6eca53b229d1c552a3934b5df26f4b3b26b850dcd184a +size 144424 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Structures_Wood.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Structures_Wood.uasset new file mode 100644 index 0000000..2a8d27f --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Structures_Wood.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c824d33dca78fe8f6af2a2736ec31b6b4dc1f45176e41d8c5f45935130695d8 +size 17200 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Structures_Wood_LOD.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Structures_Wood_LOD.uasset new file mode 100644 index 0000000..5d30095 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Structures_Wood_LOD.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a11ddde19f3efc7a365ab967ee7d8b27b8eb4549549a5437642af18d63209792 +size 146584 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Structures_Wood_Roof.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Structures_Wood_Roof.uasset new file mode 100644 index 0000000..06ca0a1 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Structures_Wood_Roof.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a7ceadb03535efcd19b9dc62bdbddba7c0dbdf6af54a87140410b16e6b92612 +size 147108 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Tree_Bark_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Tree_Bark_001.uasset new file mode 100644 index 0000000..876b877 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Tree_Bark_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77888a8673ad60c091da4859592bbd36cc4b633f7e5ba350c44db5cb432f559a +size 151969 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Tree_Branch_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Tree_Branch_001.uasset new file mode 100644 index 0000000..bba4879 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Instances/Stylized/MI_Stylized_Tree_Branch_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08c005303b75739bc1165a32a416feef25381a167e9738cd2582417a54fb9007 +size 134931 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Dummy/MM_Dummy_Particle.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Dummy/MM_Dummy_Particle.uasset new file mode 100644 index 0000000..96adde2 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Dummy/MM_Dummy_Particle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f51d61d904d0e2fa3c53bfb68444a6286c8f1f28b4af7fde4a1b8a8c9642125 +size 83575 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Dummy/MM_Dust.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Dummy/MM_Dust.uasset new file mode 100644 index 0000000..f6e9ccf --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Dummy/MM_Dust.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43e2a20422df9ad4b009f76071b2110ede38ff809856ea61d635e95465a55aed +size 8705 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Dummy/MM_Wind.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Dummy/MM_Wind.uasset new file mode 100644 index 0000000..2656bc9 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Dummy/MM_Wind.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:893038e0edafaf0de9e8fdbeaf795d0bed61e4a09ec03d364b4bef319b9e31c0 +size 76134 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Effects/MM_Fire.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Effects/MM_Fire.uasset new file mode 100644 index 0000000..350732a --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Effects/MM_Fire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f3897d63af05999c3065843bdf24b9cb440f1b953ec478c3ec021ae17e42fde +size 118884 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Effects/MM_Fire_Embers.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Effects/MM_Fire_Embers.uasset new file mode 100644 index 0000000..3b4830e --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Effects/MM_Fire_Embers.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:509dc16c2e70655996ba7e42540d6395e7b6561a79fa1d37e6ba036b59d691ee +size 77894 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Effects/MM_Fire_Wave.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Effects/MM_Fire_Wave.uasset new file mode 100644 index 0000000..98d66c1 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Effects/MM_Fire_Wave.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c394e91bd36d6d4219ff8d1c6665759f63ad493c5110dea09a5e602af35f0ceb +size 101551 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Foliage.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Foliage.uasset new file mode 100644 index 0000000..a868874 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Foliage.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a0034dbc2b3db9265765a704baa07fce171a51b1cf7abc35138de2d427dddd4 +size 35901 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Grass.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Grass.uasset new file mode 100644 index 0000000..3a56bd2 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Grass.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56b16487c3197834a5db149606ea0cd1762c583c81cda0ac93030afffc087347 +size 31427 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Landscape.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Landscape.uasset new file mode 100644 index 0000000..3e9f12d --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Landscape.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:113809cfabccea57c30bd0759396600419532e91a295d5524a87f6bd62116af4 +size 31580 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Rocks.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Rocks.uasset new file mode 100644 index 0000000..b50faa4 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Rocks.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b5c09d99df7b2f75821ecfde33a6b8688e36ed96c6a7b0e30395b32e3af00ba +size 41122 diff --git a/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Structures_Base.uasset b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Structures_Base.uasset new file mode 100644 index 0000000..2d891da --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Materials/Masters/Stylized/MM_Stylized_Structures_Base.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5560b7d755b2b8990d1f915bcf86bf926a2683229c521e78c2fb985de87512f +size 25582 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Fern_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Fern_001.uasset new file mode 100644 index 0000000..ab9dff2 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Fern_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67808061140fbbcf9325ef09b5ac232fb445d3035b8ab69bf8080c6e3a4c65b6 +size 81424 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Flowers_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Flowers_001.uasset new file mode 100644 index 0000000..16b0061 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Flowers_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77fe9693c1a4ba21930876937a21d9aaa020db52e1d28ea7c557d8608a8355fe +size 21174 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Flowers_002.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Flowers_002.uasset new file mode 100644 index 0000000..57dfab2 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Flowers_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b514b66be7f853d15c72e7e3832e14c6600e087eb9216a4f11615217d9e654ad +size 21136 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Grass_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Grass_001.uasset new file mode 100644 index 0000000..8a3aa45 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Grass_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:378a8422dd73a92d3e1345644334dd7b8be00f5d375a8605250fd8ffbae68197 +size 30293 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Grass_002.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Grass_002.uasset new file mode 100644 index 0000000..a46ee6c --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Grass_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57bbb9e4a75685e096ff7ab97e836c3b081565391207319b7c9d3c9816a326e2 +size 40316 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Grass_003.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Grass_003.uasset new file mode 100644 index 0000000..1185f7b --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Grass_003.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:633d067429e6bc3fa852da319b7a0c61c5c246b2ab4b43fd787a9723dc1abdb8 +size 28194 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Roots_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Roots_001.uasset new file mode 100644 index 0000000..d159adb --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Roots_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:153c51b8d73e904c3743d3f7d7cc478240f815d28734fad35776534b0e157d1b +size 43506 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Tree_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Tree_001.uasset new file mode 100644 index 0000000..6a34023 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Tree_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:faf2f5684d835c2795b7ef34c82f64e0297d5d0c5ff798fa0165fa11b989733b +size 190674 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Tree_002.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Tree_002.uasset new file mode 100644 index 0000000..d964ae4 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Tree_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9efcf09f6d035b6474a9be69fb03961b353624876da1f5154e8f8fd42fd18de +size 177022 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Tree_003.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Tree_003.uasset new file mode 100644 index 0000000..2328a0d --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Tree_003.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:297d327d96d221438c9bc76a92a83f1496c3cbacda2446be0cf15f000de42a4a +size 200661 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Tree_004.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Tree_004.uasset new file mode 100644 index 0000000..a6ff42b --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Foliage/SM_Tree_004.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:972c1ecc08a9ee7023d0bca2e095ccf5bbaff9a6e3187958087794dc29b6b586 +size 128815 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_Cliff_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_Cliff_001.uasset new file mode 100644 index 0000000..013ef61 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_Cliff_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c76a708bc7149e89e8a8801dbc0d661fe3460e168cf13d07f85b91bf987d2d61 +size 323857 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_Cliff_002.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_Cliff_002.uasset new file mode 100644 index 0000000..6b0746f --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_Cliff_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e08c4bd7ad520943181cf654773adac388023e2c044df982d8acfb2d455867a +size 74237 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_Cliff_003.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_Cliff_003.uasset new file mode 100644 index 0000000..6a44fb0 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_Cliff_003.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0600eb98b99cf34f8c623e7529941b75c287107385d8f0db41b9f8faa408ebd0 +size 74193 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_RockPile_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_RockPile_001.uasset new file mode 100644 index 0000000..5e2af6e --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_RockPile_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccb8ae788a8a11703ae6afcceba6c74e828a779b273a8f5e59bf3363fbdfc394 +size 93195 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_001.uasset new file mode 100644 index 0000000..b4aa347 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b42c331d029b2adbbdfef732fb219fb9447196245e778314b4e03cd592ad8f5d +size 25633 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_002.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_002.uasset new file mode 100644 index 0000000..bd0e42b --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c190179ab3ac2fb66255232a89289989d8dc72c38d00b9d7224c61151c44a138 +size 25134 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_003.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_003.uasset new file mode 100644 index 0000000..3db9ec3 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_003.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b55f3e8a38fcca2cd75c35c694806cee73877ca11d5485c0e5fda2018edd8769 +size 23500 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_004.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_004.uasset new file mode 100644 index 0000000..41a5694 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_004.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a517aa71a05dc95dec3d4fa2030bdcec1cecec7b1c847d00f110a7ec946cde3 +size 23789 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_005.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_005.uasset new file mode 100644 index 0000000..ef592b0 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_005.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94403334c6cf77b8de7723820f8e8673a1a3ade17f2509204d9cee6f0db83cec +size 22672 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_006.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_006.uasset new file mode 100644 index 0000000..c1c9bf5 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Environment/Stylized/Organic/SM_SmallRock_006.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c29428e9f7128270a6e7ecef0ca922d5242563db774c3055f287d8c598cba659 +size 22902 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Props/Stylized/SM_Stylized_Bed.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Props/Stylized/SM_Stylized_Bed.uasset new file mode 100644 index 0000000..6a14286 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Props/Stylized/SM_Stylized_Bed.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a58e518a95074d9ac43806779e91730c94c0416a197a623742ed0a66addfe1c6 +size 135213 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Props/Stylized/SM_Stylized_Campfire.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Props/Stylized/SM_Stylized_Campfire.uasset new file mode 100644 index 0000000..749e0a0 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Props/Stylized/SM_Stylized_Campfire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1680b22bded05746d45286e0d817069092eb5dce5c21169f9f3d805f4c808514 +size 51967 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Props/Stylized/SM_Stylized_Torch.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Props/Stylized/SM_Stylized_Torch.uasset new file mode 100644 index 0000000..58b3f5e --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Props/Stylized/SM_Stylized_Torch.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:447aa228bd94f1a7cbbec4b31a7ffcf3a90f0b9ba599ba4ed883b07782bac0ce +size 34021 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Ceiling.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Ceiling.uasset new file mode 100644 index 0000000..e9e6b7e --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Ceiling.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c22855f061e3309aa12f8dbc6a92bf66e8fddb242d0e277d573d72ad27c8767 +size 40390 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Door.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Door.uasset new file mode 100644 index 0000000..f281b96 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Door.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f19a949c3ff3aa1e3a2e42a181ef788fe0dbde58bb05137ac35af9756502ab4c +size 58658 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Doorframe.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Doorframe.uasset new file mode 100644 index 0000000..4f6561c --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Doorframe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae55e202f2eb7a4d4ba80454e0c8113e01c02a7ffef4dd953da8a566d618f961 +size 66000 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Fence.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Fence.uasset new file mode 100644 index 0000000..dc6eb99 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Fence.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d525b64c9e0316f09e589daee9233c2a24076f4fd0033dcd6a2f850bd6f4b8e +size 36170 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Foundation.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Foundation.uasset new file mode 100644 index 0000000..3e3474c --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Foundation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9958fe3f3d66a2cbac6b250537a07acdaca8ca44f6fdad3fd78ee0b45f16b5b8 +size 72748 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Half_Roof.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Half_Roof.uasset new file mode 100644 index 0000000..0653364 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Half_Roof.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6786358ae24623515e98fea26d357e75131036f6a053dbd5b33157e782273d78 +size 79402 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Ramp.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Ramp.uasset new file mode 100644 index 0000000..4adccf7 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Ramp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62cebac1b5f40460b3a75f81f14cfa38623711428b007cfdf2ab4e86611c0982 +size 49594 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Roof.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Roof.uasset new file mode 100644 index 0000000..2840852 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Roof.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a350ecb6647dcb245aa60eecdf143a7b40940c9a21dd6f5801f4a00ceda98fc +size 136101 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Sloped_Wall_Left.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Sloped_Wall_Left.uasset new file mode 100644 index 0000000..1db7d1d --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Sloped_Wall_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdddcabb156b43e18ad0862abaa2fb40c0e1ec2f217a6ed019eee41c5abc42af +size 55116 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Sloped_Wall_Right.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Sloped_Wall_Right.uasset new file mode 100644 index 0000000..5f295c1 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Sloped_Wall_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c76fb87acefd2c9dba616b595d37b64e8886d54a9312476696d5b71293ea5b33 +size 56404 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Stairs.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Stairs.uasset new file mode 100644 index 0000000..3a353aa --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Stairs.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff47b5587b47d83fc0c14b14c2d150db39bb437ea58c38901ef0d43b2cb16d87 +size 62859 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Triangle_Ceiling.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Triangle_Ceiling.uasset new file mode 100644 index 0000000..ac3c017 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Triangle_Ceiling.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83e527f4c83407bff7de41c67bd54479ed075913b3c3d61528f920218ed6ef4c +size 36238 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Triangle_Foundation.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Triangle_Foundation.uasset new file mode 100644 index 0000000..d93933c --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Triangle_Foundation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8f4860160199196af1133ea262e9a699dfb771a66627ba93d7db66d167f1bb0 +size 63570 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Triangle_Wall.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Triangle_Wall.uasset new file mode 100644 index 0000000..9ab0cab --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Triangle_Wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00cc9bc3f0197afddf58b6605e53959b592630e6640a21d46de84a2ef866307e +size 45587 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Wall.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Wall.uasset new file mode 100644 index 0000000..0def34b --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f973076d4c97841449f1f09f9a925e92707b5285d9216f4a4f4d43f071da1d35 +size 55897 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Window.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Window.uasset new file mode 100644 index 0000000..26fa413 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Window.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e809f64d7aedbd0319de2a0f2f8f3a3e3050a616cde80ffe83550b73300bbdb8 +size 39736 diff --git a/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Windowframe.uasset b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Windowframe.uasset new file mode 100644 index 0000000..746238e --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Meshes/Structures/Stylized/Wood/SM_Stylized_Wood_Windowframe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c42d4b50267cc0c4d9b2e3c9f89be13422847cdd941fb7987255068ca7037bd6 +size 68538 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Foliage_001_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Foliage_001_A.uasset new file mode 100644 index 0000000..7af0725 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Foliage_001_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:188b8f4b691b6d30a1604c190e890e01113babe7b0edbb7481d06ec3b437c0af +size 62735 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Foliage_001_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Foliage_001_N.uasset new file mode 100644 index 0000000..3a195f6 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Foliage_001_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35a1a2e0a74374751253ff0a317d0506b158f330b31b509eea8502f6407baa60 +size 69823 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Foliage_001_RMA.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Foliage_001_RMA.uasset new file mode 100644 index 0000000..5e3b61a --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Foliage_001_RMA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3b1d732140d0cbbdf61fb6ec03dd847bfad642baf39f6586f1bcca4939aa606 +size 44728 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tile_Bark_001_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tile_Bark_001_A.uasset new file mode 100644 index 0000000..13d647b --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tile_Bark_001_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2938f611bf8e94b3ec8166905de65c8d38ea7b586fae54ebb9fa5971bcfa719f +size 194541 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tile_Bark_001_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tile_Bark_001_N.uasset new file mode 100644 index 0000000..c111c52 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tile_Bark_001_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcf05adef9b7a9810a582a64e67b3e2b0c7ffff19f0b0219cafa3024f44d8cfa +size 92141 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tile_Bark_001_RMA.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tile_Bark_001_RMA.uasset new file mode 100644 index 0000000..4363c4a --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tile_Bark_001_RMA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3b8873c613faaebc4a99968a18dc274afce4f03d2153d9c048c5808091ff4ae +size 13205 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tree_Branch_001_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tree_Branch_001_A.uasset new file mode 100644 index 0000000..50f602a --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tree_Branch_001_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d347815dbcc7ccd447d14cdf21e61e01fca6d078795f1eda240a3af96820782 +size 466003 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tree_Branch_001_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tree_Branch_001_N.uasset new file mode 100644 index 0000000..3bde40a --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Foliage/T_Tree_Branch_001_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d56865097e0487c5175af09b254a9903f5d658b1a5cc96d052bfac7460efc75 +size 237408 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Dust_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Dust_A.uasset new file mode 100644 index 0000000..947664d --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Dust_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:476aefe86bdcb973bfcf7b83710df1df048e5c4fa083726a4cea3fdbac1016ee +size 6508 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Misc_Clouds_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Misc_Clouds_001.uasset new file mode 100644 index 0000000..e1e7dba --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Misc_Clouds_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0a3c3b554a6b3fab26dd8b9399253539a0a988086eee859516e2906e3c9c42a +size 89530 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Misc_Clouds_002.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Misc_Clouds_002.uasset new file mode 100644 index 0000000..e811c61 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Misc_Clouds_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f627dcae5d816cbeb3c23468bf7956d742535647d17d97a2c66eb0ce49f8c84 +size 59648 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Misc_Clouds_003.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Misc_Clouds_003.uasset new file mode 100644 index 0000000..4137f8b --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Misc_Clouds_003.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5ca3f29f5e00dfcb96c0055bfba06745fc25e44e765dea837f72c3767c71d77 +size 784754 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Misc_Clouds_004.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Misc_Clouds_004.uasset new file mode 100644 index 0000000..d241a4b --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Misc_Clouds_004.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d95295324be59f3dd58c40ad41ae36aef74624916393b6b29a9b652504a6c48 +size 57845 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Rock_Detail_001_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Rock_Detail_001_N.uasset new file mode 100644 index 0000000..42ed595 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Rock_Detail_001_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1620134ea99a6bc24fb10c79171147d4a6f979cc0fcb754d9075265c9c89f01 +size 1731836 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Rock_Detail_002_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Rock_Detail_002_N.uasset new file mode 100644 index 0000000..598bc9c --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Misc/T_Rock_Detail_002_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9e8379150559ef20753522f5edeea358a3b02eb1f7648cc7f4937b373c84b10 +size 1614409 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_001_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_001_A.uasset new file mode 100644 index 0000000..96a63bc --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_001_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b67afc2f0edf09c4e36250cf5f74e4f479c5886c3a1479c6c6457321a346b8f4 +size 1084782 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_001_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_001_N.uasset new file mode 100644 index 0000000..4b5c3b0 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_001_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f675afbe3f088d0cad83346772e9d92e8abc5c5da0cf83beac3ff81438ed83fa +size 1390658 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_001_RMA.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_001_RMA.uasset new file mode 100644 index 0000000..86b893c --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_001_RMA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59944ee5d4cb37b5c35661b501a2fb8df248ca93863c8d42afca82238bce677f +size 824258 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_002_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_002_A.uasset new file mode 100644 index 0000000..e4b4406 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_002_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba9d892e07cccd9e14596b132e19237b39b2c4ca3e25cbfceff6694d296c5cf4 +size 1082333 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_002_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_002_N.uasset new file mode 100644 index 0000000..b8a95ec --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_002_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52fcd3c2e4be5ec66f1979e21f1d45a5398b267b55ba614e1046eff6b5a25133 +size 1340189 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_002_RMA.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_002_RMA.uasset new file mode 100644 index 0000000..3377959 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_002_RMA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32137a72a3e69cb17573dba0111a4503a3e79dbddf442cd030d91d65e6450057 +size 778117 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_003_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_003_A.uasset new file mode 100644 index 0000000..90c5376 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_003_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86dd4b57b5c68e946c85a3b0613fa326fdb5ea15e879b6e20066cc1557a62f23 +size 1191839 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_003_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_003_N.uasset new file mode 100644 index 0000000..b381bd4 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_003_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06a43bf127947a6f08f349583937cbf5b1ffd589c4b2ff1f591244dcdc39cf68 +size 1875822 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_003_RMA.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_003_RMA.uasset new file mode 100644 index 0000000..4dc8e43 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_Cliff_003_RMA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53d9518b0a1348110a22825e82a6e6b2dfecaae61523466ecf10159602af893e +size 1478359 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_RockPile_001_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_RockPile_001_A.uasset new file mode 100644 index 0000000..f31dbd5 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_RockPile_001_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3408a70d2d311a41502f7b5a413cdf25d4f2a1152eb347a192ac3e1dff545b61 +size 1351459 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_RockPile_001_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_RockPile_001_N.uasset new file mode 100644 index 0000000..c8b9118 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_RockPile_001_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53cb3b768dd92ada6e989e4f6ef424077370ea766b5f0d163de2583c1ad21620 +size 1260229 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_RockPile_001_RMA.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_RockPile_001_RMA.uasset new file mode 100644 index 0000000..9e2b4c3 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_RockPile_001_RMA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cc4675323825ec46341b9dcfd5718bef35d05f7c0604d881de5812e2eb03356 +size 693039 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_SmallRocks_001_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_SmallRocks_001_A.uasset new file mode 100644 index 0000000..9d0b9b8 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_SmallRocks_001_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:330f76d8fb6be3a91c181c76580c4ac51e6b5afd60bd662168ae6c7e48a86344 +size 333839 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_SmallRocks_001_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_SmallRocks_001_N.uasset new file mode 100644 index 0000000..5681a93 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_SmallRocks_001_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a6a364c3a21bd0861f0516546d1b4dcfb1708c02cfbbfa69102d26d2e1b573a +size 377134 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_SmallRocks_001_RMA.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_SmallRocks_001_RMA.uasset new file mode 100644 index 0000000..353b24e --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Organic/T_SmallRocks_001_RMA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16b575f945d5171db794dcb4ee2c9f342505946f8ab61e5cbb139f0047360f73 +size 154931 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Grass_001_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Grass_001_A.uasset new file mode 100644 index 0000000..39c2469 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Grass_001_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b76d54872807ba57e95a516c4bca50210015db028f972f9ccb66c53e777a2e45 +size 379138 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Ground_001_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Ground_001_A.uasset new file mode 100644 index 0000000..2966436 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Ground_001_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6d8ef2efe6fadd10448f06f0efa786b7777815b101832811044c4f809d962d8 +size 452702 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Ground_001_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Ground_001_N.uasset new file mode 100644 index 0000000..60f152f --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Ground_001_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d44df1540d19abfae7e87f5648ffdfe03dc37ebb6c49ced177f3538ed9cb1b9 +size 552496 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Ground_001_RHA.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Ground_001_RHA.uasset new file mode 100644 index 0000000..9ef3d7e --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Ground_001_RHA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df7a8237d3bf3fa86a3678fae74d9967563dfe4ef45635030b0fcafc1f62c82a +size 36588 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Rock_Cracked_001_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Rock_Cracked_001_A.uasset new file mode 100644 index 0000000..3f4d902 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Rock_Cracked_001_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae949cc3b7dd714e29efcecbc6e32f0cff1fb46746bb1eb340140398a630208b +size 1346531 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Rock_Cracked_001_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Rock_Cracked_001_N.uasset new file mode 100644 index 0000000..89917dc --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Rock_Cracked_001_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a894adcb7fc70a1e7e491272f9aa51e82a596720c7596ef9e38eaa6ea213591c +size 1237999 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Rock_Cracked_001_RHA.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Rock_Cracked_001_RHA.uasset new file mode 100644 index 0000000..8a51582 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Environment/Stylized/Tiles/T_Tile_Rock_Cracked_001_RHA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ce32b403a6326347cc9e9947aeca6dfbee468374198f4ea08f31425e3828bae +size 1142378 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Misc/T_Fire_001.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Misc/T_Fire_001.uasset new file mode 100644 index 0000000..d3aa53a --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Misc/T_Fire_001.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bfdfba7a5832acdc9271b6f926a8459e5cb55c140143c4348d3d0e09b89e3d41 +size 49410 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Misc/T_Fire_002.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Misc/T_Fire_002.uasset new file mode 100644 index 0000000..73bbe88 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Misc/T_Fire_002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c0a3168a37166d24cfd43a01d3835edef5aab21ba9c758062382131291b71f5 +size 100396 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Dummy/T_Dummy_FireParticle_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Dummy/T_Dummy_FireParticle_A.uasset new file mode 100644 index 0000000..b443fb3 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Dummy/T_Dummy_FireParticle_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7feb11d33259706aedcf1782c85391faa2a38a9f206768ec76dcdda9b39c167a +size 9039 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Door/T_Stylized_Structures_Doors_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Door/T_Stylized_Structures_Doors_A.uasset new file mode 100644 index 0000000..5a1db43 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Door/T_Stylized_Structures_Doors_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90155032ede9bbe85af58b82542029bbb8fe1cdce0d66f7e6d205fbe9eb86972 +size 955734 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Door/T_Stylized_Structures_Doors_Mask.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Door/T_Stylized_Structures_Doors_Mask.uasset new file mode 100644 index 0000000..9e65f51 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Door/T_Stylized_Structures_Doors_Mask.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fabb7f0a407064f4696622de15b22d69d21db8d5a2835b7ffd6817bbfcb21ea9 +size 14146 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Door/T_Stylized_Structures_Doors_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Door/T_Stylized_Structures_Doors_N.uasset new file mode 100644 index 0000000..a4ba612 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Door/T_Stylized_Structures_Doors_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b957a9b2b84b323831c21b75fabd4c94439f2c190d4b220c6d04fdbcfa03be8b +size 333358 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Door/T_Stylized_Structures_Doors_RMA.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Door/T_Stylized_Structures_Doors_RMA.uasset new file mode 100644 index 0000000..732223a --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Door/T_Stylized_Structures_Doors_RMA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5aa2e78525f117d8a03a90c0559b9a4e50833366c0361d7dbb079873d1b70c37 +size 227718 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Metal/T_Stylized_Structures_Metal_Mask.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Metal/T_Stylized_Structures_Metal_Mask.uasset new file mode 100644 index 0000000..11a703c --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Metal/T_Stylized_Structures_Metal_Mask.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:046aea0b92370d2127adf91ed891127e3d09c1a0490ee7126d001411e1d03812 +size 11393 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Bed_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Bed_A.uasset new file mode 100644 index 0000000..a9d1971 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Bed_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e95221db583a3fad18c5fcf38dde94530a1b82326c5cd7394007ea1e963cb811 +size 1117598 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Bed_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Bed_N.uasset new file mode 100644 index 0000000..d1a9a65 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Bed_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03227f624ba2680f393ffc1758413b10021294c537ddfe312b92c7cfad309587 +size 361508 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Bed_RMA.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Bed_RMA.uasset new file mode 100644 index 0000000..1297dc9 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Bed_RMA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd86d1204f37a821743ff07a470db1f067de6ac626d40d03759b06fb87ae9db8 +size 161767 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Props_001_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Props_001_A.uasset new file mode 100644 index 0000000..c46db7f --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Props_001_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3fbe4a00a755d56c8764470438d4d26a0add6e5bfdf295595b83b71da5f9660 +size 788929 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Props_001_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Props_001_N.uasset new file mode 100644 index 0000000..23c8e12 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Props_001_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4ff5013377377d554ca89b227550c0cf8781ba2acb88ad13148beb8e27aea6d +size 318318 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Props_001_RMA.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Props_001_RMA.uasset new file mode 100644 index 0000000..884dd11 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Props/T_Stylized_Props_001_RMA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80ba6cc4000cd044f5118aea90620c99cd8d4581bb56202126150f6ee9c47072 +size 163297 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_A.uasset new file mode 100644 index 0000000..c708eb8 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc3c7852b3014a839116d16b0579ff2dfb8d1c5138f7d9f92c13cb480c4a190f +size 908230 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_LOD_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_LOD_A.uasset new file mode 100644 index 0000000..10ef897 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_LOD_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ada4b09b105bf1c6eefff548f12bea7d299b114150999ba512716a7541a5aca +size 324396 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_LOD_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_LOD_N.uasset new file mode 100644 index 0000000..6f90f5b --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_LOD_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:544594b15260733c2723dc0f9bdd661bc5aaa7146dd60c9854ef03dfe7d39dea +size 109273 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_N.uasset new file mode 100644 index 0000000..ed893a5 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8207263a4093235477d4b7cd0f088feb852784c4aec466fcb3e5f6ce30f0e2af +size 390110 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_RMA.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_RMA.uasset new file mode 100644 index 0000000..92ac388 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Structures/Stylized/Wood/T_Stylized_Structures_Wood_RMA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e787cd0a2370f5efe28c41d4668d4b61cc9e66b0731d29657f91de71669ff44c +size 183231 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Utility/T_Utility_A.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Utility/T_Utility_A.uasset new file mode 100644 index 0000000..99d2185 --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Utility/T_Utility_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ba13b633ae23d8a12a3329bc3508786f66e086698eb17a4aaa58fdcac704fb0 +size 3627 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Utility/T_Utility_M.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Utility/T_Utility_M.uasset new file mode 100644 index 0000000..49cfbbb --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Utility/T_Utility_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b8ab96c434c9fd9cd7298feab8281bdef3dbc5627ed112fc5217939a920a008 +size 3807 diff --git a/Content/AssetPacks/EasyBuildingSystem/Textures/Utility/T_Utility_N.uasset b/Content/AssetPacks/EasyBuildingSystem/Textures/Utility/T_Utility_N.uasset new file mode 100644 index 0000000..c6697dd --- /dev/null +++ b/Content/AssetPacks/EasyBuildingSystem/Textures/Utility/T_Utility_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17d11602713ff5893a6b810918b9442bca4c83df1629d8c7413e41c5fba1975b +size 3941 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_Bed_01a.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_Bed_01a.uasset new file mode 100644 index 0000000..dc91bcb --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_Bed_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e83b61a210bc337d791f423c723eda8715c65f3cb6ef88433d8a44eb5d439b44 +size 139275 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_Bed_Pillow_01a.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_Bed_Pillow_01a.uasset new file mode 100644 index 0000000..0a9bf2f --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_Bed_Pillow_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a49a1cf012a21d9762d8e180e4f5ef78cca571d54045508cd1e2ce778813dfb3 +size 123734 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_armchair_01.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_armchair_01.uasset new file mode 100644 index 0000000..e968926 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_armchair_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b862e37651bd1e8ff26d672142a70fdb677bb0e752305b9e521ce1f0c853990d +size 137041 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_barrel_01.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_barrel_01.uasset new file mode 100644 index 0000000..e72b27f --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_barrel_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13e10b356ff829c985cac02555ca1521dcb90496366a8457fc1ed05119d2ca0b +size 146102 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_books_01.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_books_01.uasset new file mode 100644 index 0000000..de018c3 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_books_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:086f37c67100f18cc17d8126bd37e83cfea68cfa910ce4082c0e76f8be510eb9 +size 141877 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_bookshelves_01.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_bookshelves_01.uasset new file mode 100644 index 0000000..ab04134 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_bookshelves_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e868fd6a1da02b0ec2a77d4609e460c7fe1af88424c18241b668647cedb3ac3 +size 128343 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_chandelier_01.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_chandelier_01.uasset new file mode 100644 index 0000000..bbca669 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_chandelier_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca6f29c335ba52890fab9c2b48ae8ecb3114416e5de10d488f88940a451ede50 +size 140791 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_chest_01a.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_chest_01a.uasset new file mode 100644 index 0000000..435c81b --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_chest_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fe9c3d71b2b03bdce52426578ff3702c059b74daceb0955d2a7342546d71f36 +size 140444 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_coins_01.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_coins_01.uasset new file mode 100644 index 0000000..2a3d4be --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_coins_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10959cb7268bff3a153dbd3516aa899fb94803e8a4f70900b2d702e57ea2b0b5 +size 142529 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_cupboard_01.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_cupboard_01.uasset new file mode 100644 index 0000000..d00a5a3 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_cupboard_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc2ae554becd5b928741fd9978b7cba250109d8b61d84b4ee31e4471b76c7a2b +size 128614 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_pan_boiler_01.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_pan_boiler_01.uasset new file mode 100644 index 0000000..88acf28 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_pan_boiler_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd0dc1b5d999c2e268e57cbe4931249779f5e79fd74a7c4c2c6a6dd30938514d +size 129574 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_stl_clock_01.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_stl_clock_01.uasset new file mode 100644 index 0000000..c434fdc --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_stl_clock_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:029c84232d49f5e828878b23777a240f2c34c0a40b7069b46b0250cdd9220fb7 +size 142242 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_table_01.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_table_01.uasset new file mode 100644 index 0000000..3f0f7d8 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Instances/MI_table_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78f36b2757892d1d47e2819342cbc211c011a3b3b2db9e6b8110980b9b789175 +size 133474 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Masters/GridMaterial_dbl.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Masters/GridMaterial_dbl.uasset new file mode 100644 index 0000000..2fa3224 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Masters/GridMaterial_dbl.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe7deb4eb26ab4b65d3249e1e2d56658cb56df3b9f98edb3796322d1cc232be1 +size 13954 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Masters/M_FireCandle_01a.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Masters/M_FireCandle_01a.uasset new file mode 100644 index 0000000..36f08f5 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Masters/M_FireCandle_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:577dae7060d393590cbc8961003c0e9a727e2d8febbb54efc8c8ad71f2a719d1 +size 88555 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Masters/M_Props.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Masters/M_Props.uasset new file mode 100644 index 0000000..feef53a --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Masters/M_Props.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4cd1a367842c4c6c32c260f53385fd34fe67fc5a8cd6e54a8e08f9f670d691f +size 155929 diff --git a/Content/AssetPacks/Furniture_Vol1/Materials/Masters/M_ToxicSmoke.uasset b/Content/AssetPacks/Furniture_Vol1/Materials/Masters/M_ToxicSmoke.uasset new file mode 100644 index 0000000..07684a1 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Materials/Masters/M_ToxicSmoke.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe1037c65df17402ff1765766263904922897ddebb1fd6bd5ebb4ad736bc730b +size 88065 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_Stl_clock_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_Stl_clock_01.uasset new file mode 100644 index 0000000..083d4c8 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_Stl_clock_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63d43728d633eee2edc6e4abbb50fcbee9549e02c401f9dc0b38c8f3e0386bf5 +size 298591 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_armchair_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_armchair_01.uasset new file mode 100644 index 0000000..ef93f39 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_armchair_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0924ce0ce9e44dae51d969eb1e6936227c3345ad368020689e630f9ebdebcd98 +size 101581 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bed_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bed_01.uasset new file mode 100644 index 0000000..cc8125a --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bed_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4c928aef37bf132c6a3f6c2412e05dd3061775edd4264cbfbcf52547e061a20 +size 179196 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bed_01a.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bed_01a.uasset new file mode 100644 index 0000000..37e65f3 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bed_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc3abff419cbf1fb7874d031de7675864c0afeeb62cd58fa2d1ddf2d74308007 +size 150776 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_blanket_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_blanket_01.uasset new file mode 100644 index 0000000..e12f859 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_blanket_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67b1ed97ad5320e1a48118d629b07c6a689a57da85a4cefaf737d4e9de0155d2 +size 54501 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_boiler_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_boiler_01.uasset new file mode 100644 index 0000000..2b33818 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_boiler_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e345341df60644aedf1a461069514dca06f379859b69bdc48476bb46ab42d137 +size 82010 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_boiler_01b.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_boiler_01b.uasset new file mode 100644 index 0000000..ee180b4 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_boiler_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac3fb4de3bf29710024eaa96067ea6b6da33be371fd2a3dd6917d491bda4973a +size 79345 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_01.uasset new file mode 100644 index 0000000..01723a4 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bd8968a14f8bd7c6059a28e33b6f25451e0df3e103e97c354358ad90d9f36d7 +size 64269 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_02.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_02.uasset new file mode 100644 index 0000000..9c64cd9 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df372380871d1fa171209ae4b267a9bfd01a480d89ba1ced081b4fe7451ec923 +size 56354 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_03.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_03.uasset new file mode 100644 index 0000000..a19e129 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3278173a8df54d2056db846d3c96ff25273ea96efd42ba9e7541500827ab40ba +size 41803 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_04.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_04.uasset new file mode 100644 index 0000000..e23cb9c --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_04.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1620035ec4073f16ec96d81ee6b57c6b5daf82eff852706b721906d0711da361 +size 31958 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_05.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_05.uasset new file mode 100644 index 0000000..1958870 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_book_05.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f782eb483b71814d35d4436ce8fb183401a3d6db3852b15aa65f6774784bd69 +size 32006 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_01.uasset new file mode 100644 index 0000000..b7e2d0d --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecd7d336b5366b7c2a39f79126628eadda3c072c6a09d9bfe4c76407a54ccd0b +size 31043 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_01b.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_01b.uasset new file mode 100644 index 0000000..c84cdd4 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:880eb9ab89fced39e4c269236ec56fcd694cf2b868e2a656a9760e6d1c4143cc +size 47549 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_01c.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_01c.uasset new file mode 100644 index 0000000..f12d241 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d5085f02e02f4ec8d83dbb20b2581fe3e85fd1374319fb0100535c16b4a7ace +size 30521 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_01d.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_01d.uasset new file mode 100644 index 0000000..527ea06 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_01d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86ca7a8fb7f923b8c646a11a9a7036ff801eb4d7c1c03cd8854e8e07e5fdc1e7 +size 29178 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_02.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_02.uasset new file mode 100644 index 0000000..10fd9d1 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:531648e7a22f161f00cc8a27fe23912eb647bc6e8b2d9253e7a8a30a06226443 +size 22889 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_02b.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_02b.uasset new file mode 100644 index 0000000..35e5d50 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_bookshelves_02b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c10fce9d2941ebbc19883554b3bf52d31e6f50a8fed957421af1dd1562f8e054 +size 27445 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_candle_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_candle_01.uasset new file mode 100644 index 0000000..14f7573 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_candle_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7407efee17be3dd4741237b6dba7ea824ab96cd7d63ee5d2720fcfef3fe19049 +size 32949 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_chandelier_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_chandelier_01.uasset new file mode 100644 index 0000000..122137b --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_chandelier_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4152332acd970f2e07b79daf079e44a011dc3bfd16da40c948dcc3610f5098e +size 244108 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_chest_01a.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_chest_01a.uasset new file mode 100644 index 0000000..1d3c40f --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_chest_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74981ec9c3886d465d7309fa9965714fde7793b505f7de3c300fc0698053383c +size 71306 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_chest_01b.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_chest_01b.uasset new file mode 100644 index 0000000..a700952 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_chest_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1f5d87855462f85fd4a2edf5c90bafa2998f367fbaac0ef53b723341a13988e +size 53529 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_chest_01c.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_chest_01c.uasset new file mode 100644 index 0000000..4355b0f --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_chest_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1426905f38f510ddea60e6b1fb46fe5596d50ad919b7e110d2d9faf7ee512726 +size 82187 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_coins_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_coins_01.uasset new file mode 100644 index 0000000..5d4d9a6 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_coins_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da08fb645f7e1b971f29ca2199bc99306499966730525f3029c27130593792e0 +size 28317 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_cup_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_cup_01.uasset new file mode 100644 index 0000000..aeeae96 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_cup_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05de6a226e78fee9848df3bb738974cc1a142be27584da4c746dea3b2edbff44 +size 36552 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_cupboard_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_cupboard_01.uasset new file mode 100644 index 0000000..c531f8c --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_cupboard_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfce03e6d866ca5dcf771b90bcdcc197dbccb16395b840f49882f901b16e0e6c +size 51426 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_cupboard_closed_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_cupboard_closed_01.uasset new file mode 100644 index 0000000..ad2507b --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_cupboard_closed_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06aa3a524870117d7c84906ebde4580d764d3a50936db63b3c1c90e666a5316f +size 52891 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_cupboard_door_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_cupboard_door_01.uasset new file mode 100644 index 0000000..6eb1a5c --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_cupboard_door_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5adcbb4e73dd1122543457828c40804defbd4546decd002fae4f5a7dbebbb25e +size 31543 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_jud_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_jud_01.uasset new file mode 100644 index 0000000..7c6f9cd --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_jud_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb56a82935f5cc8058752771510c069fbe589f949b5da5e9ffa39fbf85f9b6f7 +size 43326 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_mattress_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_mattress_01.uasset new file mode 100644 index 0000000..875b207 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_mattress_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfb5e6034d9802d91f2048b57e75910c6e14364eb9843a59628679fc623fe0c4 +size 31363 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_01.uasset new file mode 100644 index 0000000..3509a13 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2d61f2b7a74ab3423b78c4edafb17437dd68f77d6f18a6c92f27f380bb09b3d +size 46559 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_02.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_02.uasset new file mode 100644 index 0000000..7cfa0e8 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b214a0f56390f22f0fa06df3ab6f8c50e4765d478b2d9d10a50d03bc6ae292e +size 42137 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_03a.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_03a.uasset new file mode 100644 index 0000000..e0df6c6 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_03a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf7178934c64c49e59c24a442911bb5c2d4384ca53a0f72138043214a4cfad13 +size 54293 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_03b.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_03b.uasset new file mode 100644 index 0000000..34a1e81 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_03b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:486dee8fd3b30583dbd283a82f81fbc87088828947cbce4f8fe2769ec21e2e13 +size 58679 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_03c.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_03c.uasset new file mode 100644 index 0000000..0c95848 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pan_03c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:563ac6d25a6901030db952f9bda42bfd38e05b02a5fc55ffd522bd19d14069d8 +size 41235 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pillow_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pillow_01.uasset new file mode 100644 index 0000000..6ab4c48 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_pillow_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23ec42a6e092b64a4b875cda00f27185145c32a6d9690ffab411ee6033b704ca +size 38246 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_scroll.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_scroll.uasset new file mode 100644 index 0000000..1fcf549 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_scroll.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e44c946dded775903f10095a2e7bea9a65b6aa2e50321beeb095a9e21245b293 +size 76988 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_table_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_table_01.uasset new file mode 100644 index 0000000..12a6547 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_table_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8d8a47f9ce6a10f8f74bc61585ad9989bdb63647bb9c06c608d243800dba70e +size 40899 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/SM_table_06.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_table_06.uasset new file mode 100644 index 0000000..18e16f3 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/SM_table_06.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68663cd989c3506acff709f090087dbd686005842b374bfeb86f590fa19756a3 +size 47508 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_bench_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_bench_01.uasset new file mode 100644 index 0000000..d6c954f --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_bench_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02dd67e9be7254f56b3dda993d28815d3833c6c8866f420305336711c77e6c41 +size 31117 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_bench_01b.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_bench_01b.uasset new file mode 100644 index 0000000..efddbfe --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_bench_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11a3151625c3f01e677626f0f1c03ae74c18b1e423ecd48e6d86c9c556d956e5 +size 30852 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_chair_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_chair_01.uasset new file mode 100644 index 0000000..a723e27 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_chair_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c31c8bf59558340bfa742b58d62960e87c963558035840ee415ef558f556c9d7 +size 44847 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_ladder_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_ladder_01.uasset new file mode 100644 index 0000000..f8484b1 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_ladder_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:876a1bbf9aee6cebd50ebe3b34f90b9086ae9f267c8f47510633557e05e6e153 +size 40330 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_ladder_02.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_ladder_02.uasset new file mode 100644 index 0000000..672fb80 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_ladder_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc65f28db144c8092ee85a313b22719df5437acfcebacd25f0dabb9e777d3636 +size 40759 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_nest_box_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_nest_box_01.uasset new file mode 100644 index 0000000..9205ef2 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_nest_box_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0626902bc280b1bcece87b712349eea0ee109b6d167a222eb4c9c7bffb0c2c3 +size 50105 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_stool_01.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_stool_01.uasset new file mode 100644 index 0000000..cc0f843 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_stool_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f2c187a85894985fb4b6314f47f9faec0def5411ce423afb2c300dfd95eae23 +size 33063 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_stool_01b.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_stool_01b.uasset new file mode 100644 index 0000000..c8e407a --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_stool_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88daac3b9fe6b587ef131921263ed62753b854341cfe211b84d6b07f7675c610 +size 38202 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_stool_01c.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_stool_01c.uasset new file mode 100644 index 0000000..479e598 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_stool_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77579b24d8c57359bd1b0ca02c76f85c8ebcbc637ed450cbdd221bc7e7bf3dfa +size 39482 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_barrel_01a.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_barrel_01a.uasset new file mode 100644 index 0000000..0c20bb9 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_barrel_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f281d6d4cd6ae504a0a3188c6a23c1f90817c7f64ea7a5af333c4782a7177217 +size 99770 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_barrel_01b.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_barrel_01b.uasset new file mode 100644 index 0000000..d5663f6 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_barrel_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c452f2df7895a6123de5126fec95d1c16a376d9dea0de1ad93b9c4d6f49efb8 +size 107096 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_barrel_01c.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_barrel_01c.uasset new file mode 100644 index 0000000..315eb77 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_barrel_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f011d10b9a93990d6fcbe40cae8161681ef95cab8c38b8798808fb2edf6e777 +size 136156 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_barrel_01d.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_barrel_01d.uasset new file mode 100644 index 0000000..073acdd --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_barrel_01d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:618f16e271df563556d269053277a944599aa4485f3fb150fd0ff45edc0a2236 +size 98259 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_create_01a.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_create_01a.uasset new file mode 100644 index 0000000..9933b89 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_create_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46ffa91c46ef0d14c90a743c733fd3ecc850525ef12cf79a4ae5b946cd745764 +size 88617 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_metal_table.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_metal_table.uasset new file mode 100644 index 0000000..2a5a0fe --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_metal_table.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4229704fd7c8f367914c0d532eed51cd6cca239dfade7564a796ac6b540102ea +size 93234 diff --git a/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_stand.uasset b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_stand.uasset new file mode 100644 index 0000000..f4ad0d0 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Meshes/sm_wooden_stand.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdcff85616da5c4fcc49516ec4d73517099da86de341a679ddcd4014f7089f6c +size 55370 diff --git a/Content/AssetPacks/Furniture_Vol1/Particles/P_FireToxic_01.uasset b/Content/AssetPacks/Furniture_Vol1/Particles/P_FireToxic_01.uasset new file mode 100644 index 0000000..774be9f --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Particles/P_FireToxic_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bf2252ae2f72bdf35a344461bb3cb49c35b8ab58d360e16824dcfce1e37b26e +size 75463 diff --git a/Content/AssetPacks/Furniture_Vol1/Particles/P_Firecandle_01.uasset b/Content/AssetPacks/Furniture_Vol1/Particles/P_Firecandle_01.uasset new file mode 100644 index 0000000..3043308 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Particles/P_Firecandle_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6a7d7a35d15288e9328262cfa15734b923f3410a8b0189395f2631f131cae24 +size 93414 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_Bed_01a_N.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_Bed_01a_N.uasset new file mode 100644 index 0000000..0c33fd6 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_Bed_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c9c358d643dac81e213886355dd0eeb234c61089c7c31b7673733d2180b2541 +size 1022514 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_Bed_Pillow_01a_N.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_Bed_Pillow_01a_N.uasset new file mode 100644 index 0000000..c8f4d0e --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_Bed_Pillow_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e49ce7138116f702c21def68c47931765ad8c4130803f76d1cbd6101f8641a6 +size 900159 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_Chest_01a_N.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_Chest_01a_N.uasset new file mode 100644 index 0000000..69bdeb6 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_Chest_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4da628956d87183a421b03aba40bc38eda328b185955144df7da204dbbd99cbe +size 1046225 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_armchair_01_A.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_armchair_01_A.uasset new file mode 100644 index 0000000..f19db50 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_armchair_01_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a68bf8135901d3bb09dcdd1dd1f9f9e0c0c3bb7a15dd535ffe68760cd243e4d +size 1280930 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_armchair_01_ARM.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_armchair_01_ARM.uasset new file mode 100644 index 0000000..2289d7b --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_armchair_01_ARM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbfeef3f1828fefe4ca963ad2a028fa2c007939649a1cd38e2c9c1a2f03e990e +size 475537 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_armchair_01_N.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_armchair_01_N.uasset new file mode 100644 index 0000000..28dc373 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_armchair_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4420c76118b1c993c9dad06d95afbedadf90717dc27da7a7f48ec4d9873b76cc +size 1176594 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_barrel_create_01a_A.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_barrel_create_01a_A.uasset new file mode 100644 index 0000000..03d5741 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_barrel_create_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ce56b0d466556fcd5ce65943b9a438647a0565b936763cbcf78bc023cb38adb +size 6689022 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_barrel_create_01a_N.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_barrel_create_01a_N.uasset new file mode 100644 index 0000000..391fdea --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_barrel_create_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd18cad8b303bf2f6932a367e6c17de8fab3d0d443c0f8415b7bdb833e261b0d +size 1319073 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bed_01a_A.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bed_01a_A.uasset new file mode 100644 index 0000000..5e41713 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bed_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:101af49d3dae24aafb260932e6cc55ccfe9a02e6ae5522d356e93b6dd9193354 +size 1187749 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bed_01a_ARM.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bed_01a_ARM.uasset new file mode 100644 index 0000000..10af4cd --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bed_01a_ARM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c21a53df2ffd675776ee86fa3606f647a6c45d236b248d404c5a69b0f946a17a +size 846087 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bed_Pillow_01a_A.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bed_Pillow_01a_A.uasset new file mode 100644 index 0000000..3f68c40 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bed_Pillow_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ff77dc0267af4206f0c6deb6fb6998e7cd483e3e03200fe5d444f7ed0d0167a +size 1218343 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bed_Pillow_01a_ARM.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bed_Pillow_01a_ARM.uasset new file mode 100644 index 0000000..bc15a37 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bed_Pillow_01a_ARM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe9d8e1e89003a18b272d28333f4dfb70e4a31954e8acf96e3047b7d8cf00404 +size 161025 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_books_01_A.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_books_01_A.uasset new file mode 100644 index 0000000..976013f --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_books_01_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d6022972959e4aa08fffb0100f5b055f9a32457812552921aa0304f0e0deaad +size 1291397 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_books_01_ARM.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_books_01_ARM.uasset new file mode 100644 index 0000000..ae5409c --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_books_01_ARM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46379afe7e296d04bbcab0574f3155c47737fbba3c69f6ac4f5ee6d2706482cd +size 635899 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_books_01_N.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_books_01_N.uasset new file mode 100644 index 0000000..93bfb38 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_books_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a31049ae206f7718b83b24410dd3099b99d71ca849c3d6683e92b3258718d399 +size 1066482 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bookshelves_01_A.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bookshelves_01_A.uasset new file mode 100644 index 0000000..e352bc3 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bookshelves_01_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7eca81a54964a93de2ae5fa45d7888b56cebf2ab0bfa7a00b368bc67d000c7d9 +size 1161858 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bookshelves_01_ARM.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bookshelves_01_ARM.uasset new file mode 100644 index 0000000..68b623d --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bookshelves_01_ARM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e4e7ef2708a0d225c7993d3e011c338498116608c80aa212071983234c1d470 +size 580761 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bookshelves_01_N.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bookshelves_01_N.uasset new file mode 100644 index 0000000..151b36f --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_bookshelves_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b8e6e8e375b6b15c76545f3cd043b3db1b4162d76a7cc8c862750c451124518 +size 753400 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chandelier_01_A.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chandelier_01_A.uasset new file mode 100644 index 0000000..91d307c --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chandelier_01_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a00d1752ae77afed859dba9e2dea5e054257e52428ea889053e210f7b2882a7 +size 1202000 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chandelier_01_ARM.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chandelier_01_ARM.uasset new file mode 100644 index 0000000..e50f62c --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chandelier_01_ARM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f26463d0c95d605b87e7c9cf73a3e3acf128c52a5fccf5258a7abfa9ca4751e6 +size 825413 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chandelier_01_N.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chandelier_01_N.uasset new file mode 100644 index 0000000..46c8694 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chandelier_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ca99860b4d39cd3839c0e14caa73125ae8a930a9ce28f7142178e21b2a11042 +size 1020182 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chest_01a_A.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chest_01a_A.uasset new file mode 100644 index 0000000..6f0dcf2 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chest_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9e4a892cce980451202ad482bbe1519e128e18e39b6f1be1472216d30dd7ee4 +size 1280291 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chest_01a_ARM.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chest_01a_ARM.uasset new file mode 100644 index 0000000..42a5a55 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_chest_01a_ARM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23434a4508b2f1d7e1fa07aee07e0777a5c6810d6a43c3eae439e98c79525eec +size 1198789 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_coins_01_A.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_coins_01_A.uasset new file mode 100644 index 0000000..c78423c --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_coins_01_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e09e57e6b3d1c4efd632bb2065ae0a99133697675cfbe77a56332d8cdb4c897 +size 196901 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_coins_01_ARM.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_coins_01_ARM.uasset new file mode 100644 index 0000000..f18ead2 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_coins_01_ARM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f76ef158e18299573dcaead752c393b45eb74d159a967a7dd5f73d22af1f2b2 +size 145664 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_coins_01_N.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_coins_01_N.uasset new file mode 100644 index 0000000..8d0a8bf --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_coins_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ded36066008e6dbfffbbc1cc37fff91a0dde6ca87b727c83cd7fb5198c11684 +size 169353 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_cupboard_01_A.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_cupboard_01_A.uasset new file mode 100644 index 0000000..a5e2264 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_cupboard_01_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a70819d2e003e3d62a5c3a0913dc48c0e2a81c5f82432156bf29b32c14a12764 +size 1216405 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_cupboard_01_ARM.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_cupboard_01_ARM.uasset new file mode 100644 index 0000000..d85a5b4 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_cupboard_01_ARM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ef8f26aeac1504549db0995036aed087f0214947822b901d0aff081dbc593f8 +size 663057 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_cupboard_01_N.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_cupboard_01_N.uasset new file mode 100644 index 0000000..309c658 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_cupboard_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d22cded39326672e594bafd0a57b5cf6baadd3fad69cfad38ed72a3698ae7881 +size 623526 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_pan_boiler_01_A.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_pan_boiler_01_A.uasset new file mode 100644 index 0000000..8d81a54 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_pan_boiler_01_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02966bdfcfaaef03cdc3fc8ab127fad4005ee64143ec458cfff6053967549676 +size 1182849 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_pan_boiler_01_ARM.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_pan_boiler_01_ARM.uasset new file mode 100644 index 0000000..7678157 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_pan_boiler_01_ARM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46cf1c19c0c81dcb2caaa0b078d413e95038756ef45d19543a6aa88d09b6a4b3 +size 1232949 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_pan_boiler_01_N.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_pan_boiler_01_N.uasset new file mode 100644 index 0000000..95e52ac --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_pan_boiler_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bcad8bb04d6164d1cc84ab04a66ec6b02808a81028dc8197ced3e5eb8b26cfa +size 1196697 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_stl_clock_01_A.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_stl_clock_01_A.uasset new file mode 100644 index 0000000..af6e0b7 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_stl_clock_01_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17a39566ee59dfea72390df93d19bac902a7c51a845f266180a2d804f2841f2c +size 1172405 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_stl_clock_01_ARM.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_stl_clock_01_ARM.uasset new file mode 100644 index 0000000..ce71430 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_stl_clock_01_ARM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01237ef1e79569027d443be4eb7c959fc1b6ceb27676d78904fc978116950b1a +size 1025852 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_stl_clock_01_N.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_stl_clock_01_N.uasset new file mode 100644 index 0000000..9ddb66f --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_stl_clock_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb400b383487c404a3b5810d134a2d206e163b5d36fd36892715628f3f660478 +size 4106848 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_table_01_A.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_table_01_A.uasset new file mode 100644 index 0000000..afaae85 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_table_01_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:158463e8c74ab1549ae81039c7a4c59d0fbc03efb3dde73cc8479b2b239dd417 +size 291184 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_table_01_ARM.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_table_01_ARM.uasset new file mode 100644 index 0000000..c6db691 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_table_01_ARM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b076762fcd784e39a3172c59e403f2d562a023e43fce88bf60dae76aa542336b +size 208277 diff --git a/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_table_01_N.uasset b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_table_01_N.uasset new file mode 100644 index 0000000..e6cf8e0 --- /dev/null +++ b/Content/AssetPacks/Furniture_Vol1/Textures/Unique/T_table_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffd085cf088d60856bb5f4647af1ab382cace1a163a8744d442d790ed09dec68 +size 273308 diff --git a/Content/AssetPacks/HellWatcher/Animations/Anim_Agr.uasset b/Content/AssetPacks/HellWatcher/Animations/Anim_Agr.uasset new file mode 100644 index 0000000..0119fc4 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/Anim_Agr.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88ee5ec5d08e33baff55320fbe32138b09db361699168c0452f4a59de3be6e67 +size 662173 diff --git a/Content/AssetPacks/HellWatcher/Animations/Anim_Attack.uasset b/Content/AssetPacks/HellWatcher/Animations/Anim_Attack.uasset new file mode 100644 index 0000000..59cde7f --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/Anim_Attack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47cb1037ecc1453a9be5895a62d514f40cfcdd8053e8a2168c317fae3f5a7f97 +size 1196459 diff --git a/Content/AssetPacks/HellWatcher/Animations/Anim_Death.uasset b/Content/AssetPacks/HellWatcher/Animations/Anim_Death.uasset new file mode 100644 index 0000000..dcae951 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/Anim_Death.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b5f53cdaba8491ea713f83d031ced5ccee802ad5e5162defe617f8aa3ca3fec +size 723214 diff --git a/Content/AssetPacks/HellWatcher/Animations/Anim_Fly.uasset b/Content/AssetPacks/HellWatcher/Animations/Anim_Fly.uasset new file mode 100644 index 0000000..2084996 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/Anim_Fly.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63cd2cb7b80e24b518fdf8465ebd039fbcb6536d58ce5fc8a9c36b5f17c9ef99 +size 541172 diff --git a/Content/AssetPacks/HellWatcher/Animations/Anim_Hit.uasset b/Content/AssetPacks/HellWatcher/Animations/Anim_Hit.uasset new file mode 100644 index 0000000..86e3075 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/Anim_Hit.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e96d9479f635aba67ed1bdffaf197dd1b8c134a3acf4ffd717bf0bb2e7704893 +size 317006 diff --git a/Content/AssetPacks/HellWatcher/Animations/Anim_Idle.uasset b/Content/AssetPacks/HellWatcher/Animations/Anim_Idle.uasset new file mode 100644 index 0000000..10da539 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/Anim_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24647bece798dd1f07e2e9e3802f40c423bd1f2527ca56b791f3cf779ddefdf4 +size 1077469 diff --git a/Content/AssetPacks/HellWatcher/Animations/BSPS_HellWatcher_IdleRun.uasset b/Content/AssetPacks/HellWatcher/Animations/BSPS_HellWatcher_IdleRun.uasset new file mode 100644 index 0000000..896e230 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/BSPS_HellWatcher_IdleRun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8f677c6761b7c2549198191f1a6c5c5e92cc448986ff9fd5b9cb9e2b7e9a627 +size 106881 diff --git a/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/AnimBP_HellWatcher_Minion.uasset b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/AnimBP_HellWatcher_Minion.uasset new file mode 100644 index 0000000..0dd2642 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/AnimBP_HellWatcher_Minion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ec3f69edcb087eebcf81bf0ac494b4456220f02286dbb50f67c921542d7c6b0 +size 214194 diff --git a/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Attack_minion.uasset b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Attack_minion.uasset new file mode 100644 index 0000000..9854c99 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Attack_minion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db0d9ebd8d703ed27fef29257b9826f1d1346cb5a61821a886a18f2109fd2e39 +size 171028 diff --git a/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Death_minion.uasset b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Death_minion.uasset new file mode 100644 index 0000000..a474a2b --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Death_minion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c920f0cdbeb374911dc7e40289b750cad69f14523bee5c964eac547ca540e90 +size 294082 diff --git a/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Fly_minion.uasset b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Fly_minion.uasset new file mode 100644 index 0000000..fe46c59 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Fly_minion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1bb714c955e330c9399384786a8097c8a3a020f0879a931525cc437d88050b1 +size 156796 diff --git a/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Hit_minion.uasset b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Hit_minion.uasset new file mode 100644 index 0000000..02d306e --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Hit_minion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4644211095dcb0005daa46b109973ba3e4dc7a785ed7f3af7341a2881154110e +size 156759 diff --git a/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Idle_minion.uasset b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Idle_minion.uasset new file mode 100644 index 0000000..b9dab63 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Anim_Idle_minion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1cc58bf0f46e887acf33809f01ba5529b4cde09251e49569eeb7c2c6e5374ef6 +size 276494 diff --git a/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/BSPS_Minionr_IdleRun.uasset b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/BSPS_Minionr_IdleRun.uasset new file mode 100644 index 0000000..bf1bfad --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/BSPS_Minionr_IdleRun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c8c778e37a9bfc6fd152b8e6ae76479a5256f106b9a695233fbd9420f53b48a +size 97875 diff --git a/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Attack_minion.uasset b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Attack_minion.uasset new file mode 100644 index 0000000..8d4d397 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Attack_minion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60f4bf7f7e2abdfbac2698cd7ae2220fc73b42d22961f2735f9ff3a5a2f77553 +size 169636 diff --git a/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Death_minion.uasset b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Death_minion.uasset new file mode 100644 index 0000000..c7f7691 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Death_minion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9812bf2e3d44db398d6a3727d932ba940d114683086ef1d5cdd842a512b212c3 +size 294394 diff --git a/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Fly_minion.uasset b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Fly_minion.uasset new file mode 100644 index 0000000..8a5d9d3 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Fly_minion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:049f7a2dc6d9777835a6e5301eab4897055a6641c50ee9ffe00c056e50c5c00a +size 155574 diff --git a/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Hit_minion.uasset b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Hit_minion.uasset new file mode 100644 index 0000000..0161629 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Hit_minion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f24807add875a81c500f23bc2fcaa6ad4085c010f8825260aef8e8c66e2451c9 +size 155659 diff --git a/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Idle_minion.uasset b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Idle_minion.uasset new file mode 100644 index 0000000..c1a4750 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/HellWatcher_Minion/Zero_Root/Anim_Zero_Root_Idle_minion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4b19a282cbcc931905455bd231ae1ee3b1ae3902eeede186a8af24dacb346d4 +size 275009 diff --git a/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Agr.uasset b/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Agr.uasset new file mode 100644 index 0000000..a3fe682 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Agr.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:562095600f267caf3c4438c1aad58dffcf511d2cba66501ef3e34fadcd138af6 +size 661689 diff --git a/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Attack.uasset b/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Attack.uasset new file mode 100644 index 0000000..e343e2e --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Attack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:040bb52b0e7886c9e8df183b9c82633efe49ecd959168da3b5c32858eac0c572 +size 1201765 diff --git a/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Death.uasset b/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Death.uasset new file mode 100644 index 0000000..4f7fad8 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Death.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bc625dd1082b55c5fb91ccf4f61e3e98e88ddbead1e99374d242b321fae59eb +size 703680 diff --git a/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Fly.uasset b/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Fly.uasset new file mode 100644 index 0000000..21984a1 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Fly.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec2357e44613530d23680ee40dbb358221d29d28ad20b578828088ff81b769c5 +size 543420 diff --git a/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Hit.uasset b/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Hit.uasset new file mode 100644 index 0000000..c1ebfa5 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Hit.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89c55238ed75d409e79fd2c3c02e7b5f503ce4a638b1f69f3ced66a13d3f95e2 +size 320482 diff --git a/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Idle.uasset b/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Idle.uasset new file mode 100644 index 0000000..269194a --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Animations/Zero_Root/Anim_Zero_Root_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3792b1a7cbbfa7df6cf1f3164a18e1f4b2a4627efc14d56956bd2fe11a539ed2 +size 1090695 diff --git a/Content/AssetPacks/HellWatcher/Blueprints/SK_HellWatcher_CtrlRig.uasset b/Content/AssetPacks/HellWatcher/Blueprints/SK_HellWatcher_CtrlRig.uasset new file mode 100644 index 0000000..dca35a6 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Blueprints/SK_HellWatcher_CtrlRig.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:114271785ab5073bc57cd98215f0c3a070c81ac25b3e6845984d926c231be01e +size 2119775 diff --git a/Content/AssetPacks/HellWatcher/Blueprints/SK_HellWatcher_Minion_CtrlRig.uasset b/Content/AssetPacks/HellWatcher/Blueprints/SK_HellWatcher_Minion_CtrlRig.uasset new file mode 100644 index 0000000..1031c18 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Blueprints/SK_HellWatcher_Minion_CtrlRig.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38669df8e400d5ab1e3f2e2f13c1421fbc686d40fba537cd665619bf0eb0e337 +size 779288 diff --git a/Content/AssetPacks/HellWatcher/Materials/MI_Explosion_1.uasset b/Content/AssetPacks/HellWatcher/Materials/MI_Explosion_1.uasset new file mode 100644 index 0000000..6646796 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Materials/MI_Explosion_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9961624ba56f77b9e1e69e84791805ec1404b89e6722b3dc398f7a2557c91ff +size 64283 diff --git a/Content/AssetPacks/HellWatcher/Materials/MI_HellWatcher.uasset b/Content/AssetPacks/HellWatcher/Materials/MI_HellWatcher.uasset new file mode 100644 index 0000000..ff49391 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Materials/MI_HellWatcher.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4b0986ef24a4e73a524b9b5dab6d573d04f594f33a8c9d3938f85e1b6ff4fcd +size 17260 diff --git a/Content/AssetPacks/HellWatcher/Materials/MI_HellWatcher_Minion.uasset b/Content/AssetPacks/HellWatcher/Materials/MI_HellWatcher_Minion.uasset new file mode 100644 index 0000000..eb5eb12 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Materials/MI_HellWatcher_Minion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a270f682197e3a0903ddd60c04647f22f17eff7045aa75ade6c473ad9c99b6b +size 135057 diff --git a/Content/AssetPacks/HellWatcher/Materials/MI_HellWatcher_Minion1.uasset b/Content/AssetPacks/HellWatcher/Materials/MI_HellWatcher_Minion1.uasset new file mode 100644 index 0000000..e51eb1c --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Materials/MI_HellWatcher_Minion1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:400eed59f50a7cf6747ad50beceec4b5144e0390da7706f923cd0102f398d519 +size 131133 diff --git a/Content/AssetPacks/HellWatcher/Materials/MI_HellWatcherr_2.uasset b/Content/AssetPacks/HellWatcher/Materials/MI_HellWatcherr_2.uasset new file mode 100644 index 0000000..9b8a387 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Materials/MI_HellWatcherr_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3593332bf26c5e6ce52bf3d0a8468c8f6bf7a74d68db696bb9287ffa53ee058 +size 17493 diff --git a/Content/AssetPacks/HellWatcher/Materials/M_Explosion.uasset b/Content/AssetPacks/HellWatcher/Materials/M_Explosion.uasset new file mode 100644 index 0000000..f5cdd29 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Materials/M_Explosion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdb0d9f22a0711e620ea15052771920c927ca639a9153d005dc2b0d95de85951 +size 71204 diff --git a/Content/AssetPacks/HellWatcher/Materials/M_HellWatcher.uasset b/Content/AssetPacks/HellWatcher/Materials/M_HellWatcher.uasset new file mode 100644 index 0000000..914147f --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Materials/M_HellWatcher.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b25dbcd27cfa3d95a4cc2f698401e31a665d813bf426df78a58ca35b4bbc4f5 +size 23256 diff --git a/Content/AssetPacks/HellWatcher/Materials/M_HellWatcher_Minion.uasset b/Content/AssetPacks/HellWatcher/Materials/M_HellWatcher_Minion.uasset new file mode 100644 index 0000000..10204e4 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Materials/M_HellWatcher_Minion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38018c22d430f556ac19d6ca675efa2051b9bdd46be73d96b7c39e2af5364659 +size 22623 diff --git a/Content/AssetPacks/HellWatcher/Materials/M_PlasmaImpactOpacity.uasset b/Content/AssetPacks/HellWatcher/Materials/M_PlasmaImpactOpacity.uasset new file mode 100644 index 0000000..ebddcef --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Materials/M_PlasmaImpactOpacity.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c990c8a1eeecef480aa57844699a8d12de699eee4ce626a98a169358ce4bfc3 +size 76195 diff --git a/Content/AssetPacks/HellWatcher/Materials/M_Ray.uasset b/Content/AssetPacks/HellWatcher/Materials/M_Ray.uasset new file mode 100644 index 0000000..964bc6a --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Materials/M_Ray.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4e64c5829ede9578e525792b5e6e26ef3dbc086ed798c96c56a178f131b2fa9 +size 71610 diff --git a/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher.uasset b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher.uasset new file mode 100644 index 0000000..13d8272 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34bfc6f6571fd8314b42447e7c9d991386404003775548c9f9e3b8bb72e89269 +size 6277513 diff --git a/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_CtrlRig.uasset b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_CtrlRig.uasset new file mode 100644 index 0000000..686e242 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_CtrlRig.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e97d3efaebe556dcaefa26b41aecaa252210ab962a535f9de857250ac6a30ed +size 2119757 diff --git a/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Minion.uasset b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Minion.uasset new file mode 100644 index 0000000..f5d9e74 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Minion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7073a15de952ea2e750086ca90944313afc39cd4ef97ded508fbc02a40c78d54 +size 3173706 diff --git a/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Minion_CtrlRig.uasset b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Minion_CtrlRig.uasset new file mode 100644 index 0000000..533079a --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Minion_CtrlRig.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a3d274638aedf25291499fbe56e6d2e86e6ccc4b951b61de42fe4bc2ea5955f +size 779270 diff --git a/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Minion_PhysicsAsset.uasset b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Minion_PhysicsAsset.uasset new file mode 100644 index 0000000..9fb94a5 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Minion_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:019fcd859f19a9b64b976146bf9a613ebf9ca8994cf8afcd50c5cf6e115cb581 +size 101610 diff --git a/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Minion_Skeleton.uasset b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Minion_Skeleton.uasset new file mode 100644 index 0000000..0e557a8 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Minion_Skeleton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbdd6719a918949eadd4e75ecdba458a4eb8f5d0515f06125e2971c18dce495f +size 11666 diff --git a/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_PhysicsAsset.uasset b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_PhysicsAsset.uasset new file mode 100644 index 0000000..80184f4 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d361bbb0967df245cf1825dbb5dfcbfcde1db4fec614553a0c903ade0e12577 +size 142141 diff --git a/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Skeleton.uasset b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Skeleton.uasset new file mode 100644 index 0000000..c4ea48c --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Mesh/SK_HellWatcher_Skeleton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e05d92c13b04be27b565953c14400aeddc5911af58ba6a40ff962eb1d2f16150 +size 21711 diff --git a/Content/AssetPacks/HellWatcher/Mesh/VFX/SM_Explosion.uasset b/Content/AssetPacks/HellWatcher/Mesh/VFX/SM_Explosion.uasset new file mode 100644 index 0000000..667e124 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Mesh/VFX/SM_Explosion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20bcb9344ad2d5a2a7a1970fc4becc51bb144b83ab8edbe0db5d5bc29e4a754d +size 105551 diff --git a/Content/AssetPacks/HellWatcher/Particles/P_Explosion_1.uasset b/Content/AssetPacks/HellWatcher/Particles/P_Explosion_1.uasset new file mode 100644 index 0000000..38f5575 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Particles/P_Explosion_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ecd09644f0ca766770a45bf0796d1a176964ad72dfbaf73ce13d8e22a354e20 +size 1395114 diff --git a/Content/AssetPacks/HellWatcher/Particles/P_Explosion_2.uasset b/Content/AssetPacks/HellWatcher/Particles/P_Explosion_2.uasset new file mode 100644 index 0000000..0dd726e --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Particles/P_Explosion_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efec9b57d06f5101c4ee05c5b5d6a2633de50085ba4ed1b967a11a87de01ad2c +size 1389919 diff --git a/Content/AssetPacks/HellWatcher/Particles/P_Plasma_infinitely.uasset b/Content/AssetPacks/HellWatcher/Particles/P_Plasma_infinitely.uasset new file mode 100644 index 0000000..48e6b11 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Particles/P_Plasma_infinitely.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:069d466c66bd5ca95bcc91eedf131d57fbf3b105b7f420d8eb7e6912030bfa1e +size 441000 diff --git a/Content/AssetPacks/HellWatcher/Particles/P_Plasma_timed.uasset b/Content/AssetPacks/HellWatcher/Particles/P_Plasma_timed.uasset new file mode 100644 index 0000000..537119a --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Particles/P_Plasma_timed.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2583486224d264a8628e9ed3ecd0ba388326354cf77bf991d2511a00bdc8dcd3 +size 1152270 diff --git a/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_1_D.uasset b/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_1_D.uasset new file mode 100644 index 0000000..063d353 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_1_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b32b462a9c5d6ae5e2a96d6ff7864e21b1d558c16b9b215ad840d9839dec471 +size 302804 diff --git a/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_2_D.uasset b/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_2_D.uasset new file mode 100644 index 0000000..40ce7ba --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_2_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe2e9eb061bc51a5f5d0bcf694db182d1dd46c82b86de69cea12b71c321bcbcb +size 312927 diff --git a/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_AORM.uasset b/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_AORM.uasset new file mode 100644 index 0000000..1d28cfe --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_AORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3e024076455c6711f7183d48257fd6dcd202988dc40dcefebb33efd7f715bbc +size 167972 diff --git a/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_E.uasset b/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_E.uasset new file mode 100644 index 0000000..2178203 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_E.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa29f30966e242e78dc9d15fdb2e9f6d5a4a3e457209c5bff49cf1901cdb7393 +size 42458 diff --git a/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_N.uasset b/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_N.uasset new file mode 100644 index 0000000..a12f3be --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Textures/Minion/T_HellWatcher_Minion_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f863a531c227f4ea4dffc9d4fe2420f664ab2a38625940d08b7903a4647869f +size 241422 diff --git a/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_1_D.uasset b/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_1_D.uasset new file mode 100644 index 0000000..95aebdc --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_1_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e0bf5e86381440e0ad10d4424f2544090df5afbfcfb7aa2db3942bdc83801ac +size 1122547 diff --git a/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_2_D.uasset b/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_2_D.uasset new file mode 100644 index 0000000..4d6b0c2 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_2_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4194dd828907142588c16f0c714cb2941c1c009c2fb1724e10be6413c8c116fe +size 1140108 diff --git a/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_AORM.uasset b/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_AORM.uasset new file mode 100644 index 0000000..ea568e2 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_AORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ba0cba8009a0bed7e5fb551f80d38ff4d0dd06c53a59d178b36a2cef9890823 +size 525094 diff --git a/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_E.uasset b/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_E.uasset new file mode 100644 index 0000000..7323565 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_E.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9849b39f7987b9836ee3aab9b4bda256ba619f040fc204d435bbf0f26c9642a0 +size 128259 diff --git a/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_N.uasset b/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_N.uasset new file mode 100644 index 0000000..11e5a68 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Textures/T_HellWatcher_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8bb27c30f38bce5a25cc700f9de2e41607ecbdf3d92ce69890c7be284779302 +size 1002506 diff --git a/Content/AssetPacks/HellWatcher/Textures/VFX/T_Fire_Distortion.uasset b/Content/AssetPacks/HellWatcher/Textures/VFX/T_Fire_Distortion.uasset new file mode 100644 index 0000000..045319e --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Textures/VFX/T_Fire_Distortion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31b9bb810819da98234f8836888f62eef0ba1bdc8fc1077cdf89e5e8a92a6c19 +size 390843 diff --git a/Content/AssetPacks/HellWatcher/Textures/VFX/T_Fire_SubUV.uasset b/Content/AssetPacks/HellWatcher/Textures/VFX/T_Fire_SubUV.uasset new file mode 100644 index 0000000..e973261 --- /dev/null +++ b/Content/AssetPacks/HellWatcher/Textures/VFX/T_Fire_SubUV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60d5d07839a6fdf14dc6cbf49c815bd9458514787cc2a3e91353239fdaa41cab +size 536598 diff --git a/Content/AssetPacks/Valkyrie/Animations/AnimBP_Valkyrie.uasset b/Content/AssetPacks/Valkyrie/Animations/AnimBP_Valkyrie.uasset new file mode 100644 index 0000000..ea3d80d --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Animations/AnimBP_Valkyrie.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0eec8cae6f9623c631f256f3035070feea1b1466832bf022053e1fbd0fb1458 +size 185124 diff --git a/Content/AssetPacks/Valkyrie/Animations/Anim_Attack_L.uasset b/Content/AssetPacks/Valkyrie/Animations/Anim_Attack_L.uasset new file mode 100644 index 0000000..1148c79 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Animations/Anim_Attack_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2d4a17374aaaf389ff121db8290a9a16d8e15069c88579e5d5fb64af5fb6801 +size 351671 diff --git a/Content/AssetPacks/Valkyrie/Animations/Anim_Attack_R.uasset b/Content/AssetPacks/Valkyrie/Animations/Anim_Attack_R.uasset new file mode 100644 index 0000000..76650f1 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Animations/Anim_Attack_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2536b77a980832c7b5c39398314301f51826d9d28743bab5f742bdfa002e9c10 +size 433228 diff --git a/Content/AssetPacks/Valkyrie/Animations/Anim_Attack_Top.uasset b/Content/AssetPacks/Valkyrie/Animations/Anim_Attack_Top.uasset new file mode 100644 index 0000000..677c2f4 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Animations/Anim_Attack_Top.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d5298238983c4d9d9a02ad15b48a2291307a967f87303390b221213a6fb4f26 +size 394003 diff --git a/Content/AssetPacks/Valkyrie/Animations/Anim_Battle_Idle.uasset b/Content/AssetPacks/Valkyrie/Animations/Anim_Battle_Idle.uasset new file mode 100644 index 0000000..18004cb --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Animations/Anim_Battle_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2421baa159c01dc5b5c709f9195f290c06fd9371f31485e1b12b30aca2f1f54f +size 420459 diff --git a/Content/AssetPacks/Valkyrie/Animations/Anim_Death.uasset b/Content/AssetPacks/Valkyrie/Animations/Anim_Death.uasset new file mode 100644 index 0000000..7655b5d --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Animations/Anim_Death.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fa2ceb737b54fa58d9326fd20fd1cfc8efc30a8bb171a403fd25828fa3257d1 +size 489085 diff --git a/Content/AssetPacks/Valkyrie/Animations/Anim_Fall.uasset b/Content/AssetPacks/Valkyrie/Animations/Anim_Fall.uasset new file mode 100644 index 0000000..ff3ee3a --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Animations/Anim_Fall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:733dbc1a88bb4ae3b8f7cf81e07c2023be514066c58d6e45e704838c95e94b0d +size 485839 diff --git a/Content/AssetPacks/Valkyrie/Animations/Anim_Hit.uasset b/Content/AssetPacks/Valkyrie/Animations/Anim_Hit.uasset new file mode 100644 index 0000000..01a47b8 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Animations/Anim_Hit.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2fb3e64df80cfcef731f03b6c951bd689a28ae6256a4528685203c774b0f8f1 +size 190383 diff --git a/Content/AssetPacks/Valkyrie/Animations/Anim_Idle.uasset b/Content/AssetPacks/Valkyrie/Animations/Anim_Idle.uasset new file mode 100644 index 0000000..60cb4c3 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Animations/Anim_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94e3cf24c7eee5f1ee614a8b66e38076cd28de2aadef8df32c27d8edf5747c10 +size 454592 diff --git a/Content/AssetPacks/Valkyrie/Animations/Anim_Jump_In.uasset b/Content/AssetPacks/Valkyrie/Animations/Anim_Jump_In.uasset new file mode 100644 index 0000000..f8cabec --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Animations/Anim_Jump_In.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:141210b7ab04ad7d0ebd3c2ac1c7045342ddb7fd0d3eb3e2086c8b09a77274d3 +size 322272 diff --git a/Content/AssetPacks/Valkyrie/Animations/Anim_Jump_Out.uasset b/Content/AssetPacks/Valkyrie/Animations/Anim_Jump_Out.uasset new file mode 100644 index 0000000..a06a76c --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Animations/Anim_Jump_Out.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb7832c0c9d1995b9fa8ceacfb530c39710f00a7633086acbabe208213c03908 +size 448122 diff --git a/Content/AssetPacks/Valkyrie/Animations/Anim_Run.uasset b/Content/AssetPacks/Valkyrie/Animations/Anim_Run.uasset new file mode 100644 index 0000000..95c93e3 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Animations/Anim_Run.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6dea0a54691aeed3bd84a652c7967c56cfaafca7474ab47a840b8f8b7f62ef5a +size 270637 diff --git a/Content/AssetPacks/Valkyrie/Animations/Anim_Walk.uasset b/Content/AssetPacks/Valkyrie/Animations/Anim_Walk.uasset new file mode 100644 index 0000000..f124b7c --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Animations/Anim_Walk.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80cf8921f5ef5924a564d3bb8722c078aec06bddc81f9aef882c1cebe56e6b87 +size 329972 diff --git a/Content/AssetPacks/Valkyrie/Animations/BSPS_Valkyrie_IdleRun_2D1.uasset b/Content/AssetPacks/Valkyrie/Animations/BSPS_Valkyrie_IdleRun_2D1.uasset new file mode 100644 index 0000000..bf928d1 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Animations/BSPS_Valkyrie_IdleRun_2D1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e40b3c93e450c985d74a37f59dbbe7df187096f9354865f4b8d5073120ef7b0 +size 9724 diff --git a/Content/AssetPacks/Valkyrie/Blueprints/SK_Valkyrie_CtrlRig.uasset b/Content/AssetPacks/Valkyrie/Blueprints/SK_Valkyrie_CtrlRig.uasset new file mode 100644 index 0000000..f5fbc54 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Blueprints/SK_Valkyrie_CtrlRig.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00632a0fb69e96ff8ff15ae42f3731f56b24660595d0a95244d2addb22028440 +size 2566891 diff --git a/Content/AssetPacks/Valkyrie/Materials/MI_Ground.uasset b/Content/AssetPacks/Valkyrie/Materials/MI_Ground.uasset new file mode 100644 index 0000000..a860265 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Materials/MI_Ground.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:531f07e3c812b642b17e77a6c9bc8247b5d91008b2facd8cc72104b2b91d6ba4 +size 105474 diff --git a/Content/AssetPacks/Valkyrie/Materials/MI_Sword_1.uasset b/Content/AssetPacks/Valkyrie/Materials/MI_Sword_1.uasset new file mode 100644 index 0000000..f6ce590 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Materials/MI_Sword_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b0b4dc43590a68aabbd0cbee9f9db2cd96157d30739a1903a69b5ccdf47aec6 +size 12583 diff --git a/Content/AssetPacks/Valkyrie/Materials/MI_Sword_2.uasset b/Content/AssetPacks/Valkyrie/Materials/MI_Sword_2.uasset new file mode 100644 index 0000000..b75f5cb --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Materials/MI_Sword_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a7a2f6baa8f76ffd242b2632420e8d11d8cb1da7fdde06679c29a60a2144a94 +size 129092 diff --git a/Content/AssetPacks/Valkyrie/Materials/MI_Sword_3.uasset b/Content/AssetPacks/Valkyrie/Materials/MI_Sword_3.uasset new file mode 100644 index 0000000..7694738 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Materials/MI_Sword_3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba7c3b171855b7945e579c922ae2084930f6238c94879f67dacef47b02744f1f +size 127773 diff --git a/Content/AssetPacks/Valkyrie/Materials/MI_Valkyrie_0.uasset b/Content/AssetPacks/Valkyrie/Materials/MI_Valkyrie_0.uasset new file mode 100644 index 0000000..d570200 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Materials/MI_Valkyrie_0.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5835022cd91eb1d3d19dc9cf8145b3b713bde4a397c7996ea9c61e43486fd000 +size 137945 diff --git a/Content/AssetPacks/Valkyrie/Materials/MI_Valkyrie_1.uasset b/Content/AssetPacks/Valkyrie/Materials/MI_Valkyrie_1.uasset new file mode 100644 index 0000000..b5898bd --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Materials/MI_Valkyrie_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af5034642a62b4c795d60aafbda1827dfd8e8d0bfc8a759aff6f2da07c2d7a63 +size 140844 diff --git a/Content/AssetPacks/Valkyrie/Materials/MI_Valkyrie_2.uasset b/Content/AssetPacks/Valkyrie/Materials/MI_Valkyrie_2.uasset new file mode 100644 index 0000000..0b37214 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Materials/MI_Valkyrie_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88f9fb1b4e65cc7abd48eb5dc464c43674906aea7f0528232cff83fbcc2aa8d4 +size 139659 diff --git a/Content/AssetPacks/Valkyrie/Materials/MI_Valkyrie_3.uasset b/Content/AssetPacks/Valkyrie/Materials/MI_Valkyrie_3.uasset new file mode 100644 index 0000000..a542327 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Materials/MI_Valkyrie_3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3ad2cd8aa7133d4a5b1de65d4ab70d01feec5cfe0e8470cf80e7873eb249234 +size 142029 diff --git a/Content/AssetPacks/Valkyrie/Materials/M_Ground.uasset b/Content/AssetPacks/Valkyrie/Materials/M_Ground.uasset new file mode 100644 index 0000000..9c11343 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Materials/M_Ground.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f45c9db00e8eb62bf7c3f669a319c3c3b438abb2d3aa1cf8f44f4bc54866c355 +size 87229 diff --git a/Content/AssetPacks/Valkyrie/Materials/M_Sword.uasset b/Content/AssetPacks/Valkyrie/Materials/M_Sword.uasset new file mode 100644 index 0000000..0bc7bb8 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Materials/M_Sword.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1e94e17c8e6eb38d8fe19b95ee031126741ad608442af202a919639524f0653 +size 20186 diff --git a/Content/AssetPacks/Valkyrie/Materials/M_Valkyrie.uasset b/Content/AssetPacks/Valkyrie/Materials/M_Valkyrie.uasset new file mode 100644 index 0000000..bab5ab1 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Materials/M_Valkyrie.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e9c7306bbef3fb7719efc49c18b57afc4e5c7bf1709dbc04812d60816badfa1 +size 145948 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_B.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_B.uasset new file mode 100644 index 0000000..e3f1bf7 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edd331bb790b57eb82b12049bef904601068d6e24514d2a2af2456a7935838d2 +size 133162 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_B_PhysicsAsset.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_B_PhysicsAsset.uasset new file mode 100644 index 0000000..8563615 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_B_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c3ca9c059849e35df306923e03ca5ae786f957770a2c0d4840dc02c0ddfa9ae +size 80314 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_L.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_L.uasset new file mode 100644 index 0000000..1a70564 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:162b2611459739e7439e85074ff16db597ca4efc35f235d6e24a14a42a174465 +size 124315 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_L_PhysicsAsset.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_L_PhysicsAsset.uasset new file mode 100644 index 0000000..f9d22a6 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_L_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2aa32512a8f89ddd8c23108d9d3215bc4515239b22c34b1b2a105a1b05b22bb +size 77310 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_R.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_R.uasset new file mode 100644 index 0000000..eea509e --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e1998cf3ab4ea832277bdeab2a506a95eaa95dd83626b1cb798251b1c05a8cf +size 123862 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_R_PhysicsAsset.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_R_PhysicsAsset.uasset new file mode 100644 index 0000000..b043700 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Belt_Chest_R_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c306536fa6bf4f907aa39efcb4a60f71b359bd23a793aa0774b2c6d258ca02e +size 76672 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Chest_armor.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Chest_armor.uasset new file mode 100644 index 0000000..aba300b --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Chest_armor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4652e9cd823448204e534f6755f8659ab9c6fe2f446bbf9f588e72b9e2cceee +size 325275 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Chest_armor_PhysicsAsset.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Chest_armor_PhysicsAsset.uasset new file mode 100644 index 0000000..27f2c9c --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Chest_armor_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f931c2b6b4864de226ef9c57bfab0d96a6df5798d5bc3d919f4c9fdda96d190c +size 88184 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Elbow_armor.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Elbow_armor.uasset new file mode 100644 index 0000000..f297cf1 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Elbow_armor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f41843c732ee931812e9851e2c150de8847952d3d3bde5a33832f68fb03c4d2d +size 1012436 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Elbow_armor_PhysicsAsset.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Elbow_armor_PhysicsAsset.uasset new file mode 100644 index 0000000..19dcc44 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Elbow_armor_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f871b98feb78bba1b6c4418998ed7f940cb5c16adf9ad8db15e0fd9259e8d589 +size 83396 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Hair_1.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Hair_1.uasset new file mode 100644 index 0000000..adc99f4 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Hair_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a7f2d7b395a5b9646a59fe9d0388a7b9c6b692dd7e9bf4d5a25338af86335c6 +size 670113 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Hair_1_PhysicsAsset.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Hair_1_PhysicsAsset.uasset new file mode 100644 index 0000000..cdd782a --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Hair_1_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba8cce17f480a12ea94625ba88c5b41e8d0ae23458fc1ecee2fe86f949d7f1c6 +size 91487 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Hair_2.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Hair_2.uasset new file mode 100644 index 0000000..c48684a --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Hair_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4517d18d254d7883bddd8e86221d0c4ef2417e1019cca37c9a817314c39dd320 +size 551000 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Hair_2_PhysicsAsset.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Hair_2_PhysicsAsset.uasset new file mode 100644 index 0000000..f5e547f --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Hair_2_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b56d67f3555584ad3221600d57e01e02641c1dbc98777d293b0213922f762046 +size 90177 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Head_armor.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Head_armor.uasset new file mode 100644 index 0000000..1562b35 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Head_armor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb8fcb3b315b297f3db866e8bbe83f494eab66c675fad1ee86e83ae021d0c0f0 +size 443326 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Head_armor_PhysicsAsset.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Head_armor_PhysicsAsset.uasset new file mode 100644 index 0000000..339a758 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Head_armor_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:399f33df0707e5e778a4c761f34686f9344672cc976eb80be6165834d9e477ec +size 84907 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Knee_armor.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Knee_armor.uasset new file mode 100644 index 0000000..5638e5c --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Knee_armor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:321b437c50a8dfb39e263f648610b58129c67f56537783e16c70d6b2539ea24e +size 1133253 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Knee_armor_PhysicsAsset.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Knee_armor_PhysicsAsset.uasset new file mode 100644 index 0000000..c4629ae --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Knee_armor_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c881aa85946310057e791cd4c01087ec0aa8b0145adeea569b9e21bbf376ab93 +size 88316 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Shoulder_armor_L.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Shoulder_armor_L.uasset new file mode 100644 index 0000000..e315bf9 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Shoulder_armor_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98b64b3454382e236f8f83b584294640761a521f3eac74d5ef12da6e73592784 +size 253510 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Shoulder_armor_L_PhysicsAsset.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Shoulder_armor_L_PhysicsAsset.uasset new file mode 100644 index 0000000..e3b505d --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Shoulder_armor_L_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:863de470dfbac8a15007f6058e73f3f29f51b5a8b758a41385014df40e1f00fc +size 88679 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Shoulder_armor_R.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Shoulder_armor_R.uasset new file mode 100644 index 0000000..f930187 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Shoulder_armor_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2fc934105cc458140e54ceb76e136466c0a7a7a5c25ced6fcb2de32ccd585a7b +size 248284 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Shoulder_armor_R_PhysicsAsset.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Shoulder_armor_R_PhysicsAsset.uasset new file mode 100644 index 0000000..eca48bf --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Shoulder_armor_R_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:995fdbd620c01e8858678e9417b29dbb58d899d7038ad2e9d25860793b475f95 +size 85803 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Sword.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Sword.uasset new file mode 100644 index 0000000..fecebcf --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Sword.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8723cbca373f46ff2b5e9bbc78d21c771573110a15f43f9fbb186845c02f846 +size 389942 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Sword_PhysicsAsset.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Sword_PhysicsAsset.uasset new file mode 100644 index 0000000..9e6d003 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Sword_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc8f612ca15663ed8aa3f92705117d99c5e190dfa1bd1d1712b39c9972a3daff +size 7060 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Sword_Skeleton.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Sword_Skeleton.uasset new file mode 100644 index 0000000..cc7c981 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Sword_Skeleton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc453fa2173e7458f044a558cbaabb492a616dce327b87b2a68c0a25d487457e +size 6092 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Valkyrie.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Valkyrie.uasset new file mode 100644 index 0000000..74cecf2 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Valkyrie.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a2039933561d8e57bf30875ef8bddefe6c599cc45d3ab336d73446bb3d84243 +size 7993924 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Valkyrie_Combined.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Valkyrie_Combined.uasset new file mode 100644 index 0000000..f3e78fd --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Valkyrie_Combined.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cea0653644f64f7951ad8950ade87cab2db06c19ded366b946bf3abbfb6220e +size 4086105 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Valkyrie_PhysicsAsset.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Valkyrie_PhysicsAsset.uasset new file mode 100644 index 0000000..f60c7a1 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Valkyrie_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89269c025a56e56b65a4a0f2ec700766bccb6f91fc96b770c661418f74f6dae3 +size 45321 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SK_Valkyrie_Skeleton.uasset b/Content/AssetPacks/Valkyrie/Mesh/SK_Valkyrie_Skeleton.uasset new file mode 100644 index 0000000..c837fa1 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SK_Valkyrie_Skeleton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3a971f3e2597ac3557145d43d9c08cc7a07ffc4fb755909c2f4d78401b12a6f +size 46000 diff --git a/Content/AssetPacks/Valkyrie/Mesh/SM_Sword.uasset b/Content/AssetPacks/Valkyrie/Mesh/SM_Sword.uasset new file mode 100644 index 0000000..6f98772 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Mesh/SM_Sword.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78224d189dd5497badcd2a6f5d12d3cc75aa38b91f112e37530fa04c7c1f4d60 +size 127472 diff --git a/Content/AssetPacks/Valkyrie/Textures/T_Sword_1_D.uasset b/Content/AssetPacks/Valkyrie/Textures/T_Sword_1_D.uasset new file mode 100644 index 0000000..5dd5562 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Textures/T_Sword_1_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41a6b96f79a02ce7dd5d11fd9c4dd3567d675bd704c9175ee72572edb2e71930 +size 632273 diff --git a/Content/AssetPacks/Valkyrie/Textures/T_Sword_2_D.uasset b/Content/AssetPacks/Valkyrie/Textures/T_Sword_2_D.uasset new file mode 100644 index 0000000..e528e60 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Textures/T_Sword_2_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7346494f15b113f2f36b48444ba1eb0d2d18336c3221198eb12aece2c19383a5 +size 629024 diff --git a/Content/AssetPacks/Valkyrie/Textures/T_Sword_3_D.uasset b/Content/AssetPacks/Valkyrie/Textures/T_Sword_3_D.uasset new file mode 100644 index 0000000..f72657a --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Textures/T_Sword_3_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e30837c21eb9a706caa7419ac95381a78391744e98f1fa6f705d538d59c413a9 +size 596364 diff --git a/Content/AssetPacks/Valkyrie/Textures/T_Sword_AORM.uasset b/Content/AssetPacks/Valkyrie/Textures/T_Sword_AORM.uasset new file mode 100644 index 0000000..d3f5145 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Textures/T_Sword_AORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:096c99f0bdae75d120f3670cfcd44619fbc948ce4fe0d5aee6240aa31f519421 +size 447497 diff --git a/Content/AssetPacks/Valkyrie/Textures/T_Sword_N.uasset b/Content/AssetPacks/Valkyrie/Textures/T_Sword_N.uasset new file mode 100644 index 0000000..c14e6fe --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Textures/T_Sword_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b349e0aca449965ef4de8b652263a71000f2b1fd586a8d76593557f01c80ada0 +size 347377 diff --git a/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_1_D.uasset b/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_1_D.uasset new file mode 100644 index 0000000..0798536 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_1_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1446e075d27256d6fcf22e93c429c433ca47a009349986e78f1c44c817d926e +size 1214820 diff --git a/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_2_D.uasset b/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_2_D.uasset new file mode 100644 index 0000000..7018789 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_2_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c681769346efb98a130cc6e86f08458aed42d8b2261cf8fde91213fc243341b +size 1245362 diff --git a/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_3_D.uasset b/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_3_D.uasset new file mode 100644 index 0000000..42864fb --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_3_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7514856fef9bc172a57ec0a032bdfec58c9ccb9fd608d0a31ae60df3799311bb +size 1245198 diff --git a/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_AORM.uasset b/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_AORM.uasset new file mode 100644 index 0000000..cd8f221 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_AORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:562061c3ffed06fec7cd2be96e99809ef932616b09285e2cac926352a4fb1123 +size 997981 diff --git a/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_D.uasset b/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_D.uasset new file mode 100644 index 0000000..92d0f03 --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:662ed4d1f5593d9fbe967ed66ac690250096423059de2adafecd9bb967cfffe9 +size 1213835 diff --git a/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_N.uasset b/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_N.uasset new file mode 100644 index 0000000..02da97e --- /dev/null +++ b/Content/AssetPacks/Valkyrie/Textures/T_Valkyrie_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d9de65b7991aab4445c76511416941d35448155c161b0738d1e6bec11e954b7 +size 952944 diff --git a/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Armor.uasset b/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Armor.uasset new file mode 100644 index 0000000..ac8f510 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Armor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9aabf4a447438482a53f919ae416df412bf84e58d5d2862486016fc10be601eb +size 142206 diff --git a/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Clothes.uasset b/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Clothes.uasset new file mode 100644 index 0000000..ce90560 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Clothes.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ded5053f0a3a5d5589ae1540891ed6ff19f9a8f4799f6874d47760fc4e653af8 +size 135877 diff --git a/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Hair.uasset b/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Hair.uasset new file mode 100644 index 0000000..04e371e --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Hair.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:159667fb4d3309bc833da95e962b7b40818b6880f7ea0dfe5f120ef1b112b0be +size 176989 diff --git a/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Skin_2_Armor.uasset b/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Skin_2_Armor.uasset new file mode 100644 index 0000000..56ac7ee --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Skin_2_Armor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b56731d45e6341ae206b16cabe78a901402a9e5b086219040f474a843540ef3c +size 155872 diff --git a/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Skin_2_Clothes.uasset b/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Skin_2_Clothes.uasset new file mode 100644 index 0000000..e04186d --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Skin_2_Clothes.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0679ab32059582816c0824066bbc806010cdcd53a082d8d8ee3523ab8be19362 +size 157433 diff --git a/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Skin_2_Hair.uasset b/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Skin_2_Hair.uasset new file mode 100644 index 0000000..be5edd3 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Materials/MI_Woman_Warrior_2_Skin_2_Hair.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:404e8f9f9558e4740d32528a22bb98ad1d256eaf9fe5a742dfceac588ec166aa +size 184787 diff --git a/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Armor.uasset b/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Armor.uasset new file mode 100644 index 0000000..8305f90 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Armor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef082d4dd1366df89bbfde52b8b7bf7aab5d0a650833c99501e7bbaaa6d43db5 +size 145102 diff --git a/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Clothes.uasset b/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Clothes.uasset new file mode 100644 index 0000000..8715def --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Clothes.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db7d572e3b51838bf8e974d7c9cbff8c5b86dc70c99c3133c2751fd0d3a86409 +size 137539 diff --git a/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Hair.uasset b/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Hair.uasset new file mode 100644 index 0000000..f447581 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Hair.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:add7bd5280adc7a8d21aea8ed3f4df7e2a736282d47c736929ec3d2a3f4fa9f1 +size 223400 diff --git a/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Skin_2_Armor.uasset b/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Skin_2_Armor.uasset new file mode 100644 index 0000000..283a6ca --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Skin_2_Armor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae4402447f9c6af5baa09ab3026d55433408d021816967afffeba4329a518136 +size 159521 diff --git a/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Skin_2_Clothes.uasset b/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Skin_2_Clothes.uasset new file mode 100644 index 0000000..db3a331 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Materials/M_Woman_Warrior_2_Skin_2_Clothes.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a77ef4e87c1ec7c82eab26ce9b0f986ce77d52a28ce3efc4f712abf4c91cde3 +size 158948 diff --git a/Content/AssetPacks/Woman_Warrior_2/Mesh/SeparatedMesh/Armor.uasset b/Content/AssetPacks/Woman_Warrior_2/Mesh/SeparatedMesh/Armor.uasset new file mode 100644 index 0000000..7cb7186 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Mesh/SeparatedMesh/Armor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6bb29e4d16bc211c9ef6475f3017ad2b6dccb04e6419c4882d44f062c6e10eb +size 1644968 diff --git a/Content/AssetPacks/Woman_Warrior_2/Mesh/SeparatedMesh/Clothes.uasset b/Content/AssetPacks/Woman_Warrior_2/Mesh/SeparatedMesh/Clothes.uasset new file mode 100644 index 0000000..b0604cb --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Mesh/SeparatedMesh/Clothes.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec3ccfcbbe32f1e4e0c116eb28d18ae65c94fce7f7d5a2de5a85281c8a4010dd +size 2793110 diff --git a/Content/AssetPacks/Woman_Warrior_2/Mesh/SeparatedMesh/Hair.uasset b/Content/AssetPacks/Woman_Warrior_2/Mesh/SeparatedMesh/Hair.uasset new file mode 100644 index 0000000..8ea4676 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Mesh/SeparatedMesh/Hair.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6ba0277031f25942f813e015e97707a21d1429f131fe065010863463e5ca6ac +size 1872809 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Armor_AO.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Armor_AO.uasset new file mode 100644 index 0000000..2de9368 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Armor_AO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a6445658f092ccc98b69c6a57c23d38b3b0a42d76f77a745905de4275b8898a +size 260655 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Armor_Albedo.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Armor_Albedo.uasset new file mode 100644 index 0000000..250093e --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Armor_Albedo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8e8c99fe6f94ed738bd63f9e881768e91300db7db3fe1e9905cec3007691a97 +size 379716 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Armor_Metallic+Roughness.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Armor_Metallic+Roughness.uasset new file mode 100644 index 0000000..214a295 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Armor_Metallic+Roughness.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a401f3e86d31a1e29ae246c47bf427fc90583c8f5c811b1d51de46155194f994 +size 909882 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Armor_Normal.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Armor_Normal.uasset new file mode 100644 index 0000000..7b8eb63 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Armor_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b248c0150ebd85d9e106c005cbfee27f0d1f922609e0dabcf1c57dd60463df5 +size 1440410 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Skin_2_Armor_Albedo.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Skin_2_Armor_Albedo.uasset new file mode 100644 index 0000000..3428222 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Armor/T_Woman_Warrior_2_Skin_2_Armor_Albedo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66372548e48d0412768380d070fb2e5eab5b64b933f9a160771d0c61c52ca741 +size 751927 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Body_Albedo.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Body_Albedo.uasset new file mode 100644 index 0000000..206c825 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Body_Albedo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ccb5604fa004000e687605298e8f3b4a74cc0cafa932292fa2af598114157d7 +size 987328 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Body_Mask.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Body_Mask.uasset new file mode 100644 index 0000000..b1fb429 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Body_Mask.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd07341256cf536653792bd87d2de4f63f9217393c15b1411ecd5ff71fffe2d1 +size 25460 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Body_Metallic+Roughness.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Body_Metallic+Roughness.uasset new file mode 100644 index 0000000..e5f922c --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Body_Metallic+Roughness.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40069540ad92a901937aef7948f3d9be57d7d1f9f6e2a3e51479e57a907f3e26 +size 118546 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Body_Normal.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Body_Normal.uasset new file mode 100644 index 0000000..36fc2df --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Body_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd78367d45c9ba03de418bf619497a047920ddb320044a24ee67c1f5ad1da35a +size 970387 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Skin_2_Body_Albedo.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Skin_2_Body_Albedo.uasset new file mode 100644 index 0000000..5dab6da --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Skin_2_Body_Albedo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:521360be7f3561821ee55072c72c628759ada9d8d795b0c47b666fa0530a11e8 +size 1033077 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Skin_2_Head_Albedo.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Skin_2_Head_Albedo.uasset new file mode 100644 index 0000000..62cc33e --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Body/T_Woman_Warrior_2_Skin_2_Head_Albedo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86caf0588ffd7cb9e70f29dd9872d74b65666c2d986ea599ec8fb979e66a151b +size 1131776 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Clothes_AO.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Clothes_AO.uasset new file mode 100644 index 0000000..89cc601 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Clothes_AO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05016b0c6da1d88713cef68f1af7897a55479e1d8bee078bff04025528ff96c6 +size 293510 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Clothes_Albedo.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Clothes_Albedo.uasset new file mode 100644 index 0000000..6e71b60 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Clothes_Albedo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e9a9471ed13b1df6c9e1887d77599ec2079115024bfe1f8992b2876b5a867df +size 1332732 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Clothes_Metallic+Roughness.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Clothes_Metallic+Roughness.uasset new file mode 100644 index 0000000..4f023f2 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Clothes_Metallic+Roughness.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3deda071e595728e37d47689f2c486304fe87cb986c37547c35c00fe753cce0f +size 767296 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Clothes_Normal.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Clothes_Normal.uasset new file mode 100644 index 0000000..0847f17 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Clothes_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1dc81b35510d2abeb3dbaf6c09d6bf8784ed3aa232809b1a92c3c55d256fca6 +size 2203127 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Skin_2_Clothes_Albedo.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Skin_2_Clothes_Albedo.uasset new file mode 100644 index 0000000..a1b5d4d --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Clothes/T_Woman_Warrior_2_Skin_2_Clothes_Albedo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdd88a852401371e0677119bda2b3bdda05759bd29a5d9e09f2ba917826b10f2 +size 1315292 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Eyelashes/T_Woman_Warrior_2_Eyelashes_Albedo.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Eyelashes/T_Woman_Warrior_2_Eyelashes_Albedo.uasset new file mode 100644 index 0000000..9bce6f9 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Eyelashes/T_Woman_Warrior_2_Eyelashes_Albedo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4058d4dc3751e435bf18ca8daca4b1fc6dd734c3f1ed52388a7de6b76bce004a +size 357975 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Eyelashes/T_Woman_Warrior_2_Eyelashes_Alpha.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Eyelashes/T_Woman_Warrior_2_Eyelashes_Alpha.uasset new file mode 100644 index 0000000..0896ee5 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Eyelashes/T_Woman_Warrior_2_Eyelashes_Alpha.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ab96025b59d801cb119e8ea3d4b399e519baadbed2445212174def3bc81f19d +size 249904 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Albedo.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Albedo.uasset new file mode 100644 index 0000000..6f7d896 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Albedo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44cca1f71fc89bba0f1177de3d9444c183faef7c5e9d96c24add5ca659f66277 +size 666249 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Alpha.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Alpha.uasset new file mode 100644 index 0000000..dc99b74 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Alpha.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5857ba6c16f80509cb616eed3098ca2f66dabfd3c907b729662540401117c52c +size 447759 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Depth.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Depth.uasset new file mode 100644 index 0000000..0430b49 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Depth.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8f7b04aa8f6a6a7c215a24fe37edc262078c24434ae15a68676f1fe94589e48 +size 250558 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Gradient.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Gradient.uasset new file mode 100644 index 0000000..7ddeda2 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Gradient.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b8776f17135c0e472a0d05da9f4c01045d0e87ced820df6df336be96e08781c +size 322500 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_ID.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_ID.uasset new file mode 100644 index 0000000..e87be0b --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_ID.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4164ba3d12e79225b274e4937eb61b482d5483bac31901ecaef34683d454afa +size 1137825 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Wind.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Wind.uasset new file mode 100644 index 0000000..b265df0 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Hair/T_Woman_Warrior_2_Hair_Wind.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eee8a4a2d3dd14c88e127f202d7abcd1f2fc222b67adae3e3fd0676c24183cfe +size 13177 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Head/T_Woman_Warrior_2_Head_Albedo.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Head/T_Woman_Warrior_2_Head_Albedo.uasset new file mode 100644 index 0000000..6fda165 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Head/T_Woman_Warrior_2_Head_Albedo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be06b3ec39c6a5254a190b495925ed0e058dd488339296941dc68a9c08a1b524 +size 1258810 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Head/T_Woman_Warrior_2_Head_Metallic+Roughness.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Head/T_Woman_Warrior_2_Head_Metallic+Roughness.uasset new file mode 100644 index 0000000..bfe04df --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Head/T_Woman_Warrior_2_Head_Metallic+Roughness.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d32484db64231e43843ccaf20e0ce0981910819662a24b311da454232fe1207 +size 519943 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Head/T_Woman_Warrior_2_Head_Normal.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Head/T_Woman_Warrior_2_Head_Normal.uasset new file mode 100644 index 0000000..4dac89f --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Head/T_Woman_Warrior_2_Head_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a16f0494c2569c16e3306271e4635462914663bbc09951f85fcf001bb2c71eca +size 1402562 diff --git a/Content/AssetPacks/Woman_Warrior_2/Textures/Head/T_Woman_Warrior_2_Skin_2_Head_Albedo.uasset b/Content/AssetPacks/Woman_Warrior_2/Textures/Head/T_Woman_Warrior_2_Skin_2_Head_Albedo.uasset new file mode 100644 index 0000000..638c051 --- /dev/null +++ b/Content/AssetPacks/Woman_Warrior_2/Textures/Head/T_Woman_Warrior_2_Skin_2_Head_Albedo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02f11d1932608354d05c49a4f8e1283e438fc2318a068f32ffaeb5b8e27ca21f +size 1131776 diff --git a/Content/Assets/Characters/Aura/Animations/Abilities/Cast_ArcaneShards.uasset b/Content/Assets/Characters/Aura/Animations/Abilities/Cast_ArcaneShards.uasset new file mode 100644 index 0000000..83f443e --- /dev/null +++ b/Content/Assets/Characters/Aura/Animations/Abilities/Cast_ArcaneShards.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0135fa2bb4fccabb6b0d38f649bc4af3556eba82c63f7759cc30f00ddc7fb21 +size 238583 diff --git a/Content/Assets/Characters/Aura/Animations/Abilities/Cast_ArcaneShards_Short.uasset b/Content/Assets/Characters/Aura/Animations/Abilities/Cast_ArcaneShards_Short.uasset new file mode 100644 index 0000000..f8096bd --- /dev/null +++ b/Content/Assets/Characters/Aura/Animations/Abilities/Cast_ArcaneShards_Short.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2955e4af7352eb0f586570ead0b7b8a42dd8ff8b27198bede81781ccd8df5590 +size 178524 diff --git a/Content/Assets/Characters/Aura/Animations/Abilities/Cast_FireBolt.uasset b/Content/Assets/Characters/Aura/Animations/Abilities/Cast_FireBolt.uasset new file mode 100644 index 0000000..86ead7b --- /dev/null +++ b/Content/Assets/Characters/Aura/Animations/Abilities/Cast_FireBolt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:813235f934dfd2f55c2435d35214408997368774d547a0eb72426be957ab273e +size 192835 diff --git a/Content/Assets/Characters/Aura/Animations/Abilities/Cast_Shock.uasset b/Content/Assets/Characters/Aura/Animations/Abilities/Cast_Shock.uasset new file mode 100644 index 0000000..0e639d0 --- /dev/null +++ b/Content/Assets/Characters/Aura/Animations/Abilities/Cast_Shock.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:025df98cba5e1f9c1ddcfa538a6ee1270eabc292d1c77bb24866786b8696374c +size 124788 diff --git a/Content/Assets/Characters/Aura/Animations/Abilities/Cast_Shock_Loop.uasset b/Content/Assets/Characters/Aura/Animations/Abilities/Cast_Shock_Loop.uasset new file mode 100644 index 0000000..63c5fb9 --- /dev/null +++ b/Content/Assets/Characters/Aura/Animations/Abilities/Cast_Shock_Loop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dceafccc59414af4daa10d849c29c46f04aa4f682a7ad45fb571eb3975340371 +size 330225 diff --git a/Content/Assets/Characters/Aura/Animations/Abilities/HitReact.uasset b/Content/Assets/Characters/Aura/Animations/Abilities/HitReact.uasset new file mode 100644 index 0000000..ba42725 --- /dev/null +++ b/Content/Assets/Characters/Aura/Animations/Abilities/HitReact.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7057b2c166a0d5c0a3dcf1c98553320265c1cac515bf4d28c9cbe4556971f41 +size 105048 diff --git a/Content/Assets/Characters/Aura/Animations/Abilities/Stun.uasset b/Content/Assets/Characters/Aura/Animations/Abilities/Stun.uasset new file mode 100644 index 0000000..b81fed4 --- /dev/null +++ b/Content/Assets/Characters/Aura/Animations/Abilities/Stun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70303d26f1a2c9ce3249cead3dbca046353c3c16d17f4c6ff7d5bde776d51981 +size 353303 diff --git a/Content/Assets/Characters/Aura/Animations/AuraPose.uasset b/Content/Assets/Characters/Aura/Animations/AuraPose.uasset new file mode 100644 index 0000000..f6f877c --- /dev/null +++ b/Content/Assets/Characters/Aura/Animations/AuraPose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b35cb41ac10e1fdee92c7d25778d4cc0483d124395d33efc02d6258a96a6d4dd +size 3010365 diff --git a/Content/Assets/Characters/Aura/Animations/Idle.uasset b/Content/Assets/Characters/Aura/Animations/Idle.uasset new file mode 100644 index 0000000..bf20837 --- /dev/null +++ b/Content/Assets/Characters/Aura/Animations/Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2cdd5e97e19cf0e43ae04bde41ee706758c5c65e41fc6971d8eab155ab369f1 +size 767528 diff --git a/Content/Assets/Characters/Aura/Animations/IdleWalkRun.uasset b/Content/Assets/Characters/Aura/Animations/IdleWalkRun.uasset new file mode 100644 index 0000000..abf09ba --- /dev/null +++ b/Content/Assets/Characters/Aura/Animations/IdleWalkRun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d9fef52ee692f3fc814aa127f45c2a54267a31311bb6e8132b55cda3b5a4525 +size 8789 diff --git a/Content/Assets/Characters/Aura/Animations/InAir.uasset b/Content/Assets/Characters/Aura/Animations/InAir.uasset new file mode 100644 index 0000000..727bca8 --- /dev/null +++ b/Content/Assets/Characters/Aura/Animations/InAir.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98c4e812b8e24a4ec041af81543c3fbe74d8b86c5530d96598e13ea1aa213f0b +size 251714 diff --git a/Content/Assets/Characters/Aura/Animations/Run.uasset b/Content/Assets/Characters/Aura/Animations/Run.uasset new file mode 100644 index 0000000..1e0ee8e --- /dev/null +++ b/Content/Assets/Characters/Aura/Animations/Run.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3af112bbfdc94755c3d0942f57d767ffac77064a65973df451d24ff95358849f +size 236888 diff --git a/Content/Assets/Characters/Aura/Animations/Walk.uasset b/Content/Assets/Characters/Aura/Animations/Walk.uasset new file mode 100644 index 0000000..a66143c --- /dev/null +++ b/Content/Assets/Characters/Aura/Animations/Walk.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a740baddca592dc9763238379ce54fafd072d12f43e78c1a0eb5cee0dc25a8d +size 308059 diff --git a/Content/Assets/Characters/Aura/Materials/M_ArmGuard.uasset b/Content/Assets/Characters/Aura/Materials/M_ArmGuard.uasset new file mode 100644 index 0000000..573bb36 --- /dev/null +++ b/Content/Assets/Characters/Aura/Materials/M_ArmGuard.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30ed72a7f70ed6cd8a56a73e0a4fece4a203bca18646e004c4ee4d30a38a6246 +size 12493 diff --git a/Content/Assets/Characters/Aura/Materials/M_Belt.uasset b/Content/Assets/Characters/Aura/Materials/M_Belt.uasset new file mode 100644 index 0000000..a75ef25 --- /dev/null +++ b/Content/Assets/Characters/Aura/Materials/M_Belt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86485a2be0e45089bbe0f17f3a1d4c34f9a364d4b4651525356aa775a9ef5c0a +size 12042 diff --git a/Content/Assets/Characters/Aura/Materials/M_Body.uasset b/Content/Assets/Characters/Aura/Materials/M_Body.uasset new file mode 100644 index 0000000..4fd3850 --- /dev/null +++ b/Content/Assets/Characters/Aura/Materials/M_Body.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b05a8872c00d8d7052082b50a8d5b199ad1a57fd3f6d267d2dc51598077ab93 +size 12045 diff --git a/Content/Assets/Characters/Aura/Materials/M_Eyes.uasset b/Content/Assets/Characters/Aura/Materials/M_Eyes.uasset new file mode 100644 index 0000000..bdd321b --- /dev/null +++ b/Content/Assets/Characters/Aura/Materials/M_Eyes.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:489983de35e1b67170a0c846a4daf7e4b4d376dafbd45bcb0a80a972f48baa54 +size 12164 diff --git a/Content/Assets/Characters/Aura/Materials/M_Hair.uasset b/Content/Assets/Characters/Aura/Materials/M_Hair.uasset new file mode 100644 index 0000000..e9657ed --- /dev/null +++ b/Content/Assets/Characters/Aura/Materials/M_Hair.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c059e2a54103d0855bb50fc800fd73d74f99ebc3e0f60e1dca0a1580b9d8e35 +size 11464 diff --git a/Content/Assets/Characters/Aura/Materials/M_Tunic.uasset b/Content/Assets/Characters/Aura/Materials/M_Tunic.uasset new file mode 100644 index 0000000..96f92d9 --- /dev/null +++ b/Content/Assets/Characters/Aura/Materials/M_Tunic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ef156a96b280bb9cfbdb5d9a7ea652a1ce2342949a54316b70a65e1cec1c861 +size 12169 diff --git a/Content/Assets/Characters/Aura/PA_Aura.uasset b/Content/Assets/Characters/Aura/PA_Aura.uasset new file mode 100644 index 0000000..f766d0c --- /dev/null +++ b/Content/Assets/Characters/Aura/PA_Aura.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f8910711a7340ca900d2601f8bc822687f27d10f9a52050e90201a0ef5d99ff +size 36435 diff --git a/Content/Assets/Characters/Aura/SKM_Aura.uasset b/Content/Assets/Characters/Aura/SKM_Aura.uasset new file mode 100644 index 0000000..eafb57b --- /dev/null +++ b/Content/Assets/Characters/Aura/SKM_Aura.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58dfa587f121530c63cf6137af54a6df66a10c97dab00030d119c3712f4660d3 +size 4647324 diff --git a/Content/Assets/Characters/Aura/SK_Aura.uasset b/Content/Assets/Characters/Aura/SK_Aura.uasset new file mode 100644 index 0000000..ba08f64 --- /dev/null +++ b/Content/Assets/Characters/Aura/SK_Aura.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8bf3754d8b39bb1adade6ff2869784c917915e7b80c1bccbc3535843a47fdbf +size 33210 diff --git a/Content/Assets/Characters/Aura/Staff/Materials/M_Floaty.uasset b/Content/Assets/Characters/Aura/Staff/Materials/M_Floaty.uasset new file mode 100644 index 0000000..7a49638 --- /dev/null +++ b/Content/Assets/Characters/Aura/Staff/Materials/M_Floaty.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51e0efd1a87ebbb606eab7d8c34b112ff53cc51acb9ea7364a03fb81ebf90305 +size 14713 diff --git a/Content/Assets/Characters/Aura/Staff/Materials/M_Staff.uasset b/Content/Assets/Characters/Aura/Staff/Materials/M_Staff.uasset new file mode 100644 index 0000000..be868a5 --- /dev/null +++ b/Content/Assets/Characters/Aura/Staff/Materials/M_Staff.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c6a4e5eb56de5ea725b8c22902b87c3eebe36c961faff4d96d8bfd1dd611c67 +size 15061 diff --git a/Content/Assets/Characters/Aura/Staff/PA_Staff.uasset b/Content/Assets/Characters/Aura/Staff/PA_Staff.uasset new file mode 100644 index 0000000..db31437 --- /dev/null +++ b/Content/Assets/Characters/Aura/Staff/PA_Staff.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50cc30720d82ebe414b197c8e20d0c2e81637242b31a03478131dceff863c93d +size 7585 diff --git a/Content/Assets/Characters/Aura/Staff/SKM_Staff.uasset b/Content/Assets/Characters/Aura/Staff/SKM_Staff.uasset new file mode 100644 index 0000000..7dd44c1 --- /dev/null +++ b/Content/Assets/Characters/Aura/Staff/SKM_Staff.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23a63694cdd36311a386601c75cfa873ab442cf81815579e4624092ce3d09021 +size 1418498 diff --git a/Content/Assets/Characters/Aura/Staff/SK_Staff.uasset b/Content/Assets/Characters/Aura/Staff/SK_Staff.uasset new file mode 100644 index 0000000..6e0830d --- /dev/null +++ b/Content/Assets/Characters/Aura/Staff/SK_Staff.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbe12dbd152f8a0b43b69265af02d26729d1d91fed3a72fa915cf75303e082ec +size 7425 diff --git a/Content/Assets/Characters/Aura/Staff/SM_Staff.uasset b/Content/Assets/Characters/Aura/Staff/SM_Staff.uasset new file mode 100644 index 0000000..ac8dd76 --- /dev/null +++ b/Content/Assets/Characters/Aura/Staff/SM_Staff.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aab393d99b68698219d6cf3ef416b052fb0f28796889699d02fe25e5b0e9132c +size 413947 diff --git a/Content/Assets/Dungeon/Beacon/Material/MI_Beacon.uasset b/Content/Assets/Dungeon/Beacon/Material/MI_Beacon.uasset new file mode 100644 index 0000000..e12d010 --- /dev/null +++ b/Content/Assets/Dungeon/Beacon/Material/MI_Beacon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d37549f8ae4418b2844c13d673c6b3214a643756e56f0a8f55e3cb32935b8f1e +size 13434 diff --git a/Content/Assets/Dungeon/Beacon/Material/MI_Beacon_Glow.uasset b/Content/Assets/Dungeon/Beacon/Material/MI_Beacon_Glow.uasset new file mode 100644 index 0000000..4e65a7c --- /dev/null +++ b/Content/Assets/Dungeon/Beacon/Material/MI_Beacon_Glow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df470005fe49764062eda41dbffdc1446db86636585852ba38e062d46c88ac94 +size 13464 diff --git a/Content/Assets/Dungeon/Beacon/Material/MI_Beacon_f.uasset b/Content/Assets/Dungeon/Beacon/Material/MI_Beacon_f.uasset new file mode 100644 index 0000000..1fe4f14 --- /dev/null +++ b/Content/Assets/Dungeon/Beacon/Material/MI_Beacon_f.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7eaaa5688e19e6b0dde1b37e5ded4b0d9f6782b90459d8ea10c1b12d2cde80d +size 10963 diff --git a/Content/Assets/Dungeon/Beacon/SM_Beacon.uasset b/Content/Assets/Dungeon/Beacon/SM_Beacon.uasset new file mode 100644 index 0000000..752f01e --- /dev/null +++ b/Content/Assets/Dungeon/Beacon/SM_Beacon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ae475c63804c298eef5063819fcfdf71f45ddba51e0d0e306bad2e316d6888e +size 36163 diff --git a/Content/Assets/Dungeon/Beacon/SM_Pillar.uasset b/Content/Assets/Dungeon/Beacon/SM_Pillar.uasset new file mode 100644 index 0000000..7110c74 --- /dev/null +++ b/Content/Assets/Dungeon/Beacon/SM_Pillar.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f33303c89273c8bf9c6b83ff26097b92d3c21ab91ae0018f462519336cc2b98c +size 22275 diff --git a/Content/Assets/Dungeon/Checkpoint/Material/MI_Checkpoint.uasset b/Content/Assets/Dungeon/Checkpoint/Material/MI_Checkpoint.uasset new file mode 100644 index 0000000..9abcf6e --- /dev/null +++ b/Content/Assets/Dungeon/Checkpoint/Material/MI_Checkpoint.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:282815ef16a68bafcef46dc20ae5c7225d9583dc5b170c3029ce2ad123265554 +size 11818 diff --git a/Content/Assets/Dungeon/Checkpoint/Material/MI_Checkpoint_Glow.uasset b/Content/Assets/Dungeon/Checkpoint/Material/MI_Checkpoint_Glow.uasset new file mode 100644 index 0000000..acb26dc --- /dev/null +++ b/Content/Assets/Dungeon/Checkpoint/Material/MI_Checkpoint_Glow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ff23404f875011bf33f06f563614aeb1683aed6ab087e02e2326ef8f056a455 +size 11942 diff --git a/Content/Assets/Dungeon/Checkpoint/SM_Checkpoint.uasset b/Content/Assets/Dungeon/Checkpoint/SM_Checkpoint.uasset new file mode 100644 index 0000000..74c747c --- /dev/null +++ b/Content/Assets/Dungeon/Checkpoint/SM_Checkpoint.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac2e73650713d09c6544c82c6777950457df8a5269896a9993f3bddae096b777 +size 73648 diff --git a/Content/Assets/Dungeon/Materials/CornerSmall/MI_CornerSmall.uasset b/Content/Assets/Dungeon/Materials/CornerSmall/MI_CornerSmall.uasset new file mode 100644 index 0000000..1bbd517 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/CornerSmall/MI_CornerSmall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab4c6f07672d81ddee3cccd7176a46d88353b2e1cdfc46684a3a86f2bad72bb0 +size 11889 diff --git a/Content/Assets/Dungeon/Materials/M_DungeonMasterMaterial.uasset b/Content/Assets/Dungeon/Materials/M_DungeonMasterMaterial.uasset new file mode 100644 index 0000000..50cb2fb --- /dev/null +++ b/Content/Assets/Dungeon/Materials/M_DungeonMasterMaterial.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2574e9a786e6fcf2b855d759a645f7baa5cbf2887ee1c129eccc2216a5925180 +size 12064 diff --git a/Content/Assets/Dungeon/Materials/M_DungeonMasterMaterial_f.uasset b/Content/Assets/Dungeon/Materials/M_DungeonMasterMaterial_f.uasset new file mode 100644 index 0000000..689f68b --- /dev/null +++ b/Content/Assets/Dungeon/Materials/M_DungeonMasterMaterial_f.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5910c0bbefe48e054b59aea2f151e55b449e5ef7f954d0556a60e911aa29222 +size 15592 diff --git a/Content/Assets/Dungeon/Materials/M_DungeonMaster_Emissive.uasset b/Content/Assets/Dungeon/Materials/M_DungeonMaster_Emissive.uasset new file mode 100644 index 0000000..499f852 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/M_DungeonMaster_Emissive.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5435333d4d84cdac417741ac6de282e5f0b5d8a77484cc8c9d966f05d91a413b +size 15599 diff --git a/Content/Assets/Dungeon/Materials/M_DungeonMaster_Emissive_f.uasset b/Content/Assets/Dungeon/Materials/M_DungeonMaster_Emissive_f.uasset new file mode 100644 index 0000000..b8663e2 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/M_DungeonMaster_Emissive_f.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:915219409bdcb29fdb3c8eefa910fe3768614d5f1327138a1e698d5393b2d517 +size 19230 diff --git a/Content/Assets/Dungeon/Materials/Stairs/MI_Stairs_ColumnsRims.uasset b/Content/Assets/Dungeon/Materials/Stairs/MI_Stairs_ColumnsRims.uasset new file mode 100644 index 0000000..087394e --- /dev/null +++ b/Content/Assets/Dungeon/Materials/Stairs/MI_Stairs_ColumnsRims.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8c2bfd6554e57a9ce510dd899bcfe91579b5a0d2d8bd27c84226e6ad23e6bc1 +size 11811 diff --git a/Content/Assets/Dungeon/Materials/Stairs/MI_Stairs_Pillars.uasset b/Content/Assets/Dungeon/Materials/Stairs/MI_Stairs_Pillars.uasset new file mode 100644 index 0000000..69d3d36 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/Stairs/MI_Stairs_Pillars.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cb1e7a5e5c2f272b29f9f4fd119d43612311bda0b83b2255f608707ad77b2d9 +size 11765 diff --git a/Content/Assets/Dungeon/Materials/Stairs/MI_Stairs_Rail.uasset b/Content/Assets/Dungeon/Materials/Stairs/MI_Stairs_Rail.uasset new file mode 100644 index 0000000..8a7f098 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/Stairs/MI_Stairs_Rail.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c59ee771ec75a842bea4a2367f3bcff6374e2e7849552340c66f7ed1cba9c909 +size 11975 diff --git a/Content/Assets/Dungeon/Materials/Stairs/MI_Stairs_Steps.uasset b/Content/Assets/Dungeon/Materials/Stairs/MI_Stairs_Steps.uasset new file mode 100644 index 0000000..750dfdb --- /dev/null +++ b/Content/Assets/Dungeon/Materials/Stairs/MI_Stairs_Steps.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d3fbffc7da6c5ca31091b1a946723dc1c9821ccf05264d26603ab90a5113e7f +size 12006 diff --git a/Content/Assets/Dungeon/Materials/Tileset1/MI_Tileset1.uasset b/Content/Assets/Dungeon/Materials/Tileset1/MI_Tileset1.uasset new file mode 100644 index 0000000..598949f --- /dev/null +++ b/Content/Assets/Dungeon/Materials/Tileset1/MI_Tileset1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fa60d2ae75fbafa94dd1961110ac1965c37bded6dc2c930220edcdd773d200f +size 11200 diff --git a/Content/Assets/Dungeon/Materials/Tileset1x1/Tilese1x1_2/MI_Tilese1x1_2.uasset b/Content/Assets/Dungeon/Materials/Tileset1x1/Tilese1x1_2/MI_Tilese1x1_2.uasset new file mode 100644 index 0000000..79ffc63 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/Tileset1x1/Tilese1x1_2/MI_Tilese1x1_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:273dcff4f9f4b934d70e49a094759bf2e1e3985c3f25acd189f6be08411d20cf +size 10881 diff --git a/Content/Assets/Dungeon/Materials/Tileset1x1/Tileset1x1_1/MI_Tileset1x1_1.uasset b/Content/Assets/Dungeon/Materials/Tileset1x1/Tileset1x1_1/MI_Tileset1x1_1.uasset new file mode 100644 index 0000000..1ad8aa3 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/Tileset1x1/Tileset1x1_1/MI_Tileset1x1_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7ac7b135c4605b0e6221a506f17ccf527dc1355ab42309abd6690f52402b925 +size 12034 diff --git a/Content/Assets/Dungeon/Materials/Tileset2/MI_Tileset2.uasset b/Content/Assets/Dungeon/Materials/Tileset2/MI_Tileset2.uasset new file mode 100644 index 0000000..871ba32 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/Tileset2/MI_Tileset2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9edefaf7b055b31e8a0238fa342ea82f3d2daf93cbf0892659981f2e1c0a9763 +size 11182 diff --git a/Content/Assets/Dungeon/Materials/Tileset3/MI_Tileset3.uasset b/Content/Assets/Dungeon/Materials/Tileset3/MI_Tileset3.uasset new file mode 100644 index 0000000..5243ef4 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/Tileset3/MI_Tileset3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf3a687ddec29275d8ff8e79c4fecd4126198970ec804cf59be70a05b03b3a01 +size 11423 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Balusters.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Balusters.uasset new file mode 100644 index 0000000..e8f1f88 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Balusters.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c73ae102dbf0669f8ef586c4352f68780bbca6895359ceefb41c0ae305f25ed5 +size 11269 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Base.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Base.uasset new file mode 100644 index 0000000..1768b77 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Base.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8604f8385aa5b631db1fb8848fb72a54fa2972dd161f44139386f0d2054e711 +size 11203 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Rail.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Rail.uasset new file mode 100644 index 0000000..4ddffbc --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Rail.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07dd546817affa6981d89a4a446125aec848fb8c3864fd99079a1969c4851f4a +size 12211 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Step.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Step.uasset new file mode 100644 index 0000000..a99a2f0 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Step.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8646bb4f6f5c151a86f06ebdbf1a337184cc559a4fd29fde76ea79ee204bc965 +size 12291 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Wall.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Wall.uasset new file mode 100644 index 0000000..cdc9d9a --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner/MI_TilesetCorner_Wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a87b71c600f019f8743a6329ad1eedd33da4854de60dd0368341cea14aa5f17 +size 13570 diff --git a/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Balusters.uasset b/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Balusters.uasset new file mode 100644 index 0000000..073abb0 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Balusters.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:791d05bbbb28e0f88e56c5a3f8fb27e968d7e863fffae4f7e8758135b605651d +size 11929 diff --git a/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Base.uasset b/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Base.uasset new file mode 100644 index 0000000..fc7a820 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Base.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf38f885d7edbcba2199206558ac239ecf2dff1161af63b87ba53ed7f885237d +size 11023 diff --git a/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Rail.uasset b/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Rail.uasset new file mode 100644 index 0000000..ee6c935 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Rail.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e559d343d956ac2ce9171c1053b568ea05db2540c1b72f744c1ef58da2eba053 +size 12188 diff --git a/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Step.uasset b/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Step.uasset new file mode 100644 index 0000000..a61104e --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Step.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c90a9c58b1e92d35157a49d2c057175aca6622caec5584090992df4c57b9ed03 +size 12061 diff --git a/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Wall.uasset b/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Wall.uasset new file mode 100644 index 0000000..f18425c --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCornerInner/MI_Inner_Wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6940ac529e2415f4af8b196872ed9be38ecdd79efab20969834fb4a606490bd +size 12032 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Balusters.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Balusters.uasset new file mode 100644 index 0000000..b2e3f46 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Balusters.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2faddd12fb6f69e99bb6a76e7f2e59c2da6c474a94eacb716639fbb189d427cf +size 11298 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Base.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Base.uasset new file mode 100644 index 0000000..73953c2 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Base.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39403c7069902cd0dedd8bbc887c3af1fe4ee011d51456bc92a83d336cfee2c8 +size 11229 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Rail.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Rail.uasset new file mode 100644 index 0000000..bc26c8b --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Rail.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da6c0c9a07b7c6e91cd50ce7414a79a0494caf82d34223985d11040905937eff +size 12396 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Step.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Step.uasset new file mode 100644 index 0000000..048eb74 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Step.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54fbf2b8e70f98540844250d3858d5cb06180ab24782e82d165244f687bb0611 +size 12144 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Wall.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Wall.uasset new file mode 100644 index 0000000..583abef --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner_fixedlighting/MI_TilesetCorner_Wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2b637c0a59af7b658b09ce0e8fa7f0345e5c06c82ceaeeae374ed8d130d8c86 +size 12491 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_balusters_dark.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_balusters_dark.uasset new file mode 100644 index 0000000..47b6e76 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_balusters_dark.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c48425e5445fd6da6bcc8450bfc89f737cc55b001e91064cbc43df1d23c03066 +size 11228 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_base_dark.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_base_dark.uasset new file mode 100644 index 0000000..5a75485 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_base_dark.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd240f0db9ff2ea24fc8a40296a5e662c01b9c6301d1ed968f83065ebc94a52e +size 11260 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_rail_dark.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_rail_dark.uasset new file mode 100644 index 0000000..16e97bb --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_rail_dark.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:965b881e49e7fa7672e52b69fdaeaa55a5461e4ffa81f6c880a94cfd8f6a87ee +size 11644 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_step_dark.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_step_dark.uasset new file mode 100644 index 0000000..8aec40c --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_step_dark.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:faccf65d5c131c27aada3c952b3ee4857046396ab4054d062011c3b2e6e4eb27 +size 11775 diff --git a/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_wall_dark.uasset b/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_wall_dark.uasset new file mode 100644 index 0000000..66d5d94 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetCorner_splotches/MI_TilesetCorner_wall_dark.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7ea0359b0cd100a5d227f99bed9193d90c5c19fb40c977f40487f1a0b670424 +size 12111 diff --git a/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_balusters.uasset b/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_balusters.uasset new file mode 100644 index 0000000..4eeb4bb --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_balusters.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06b2f77962c8f84834a89fced888160cfd40c3047259904b952d1ebb18612950 +size 11569 diff --git a/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_base.uasset b/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_base.uasset new file mode 100644 index 0000000..608555e --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_base.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60e0c7d8f0266d836634150d1cb7481e0b122ee9228daa193c1f171dae91c091 +size 11268 diff --git a/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_rail.uasset b/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_rail.uasset new file mode 100644 index 0000000..6b92630 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_rail.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9608bb7f970b748f1727353d607243f8484b6b9d745cccb49c25d7b4eab5576b +size 11896 diff --git a/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_step.uasset b/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_step.uasset new file mode 100644 index 0000000..05626f9 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_step.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c57798bde8a177eb0482c31817720f0ec721145b9318e22e5cb622ef403a5a8b +size 11544 diff --git a/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_wall.uasset b/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_wall.uasset new file mode 100644 index 0000000..c4637c7 --- /dev/null +++ b/Content/Assets/Dungeon/Materials/TilesetEdge/MI_Edge_wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b3912854babd03b760378639df5fec4e771ad29cd4e501c45c81c113ed18e1a +size 11545 diff --git a/Content/Assets/Dungeon/SM_Block2x2x1.uasset b/Content/Assets/Dungeon/SM_Block2x2x1.uasset new file mode 100644 index 0000000..4180ec1 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Block2x2x1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6d07a0bfd0c821e6818afd2ded335865dab698c823f260042a2c513a7fb3491 +size 17375 diff --git a/Content/Assets/Dungeon/SM_Block2x3x1.uasset b/Content/Assets/Dungeon/SM_Block2x3x1.uasset new file mode 100644 index 0000000..a4d7f2b --- /dev/null +++ b/Content/Assets/Dungeon/SM_Block2x3x1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0d3229a41f2929f9e8915b551d2d98cef1baaf478a24d05585d6c1e1c4d49b4 +size 17484 diff --git a/Content/Assets/Dungeon/SM_Block3x3x1.uasset b/Content/Assets/Dungeon/SM_Block3x3x1.uasset new file mode 100644 index 0000000..2d93d16 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Block3x3x1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01cbfb6443fa0743afc493d70051400f0fd475246d391e758a521c14f7232dac +size 17470 diff --git a/Content/Assets/Dungeon/SM_Block4x3x1.uasset b/Content/Assets/Dungeon/SM_Block4x3x1.uasset new file mode 100644 index 0000000..b68df47 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Block4x3x1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dacad9d46bae4bbec5bc1330c79c164de1f4b2149442dea68e909c2118f88111 +size 18205 diff --git a/Content/Assets/Dungeon/SM_Block4x4x1.uasset b/Content/Assets/Dungeon/SM_Block4x4x1.uasset new file mode 100644 index 0000000..d3b1ce4 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Block4x4x1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:504c8279677b0ed6f300074bd1fd8a06ed7512f207a1d0839d023e68b2d808b6 +size 18452 diff --git a/Content/Assets/Dungeon/SM_Block_1x1x1.uasset b/Content/Assets/Dungeon/SM_Block_1x1x1.uasset new file mode 100644 index 0000000..a0e3f25 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Block_1x1x1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87f7cc4420db30ea580e2cdb6755cb00130ae4c24c0998f1030f7f0e6f101735 +size 16394 diff --git a/Content/Assets/Dungeon/SM_Block_1x1x2.uasset b/Content/Assets/Dungeon/SM_Block_1x1x2.uasset new file mode 100644 index 0000000..83cc329 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Block_1x1x2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46e2f6498b2ba10a201b6a3c4af91e73e7e0bed4ae4a28b0f5b00a6e3c7d0790 +size 16590 diff --git a/Content/Assets/Dungeon/SM_Block_1x1x3.uasset b/Content/Assets/Dungeon/SM_Block_1x1x3.uasset new file mode 100644 index 0000000..b67eec3 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Block_1x1x3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac36a1f0b137bd6dde6f4328383c148f4346a2be70942cbb331d79ddbef977cd +size 17018 diff --git a/Content/Assets/Dungeon/SM_Block_1x1x4.uasset b/Content/Assets/Dungeon/SM_Block_1x1x4.uasset new file mode 100644 index 0000000..447e322 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Block_1x1x4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1ff52325c1c5966bee19a79213661cb00f4294b73c7133e3d38dc37a50d970c +size 17014 diff --git a/Content/Assets/Dungeon/SM_Corner.uasset b/Content/Assets/Dungeon/SM_Corner.uasset new file mode 100644 index 0000000..110b295 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Corner.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da70c3aed1b0d489d12ea12bc99d9c3165c225792f947f7d3b72599dad33e95e +size 122643 diff --git a/Content/Assets/Dungeon/SM_CornerInner_norail.uasset b/Content/Assets/Dungeon/SM_CornerInner_norail.uasset new file mode 100644 index 0000000..36e289d --- /dev/null +++ b/Content/Assets/Dungeon/SM_CornerInner_norail.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd3f8662e75bcd466334bbc6671293de6dbc051808a7d9a67690d2b93cfdd19e +size 69200 diff --git a/Content/Assets/Dungeon/SM_CornerSmall.uasset b/Content/Assets/Dungeon/SM_CornerSmall.uasset new file mode 100644 index 0000000..ffa730c --- /dev/null +++ b/Content/Assets/Dungeon/SM_CornerSmall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e256d9f01a9baba78a940b10600a4d01b4883b9fc1fc24af85aec2c26f22b280 +size 41596 diff --git a/Content/Assets/Dungeon/SM_CornerSmall_nostep.uasset b/Content/Assets/Dungeon/SM_CornerSmall_nostep.uasset new file mode 100644 index 0000000..86f088b --- /dev/null +++ b/Content/Assets/Dungeon/SM_CornerSmall_nostep.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ba39244451a2828dd505d916bb5dd6f4ea39b186084a5549a9c794340a3f982 +size 34324 diff --git a/Content/Assets/Dungeon/SM_CornerSmall_nostep_norail.uasset b/Content/Assets/Dungeon/SM_CornerSmall_nostep_norail.uasset new file mode 100644 index 0000000..e20bac7 --- /dev/null +++ b/Content/Assets/Dungeon/SM_CornerSmall_nostep_norail.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68b03293715e82de4b564e8885a75b3138586b8f7b0a49c0f943ad093d4462bc +size 22031 diff --git a/Content/Assets/Dungeon/SM_CornerSmall_outer.uasset b/Content/Assets/Dungeon/SM_CornerSmall_outer.uasset new file mode 100644 index 0000000..51072c0 --- /dev/null +++ b/Content/Assets/Dungeon/SM_CornerSmall_outer.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c333c61a1d6bf99eb64fcffb5a2a208fc242122a275fa7b58757068ef668386 +size 48326 diff --git a/Content/Assets/Dungeon/SM_CornerSmall_rail.uasset b/Content/Assets/Dungeon/SM_CornerSmall_rail.uasset new file mode 100644 index 0000000..016533a --- /dev/null +++ b/Content/Assets/Dungeon/SM_CornerSmall_rail.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c5555432006cae394464a822456c1a1baab5fcfaf71020b9c4cb9f98732c80d +size 30900 diff --git a/Content/Assets/Dungeon/SM_Corner_Inner.uasset b/Content/Assets/Dungeon/SM_Corner_Inner.uasset new file mode 100644 index 0000000..04c7251 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Corner_Inner.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2af9391dbb6b1d081d189191759b9e5de39f9a0359c5c6a7f8a54d4b54366bb +size 149606 diff --git a/Content/Assets/Dungeon/SM_Corner_Inner_GeometryCollection.uasset b/Content/Assets/Dungeon/SM_Corner_Inner_GeometryCollection.uasset new file mode 100644 index 0000000..ca38cca --- /dev/null +++ b/Content/Assets/Dungeon/SM_Corner_Inner_GeometryCollection.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7795a85f074d6854ff883e0aba814187f046a7418fedd59dbdcf5c27f0afd51b +size 6196577 diff --git a/Content/Assets/Dungeon/SM_Corner_Inner_nobase.uasset b/Content/Assets/Dungeon/SM_Corner_Inner_nobase.uasset new file mode 100644 index 0000000..438f8f7 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Corner_Inner_nobase.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42306fc100f2b98b9d9b0fd7be8b38f809d62a800a3c9a95ff44309170ef8f02 +size 126078 diff --git a/Content/Assets/Dungeon/SM_Corner_Outer_norail.uasset b/Content/Assets/Dungeon/SM_Corner_Outer_norail.uasset new file mode 100644 index 0000000..e0fcb3d --- /dev/null +++ b/Content/Assets/Dungeon/SM_Corner_Outer_norail.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ccd09220afa9c0ccfd2bc32d8e0f4a372d6fadbcedf42860ef81d1c1336dade +size 68910 diff --git a/Content/Assets/Dungeon/SM_Corner_nobase.uasset b/Content/Assets/Dungeon/SM_Corner_nobase.uasset new file mode 100644 index 0000000..d0daaa3 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Corner_nobase.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b6c10164e84233113bbba76566aaa3aae911b1562624049f99debf808a7054d +size 123672 diff --git a/Content/Assets/Dungeon/SM_Corner_railing.uasset b/Content/Assets/Dungeon/SM_Corner_railing.uasset new file mode 100644 index 0000000..b498332 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Corner_railing.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9d233b48cfbe3f7fa62b681fd9137bdbeca4d60baf69e69bec3de5a72ef9d94 +size 88217 diff --git a/Content/Assets/Dungeon/SM_Corner_wall_short.uasset b/Content/Assets/Dungeon/SM_Corner_wall_short.uasset new file mode 100644 index 0000000..2160fc5 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Corner_wall_short.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b01ef926f26cf70de9235ddc8afe78eed7ede44ca373a43304437851fcf99add +size 51432 diff --git a/Content/Assets/Dungeon/SM_Corner_wall_tall.uasset b/Content/Assets/Dungeon/SM_Corner_wall_tall.uasset new file mode 100644 index 0000000..6141369 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Corner_wall_tall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9db8752515eac6c84edff09d8c5f4c5721ae147d74c3089a4832fd5df974ba34 +size 54477 diff --git a/Content/Assets/Dungeon/SM_Edge_2x1.uasset b/Content/Assets/Dungeon/SM_Edge_2x1.uasset new file mode 100644 index 0000000..bc20b6a --- /dev/null +++ b/Content/Assets/Dungeon/SM_Edge_2x1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c5c9af476c1d55728ee078afc06faf63a1b4beb93314cf61b86047d50fa51a1 +size 53424 diff --git a/Content/Assets/Dungeon/SM_Edge_2x1_GeometryCollection.uasset b/Content/Assets/Dungeon/SM_Edge_2x1_GeometryCollection.uasset new file mode 100644 index 0000000..bbf4c06 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Edge_2x1_GeometryCollection.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff70ef67c99314f901e2969934b9097cda92f8e898e47decc0f407d9490aaaf1 +size 7543258 diff --git a/Content/Assets/Dungeon/SM_Edge_2x2.uasset b/Content/Assets/Dungeon/SM_Edge_2x2.uasset new file mode 100644 index 0000000..188dd3c --- /dev/null +++ b/Content/Assets/Dungeon/SM_Edge_2x2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa9d6056b358dbc42951f0047923d2e114680c41c06cfd962749548b2205a5bb +size 83898 diff --git a/Content/Assets/Dungeon/SM_FloorCorner.uasset b/Content/Assets/Dungeon/SM_FloorCorner.uasset new file mode 100644 index 0000000..f498e5c --- /dev/null +++ b/Content/Assets/Dungeon/SM_FloorCorner.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4388d9dc9a7dba4a7e68f800f3eec51607b14656a2b71d9ce3fdd0073f2991e7 +size 21863 diff --git a/Content/Assets/Dungeon/SM_Stairs.uasset b/Content/Assets/Dungeon/SM_Stairs.uasset new file mode 100644 index 0000000..4a3fafd --- /dev/null +++ b/Content/Assets/Dungeon/SM_Stairs.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:058bc6cf6c602775916c2726cff890524e2f28ddefabae016419eef4723c12ee +size 182283 diff --git a/Content/Assets/Dungeon/SM_Stairs_L.uasset b/Content/Assets/Dungeon/SM_Stairs_L.uasset new file mode 100644 index 0000000..62435a1 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Stairs_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b7eee076b6ec13ec6a707e0ea6df03b604388efcf0290883fd0aae3c87410e8 +size 113423 diff --git a/Content/Assets/Dungeon/SM_Stairs_R.uasset b/Content/Assets/Dungeon/SM_Stairs_R.uasset new file mode 100644 index 0000000..f67d5e6 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Stairs_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87fe79e43622e2b8e7e2839351b08f941456f8b5e61bd00b1dd3effae474be1d +size 112219 diff --git a/Content/Assets/Dungeon/SM_Stairs_nobottom.uasset b/Content/Assets/Dungeon/SM_Stairs_nobottom.uasset new file mode 100644 index 0000000..040c194 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Stairs_nobottom.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5624ba10ce5a13706f003b5759b0476876981937e9565ad95d8cb3ee75342e5d +size 173303 diff --git a/Content/Assets/Dungeon/SM_Stairs_nobottom_L.uasset b/Content/Assets/Dungeon/SM_Stairs_nobottom_L.uasset new file mode 100644 index 0000000..c9bbfb9 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Stairs_nobottom_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:483c5def413371b160df5e723d965a49bed8f843020f18c776a62ef8bf7ee439 +size 109579 diff --git a/Content/Assets/Dungeon/SM_Stairs_nobottom_R.uasset b/Content/Assets/Dungeon/SM_Stairs_nobottom_R.uasset new file mode 100644 index 0000000..0242c7d --- /dev/null +++ b/Content/Assets/Dungeon/SM_Stairs_nobottom_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c57add7efedba7e46b026d041bb821823c6c39ba1fb6971313b8d1c9600e82e0 +size 109979 diff --git a/Content/Assets/Dungeon/SM_Tile1x1_A.uasset b/Content/Assets/Dungeon/SM_Tile1x1_A.uasset new file mode 100644 index 0000000..5451dee --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile1x1_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff73bf5bc4eb47e98017bc3e72daebbdf035b00fedd27f4125937b5c9889ad15 +size 16069 diff --git a/Content/Assets/Dungeon/SM_Tile1x1_B.uasset b/Content/Assets/Dungeon/SM_Tile1x1_B.uasset new file mode 100644 index 0000000..d39d04c --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile1x1_B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f844e2f692682b905659a5bf43cc7d811018a3d9e2c0b87bd59892ba68653658 +size 16046 diff --git a/Content/Assets/Dungeon/SM_Tile_1x2.uasset b/Content/Assets/Dungeon/SM_Tile_1x2.uasset new file mode 100644 index 0000000..bd81ae4 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_1x2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e34a270d650571f97cb93fb6f231befe3af355fa53410c8232e8b161f7aded57 +size 15774 diff --git a/Content/Assets/Dungeon/SM_Tile_1x3.uasset b/Content/Assets/Dungeon/SM_Tile_1x3.uasset new file mode 100644 index 0000000..3134860 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_1x3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ac83835622cec23cdc74fed86b7cd87359f8a1531956c559fbab8c355d8f9d1 +size 16131 diff --git a/Content/Assets/Dungeon/SM_Tile_1x3a.uasset b/Content/Assets/Dungeon/SM_Tile_1x3a.uasset new file mode 100644 index 0000000..fda66c1 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_1x3a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b40fae310e1d802cd615646515903a73a227cc9ff525a664f88a14dbe863d957 +size 17082 diff --git a/Content/Assets/Dungeon/SM_Tile_1x4.uasset b/Content/Assets/Dungeon/SM_Tile_1x4.uasset new file mode 100644 index 0000000..005958a --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_1x4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51a1aaa358811aa56ed956757361fa6ee2b5f97d6b2ee428324c866a3c52cd7f +size 15656 diff --git a/Content/Assets/Dungeon/SM_Tile_1x4_a.uasset b/Content/Assets/Dungeon/SM_Tile_1x4_a.uasset new file mode 100644 index 0000000..d9ec235 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_1x4_a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d945b778bcd0c65361cd9f770d3405f8af8825af4902525fbe02761d335a4aeb +size 15869 diff --git a/Content/Assets/Dungeon/SM_Tile_1x6.uasset b/Content/Assets/Dungeon/SM_Tile_1x6.uasset new file mode 100644 index 0000000..ce70f74 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_1x6.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ef20e192dde5c2d6f6db71c8e38352a17e9d2833575a47acae652b351f1f075 +size 16554 diff --git a/Content/Assets/Dungeon/SM_Tile_2x2.uasset b/Content/Assets/Dungeon/SM_Tile_2x2.uasset new file mode 100644 index 0000000..07e183a --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_2x2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f39b09e08523753b5dd5a1c254b965fb744a4f98a06278f7406c6395ef176be +size 17321 diff --git a/Content/Assets/Dungeon/SM_Tile_2x2x2.uasset b/Content/Assets/Dungeon/SM_Tile_2x2x2.uasset new file mode 100644 index 0000000..3b193e8 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_2x2x2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41f7ef377e6ecd1e84e2d93fd5e6ea8bbc01bb545bfe2ac6cff2ef6951bc4101 +size 19098 diff --git a/Content/Assets/Dungeon/SM_Tile_2x4.uasset b/Content/Assets/Dungeon/SM_Tile_2x4.uasset new file mode 100644 index 0000000..a90b597 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_2x4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5c1b8b86867b0e41b800397490855c5e2ad93899266c74e14519186922a64cd +size 16482 diff --git a/Content/Assets/Dungeon/SM_Tile_3x2.uasset b/Content/Assets/Dungeon/SM_Tile_3x2.uasset new file mode 100644 index 0000000..ef289d9 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_3x2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6950b7c2817a1445c02ee6c60d74a5981af04a41ade788029071341f431a6c3 +size 16660 diff --git a/Content/Assets/Dungeon/SM_Tile_3x2x2.uasset b/Content/Assets/Dungeon/SM_Tile_3x2x2.uasset new file mode 100644 index 0000000..97e9f81 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_3x2x2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7b6d6ad39c54ff96150dcfd65fa91c3c8a3ed40da0d2d1c3e93159a8ea10735 +size 18208 diff --git a/Content/Assets/Dungeon/SM_Tile_3x3_A.uasset b/Content/Assets/Dungeon/SM_Tile_3x3_A.uasset new file mode 100644 index 0000000..ac9097d --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_3x3_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bec641cacd671becfe5dd9b8b7fbe781e70ad719ccd6b807cb61ec4217fc3611 +size 17129 diff --git a/Content/Assets/Dungeon/SM_Tile_3x3_B.uasset b/Content/Assets/Dungeon/SM_Tile_3x3_B.uasset new file mode 100644 index 0000000..9c1c67e --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_3x3_B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41e5a9d79feef1e7ab9a2facc43a71b69ad55040864ecd5763474359152e57c0 +size 21219 diff --git a/Content/Assets/Dungeon/SM_Tile_3x3x2.uasset b/Content/Assets/Dungeon/SM_Tile_3x3x2.uasset new file mode 100644 index 0000000..8b0fe7d --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_3x3x2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35decf4f655c7c657e5947651dbf8c208af5bb5157efe15664c07c922c29adb7 +size 16666 diff --git a/Content/Assets/Dungeon/SM_Tile_3x3x3.uasset b/Content/Assets/Dungeon/SM_Tile_3x3x3.uasset new file mode 100644 index 0000000..51f1a21 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_3x3x3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14bc0bff62f7f53f16bb1bd2d7801850375f10ce09a8d18998bd096075972166 +size 16346 diff --git a/Content/Assets/Dungeon/SM_Tile_4x4.uasset b/Content/Assets/Dungeon/SM_Tile_4x4.uasset new file mode 100644 index 0000000..fc25172 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_4x4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5914e665e227b8cb97395b64b4f5e4e6f00c1eab80959af3e13b8469b7ae43ee +size 17606 diff --git a/Content/Assets/Dungeon/SM_Tile_4x4_a.uasset b/Content/Assets/Dungeon/SM_Tile_4x4_a.uasset new file mode 100644 index 0000000..bac1f4e --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_4x4_a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab646ffc68500e5e5372e270d62ef375979103f4531638be9ae55e77a68ae084 +size 17614 diff --git a/Content/Assets/Dungeon/SM_Tile_5x5.uasset b/Content/Assets/Dungeon/SM_Tile_5x5.uasset new file mode 100644 index 0000000..bf0da8e --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_5x5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8361a7b4ef8b49e0bf3976f7c4cefca06509bab5cc08b20ec61e3a48fac670f +size 17893 diff --git a/Content/Assets/Dungeon/SM_Tile_6x3.uasset b/Content/Assets/Dungeon/SM_Tile_6x3.uasset new file mode 100644 index 0000000..c075d30 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_6x3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fda558d4a25e2e0c3dddf9dfda6d4e5ee06a932a8a5d88dc7750cf742a370d4a +size 15832 diff --git a/Content/Assets/Dungeon/SM_Tile_6x6.uasset b/Content/Assets/Dungeon/SM_Tile_6x6.uasset new file mode 100644 index 0000000..f139678 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_6x6.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:277920c66cda1b17486ee2f4a1f61abd8f94cf3d4d35f635f94f75a63ce25f39 +size 15965 diff --git a/Content/Assets/Dungeon/SM_Tile_6x9.uasset b/Content/Assets/Dungeon/SM_Tile_6x9.uasset new file mode 100644 index 0000000..7b044c3 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Tile_6x9.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1d4d2f8c3aaacf2eb7caa9f116fd39c2feec6cd1db809e2913637d2978184c3 +size 16013 diff --git a/Content/Assets/Dungeon/SM_TilesetEdge.uasset b/Content/Assets/Dungeon/SM_TilesetEdge.uasset new file mode 100644 index 0000000..9009e1a --- /dev/null +++ b/Content/Assets/Dungeon/SM_TilesetEdge.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f266de88bf61e1b7bf6612a931256df1e5654cfad69d43d261d8467fc9c33117 +size 54850 diff --git a/Content/Assets/Dungeon/SM_TilesetEdge_nobase.uasset b/Content/Assets/Dungeon/SM_TilesetEdge_nobase.uasset new file mode 100644 index 0000000..ee1aa65 --- /dev/null +++ b/Content/Assets/Dungeon/SM_TilesetEdge_nobase.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da843bf4286f72bc04e630501cdccc9e4210a3369d84c303021bdfac054b9d42 +size 66889 diff --git a/Content/Assets/Dungeon/SM_TilesetEdge_nobase_2.uasset b/Content/Assets/Dungeon/SM_TilesetEdge_nobase_2.uasset new file mode 100644 index 0000000..770e076 --- /dev/null +++ b/Content/Assets/Dungeon/SM_TilesetEdge_nobase_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:723e6ffef4e19ade2dc40436e2e0ea4df1c1a0c3a09aeaf12bacf7f35b705ec3 +size 89925 diff --git a/Content/Assets/Dungeon/SM_TilesetEdge_nobase_4.uasset b/Content/Assets/Dungeon/SM_TilesetEdge_nobase_4.uasset new file mode 100644 index 0000000..25940e0 --- /dev/null +++ b/Content/Assets/Dungeon/SM_TilesetEdge_nobase_4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6aa39946ba2929a3fadb7f6af226d812a4fa645165f0338e071fbf787dfe4c46 +size 125027 diff --git a/Content/Assets/Dungeon/SM_Wall_2x1.uasset b/Content/Assets/Dungeon/SM_Wall_2x1.uasset new file mode 100644 index 0000000..3595c48 --- /dev/null +++ b/Content/Assets/Dungeon/SM_Wall_2x1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef63594215542aa71f9b2148978c062d9ed3b4d290ef1a30a0fcd616f1d88e15 +size 28816 diff --git a/Content/Assets/Dungeon/SM_Wall_2x2.uasset b/Content/Assets/Dungeon/SM_Wall_2x2.uasset new file mode 100644 index 0000000..e80f59a --- /dev/null +++ b/Content/Assets/Dungeon/SM_Wall_2x2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c500bae9321cf7ea2f2d5c93121d5fc889e158aac3db69118b66c4e5a3b12611 +size 33153 diff --git a/Content/Assets/Dungeon/SM_Wall_4x2.uasset b/Content/Assets/Dungeon/SM_Wall_4x2.uasset new file mode 100644 index 0000000..0cb886b --- /dev/null +++ b/Content/Assets/Dungeon/SM_Wall_4x2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b00bdc97818f85b14f887fb85aff4c6b068c467f37740f7eeeb3df21ae0670dc +size 40218 diff --git a/Content/Assets/Effects/ArcaneShards/NS_ArcaneShards.uasset b/Content/Assets/Effects/ArcaneShards/NS_ArcaneShards.uasset new file mode 100644 index 0000000..3e7a15e --- /dev/null +++ b/Content/Assets/Effects/ArcaneShards/NS_ArcaneShards.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85e79464e96e5c367e135612ff60b7f0f6d79aba571d634fcd5f967baa0215cc +size 2503820 diff --git a/Content/Assets/Effects/Combat/NS_BloodImpact.uasset b/Content/Assets/Effects/Combat/NS_BloodImpact.uasset new file mode 100644 index 0000000..a2211ee --- /dev/null +++ b/Content/Assets/Effects/Combat/NS_BloodImpact.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0effb75d934936d36a5afc9486a969f4635d657bbf14ebdc7013ffce93238f1c +size 514929 diff --git a/Content/Assets/Effects/Combat/NS_CombatImpact.uasset b/Content/Assets/Effects/Combat/NS_CombatImpact.uasset new file mode 100644 index 0000000..6f2d131 --- /dev/null +++ b/Content/Assets/Effects/Combat/NS_CombatImpact.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:977910aa44e8e5e200efeae061449adcb9b3e47cda5c58f7b5ba8df520e6a9df +size 721256 diff --git a/Content/Assets/Effects/Combat/NS_GroundSummon.uasset b/Content/Assets/Effects/Combat/NS_GroundSummon.uasset new file mode 100644 index 0000000..0891662 --- /dev/null +++ b/Content/Assets/Effects/Combat/NS_GroundSummon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e22f8efe8ff38234e58a540c25aea791359042291375c7fd6bec98742409fa8 +size 440516 diff --git a/Content/Assets/Effects/Combat/NS_GroundSummonSlow.uasset b/Content/Assets/Effects/Combat/NS_GroundSummonSlow.uasset new file mode 100644 index 0000000..a41667e --- /dev/null +++ b/Content/Assets/Effects/Combat/NS_GroundSummonSlow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cb530ec9ed73b70923a9dd0088a042b764f60fb8de1114c3a67893fc2d8055f +size 429154 diff --git a/Content/Assets/Effects/Combat/NS_SlingshotImpact.uasset b/Content/Assets/Effects/Combat/NS_SlingshotImpact.uasset new file mode 100644 index 0000000..251da21 --- /dev/null +++ b/Content/Assets/Effects/Combat/NS_SlingshotImpact.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25b3918d4525820abddcc967b2f1fe56d9e9526a29e02d6809c42e70666f3fd9 +size 569834 diff --git a/Content/Assets/Effects/Combat/Trail/Materials/MI_Refraction.uasset b/Content/Assets/Effects/Combat/Trail/Materials/MI_Refraction.uasset new file mode 100644 index 0000000..cbd9726 --- /dev/null +++ b/Content/Assets/Effects/Combat/Trail/Materials/MI_Refraction.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e90bbcde8108a297092aebae9b5c998d291828596a3d44ec36ad2d62f9ec30c +size 9657 diff --git a/Content/Assets/Effects/Combat/Trail/Materials/M_Refraction.uasset b/Content/Assets/Effects/Combat/Trail/Materials/M_Refraction.uasset new file mode 100644 index 0000000..16de9be --- /dev/null +++ b/Content/Assets/Effects/Combat/Trail/Materials/M_Refraction.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24de2861f97a76b1eac617a524d3579847a4c3077cdff636fff736ce5bc1e335 +size 22529 diff --git a/Content/Assets/Effects/Combat/Trail/NE_Refract.uasset b/Content/Assets/Effects/Combat/Trail/NE_Refract.uasset new file mode 100644 index 0000000..16432ca --- /dev/null +++ b/Content/Assets/Effects/Combat/Trail/NE_Refract.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce0cd82f34518e7b643d518a336a0bf4df94d30208a45141f7849bc34a20be00 +size 193910 diff --git a/Content/Assets/Effects/Combat/Trail/NS_CombatTrail.uasset b/Content/Assets/Effects/Combat/Trail/NS_CombatTrail.uasset new file mode 100644 index 0000000..e80c0df --- /dev/null +++ b/Content/Assets/Effects/Combat/Trail/NS_CombatTrail.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0adb56adeab048f742b6afa50a36ab3a6b23e332b2edb9bb4e07f8404e2cb7e5 +size 348320 diff --git a/Content/Assets/Effects/Cursor/FX_Cursor.uasset b/Content/Assets/Effects/Cursor/FX_Cursor.uasset new file mode 100644 index 0000000..0d97ba8 --- /dev/null +++ b/Content/Assets/Effects/Cursor/FX_Cursor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71629d1b4c8e8ac5810428bf2e08c8139e535bbf0e50dad6bd09b5feceba292b +size 461725 diff --git a/Content/Assets/Effects/Cursor/M_Cursor.uasset b/Content/Assets/Effects/Cursor/M_Cursor.uasset new file mode 100644 index 0000000..a23392d --- /dev/null +++ b/Content/Assets/Effects/Cursor/M_Cursor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00de0e7515d91d40bfce651123586a1ea1eed3879994621a2316a4f0db76a2d0 +size 15191 diff --git a/Content/Assets/Effects/Cursor/SM_CursorMesh.uasset b/Content/Assets/Effects/Cursor/SM_CursorMesh.uasset new file mode 100644 index 0000000..e2a3ced --- /dev/null +++ b/Content/Assets/Effects/Cursor/SM_CursorMesh.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bc87d59ef94b2dd50779735a5a7a51e7d286bc6208ac3ac4ce6dc7846f4650d +size 16571 diff --git a/Content/Assets/Effects/Cursor/T_Arrow.uasset b/Content/Assets/Effects/Cursor/T_Arrow.uasset new file mode 100644 index 0000000..dc3dbd1 --- /dev/null +++ b/Content/Assets/Effects/Cursor/T_Arrow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59916ce9e8d79275c90f577c50f0061bcabdd1bccaccf6f3cfa77300c1208d81 +size 10333 diff --git a/Content/Assets/Effects/Cursor/T_Crystal.uasset b/Content/Assets/Effects/Cursor/T_Crystal.uasset new file mode 100644 index 0000000..c55b55e --- /dev/null +++ b/Content/Assets/Effects/Cursor/T_Crystal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b7b3900c41807a82661ce96def016999264e492f9ac2425f2a47d249444bfd6 +size 11964 diff --git a/Content/Assets/Effects/Cursor/T_Crystal2.uasset b/Content/Assets/Effects/Cursor/T_Crystal2.uasset new file mode 100644 index 0000000..3a9dff2 --- /dev/null +++ b/Content/Assets/Effects/Cursor/T_Crystal2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbcd025237d2e49d7c036de502e79d648589e6afa98dd0181f6bcdee256c29ce +size 14869 diff --git a/Content/Assets/Effects/Cursor/T_Crystal3.uasset b/Content/Assets/Effects/Cursor/T_Crystal3.uasset new file mode 100644 index 0000000..f065d4e --- /dev/null +++ b/Content/Assets/Effects/Cursor/T_Crystal3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44b801abde1a5ca9aeef5e53c676a59b35f22f05c1fcb215ba040e84769b030e +size 15871 diff --git a/Content/Assets/Effects/Cursor/T_Crystal4.uasset b/Content/Assets/Effects/Cursor/T_Crystal4.uasset new file mode 100644 index 0000000..c624f71 --- /dev/null +++ b/Content/Assets/Effects/Cursor/T_Crystal4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:893aa4f1e89577ddeda08878ade71df26bb0a148afea253577e3fa0775856483 +size 16189 diff --git a/Content/Assets/Effects/Fire/MI_Fire.uasset b/Content/Assets/Effects/Fire/MI_Fire.uasset new file mode 100644 index 0000000..aaee571 --- /dev/null +++ b/Content/Assets/Effects/Fire/MI_Fire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cadab5cb5ef4210d9791d2f4b7dd476dc9415e5dbe0fd4f65d1a4fb99bbdd88 +size 10943 diff --git a/Content/Assets/Effects/Fire/M_Distortion.uasset b/Content/Assets/Effects/Fire/M_Distortion.uasset new file mode 100644 index 0000000..61c2dda --- /dev/null +++ b/Content/Assets/Effects/Fire/M_Distortion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab2f0ea2fdec8801172e7402feabe40d131b7504548757d64ce200c5167ffdd9 +size 13935 diff --git a/Content/Assets/Effects/Fire/M_Distortion2.uasset b/Content/Assets/Effects/Fire/M_Distortion2.uasset new file mode 100644 index 0000000..230ffeb --- /dev/null +++ b/Content/Assets/Effects/Fire/M_Distortion2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0199bd3c5dd12be9d9e7a34eda4fcfc6b978bf75a12789df9b83a3e94d5d4908 +size 16224 diff --git a/Content/Assets/Effects/Fire/M_Fire.uasset b/Content/Assets/Effects/Fire/M_Fire.uasset new file mode 100644 index 0000000..ae95077 --- /dev/null +++ b/Content/Assets/Effects/Fire/M_Fire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fe940163791962df3ff19e10e3c151077651910530e52549d96b9cc9e74de31 +size 28080 diff --git a/Content/Assets/Effects/Fire/NS_Fire.uasset b/Content/Assets/Effects/Fire/NS_Fire.uasset new file mode 100644 index 0000000..92ff90d --- /dev/null +++ b/Content/Assets/Effects/Fire/NS_Fire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc63160f0df1b0c25539a5c6c7f39263b5968467b25b4b5c5aff93c2a9df86f6 +size 2507920 diff --git a/Content/Assets/Effects/Fire/NS_FireArea.uasset b/Content/Assets/Effects/Fire/NS_FireArea.uasset new file mode 100644 index 0000000..bb6afa2 --- /dev/null +++ b/Content/Assets/Effects/Fire/NS_FireArea.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d277e20eef5b16fcdde2ab9b1437b1bb33c44cffc32279481d99c324daacb78e +size 2337396 diff --git a/Content/Assets/Effects/Firenado/Gradient_Radial_trans.uasset b/Content/Assets/Effects/Firenado/Gradient_Radial_trans.uasset new file mode 100644 index 0000000..9cd264e --- /dev/null +++ b/Content/Assets/Effects/Firenado/Gradient_Radial_trans.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99b6eec274ccc1f5cd6c9e940c22feaa31de4ce9efd4873e20acd88a085640d7 +size 12649 diff --git a/Content/Assets/Effects/Firenado/LowResBlurredNoise.uasset b/Content/Assets/Effects/Firenado/LowResBlurredNoise.uasset new file mode 100644 index 0000000..d3183e3 --- /dev/null +++ b/Content/Assets/Effects/Firenado/LowResBlurredNoise.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e0cdeaf9440e2f0f7bc746142a25ad695a79ef1ec480b8dc911cc5558c112d5 +size 7900 diff --git a/Content/Assets/Effects/Firenado/M_Swirl.uasset b/Content/Assets/Effects/Firenado/M_Swirl.uasset new file mode 100644 index 0000000..2b44e2b --- /dev/null +++ b/Content/Assets/Effects/Firenado/M_Swirl.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96f4722abdbf26ddadc3c32750128315fd3dc5b2aa3ae91680bb44ec46435a93 +size 24105 diff --git a/Content/Assets/Effects/Firenado/M_radial_ramp.uasset b/Content/Assets/Effects/Firenado/M_radial_ramp.uasset new file mode 100644 index 0000000..d0e600e --- /dev/null +++ b/Content/Assets/Effects/Firenado/M_radial_ramp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e27d28dd8d5df0334ead153dc75206f2f1de556407d68312413d46c235824ee8 +size 10473 diff --git a/Content/Assets/Effects/Firenado/M_smoke_subUV.uasset b/Content/Assets/Effects/Firenado/M_smoke_subUV.uasset new file mode 100644 index 0000000..428cc1b --- /dev/null +++ b/Content/Assets/Effects/Firenado/M_smoke_subUV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e17d8b96a4b748bcdb004ac89f8766bbbda69c8c9266ce504017e92ed4f7bd91 +size 17177 diff --git a/Content/Assets/Effects/Firenado/NS_Tornado.uasset b/Content/Assets/Effects/Firenado/NS_Tornado.uasset new file mode 100644 index 0000000..aae672c --- /dev/null +++ b/Content/Assets/Effects/Firenado/NS_Tornado.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5de15989a2786b7fba04af04032ff208337838f4a276b5ec370224da3ee2ef78 +size 1802284 diff --git a/Content/Assets/Effects/Firenado/OffsetNoiseDistanceFields_ForNormals.uasset b/Content/Assets/Effects/Firenado/OffsetNoiseDistanceFields_ForNormals.uasset new file mode 100644 index 0000000..b0d4553 --- /dev/null +++ b/Content/Assets/Effects/Firenado/OffsetNoiseDistanceFields_ForNormals.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b749ddea67da4f7af817e9119fe00251ca766aab5a503bc4e037bef10f589c47 +size 981091 diff --git a/Content/Assets/Effects/Firenado/SM_Tornado.uasset b/Content/Assets/Effects/Firenado/SM_Tornado.uasset new file mode 100644 index 0000000..628509b --- /dev/null +++ b/Content/Assets/Effects/Firenado/SM_Tornado.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:368288810a54c373729e2d321a2bec7ce3938202da0483a3d73ba79c8172ae0a +size 137456 diff --git a/Content/Assets/Effects/Firenado/T_Smoke_SubUV.uasset b/Content/Assets/Effects/Firenado/T_Smoke_SubUV.uasset new file mode 100644 index 0000000..b99bb54 --- /dev/null +++ b/Content/Assets/Effects/Firenado/T_Smoke_SubUV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02c5fdf391ddc0cf8617257f84cd80cbf53919320d930096aaeeb88340be8ec6 +size 2588279 diff --git a/Content/Assets/Effects/Firenado/T_Smoke_SubUV_2.uasset b/Content/Assets/Effects/Firenado/T_Smoke_SubUV_2.uasset new file mode 100644 index 0000000..5cf417e --- /dev/null +++ b/Content/Assets/Effects/Firenado/T_Smoke_SubUV_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcba9a1b10f693797a0f1f611e5afffb7f6351c9092ab08797afd4a20ca6add6 +size 2588285 diff --git a/Content/Assets/Effects/Firenado/T_Smoke_Tiled_D.uasset b/Content/Assets/Effects/Firenado/T_Smoke_Tiled_D.uasset new file mode 100644 index 0000000..b140215 --- /dev/null +++ b/Content/Assets/Effects/Firenado/T_Smoke_Tiled_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91525065d85ebd9efd8129a720d5857251db46ee94e6a70bb4b947c53a92a103 +size 56649 diff --git a/Content/Assets/Effects/Firenado/T_Smoke_Tiled_D_2.uasset b/Content/Assets/Effects/Firenado/T_Smoke_Tiled_D_2.uasset new file mode 100644 index 0000000..759c029 --- /dev/null +++ b/Content/Assets/Effects/Firenado/T_Smoke_Tiled_D_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e9c3bfc6ed5e47cab2c2f664fe5d41c27bdbe8e58ddeda8c82649c571c40dbd +size 56655 diff --git a/Content/Assets/Effects/Firenado/Tornado.uasset b/Content/Assets/Effects/Firenado/Tornado.uasset new file mode 100644 index 0000000..10fd5d6 --- /dev/null +++ b/Content/Assets/Effects/Firenado/Tornado.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef170a949675ba6eb4d706988e1006f1b0cb2f03bce62bc3e4fe35fefbee0a52 +size 25443 diff --git a/Content/Assets/Effects/LevelUp/Materials/M_PanningNoise.uasset b/Content/Assets/Effects/LevelUp/Materials/M_PanningNoise.uasset new file mode 100644 index 0000000..e3a632b --- /dev/null +++ b/Content/Assets/Effects/LevelUp/Materials/M_PanningNoise.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b6679de49aa2aa96e352953de52dc263d5ed2f075c5cb77fd41248154dead06 +size 22458 diff --git a/Content/Assets/Effects/LevelUp/Materials/OffsetNoiseDistanceFields_ForNormals.uasset b/Content/Assets/Effects/LevelUp/Materials/OffsetNoiseDistanceFields_ForNormals.uasset new file mode 100644 index 0000000..22febc6 --- /dev/null +++ b/Content/Assets/Effects/LevelUp/Materials/OffsetNoiseDistanceFields_ForNormals.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2b7a8cc051e0c778ba6014d4afda4cc99b7a4b4b681657b8abaac0c6fdb7ccf +size 981164 diff --git a/Content/Assets/Effects/LevelUp/NS_LevelUp.uasset b/Content/Assets/Effects/LevelUp/NS_LevelUp.uasset new file mode 100644 index 0000000..8f3959e --- /dev/null +++ b/Content/Assets/Effects/LevelUp/NS_LevelUp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7dd47b3fcd37e9c19dc1eae63196c2992bb764e09a98aac5eac64b134c09acd4 +size 3235949 diff --git a/Content/Assets/Effects/ManaDrain/M_ManaDrain.uasset b/Content/Assets/Effects/ManaDrain/M_ManaDrain.uasset new file mode 100644 index 0000000..b442475 --- /dev/null +++ b/Content/Assets/Effects/ManaDrain/M_ManaDrain.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2133a87756fde03604028b909472260ed2a5ae325d50f9baf803127423af6ee9 +size 6909 diff --git a/Content/Assets/Effects/ManaDrain/NS_ManaDrain.uasset b/Content/Assets/Effects/ManaDrain/NS_ManaDrain.uasset new file mode 100644 index 0000000..9ad8c1a --- /dev/null +++ b/Content/Assets/Effects/ManaDrain/NS_ManaDrain.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74d597baeef90417e08fc1b3f4eb1c8392869b06a1f1500c0ed190f0126fd4f0 +size 962555 diff --git a/Content/Assets/Effects/Projectiles/FireBolt/Materials/M_Fire.uasset b/Content/Assets/Effects/Projectiles/FireBolt/Materials/M_Fire.uasset new file mode 100644 index 0000000..9f8e4c5 --- /dev/null +++ b/Content/Assets/Effects/Projectiles/FireBolt/Materials/M_Fire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d99576cb6791f06b28e5ac4f41b5eb0b398e3290af6213275a85d3d5af9f1c0 +size 18202 diff --git a/Content/Assets/Effects/Projectiles/FireBolt/Materials/M_Fireball.uasset b/Content/Assets/Effects/Projectiles/FireBolt/Materials/M_Fireball.uasset new file mode 100644 index 0000000..9446b00 --- /dev/null +++ b/Content/Assets/Effects/Projectiles/FireBolt/Materials/M_Fireball.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94293f948a595bf8792744a5fe2ac37ff815088623615eb57e9b442f4a89c603 +size 18679 diff --git a/Content/Assets/Effects/Projectiles/FireBolt/Materials/Textures/Noise_blur_1.uasset b/Content/Assets/Effects/Projectiles/FireBolt/Materials/Textures/Noise_blur_1.uasset new file mode 100644 index 0000000..1745a77 --- /dev/null +++ b/Content/Assets/Effects/Projectiles/FireBolt/Materials/Textures/Noise_blur_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30146dfd9b8e42221be9b0aad74e8898bf0f87f51eebc3bc33c885d23945c112 +size 18197 diff --git a/Content/Assets/Effects/Projectiles/FireBolt/Materials/Textures/Noise_cell_1.uasset b/Content/Assets/Effects/Projectiles/FireBolt/Materials/Textures/Noise_cell_1.uasset new file mode 100644 index 0000000..3e55081 --- /dev/null +++ b/Content/Assets/Effects/Projectiles/FireBolt/Materials/Textures/Noise_cell_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b13047c9503583f8f80b85362831622ea1370523f92bb155fcdfbdc1426978e9 +size 25662 diff --git a/Content/Assets/Effects/Projectiles/FireBolt/NS_Fire_1.uasset b/Content/Assets/Effects/Projectiles/FireBolt/NS_Fire_1.uasset new file mode 100644 index 0000000..ecd7e89 --- /dev/null +++ b/Content/Assets/Effects/Projectiles/FireBolt/NS_Fire_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2fada137343e8a294ab582875b2a9192b4f8548b3b129bedc8bc62016199900 +size 793672 diff --git a/Content/Assets/Effects/Projectiles/FireBolt/NS_Fire_2.uasset b/Content/Assets/Effects/Projectiles/FireBolt/NS_Fire_2.uasset new file mode 100644 index 0000000..7b5cd15 --- /dev/null +++ b/Content/Assets/Effects/Projectiles/FireBolt/NS_Fire_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b204fc43aefeadba45f9a635886ec46e54b599bf37705b594038259f873f582b +size 2506105 diff --git a/Content/Assets/Effects/Projectiles/FireBolt/NS_Fire_3.uasset b/Content/Assets/Effects/Projectiles/FireBolt/NS_Fire_3.uasset new file mode 100644 index 0000000..278e5a2 --- /dev/null +++ b/Content/Assets/Effects/Projectiles/FireBolt/NS_Fire_3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ed72b8e6cc4fd624e23b792ef86e5cd522e16410927574d0a8682c5dfa91ed7 +size 2506315 diff --git a/Content/Assets/Effects/Projectiles/FireBolt/NS_Fire_4.uasset b/Content/Assets/Effects/Projectiles/FireBolt/NS_Fire_4.uasset new file mode 100644 index 0000000..aaac330 --- /dev/null +++ b/Content/Assets/Effects/Projectiles/FireBolt/NS_Fire_4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53d5642e49c1cd666bbc50e5e66c5194c5a8d56c609c4fe2c0eb63b604841e1d +size 1963968 diff --git a/Content/Assets/Effects/Projectiles/FireBolt/NS_Fireball.uasset b/Content/Assets/Effects/Projectiles/FireBolt/NS_Fireball.uasset new file mode 100644 index 0000000..ef7e013 --- /dev/null +++ b/Content/Assets/Effects/Projectiles/FireBolt/NS_Fireball.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e12f97347bd2afca36d0e49cc74bf6586ba642748f83246b6dc7869b5e6ad248 +size 2391351 diff --git a/Content/Assets/Effects/Projectiles/FireExplosion/M_ExplosionSphere.uasset b/Content/Assets/Effects/Projectiles/FireExplosion/M_ExplosionSphere.uasset new file mode 100644 index 0000000..04d4c87 --- /dev/null +++ b/Content/Assets/Effects/Projectiles/FireExplosion/M_ExplosionSphere.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a78f0f4a4e883b099213c66d8bb8e6875ba83f53c15882fd2a5d34cfc81df12a +size 19061 diff --git a/Content/Assets/Effects/Projectiles/FireExplosion/M_ExplosionSphere1.uasset b/Content/Assets/Effects/Projectiles/FireExplosion/M_ExplosionSphere1.uasset new file mode 100644 index 0000000..5b15ec9 --- /dev/null +++ b/Content/Assets/Effects/Projectiles/FireExplosion/M_ExplosionSphere1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34375b0e06fca3532787a32f47180b2fe17084a4beab894bf2083d15be771131 +size 18401 diff --git a/Content/Assets/Effects/Projectiles/FireExplosion/NS_FireExplosion.uasset b/Content/Assets/Effects/Projectiles/FireExplosion/NS_FireExplosion.uasset new file mode 100644 index 0000000..9072bf1 --- /dev/null +++ b/Content/Assets/Effects/Projectiles/FireExplosion/NS_FireExplosion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61aeae04d9beee2d6ab715657a61dc8742dc0472445868618bd5a4faabff50d8 +size 2077590 diff --git a/Content/Assets/Effects/Projectiles/FireExplosion/NS_FireExplosion1.uasset b/Content/Assets/Effects/Projectiles/FireExplosion/NS_FireExplosion1.uasset new file mode 100644 index 0000000..86088a7 --- /dev/null +++ b/Content/Assets/Effects/Projectiles/FireExplosion/NS_FireExplosion1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76a1453ec30092fa67e88b01d08f6844754634bf2c680512182b22fb9bcc19ca +size 2077760 diff --git a/Content/Assets/Effects/Projectiles/Rock/NS_RockSmoke.uasset b/Content/Assets/Effects/Projectiles/Rock/NS_RockSmoke.uasset new file mode 100644 index 0000000..d306158 --- /dev/null +++ b/Content/Assets/Effects/Projectiles/Rock/NS_RockSmoke.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f88962f83bcab59c563cb7a11dc86ddb2dbadbfb0e82fea1d21756d4c421d6b4 +size 626572 diff --git a/Content/Assets/Effects/Shared/M_Crescent.uasset b/Content/Assets/Effects/Shared/M_Crescent.uasset new file mode 100644 index 0000000..8cd4da9 --- /dev/null +++ b/Content/Assets/Effects/Shared/M_Crescent.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aaaf2257c86d684712c447129dc3e6e1e90a5c1482b98df3f652d4b54b2060ba +size 19911 diff --git a/Content/Assets/Effects/Shared/M_DefaultSprite.uasset b/Content/Assets/Effects/Shared/M_DefaultSprite.uasset new file mode 100644 index 0000000..ae4c00f --- /dev/null +++ b/Content/Assets/Effects/Shared/M_DefaultSprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3689275607644cf9c11505d913fab99ee2ae13becaaaecf700a57dac8bf32fe2 +size 13065 diff --git a/Content/Assets/Effects/Shared/M_DefaultSprite_trans.uasset b/Content/Assets/Effects/Shared/M_DefaultSprite_trans.uasset new file mode 100644 index 0000000..f7e3f2b --- /dev/null +++ b/Content/Assets/Effects/Shared/M_DefaultSprite_trans.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1bd3af0ed33b4c15a2c530cbf4dbb7b9527904a4756400b985d6616bf004151 +size 13100 diff --git a/Content/Assets/Effects/Shared/M_Ring.uasset b/Content/Assets/Effects/Shared/M_Ring.uasset new file mode 100644 index 0000000..87fe0b4 --- /dev/null +++ b/Content/Assets/Effects/Shared/M_Ring.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7503c02ea9f95487f6de2efe2eab972597cdfd464c9051c870b7df545c3af307 +size 15378 diff --git a/Content/Assets/Effects/Shared/M_Spark.uasset b/Content/Assets/Effects/Shared/M_Spark.uasset new file mode 100644 index 0000000..5b4cec9 --- /dev/null +++ b/Content/Assets/Effects/Shared/M_Spark.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ba4401c71d15704ab5f04b52878fb61a80b808534ce5ac2d13e83b9a058ec36 +size 10157 diff --git a/Content/Assets/Effects/Shared/Sphere.uasset b/Content/Assets/Effects/Shared/Sphere.uasset new file mode 100644 index 0000000..66c8621 --- /dev/null +++ b/Content/Assets/Effects/Shared/Sphere.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ee35886c42d7cc3173cc456d3c7ee2dce938d0e94db8927f1dfbbaf7e341add +size 62031 diff --git a/Content/Assets/Effects/Shared/noise_blur_min.uasset b/Content/Assets/Effects/Shared/noise_blur_min.uasset new file mode 100644 index 0000000..e70646f --- /dev/null +++ b/Content/Assets/Effects/Shared/noise_blur_min.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b6c34be6f8b2260bb7d5c2cdb40249240a205a0b9d054579fa2bdf919cf192f +size 889715 diff --git a/Content/Assets/Effects/Shared/sparkle_01.uasset b/Content/Assets/Effects/Shared/sparkle_01.uasset new file mode 100644 index 0000000..95318cf --- /dev/null +++ b/Content/Assets/Effects/Shared/sparkle_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:944b267ab87cc10ccdede3504adb0a3fcdc26baee7ccfa6d9d9e9da37ab49723 +size 70444 diff --git a/Content/Assets/Effects/Shared/water_n.uasset b/Content/Assets/Effects/Shared/water_n.uasset new file mode 100644 index 0000000..0267fd5 --- /dev/null +++ b/Content/Assets/Effects/Shared/water_n.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd90c8c513b5f13ddb40885cacd89bc2d24221177d736dc5684aa4619af627fa +size 477784 diff --git a/Content/Assets/Effects/Shock/Material/DefaultSpriteMaterial_Trans.uasset b/Content/Assets/Effects/Shock/Material/DefaultSpriteMaterial_Trans.uasset new file mode 100644 index 0000000..1c2ad10 --- /dev/null +++ b/Content/Assets/Effects/Shock/Material/DefaultSpriteMaterial_Trans.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba14c8763994e523d60c55070246c88e714ddc6c3216641daae16276324c7ce7 +size 13155 diff --git a/Content/Assets/Effects/Shock/Material/M_ElectricRibbon_Add.uasset b/Content/Assets/Effects/Shock/Material/M_ElectricRibbon_Add.uasset new file mode 100644 index 0000000..cfea12c --- /dev/null +++ b/Content/Assets/Effects/Shock/Material/M_ElectricRibbon_Add.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fafc9dc3a12f0cbe1c8a0e315fbdf4bb5536f7f47077063b50b98bce08c96f19 +size 12244 diff --git a/Content/Assets/Effects/Shock/Material/M_ElectricRibbon_Trans.uasset b/Content/Assets/Effects/Shock/Material/M_ElectricRibbon_Trans.uasset new file mode 100644 index 0000000..bf6a380 --- /dev/null +++ b/Content/Assets/Effects/Shock/Material/M_ElectricRibbon_Trans.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e0703eb0061b9d4753f43a4fd14657a7bd1e89c2fc97ddba57a25e0eb831ccf +size 12258 diff --git a/Content/Assets/Effects/Shock/Material/T_Noise01.uasset b/Content/Assets/Effects/Shock/Material/T_Noise01.uasset new file mode 100644 index 0000000..6dc70af --- /dev/null +++ b/Content/Assets/Effects/Shock/Material/T_Noise01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f1d3e3693ed9de86ba0a8a7645aacfa2d8f48728bb9b3f94dea7220b4daad16 +size 1267822 diff --git a/Content/Assets/Effects/Shock/NS_ElectricBeam.uasset b/Content/Assets/Effects/Shock/NS_ElectricBeam.uasset new file mode 100644 index 0000000..13659eb --- /dev/null +++ b/Content/Assets/Effects/Shock/NS_ElectricBeam.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c4a3bed249351f8696e49d7a65ba3417a9d2e790a3196870a3ac70836cbbdae +size 1303443 diff --git a/Content/Assets/Effects/Shock/NS_Sparks.uasset b/Content/Assets/Effects/Shock/NS_Sparks.uasset new file mode 100644 index 0000000..9b7b08b --- /dev/null +++ b/Content/Assets/Effects/Shock/NS_Sparks.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1c96c13465b32cc233fdd16db0b76d0941f7f7f277261f12f6bf177e456db63 +size 510852 diff --git a/Content/Assets/Effects/Soul/M_SoulGlow.uasset b/Content/Assets/Effects/Soul/M_SoulGlow.uasset new file mode 100644 index 0000000..ec6f623 --- /dev/null +++ b/Content/Assets/Effects/Soul/M_SoulGlow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:479cee0654a67074ed0a9148e742b829a5ee5c143bf0df09bbf191c0ecf85297 +size 15743 diff --git a/Content/Assets/Effects/Soul/NS_Embers.uasset b/Content/Assets/Effects/Soul/NS_Embers.uasset new file mode 100644 index 0000000..2a8ec25 --- /dev/null +++ b/Content/Assets/Effects/Soul/NS_Embers.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11b3e0cf92f2b688a1996014f888c5d880b00ce11b668fd73fd888d9259e0a0e +size 554807 diff --git a/Content/Assets/Effects/Soul/NS_Glow.uasset b/Content/Assets/Effects/Soul/NS_Glow.uasset new file mode 100644 index 0000000..995655c --- /dev/null +++ b/Content/Assets/Effects/Soul/NS_Glow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25f6a110f2d2b9473e25972ce4a7125e0fb628510c84d512ff40f8315e2c6630 +size 466010 diff --git a/Content/Assets/Effects/Soul/NS_Soul.uasset b/Content/Assets/Effects/Soul/NS_Soul.uasset new file mode 100644 index 0000000..1d5bbd4 --- /dev/null +++ b/Content/Assets/Effects/Soul/NS_Soul.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d7449e4fcf5b9326dae292f51139a549d9faf92a3fcf81d941924c16c012a4c +size 1870134 diff --git a/Content/Assets/Effects/Soul/NS_SoulPickup.uasset b/Content/Assets/Effects/Soul/NS_SoulPickup.uasset new file mode 100644 index 0000000..3216070 --- /dev/null +++ b/Content/Assets/Effects/Soul/NS_SoulPickup.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:daf61f1d6462919a148512c0bd1091bcb0723355f636bea1e1dd8c41381c4631 +size 527340 diff --git a/Content/Assets/Effects/Stun/M_Star.uasset b/Content/Assets/Effects/Stun/M_Star.uasset new file mode 100644 index 0000000..35750a1 --- /dev/null +++ b/Content/Assets/Effects/Stun/M_Star.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15e0ba1ac3bbc1d366b7c769537786c0fb9ac0c664cb1145758b828271c74813 +size 9587 diff --git a/Content/Assets/Effects/Stun/NS_Halo.uasset b/Content/Assets/Effects/Stun/NS_Halo.uasset new file mode 100644 index 0000000..f50d295 --- /dev/null +++ b/Content/Assets/Effects/Stun/NS_Halo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe19da17f509e9522fb30e0614af6e3b9a573df4509fa420d09f6cf09768ed7e +size 900354 diff --git a/Content/Assets/Effects/Stun/NS_LifeSiphon.uasset b/Content/Assets/Effects/Stun/NS_LifeSiphon.uasset new file mode 100644 index 0000000..d371388 --- /dev/null +++ b/Content/Assets/Effects/Stun/NS_LifeSiphon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:372500896210275c9bb44a6184ff4bfcdd40e095d40159293853f021446630ad +size 1304993 diff --git a/Content/Assets/Effects/Stun/NS_ManaSiphon.uasset b/Content/Assets/Effects/Stun/NS_ManaSiphon.uasset new file mode 100644 index 0000000..7eb7ee2 --- /dev/null +++ b/Content/Assets/Effects/Stun/NS_ManaSiphon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcf07157e61e28d1bce20253bc1fd7225d5b8e06540a4ed57c0d86055b1a8210 +size 890884 diff --git a/Content/Assets/Effects/Stun/NS_Stars.uasset b/Content/Assets/Effects/Stun/NS_Stars.uasset new file mode 100644 index 0000000..7ee9f8b --- /dev/null +++ b/Content/Assets/Effects/Stun/NS_Stars.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f37f63d1fc0656604f68240d5ec79266f4940c3cad9c89eba121af460c134a9 +size 792868 diff --git a/Content/Assets/Effects/Stun/star.uasset b/Content/Assets/Effects/Stun/star.uasset new file mode 100644 index 0000000..bfa0636 --- /dev/null +++ b/Content/Assets/Effects/Stun/star.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42b66a36dc0ea780a35ef6b6434e8619b338b7fb2d23c70e430d16faecc96b87 +size 20726 diff --git a/Content/Assets/Enemies/Demon/Animations/BS_Demon_IdleRun.uasset b/Content/Assets/Enemies/Demon/Animations/BS_Demon_IdleRun.uasset new file mode 100644 index 0000000..587c611 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Animations/BS_Demon_IdleRun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:649c7922a3fc98b735c07ac98fbc1b3ff56becd25d4d7b27c97789a03c653165 +size 7895 diff --git a/Content/Assets/Enemies/Demon/Animations/DemonShockLoop.uasset b/Content/Assets/Enemies/Demon/Animations/DemonShockLoop.uasset new file mode 100644 index 0000000..7efc290 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Animations/DemonShockLoop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b898cef619edb659e5ca0cbfa3332649ddb45e1d6416316fdbee32e77abbc5f +size 210092 diff --git a/Content/Assets/Enemies/Demon/Animations/Demon_Attack_L.uasset b/Content/Assets/Enemies/Demon/Animations/Demon_Attack_L.uasset new file mode 100644 index 0000000..1767a92 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Animations/Demon_Attack_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d11be3dc986134606f2b183539461e413f664c87783bc6524a5b000551781ef +size 249957 diff --git a/Content/Assets/Enemies/Demon/Animations/Demon_Attack_R.uasset b/Content/Assets/Enemies/Demon/Animations/Demon_Attack_R.uasset new file mode 100644 index 0000000..37e24a7 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Animations/Demon_Attack_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f3626c9c0dd59273ed53e4b8346c4b08472ba2eff0deebf259eaed76c8b1543 +size 241694 diff --git a/Content/Assets/Enemies/Demon/Animations/Demon_HitReact.uasset b/Content/Assets/Enemies/Demon/Animations/Demon_HitReact.uasset new file mode 100644 index 0000000..630c621 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Animations/Demon_HitReact.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7c78cdae2baa86fc08c752e90f151e4c48d0d797561558d1ee5783aafea6f06 +size 160199 diff --git a/Content/Assets/Enemies/Demon/Animations/Demon_Red_Idle.uasset b/Content/Assets/Enemies/Demon/Animations/Demon_Red_Idle.uasset new file mode 100644 index 0000000..5789aa5 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Animations/Demon_Red_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3cb0034ed4832a034a9a5fc0df44499adcc965086bc55b832fb7a31d21abd07 +size 374636 diff --git a/Content/Assets/Enemies/Demon/Animations/Demon_Red_Run.uasset b/Content/Assets/Enemies/Demon/Animations/Demon_Red_Run.uasset new file mode 100644 index 0000000..279b6ea --- /dev/null +++ b/Content/Assets/Enemies/Demon/Animations/Demon_Red_Run.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:597a74daa6962d710e1b06c2c334135bc3836531c5be1746832e11f20d7636ea +size 148812 diff --git a/Content/Assets/Enemies/Demon/Animations/Demon_Red_Tailspin.uasset b/Content/Assets/Enemies/Demon/Animations/Demon_Red_Tailspin.uasset new file mode 100644 index 0000000..8265b9f --- /dev/null +++ b/Content/Assets/Enemies/Demon/Animations/Demon_Red_Tailspin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5aa3c13d81ef673ebfc8e1139cbb0e1e6d1472cb3be0b60a375b4ee3de6065fe +size 207810 diff --git a/Content/Assets/Enemies/Demon/Animations/Demon_Stun.uasset b/Content/Assets/Enemies/Demon/Animations/Demon_Stun.uasset new file mode 100644 index 0000000..adfca31 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Animations/Demon_Stun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23dcca841ce952b4e407a9eef2bb620bf4f9a679af4b4d8ee516c6aa8c34ff99 +size 375319 diff --git a/Content/Assets/Enemies/Demon/Animations/Demon_Tailspin_left.uasset b/Content/Assets/Enemies/Demon/Animations/Demon_Tailspin_left.uasset new file mode 100644 index 0000000..043caac --- /dev/null +++ b/Content/Assets/Enemies/Demon/Animations/Demon_Tailspin_left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07ebc0c3aae737a0da613db62f9b1d2dea92b3c09c4cfee2517007908f3f712f +size 201055 diff --git a/Content/Assets/Enemies/Demon/Animations/Demon_Throw.uasset b/Content/Assets/Enemies/Demon/Animations/Demon_Throw.uasset new file mode 100644 index 0000000..da55b94 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Animations/Demon_Throw.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fd63483ab5a178edfe3a05b0314620d75e4901b9307f31b5e53f2ec70d53222 +size 143785 diff --git a/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonBlue.uasset b/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonBlue.uasset new file mode 100644 index 0000000..72c5593 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonBlue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6159cc51626cb6730a821d883ef609a96cabdf4f658e4932dcff44c870f1318 +size 11102 diff --git a/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonBlue_Dissolve.uasset b/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonBlue_Dissolve.uasset new file mode 100644 index 0000000..ae33895 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonBlue_Dissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:087de251d310a9f7dd4e2508825d090786a5a35b45102819c5cff27feef0d304 +size 15283 diff --git a/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonOrange.uasset b/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonOrange.uasset new file mode 100644 index 0000000..61565c5 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonOrange.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a4d9eed9144442673617e3ccfc9d97b722358dc331f776633b096dea9691598 +size 11107 diff --git a/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonOrange_Dissolve.uasset b/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonOrange_Dissolve.uasset new file mode 100644 index 0000000..6ca8c64 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonOrange_Dissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4596f7dc67b6151baeb4d8d6d980f0e5066b438a52de1ee2389d15c9b945d7e3 +size 11179 diff --git a/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonPurple.uasset b/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonPurple.uasset new file mode 100644 index 0000000..960ba76 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonPurple.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cc550aa2fcbb9d0db5a51a325ee2dee172da159e46035a2126e0b55ec4e317f +size 11205 diff --git a/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonPurple_Dissolve.uasset b/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonPurple_Dissolve.uasset new file mode 100644 index 0000000..29c4bdf --- /dev/null +++ b/Content/Assets/Enemies/Demon/Materials_Colored/MI_DemonPurple_Dissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e23b5d093e36cf19aa255c2136b31c20272d85171437e6232aa8f911202f1e6 +size 11179 diff --git a/Content/Assets/Enemies/Demon/Materials_Colored/M_DemonColored.uasset b/Content/Assets/Enemies/Demon/Materials_Colored/M_DemonColored.uasset new file mode 100644 index 0000000..80049a9 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Materials_Colored/M_DemonColored.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b253607c0d0849672e1beb36e1093508aa53095d92725335e63f3facd77ca5b3 +size 13056 diff --git a/Content/Assets/Enemies/Demon/Materials_Colored/M_DemonColored_Dissolve.uasset b/Content/Assets/Enemies/Demon/Materials_Colored/M_DemonColored_Dissolve.uasset new file mode 100644 index 0000000..7eeeca7 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Materials_Colored/M_DemonColored_Dissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e508aad91cd44183694cde83bf8bf431a5e00f5758382c12cf22574735fe3552 +size 23302 diff --git a/Content/Assets/Enemies/Demon/Materials_Dark/MI_DemonDark_Dissolve.uasset b/Content/Assets/Enemies/Demon/Materials_Dark/MI_DemonDark_Dissolve.uasset new file mode 100644 index 0000000..8654219 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Materials_Dark/MI_DemonDark_Dissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:876a9cdeaa0ef68a4b60f1e2f46a402a9c8b6144c43aba06d12a1bb769b99866 +size 12125 diff --git a/Content/Assets/Enemies/Demon/Materials_Dark/M_DemonDark.uasset b/Content/Assets/Enemies/Demon/Materials_Dark/M_DemonDark.uasset new file mode 100644 index 0000000..50c9a42 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Materials_Dark/M_DemonDark.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe768a551f5573d3aa7228d3b5f3df81f84328d7a3fc4d738b01e22dea184190 +size 12029 diff --git a/Content/Assets/Enemies/Demon/Materials_Dark/M_DemonDark_Dissolve.uasset b/Content/Assets/Enemies/Demon/Materials_Dark/M_DemonDark_Dissolve.uasset new file mode 100644 index 0000000..31b768a --- /dev/null +++ b/Content/Assets/Enemies/Demon/Materials_Dark/M_DemonDark_Dissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b29bb83e39fcab413c07c9d7f96972fbb719f916822590d4459553878f2e1b86 +size 22821 diff --git a/Content/Assets/Enemies/Demon/Materials_Red/MI_Demon_Red_Dissolve.uasset b/Content/Assets/Enemies/Demon/Materials_Red/MI_Demon_Red_Dissolve.uasset new file mode 100644 index 0000000..49f5bcb --- /dev/null +++ b/Content/Assets/Enemies/Demon/Materials_Red/MI_Demon_Red_Dissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01f954b59174fba2ed529d32681f22f29e858f622b320d123e0f60d08c05354f +size 10751 diff --git a/Content/Assets/Enemies/Demon/Materials_Red/M_DemonRed_Dissolve.uasset b/Content/Assets/Enemies/Demon/Materials_Red/M_DemonRed_Dissolve.uasset new file mode 100644 index 0000000..e36c3e2 --- /dev/null +++ b/Content/Assets/Enemies/Demon/Materials_Red/M_DemonRed_Dissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d47b9176e3a8032d34f0ec0ce70eb63cf025e44d8238134a242705ab8f8eb29 +size 29762 diff --git a/Content/Assets/Enemies/Demon/Materials_Red/M_Demon_Red.uasset b/Content/Assets/Enemies/Demon/Materials_Red/M_Demon_Red.uasset new file mode 100644 index 0000000..baede4f --- /dev/null +++ b/Content/Assets/Enemies/Demon/Materials_Red/M_Demon_Red.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:808c0fa89b1119d7ed9979c5ea504d0d43df22c718b1c95b262e70fc8c5766c4 +size 12067 diff --git a/Content/Assets/Enemies/Demon/PA_Demon.uasset b/Content/Assets/Enemies/Demon/PA_Demon.uasset new file mode 100644 index 0000000..363eed0 --- /dev/null +++ b/Content/Assets/Enemies/Demon/PA_Demon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:986ade7bb674d5225b2891197d2e9ecd06e9c741907a365a1ab043407c632334 +size 42833 diff --git a/Content/Assets/Enemies/Demon/SKM_Demon.uasset b/Content/Assets/Enemies/Demon/SKM_Demon.uasset new file mode 100644 index 0000000..7c33827 --- /dev/null +++ b/Content/Assets/Enemies/Demon/SKM_Demon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0be91efa877898394bf124c094fa485c53572bf122ea0b63f3c28a5442653665 +size 1131261 diff --git a/Content/Assets/Enemies/Demon/SK_Demon.uasset b/Content/Assets/Enemies/Demon/SK_Demon.uasset new file mode 100644 index 0000000..d660bc9 --- /dev/null +++ b/Content/Assets/Enemies/Demon/SK_Demon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e07594177f5780e4310036377a4cdea5c2655e127dcf03194c7ed967d0236883 +size 20736 diff --git a/Content/Assets/Enemies/Ghoul/Animations/Attack_L.uasset b/Content/Assets/Enemies/Ghoul/Animations/Attack_L.uasset new file mode 100644 index 0000000..42986f3 --- /dev/null +++ b/Content/Assets/Enemies/Ghoul/Animations/Attack_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3216b4cd792bc6ffcf4731c6efaaa5f6df9cedf16b1f2f31fbc0b52567a40510 +size 267737 diff --git a/Content/Assets/Enemies/Ghoul/Animations/Attack_R.uasset b/Content/Assets/Enemies/Ghoul/Animations/Attack_R.uasset new file mode 100644 index 0000000..595a2a9 --- /dev/null +++ b/Content/Assets/Enemies/Ghoul/Animations/Attack_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f223455a41d1abd313650ca8f2080e5193a2257cc0245478e5b31deb62fae4d0 +size 267748 diff --git a/Content/Assets/Enemies/Ghoul/Animations/BS_Ghoul_IdleRun.uasset b/Content/Assets/Enemies/Ghoul/Animations/BS_Ghoul_IdleRun.uasset new file mode 100644 index 0000000..56c23fc --- /dev/null +++ b/Content/Assets/Enemies/Ghoul/Animations/BS_Ghoul_IdleRun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d17a493133fb8de31de6c8e2895dbbe3c9c4c1ea175a48c7fb9b980750ab1ab +size 7442 diff --git a/Content/Assets/Enemies/Ghoul/Animations/Death.uasset b/Content/Assets/Enemies/Ghoul/Animations/Death.uasset new file mode 100644 index 0000000..2c2da42 --- /dev/null +++ b/Content/Assets/Enemies/Ghoul/Animations/Death.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7f74c38f64dc68f611936820dff65a33f523d3362d664a22b9926946c164fb0 +size 312507 diff --git a/Content/Assets/Enemies/Ghoul/Animations/HitReact.uasset b/Content/Assets/Enemies/Ghoul/Animations/HitReact.uasset new file mode 100644 index 0000000..622c6d0 --- /dev/null +++ b/Content/Assets/Enemies/Ghoul/Animations/HitReact.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c8eae0015e4e7c5e9b16298039c53a9ea0c581aac50e05bf0c095963529f466 +size 181933 diff --git a/Content/Assets/Enemies/Ghoul/Animations/Idle.uasset b/Content/Assets/Enemies/Ghoul/Animations/Idle.uasset new file mode 100644 index 0000000..5ec4937 --- /dev/null +++ b/Content/Assets/Enemies/Ghoul/Animations/Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d4538d9c7413956632d62c399e8ff65015c567990ddc1d57e2a8f26b3ed7f7a +size 155288 diff --git a/Content/Assets/Enemies/Ghoul/Animations/ShockLoop.uasset b/Content/Assets/Enemies/Ghoul/Animations/ShockLoop.uasset new file mode 100644 index 0000000..d35ebca --- /dev/null +++ b/Content/Assets/Enemies/Ghoul/Animations/ShockLoop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8802fb9d66f0e4d77ca24d76ebf2c1eb3bfbbf27070791a484d11e07d632766b +size 99805 diff --git a/Content/Assets/Enemies/Ghoul/Animations/Stun.uasset b/Content/Assets/Enemies/Ghoul/Animations/Stun.uasset new file mode 100644 index 0000000..12b914f --- /dev/null +++ b/Content/Assets/Enemies/Ghoul/Animations/Stun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f862f2fd555ca9d98601ba64d316afcbd6edde2f3cb4df76b910a95e28709c4 +size 189253 diff --git a/Content/Assets/Enemies/Ghoul/Animations/Walk.uasset b/Content/Assets/Enemies/Ghoul/Animations/Walk.uasset new file mode 100644 index 0000000..069aaaf --- /dev/null +++ b/Content/Assets/Enemies/Ghoul/Animations/Walk.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cb0caa3e647d0499077972d146429c126fb2dec8917796e7a7cea96f9d70ec9 +size 263004 diff --git a/Content/Assets/Enemies/Ghoul/Materials/M_Ghoul.uasset b/Content/Assets/Enemies/Ghoul/Materials/M_Ghoul.uasset new file mode 100644 index 0000000..c21b13e --- /dev/null +++ b/Content/Assets/Enemies/Ghoul/Materials/M_Ghoul.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9d82bf6fa010b8fe51684d84c07a883f5e92af66bf76b8d0f7848484ce6f525 +size 13376 diff --git a/Content/Assets/Enemies/Ghoul/Materials/M_GhoulDissolve.uasset b/Content/Assets/Enemies/Ghoul/Materials/M_GhoulDissolve.uasset new file mode 100644 index 0000000..6838d4c --- /dev/null +++ b/Content/Assets/Enemies/Ghoul/Materials/M_GhoulDissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb83ace11bdbc9e04ff4506d0738fda199ebce0242dc2c9ccc33eaa67f46d40d +size 26969 diff --git a/Content/Assets/Enemies/Ghoul/PA_Ghoul.uasset b/Content/Assets/Enemies/Ghoul/PA_Ghoul.uasset new file mode 100644 index 0000000..8123cc8 --- /dev/null +++ b/Content/Assets/Enemies/Ghoul/PA_Ghoul.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9eee47aef871ac2dfb0f93653ed646150dccbeb83529a2a6c44ead289faa35df +size 13259 diff --git a/Content/Assets/Enemies/Ghoul/SKM_Ghoul.uasset b/Content/Assets/Enemies/Ghoul/SKM_Ghoul.uasset new file mode 100644 index 0000000..4e5afab --- /dev/null +++ b/Content/Assets/Enemies/Ghoul/SKM_Ghoul.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84290863993d7a4ac3b23e5f89101e7648edd3b7fe0584aeaca922f6b64e0591 +size 1509071 diff --git a/Content/Assets/Enemies/Ghoul/SK_Ghoul.uasset b/Content/Assets/Enemies/Ghoul/SK_Ghoul.uasset new file mode 100644 index 0000000..84abd39 --- /dev/null +++ b/Content/Assets/Enemies/Ghoul/SK_Ghoul.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d73e75b1c98602ee70749679ae1066220651a781aed03d5fcd4a531c5b1d5480 +size 21095 diff --git a/Content/Assets/Enemies/Goblin/Animations/Slingshot/Attack_Slingshot.uasset b/Content/Assets/Enemies/Goblin/Animations/Slingshot/Attack_Slingshot.uasset new file mode 100644 index 0000000..1eac219 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Slingshot/Attack_Slingshot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a219a745466fb382a874cbf0b2e53f7ccd182f378c1616006858291d3ff4310a +size 91306 diff --git a/Content/Assets/Enemies/Goblin/Animations/Slingshot/BS_Goblin_Slingshot_IdleRun.uasset b/Content/Assets/Enemies/Goblin/Animations/Slingshot/BS_Goblin_Slingshot_IdleRun.uasset new file mode 100644 index 0000000..a80bccb --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Slingshot/BS_Goblin_Slingshot_IdleRun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abb306b12ddf43c3cca037e39b9ee04d6b980349ebcc8ac8146366403bb27a52 +size 8284 diff --git a/Content/Assets/Enemies/Goblin/Animations/Slingshot/Death_Slingshot.uasset b/Content/Assets/Enemies/Goblin/Animations/Slingshot/Death_Slingshot.uasset new file mode 100644 index 0000000..b837c6f --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Slingshot/Death_Slingshot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:878895f0298ef8bf3c0c630e310c9ca302cfcdd0d88795a82c2242c4d65c20a4 +size 159418 diff --git a/Content/Assets/Enemies/Goblin/Animations/Slingshot/HitReact_Slingshot.uasset b/Content/Assets/Enemies/Goblin/Animations/Slingshot/HitReact_Slingshot.uasset new file mode 100644 index 0000000..1d61be4 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Slingshot/HitReact_Slingshot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ee974c6ea917e6b389fb76d4e7ed2d4c155de6e08d5449c8d4d9dc9af0c8030 +size 84368 diff --git a/Content/Assets/Enemies/Goblin/Animations/Slingshot/Idle_Slingshot.uasset b/Content/Assets/Enemies/Goblin/Animations/Slingshot/Idle_Slingshot.uasset new file mode 100644 index 0000000..204b0b6 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Slingshot/Idle_Slingshot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27fe6c594d1dde84c1076bd08db85822ebe06df01bca66e794ecb1acf049797f +size 204367 diff --git a/Content/Assets/Enemies/Goblin/Animations/Slingshot/Running_Slingshot.uasset b/Content/Assets/Enemies/Goblin/Animations/Slingshot/Running_Slingshot.uasset new file mode 100644 index 0000000..f2430e2 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Slingshot/Running_Slingshot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f48e2e3550ce836146b1baba6e5306d58f611ae6ade0691210a8748491f9ca1 +size 86570 diff --git a/Content/Assets/Enemies/Goblin/Animations/Slingshot/Slingshot_Stun_Loop.uasset b/Content/Assets/Enemies/Goblin/Animations/Slingshot/Slingshot_Stun_Loop.uasset new file mode 100644 index 0000000..544bace --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Slingshot/Slingshot_Stun_Loop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7c94f91583ee4938b83f6de81a6a092a4b0cca3b64f35a80844e76dc2054e4d +size 124028 diff --git a/Content/Assets/Enemies/Goblin/Animations/Spear/Attack_Spear.uasset b/Content/Assets/Enemies/Goblin/Animations/Spear/Attack_Spear.uasset new file mode 100644 index 0000000..f46a85f --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Spear/Attack_Spear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:869b0683dcc4a7581d2e720a248b788615c922775681f812c08d20abf2c4b45e +size 126409 diff --git a/Content/Assets/Enemies/Goblin/Animations/Spear/BS_GoblinSpear_IdleRun.uasset b/Content/Assets/Enemies/Goblin/Animations/Spear/BS_GoblinSpear_IdleRun.uasset new file mode 100644 index 0000000..db8933a --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Spear/BS_GoblinSpear_IdleRun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0478d0a69a2e4f10b0262b7ddbc2412fc046aca332793075d2cfa2cc2034f516 +size 8696 diff --git a/Content/Assets/Enemies/Goblin/Animations/Spear/Death_Spear.uasset b/Content/Assets/Enemies/Goblin/Animations/Spear/Death_Spear.uasset new file mode 100644 index 0000000..5650ca0 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Spear/Death_Spear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:487d5637a7d925a1b3865571444ee7f7febce2778a15e7afaede93c51ece7e8c +size 161529 diff --git a/Content/Assets/Enemies/Goblin/Animations/Spear/HitReact_Shock_Loop_Spear.uasset b/Content/Assets/Enemies/Goblin/Animations/Spear/HitReact_Shock_Loop_Spear.uasset new file mode 100644 index 0000000..92a5cd7 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Spear/HitReact_Shock_Loop_Spear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77752332fc1cf004e9de0f6fe22752edbaebd8000187726070a732b31a6902ab +size 112911 diff --git a/Content/Assets/Enemies/Goblin/Animations/Spear/HitReact_Spear.uasset b/Content/Assets/Enemies/Goblin/Animations/Spear/HitReact_Spear.uasset new file mode 100644 index 0000000..e1cb757 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Spear/HitReact_Spear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a5fe6f9a5a9b011232337fc19adb71b98115b60ba343adab86798d85293ca1e +size 153605 diff --git a/Content/Assets/Enemies/Goblin/Animations/Spear/Idle_Spear2.uasset b/Content/Assets/Enemies/Goblin/Animations/Spear/Idle_Spear2.uasset new file mode 100644 index 0000000..1312f26 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Spear/Idle_Spear2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b37a8682edeac4a447c452d134c07e71603cddcdb835150c9fdc1bb589e420c +size 269590 diff --git a/Content/Assets/Enemies/Goblin/Animations/Spear/Run_Spear2.uasset b/Content/Assets/Enemies/Goblin/Animations/Spear/Run_Spear2.uasset new file mode 100644 index 0000000..2ea267d --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Spear/Run_Spear2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:779f99c568d7fb37d728db85f54926c0750b83ffc099a3ab241517c94d355fb1 +size 99293 diff --git a/Content/Assets/Enemies/Goblin/Animations/Spear/Run_Spear_fix.uasset b/Content/Assets/Enemies/Goblin/Animations/Spear/Run_Spear_fix.uasset new file mode 100644 index 0000000..db5535f --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Spear/Run_Spear_fix.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:494bd70a003a35823d9edd667a417b856720ac67c347221a07e0711f29de030f +size 99314 diff --git a/Content/Assets/Enemies/Goblin/Animations/Spear/ShockLoop.uasset b/Content/Assets/Enemies/Goblin/Animations/Spear/ShockLoop.uasset new file mode 100644 index 0000000..cba8c06 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Spear/ShockLoop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:159998751dd3aaacb62cfaa02ff88ed6bf0c7656080bec017ba9a5295c0cfeaf +size 66487 diff --git a/Content/Assets/Enemies/Goblin/Animations/Spear/Stun_Loop.uasset b/Content/Assets/Enemies/Goblin/Animations/Spear/Stun_Loop.uasset new file mode 100644 index 0000000..484b47f --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Animations/Spear/Stun_Loop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9824f0b98005bc919819bbbad0274dc4efb23c9179c4c63d2955fcd9e433d11d +size 120740 diff --git a/Content/Assets/Enemies/Goblin/Materials/MI_GoblinDissolve.uasset b/Content/Assets/Enemies/Goblin/Materials/MI_GoblinDissolve.uasset new file mode 100644 index 0000000..4a82079 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Materials/MI_GoblinDissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bdf850b3d022aa4f19ef5a809e3dcc339becda74e1f8874a95845925e86ce08 +size 14256 diff --git a/Content/Assets/Enemies/Goblin/Materials/M_Goblin.uasset b/Content/Assets/Enemies/Goblin/Materials/M_Goblin.uasset new file mode 100644 index 0000000..9dd4c8c --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Materials/M_Goblin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:672a5a00d2f31f6f9a31efed018411d5ba9fee0606fdac9d236b75de1e45faf5 +size 12790 diff --git a/Content/Assets/Enemies/Goblin/Materials/M_GoblinDissolve.uasset b/Content/Assets/Enemies/Goblin/Materials/M_GoblinDissolve.uasset new file mode 100644 index 0000000..7f51b16 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Materials/M_GoblinDissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a42ad43b846049e7f3ea506477f2c405fc50d726c0f43ac7d9b21c7abc6ddfe +size 22192 diff --git a/Content/Assets/Enemies/Goblin/PA_Goblin.uasset b/Content/Assets/Enemies/Goblin/PA_Goblin.uasset new file mode 100644 index 0000000..0b34c1d --- /dev/null +++ b/Content/Assets/Enemies/Goblin/PA_Goblin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61dbe5fc52ae615f6128904c3b148aa5db778fc40f0b1c65e2a42ac1574c38be +size 39561 diff --git a/Content/Assets/Enemies/Goblin/SKM_Goblin.uasset b/Content/Assets/Enemies/Goblin/SKM_Goblin.uasset new file mode 100644 index 0000000..5734ff8 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/SKM_Goblin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3d5e842ecf6ee10b728fd0d9e4264e7e39fd265e6cb2ef7f715c71807a71b81 +size 841221 diff --git a/Content/Assets/Enemies/Goblin/SK_Goblin.uasset b/Content/Assets/Enemies/Goblin/SK_Goblin.uasset new file mode 100644 index 0000000..310d894 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/SK_Goblin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59f938573ed6a172c388cbe7dd0aa324afb585f85ee92b2365ece5f56a176e8b +size 15986 diff --git a/Content/Assets/Enemies/Goblin/Slingshot/Centered/PA_Slingshot.uasset b/Content/Assets/Enemies/Goblin/Slingshot/Centered/PA_Slingshot.uasset new file mode 100644 index 0000000..5889eab --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Slingshot/Centered/PA_Slingshot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7bbde324cbc69f82bc63e5fc67528ec0c4a3694e1ec15d701bc5132f5a35069 +size 9938 diff --git a/Content/Assets/Enemies/Goblin/Slingshot/Centered/SKM_Slingshot.uasset b/Content/Assets/Enemies/Goblin/Slingshot/Centered/SKM_Slingshot.uasset new file mode 100644 index 0000000..d87686b --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Slingshot/Centered/SKM_Slingshot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf282d4310f39794683a216687ac9ebd504dd8fe2468c0294940a35021116f91 +size 515596 diff --git a/Content/Assets/Enemies/Goblin/Slingshot/Centered/SK_Slingshot.uasset b/Content/Assets/Enemies/Goblin/Slingshot/Centered/SK_Slingshot.uasset new file mode 100644 index 0000000..ad8a87c --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Slingshot/Centered/SK_Slingshot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d588affcf7e49026cf93f62cab01b7583eab8043b2ade4ce6e26d5fafa27a3a +size 8523 diff --git a/Content/Assets/Enemies/Goblin/Slingshot/Centered/Slingshot_Attack.uasset b/Content/Assets/Enemies/Goblin/Slingshot/Centered/Slingshot_Attack.uasset new file mode 100644 index 0000000..1ee6ae4 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Slingshot/Centered/Slingshot_Attack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0d0b665ec1ccf7a56987c5900d6b81f484d4f1549ff9e578e3e3ce0bb2c1377 +size 18807 diff --git a/Content/Assets/Enemies/Goblin/Slingshot/Centered/Slingshot_Idle.uasset b/Content/Assets/Enemies/Goblin/Slingshot/Centered/Slingshot_Idle.uasset new file mode 100644 index 0000000..8f4a424 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Slingshot/Centered/Slingshot_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e373d0b1421a4bc1a9d42fb13e264b4cc4278f53d8a4b451c38dd02e5aed657 +size 17986 diff --git a/Content/Assets/Enemies/Goblin/Slingshot/Materials/Green/M_Slingshot_Green.uasset b/Content/Assets/Enemies/Goblin/Slingshot/Materials/Green/M_Slingshot_Green.uasset new file mode 100644 index 0000000..b7d3086 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Slingshot/Materials/Green/M_Slingshot_Green.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbcde9cea8a95450d4083778f28693bb07b3f0800c2e51c303faff5aa1d435e3 +size 14069 diff --git a/Content/Assets/Enemies/Goblin/Slingshot/Materials/Red/MI_Slingshot_Red_Dissolve.uasset b/Content/Assets/Enemies/Goblin/Slingshot/Materials/Red/MI_Slingshot_Red_Dissolve.uasset new file mode 100644 index 0000000..592bb91 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Slingshot/Materials/Red/MI_Slingshot_Red_Dissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4561b18919e3ef0913a673b6872ff2cf2d237b945a6775711a4495be98940d1c +size 11804 diff --git a/Content/Assets/Enemies/Goblin/Slingshot/Materials/Red/M_Slingshot_Red.uasset b/Content/Assets/Enemies/Goblin/Slingshot/Materials/Red/M_Slingshot_Red.uasset new file mode 100644 index 0000000..967d439 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Slingshot/Materials/Red/M_Slingshot_Red.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b71e0b616363ce31ef88eb755462b8505ff7932de98db8c37a6b2c494f0df72 +size 12872 diff --git a/Content/Assets/Enemies/Goblin/Slingshot/Materials/Red/M_Slingshot_Red_Dissolve.uasset b/Content/Assets/Enemies/Goblin/Slingshot/Materials/Red/M_Slingshot_Red_Dissolve.uasset new file mode 100644 index 0000000..467ff77 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Slingshot/Materials/Red/M_Slingshot_Red_Dissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d42b57988ce3ca0860448023dbf42d248fe7e2ee89b72e00d94cf01caf837252 +size 28363 diff --git a/Content/Assets/Enemies/Goblin/Slingshot/Materials/SlingshotRock/M_SlingshotRock.uasset b/Content/Assets/Enemies/Goblin/Slingshot/Materials/SlingshotRock/M_SlingshotRock.uasset new file mode 100644 index 0000000..3ff789c --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Slingshot/Materials/SlingshotRock/M_SlingshotRock.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94ba12b80784cb9588ead7d3afafaac247704c9f25209efc9989e2744da648a9 +size 12342 diff --git a/Content/Assets/Enemies/Goblin/Slingshot/SM_SlingshotRock.uasset b/Content/Assets/Enemies/Goblin/Slingshot/SM_SlingshotRock.uasset new file mode 100644 index 0000000..ee107cd --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Slingshot/SM_SlingshotRock.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:853c987a1ee374033380cfa2474b3141f42fa561d5def88a268c1610e0875957 +size 21353 diff --git a/Content/Assets/Enemies/Goblin/Spear/Materials/MI_Spear_Dissolve.uasset b/Content/Assets/Enemies/Goblin/Spear/Materials/MI_Spear_Dissolve.uasset new file mode 100644 index 0000000..f197704 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Spear/Materials/MI_Spear_Dissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:465c1cca04566aeeba4c9c1db9c3f6bb1e03e79a839e40caa991adc64069c99c +size 11579 diff --git a/Content/Assets/Enemies/Goblin/Spear/Materials/M_Spear.uasset b/Content/Assets/Enemies/Goblin/Spear/Materials/M_Spear.uasset new file mode 100644 index 0000000..8a4735e --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Spear/Materials/M_Spear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20d594864afd065aad400e7782d209362a7cd231fc94528e5f5dc1b7e3090559 +size 11948 diff --git a/Content/Assets/Enemies/Goblin/Spear/Materials/M_SpearDissolve.uasset b/Content/Assets/Enemies/Goblin/Spear/Materials/M_SpearDissolve.uasset new file mode 100644 index 0000000..b04573f --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Spear/Materials/M_SpearDissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a96e54da9fbf1b9e4592a883173ae33cf28b7d56ed4766f88b99e92e7834098 +size 28236 diff --git a/Content/Assets/Enemies/Goblin/Spear/PA_GoblinSpear.uasset b/Content/Assets/Enemies/Goblin/Spear/PA_GoblinSpear.uasset new file mode 100644 index 0000000..d8ad356 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Spear/PA_GoblinSpear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8b31d0356419d4c3188547f0dfc621f176009b9007e1e36415b9fc1ad41f371 +size 7246 diff --git a/Content/Assets/Enemies/Goblin/Spear/SKM_Spear.uasset b/Content/Assets/Enemies/Goblin/Spear/SKM_Spear.uasset new file mode 100644 index 0000000..efdb590 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Spear/SKM_Spear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e519fcc9204681a8f53caf00f81ea0fc57a08a47670b510eb2ab3bacd0f60af +size 462280 diff --git a/Content/Assets/Enemies/Goblin/Spear/SKM_Spear_Skeleton.uasset b/Content/Assets/Enemies/Goblin/Spear/SKM_Spear_Skeleton.uasset new file mode 100644 index 0000000..f86b194 --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Spear/SKM_Spear_Skeleton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e146748b9cca75acc53b0252bcb43cda8a5852ac05566c9d3bce4adfc78ab60c +size 6829 diff --git a/Content/Assets/Enemies/Goblin/Spear/SM_Spear.uasset b/Content/Assets/Enemies/Goblin/Spear/SM_Spear.uasset new file mode 100644 index 0000000..569b0bc --- /dev/null +++ b/Content/Assets/Enemies/Goblin/Spear/SM_Spear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2d1d962433aabcb8f5afdc73812cd3401c54ad9f22b7a464b24efb941b80e1c +size 121068 diff --git a/Content/Assets/Enemies/Shaman/Animations/BS_Shaman_IdleWalk.uasset b/Content/Assets/Enemies/Shaman/Animations/BS_Shaman_IdleWalk.uasset new file mode 100644 index 0000000..336a8d2 --- /dev/null +++ b/Content/Assets/Enemies/Shaman/Animations/BS_Shaman_IdleWalk.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80e73022c89fe810221f7e1a1bbad8a6623365a9c04fd0ed54f931f63eb28848 +size 9095 diff --git a/Content/Assets/Enemies/Shaman/Animations/Death.uasset b/Content/Assets/Enemies/Shaman/Animations/Death.uasset new file mode 100644 index 0000000..3a7f9dc --- /dev/null +++ b/Content/Assets/Enemies/Shaman/Animations/Death.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a92cd5c57279a78d1d417a577751ed4ef1096f0c53be4bf4d55d11008483a25 +size 246978 diff --git a/Content/Assets/Enemies/Shaman/Animations/Shaman_Attack.uasset b/Content/Assets/Enemies/Shaman/Animations/Shaman_Attack.uasset new file mode 100644 index 0000000..36b70d5 --- /dev/null +++ b/Content/Assets/Enemies/Shaman/Animations/Shaman_Attack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4eefa3468cec6900aea056b1eb43e28d06bd9958a0e2d15debf5481f8ae623af +size 225530 diff --git a/Content/Assets/Enemies/Shaman/Animations/Shaman_HitReact.uasset b/Content/Assets/Enemies/Shaman/Animations/Shaman_HitReact.uasset new file mode 100644 index 0000000..ed52802 --- /dev/null +++ b/Content/Assets/Enemies/Shaman/Animations/Shaman_HitReact.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:000917ff350e87cc8a0d1663f202dfcb9b7a9650b00dbef8f987c79759cf5350 +size 82178 diff --git a/Content/Assets/Enemies/Shaman/Animations/Shaman_Idle.uasset b/Content/Assets/Enemies/Shaman/Animations/Shaman_Idle.uasset new file mode 100644 index 0000000..1ae2d90 --- /dev/null +++ b/Content/Assets/Enemies/Shaman/Animations/Shaman_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:273c2635a75714527cba019708885056e0f775537b53c7ab2cdb797a2aba3c97 +size 266518 diff --git a/Content/Assets/Enemies/Shaman/Animations/Shaman_ShockLoop.uasset b/Content/Assets/Enemies/Shaman/Animations/Shaman_ShockLoop.uasset new file mode 100644 index 0000000..29c20bb --- /dev/null +++ b/Content/Assets/Enemies/Shaman/Animations/Shaman_ShockLoop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69200b7e92c2d42f50198b80dec75f566a103c1bc0f5a88ad85a2feaf3a8de98 +size 83032 diff --git a/Content/Assets/Enemies/Shaman/Animations/Shaman_Stun.uasset b/Content/Assets/Enemies/Shaman/Animations/Shaman_Stun.uasset new file mode 100644 index 0000000..49319c4 --- /dev/null +++ b/Content/Assets/Enemies/Shaman/Animations/Shaman_Stun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e97f2d90cff4d703af1fd57caa0e7119c4e9c16559b25ca59902c242d17a57c +size 269864 diff --git a/Content/Assets/Enemies/Shaman/Animations/Shaman_Summon.uasset b/Content/Assets/Enemies/Shaman/Animations/Shaman_Summon.uasset new file mode 100644 index 0000000..ba89181 --- /dev/null +++ b/Content/Assets/Enemies/Shaman/Animations/Shaman_Summon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b007c4e709355cb0980aeb68af4bb3d5d1cd927f7ab074155a7975778a00b7d5 +size 244756 diff --git a/Content/Assets/Enemies/Shaman/Animations/Shaman_Walk.uasset b/Content/Assets/Enemies/Shaman/Animations/Shaman_Walk.uasset new file mode 100644 index 0000000..8a19a7a --- /dev/null +++ b/Content/Assets/Enemies/Shaman/Animations/Shaman_Walk.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d021875974c7949a99ba0d4c8777cc47bd26a61f98faa5bb5fab01aef50fa351 +size 214553 diff --git a/Content/Assets/Enemies/Shaman/Materials/M_Shaman.uasset b/Content/Assets/Enemies/Shaman/Materials/M_Shaman.uasset new file mode 100644 index 0000000..b9566ae --- /dev/null +++ b/Content/Assets/Enemies/Shaman/Materials/M_Shaman.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2546118932ba47e8e69aa880f9728a581b5099b1540b1b15c7531f2e4348c965 +size 12925 diff --git a/Content/Assets/Enemies/Shaman/Materials/M_Shaman_Dissolve.uasset b/Content/Assets/Enemies/Shaman/Materials/M_Shaman_Dissolve.uasset new file mode 100644 index 0000000..ad06ffc --- /dev/null +++ b/Content/Assets/Enemies/Shaman/Materials/M_Shaman_Dissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f910b722c4eaea9ec56aa51fea2822e24254e9848f5aba61938e4460bfd7a1a +size 19945 diff --git a/Content/Assets/Enemies/Shaman/PA_Shaman.uasset b/Content/Assets/Enemies/Shaman/PA_Shaman.uasset new file mode 100644 index 0000000..2a30387 --- /dev/null +++ b/Content/Assets/Enemies/Shaman/PA_Shaman.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68ced79ca0ca00a5d0139efe1ff2a5aa1cfc0beb3a2c32dcbe97a738dbad5111 +size 21951 diff --git a/Content/Assets/Enemies/Shaman/SKM_Shaman.uasset b/Content/Assets/Enemies/Shaman/SKM_Shaman.uasset new file mode 100644 index 0000000..7073721 --- /dev/null +++ b/Content/Assets/Enemies/Shaman/SKM_Shaman.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e78dbb467b887b123d7d8057b7c963789c9f568b9575c862e9d3dd906e1465bd +size 4228527 diff --git a/Content/Assets/Enemies/Shaman/SK_Shaman.uasset b/Content/Assets/Enemies/Shaman/SK_Shaman.uasset new file mode 100644 index 0000000..a55b43b --- /dev/null +++ b/Content/Assets/Enemies/Shaman/SK_Shaman.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87bbc06e4962c4d4379486255852df888b391da98b5b206086a6434d555a1e3a +size 26055 diff --git a/Content/Assets/Enemies/Shaman/SM_Shaman.uasset b/Content/Assets/Enemies/Shaman/SM_Shaman.uasset new file mode 100644 index 0000000..38643c8 --- /dev/null +++ b/Content/Assets/Enemies/Shaman/SM_Shaman.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2fa4d0320a183f34617bd2479c8ee9b938f4723bd97bfaabf7f9f9af17512290 +size 378336 diff --git a/Content/Assets/Enemies/Shaman/ShamanStaff/Materials/M_Staff.uasset b/Content/Assets/Enemies/Shaman/ShamanStaff/Materials/M_Staff.uasset new file mode 100644 index 0000000..7f79c84 --- /dev/null +++ b/Content/Assets/Enemies/Shaman/ShamanStaff/Materials/M_Staff.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae40997cd1170f4a8385e30f4adc1d9671e0677bbd283591ff37df5911bb6df8 +size 12142 diff --git a/Content/Assets/Enemies/Shaman/ShamanStaff/Materials/M_StaffDissolve.uasset b/Content/Assets/Enemies/Shaman/ShamanStaff/Materials/M_StaffDissolve.uasset new file mode 100644 index 0000000..5959e7e --- /dev/null +++ b/Content/Assets/Enemies/Shaman/ShamanStaff/Materials/M_StaffDissolve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb29f9783ffa5a1c2f0dcae3f92a6d2736964aaa78668f8ff9b0fbe3bbbb46f8 +size 19350 diff --git a/Content/Assets/Enemies/Shaman/ShamanStaff/PA_ShamanStaff.uasset b/Content/Assets/Enemies/Shaman/ShamanStaff/PA_ShamanStaff.uasset new file mode 100644 index 0000000..578fc72 --- /dev/null +++ b/Content/Assets/Enemies/Shaman/ShamanStaff/PA_ShamanStaff.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3172f6b35befaaccf0b16e8af806519a9b273e48fb7d6f720479c41de56e25e +size 7598 diff --git a/Content/Assets/Enemies/Shaman/ShamanStaff/SKM_ShamanStaff.uasset b/Content/Assets/Enemies/Shaman/ShamanStaff/SKM_ShamanStaff.uasset new file mode 100644 index 0000000..85be516 --- /dev/null +++ b/Content/Assets/Enemies/Shaman/ShamanStaff/SKM_ShamanStaff.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78d4c658b11a6bfa07a57de9e21a3828ea1d66addebc2e2cc0bf16eb700b3707 +size 282870 diff --git a/Content/Assets/Enemies/Shaman/ShamanStaff/SM_ShamanStaff.uasset b/Content/Assets/Enemies/Shaman/ShamanStaff/SM_ShamanStaff.uasset new file mode 100644 index 0000000..b715eb1 --- /dev/null +++ b/Content/Assets/Enemies/Shaman/ShamanStaff/SM_ShamanStaff.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e5f4d558dfddcd0c9f52f495a3006e014d468987edec9dc5c516fbb8fa9ffd8 +size 7149 diff --git a/Content/Assets/Enemies/Shaman/ShamanStaff/SM_Staff_1_25.uasset b/Content/Assets/Enemies/Shaman/ShamanStaff/SM_Staff_1_25.uasset new file mode 100644 index 0000000..beb00f4 --- /dev/null +++ b/Content/Assets/Enemies/Shaman/ShamanStaff/SM_Staff_1_25.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8527bd0042e9586fa9a11e26f3e3fd58cf06faa579b4a7f8edec0d78e84f39d8 +size 84458 diff --git a/Content/Assets/Enemies/Shroom/Animations/Attack.uasset b/Content/Assets/Enemies/Shroom/Animations/Attack.uasset new file mode 100644 index 0000000..121c792 --- /dev/null +++ b/Content/Assets/Enemies/Shroom/Animations/Attack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2873306210a1120842857f1cf4f8a477b47bdaff197fe471d01762c3a0bc6a3 +size 37913 diff --git a/Content/Assets/Enemies/Shroom/Animations/Bounce.uasset b/Content/Assets/Enemies/Shroom/Animations/Bounce.uasset new file mode 100644 index 0000000..aee144f --- /dev/null +++ b/Content/Assets/Enemies/Shroom/Animations/Bounce.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8604113ddfc19147c42ccf251415625857275464b35307b5b60c7a4a5306d348 +size 29892 diff --git a/Content/Assets/Enemies/Shroom/Animations/Idle.uasset b/Content/Assets/Enemies/Shroom/Animations/Idle.uasset new file mode 100644 index 0000000..22aa3a3 --- /dev/null +++ b/Content/Assets/Enemies/Shroom/Animations/Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e613da221d07bf110166c7d5df82f9b132be2404ceadcea19801a076ca813d2 +size 80234 diff --git a/Content/Assets/Enemies/Shroom/Materials/M_Shroom.uasset b/Content/Assets/Enemies/Shroom/Materials/M_Shroom.uasset new file mode 100644 index 0000000..31af31b --- /dev/null +++ b/Content/Assets/Enemies/Shroom/Materials/M_Shroom.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0f010305c919d62d13466fd92316bf976d2d3de43aac0b16b8d74b9549883bd +size 12852 diff --git a/Content/Assets/Enemies/Shroom/Mesh/PA_Shroom.uasset b/Content/Assets/Enemies/Shroom/Mesh/PA_Shroom.uasset new file mode 100644 index 0000000..8670bb1 --- /dev/null +++ b/Content/Assets/Enemies/Shroom/Mesh/PA_Shroom.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc78aabe56e7045bbd393cacd967b0c14db139461bec044f7a50b421398d79b1 +size 8206 diff --git a/Content/Assets/Enemies/Shroom/Mesh/SKM_Shroom.uasset b/Content/Assets/Enemies/Shroom/Mesh/SKM_Shroom.uasset new file mode 100644 index 0000000..9b7e54c --- /dev/null +++ b/Content/Assets/Enemies/Shroom/Mesh/SKM_Shroom.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:471d5ee2a34b3269a9515069bb898eabbcac10cd03b2ce41ad73fd4d4ea0b7e5 +size 74875 diff --git a/Content/Assets/Enemies/Shroom/Mesh/SK_Shroom.uasset b/Content/Assets/Enemies/Shroom/Mesh/SK_Shroom.uasset new file mode 100644 index 0000000..fdea31d --- /dev/null +++ b/Content/Assets/Enemies/Shroom/Mesh/SK_Shroom.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9835388270ec8a37394ad34c8234e12c7cbb0e48966fcfbad01296e4ca97098b +size 9012 diff --git a/Content/Assets/Fonts/Amarante/Amarante-Regular.uasset b/Content/Assets/Fonts/Amarante/Amarante-Regular.uasset new file mode 100644 index 0000000..51fe4ed --- /dev/null +++ b/Content/Assets/Fonts/Amarante/Amarante-Regular.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c14e5a9dd7a16883a4d642be26d32e70d77dcd69b3be08713d7ca4dbd2703ccf +size 146388 diff --git a/Content/Assets/Fonts/Amarante/Amarante-Regular_Font.uasset b/Content/Assets/Fonts/Amarante/Amarante-Regular_Font.uasset new file mode 100644 index 0000000..e4cd513 --- /dev/null +++ b/Content/Assets/Fonts/Amarante/Amarante-Regular_Font.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:561f5798cf2ff5c3c057a6706d74babc63c5287e2f58bd4d4c3f9764ac40ba43 +size 6845 diff --git a/Content/Assets/Fonts/David_Libre/DavidLibre-Bold.uasset b/Content/Assets/Fonts/David_Libre/DavidLibre-Bold.uasset new file mode 100644 index 0000000..e73a948 --- /dev/null +++ b/Content/Assets/Fonts/David_Libre/DavidLibre-Bold.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cc6aa7f2c00695b2d9ffab32202a7a8d5b304825f1562a67a82aa86fc7d60d4 +size 116329 diff --git a/Content/Assets/Fonts/David_Libre/DavidLibre-Bold_Font.uasset b/Content/Assets/Fonts/David_Libre/DavidLibre-Bold_Font.uasset new file mode 100644 index 0000000..72cfc50 --- /dev/null +++ b/Content/Assets/Fonts/David_Libre/DavidLibre-Bold_Font.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ab8c754e022815d2560170edb51a760e8498b4ddc8bde42c32bd06d6947d57b +size 6837 diff --git a/Content/Assets/Fonts/David_Libre/DavidLibre-Medium.uasset b/Content/Assets/Fonts/David_Libre/DavidLibre-Medium.uasset new file mode 100644 index 0000000..0ba64be --- /dev/null +++ b/Content/Assets/Fonts/David_Libre/DavidLibre-Medium.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d7d28e19a5ec764090ec84156ac6bf952e174a04a9e64f4a10391d23626d371 +size 113095 diff --git a/Content/Assets/Fonts/David_Libre/DavidLibre-Medium_Font.uasset b/Content/Assets/Fonts/David_Libre/DavidLibre-Medium_Font.uasset new file mode 100644 index 0000000..93e4f8b --- /dev/null +++ b/Content/Assets/Fonts/David_Libre/DavidLibre-Medium_Font.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e835057c734d56929549dbd820642e01f92af1108a6656b26bbbafc0bb9816da +size 6890 diff --git a/Content/Assets/Fonts/David_Libre/DavidLibre-Regular.uasset b/Content/Assets/Fonts/David_Libre/DavidLibre-Regular.uasset new file mode 100644 index 0000000..b8b9db2 --- /dev/null +++ b/Content/Assets/Fonts/David_Libre/DavidLibre-Regular.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b0cbe92ed33f700f7b7e8c33a1f32f26034673f08605398c95dfa58a95ff484 +size 111834 diff --git a/Content/Assets/Fonts/David_Libre/DavidLibre-Regular_Font.uasset b/Content/Assets/Fonts/David_Libre/DavidLibre-Regular_Font.uasset new file mode 100644 index 0000000..0adfaa4 --- /dev/null +++ b/Content/Assets/Fonts/David_Libre/DavidLibre-Regular_Font.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e56733254208abee5e1d8038fb9326cc44d38e1d5a775f3a98ff474689c0d5d +size 6875 diff --git a/Content/Assets/Fonts/Inkut/InknutAntiqua-Black.uasset b/Content/Assets/Fonts/Inkut/InknutAntiqua-Black.uasset new file mode 100644 index 0000000..e6063e9 --- /dev/null +++ b/Content/Assets/Fonts/Inkut/InknutAntiqua-Black.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9679823a89c624fc2212fb69274743192f9612eb5183e8ba41bf9d6b51d74ec8 +size 340895 diff --git a/Content/Assets/Fonts/Inkut/InknutAntiqua-Black_Font.uasset b/Content/Assets/Fonts/Inkut/InknutAntiqua-Black_Font.uasset new file mode 100644 index 0000000..8b9531d --- /dev/null +++ b/Content/Assets/Fonts/Inkut/InknutAntiqua-Black_Font.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb70de77ef051f135242e86fc0ba5cf5e934b71d65a8cb9323fb1279011673d7 +size 7018 diff --git a/Content/Assets/Fonts/Inkut/InknutAntiqua-Bold.uasset b/Content/Assets/Fonts/Inkut/InknutAntiqua-Bold.uasset new file mode 100644 index 0000000..c292c55 --- /dev/null +++ b/Content/Assets/Fonts/Inkut/InknutAntiqua-Bold.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00c2fc817b856c969eba483df1230581974d9a8fbe3402aa47355e4853a3bcac +size 348760 diff --git a/Content/Assets/Fonts/Inkut/InknutAntiqua-Bold_Font.uasset b/Content/Assets/Fonts/Inkut/InknutAntiqua-Bold_Font.uasset new file mode 100644 index 0000000..a87782d --- /dev/null +++ b/Content/Assets/Fonts/Inkut/InknutAntiqua-Bold_Font.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa4c90da10d5cbebadb5224b14cff0cdd05222ecbc37bf1b076afe2b4d7ca357 +size 7001 diff --git a/Content/Assets/Fonts/Inkut/InknutAntiqua-ExtraBold.uasset b/Content/Assets/Fonts/Inkut/InknutAntiqua-ExtraBold.uasset new file mode 100644 index 0000000..31d7f98 --- /dev/null +++ b/Content/Assets/Fonts/Inkut/InknutAntiqua-ExtraBold.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cede93132e560533d41e5b2e0c54ca1f3548fa3a64d1cbba9466793e2c67460 +size 351699 diff --git a/Content/Assets/Fonts/Inkut/InknutAntiqua-ExtraBold_Font.uasset b/Content/Assets/Fonts/Inkut/InknutAntiqua-ExtraBold_Font.uasset new file mode 100644 index 0000000..f517e55 --- /dev/null +++ b/Content/Assets/Fonts/Inkut/InknutAntiqua-ExtraBold_Font.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6693908438718f1515b74f38ae4df3f654d1d02a6aac14bf3d3280e2f749803 +size 7038 diff --git a/Content/Assets/Fonts/Inkut/InknutAntiqua-Light.uasset b/Content/Assets/Fonts/Inkut/InknutAntiqua-Light.uasset new file mode 100644 index 0000000..7bb71cb --- /dev/null +++ b/Content/Assets/Fonts/Inkut/InknutAntiqua-Light.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78f2e06fe692b59c71b45644185525ffc6a7c4bd7723ae91e886989929f705b8 +size 352419 diff --git a/Content/Assets/Fonts/Inkut/InknutAntiqua-Light_Font.uasset b/Content/Assets/Fonts/Inkut/InknutAntiqua-Light_Font.uasset new file mode 100644 index 0000000..70106ef --- /dev/null +++ b/Content/Assets/Fonts/Inkut/InknutAntiqua-Light_Font.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef1945cd1b255a94a9c2d3cf9062d8a8889f698b699891d90983ad497ba7f03f +size 6808 diff --git a/Content/Assets/Fonts/Inkut/InknutAntiqua-Medium.uasset b/Content/Assets/Fonts/Inkut/InknutAntiqua-Medium.uasset new file mode 100644 index 0000000..e297e75 --- /dev/null +++ b/Content/Assets/Fonts/Inkut/InknutAntiqua-Medium.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d01e92beb26b1d28fb9d3e9710b58fbc43010ecc1a07ce94bf9e8fe2163ce88 +size 349702 diff --git a/Content/Assets/Fonts/Inkut/InknutAntiqua-Medium_Font.uasset b/Content/Assets/Fonts/Inkut/InknutAntiqua-Medium_Font.uasset new file mode 100644 index 0000000..696c1e5 --- /dev/null +++ b/Content/Assets/Fonts/Inkut/InknutAntiqua-Medium_Font.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:345c2a471e5ac880c1413cbad3ba7d0eb9d4ba1294f4199b35cb2cc6b0ddff6c +size 6874 diff --git a/Content/Assets/Fonts/Inkut/InknutAntiqua-Regular.uasset b/Content/Assets/Fonts/Inkut/InknutAntiqua-Regular.uasset new file mode 100644 index 0000000..020a868 --- /dev/null +++ b/Content/Assets/Fonts/Inkut/InknutAntiqua-Regular.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8c717a9dc64c996c77849b8b5819072cc412be87eac6890ab5ebe6bb199ba19 +size 345625 diff --git a/Content/Assets/Fonts/Inkut/InknutAntiqua-Regular_Font.uasset b/Content/Assets/Fonts/Inkut/InknutAntiqua-Regular_Font.uasset new file mode 100644 index 0000000..0c54ac0 --- /dev/null +++ b/Content/Assets/Fonts/Inkut/InknutAntiqua-Regular_Font.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddd9aee4f04eccee407d8523a44795503c15b132f436745c04fd6a9edca097c3 +size 6854 diff --git a/Content/Assets/Fonts/Inkut/InknutAntiqua-SemiBold.uasset b/Content/Assets/Fonts/Inkut/InknutAntiqua-SemiBold.uasset new file mode 100644 index 0000000..c0f4bd3 --- /dev/null +++ b/Content/Assets/Fonts/Inkut/InknutAntiqua-SemiBold.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16d9ccaa980655edaf363ce0ba4633535c4546a4e758ce36ef2445d4fba842ab +size 347592 diff --git a/Content/Assets/Fonts/Inkut/InknutAntiqua-SemiBold_Font.uasset b/Content/Assets/Fonts/Inkut/InknutAntiqua-SemiBold_Font.uasset new file mode 100644 index 0000000..dc7ba9c --- /dev/null +++ b/Content/Assets/Fonts/Inkut/InknutAntiqua-SemiBold_Font.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:553377ae566fb730a81395e0485b1407099cf2619133a5c5c1110405c860c6df +size 6889 diff --git a/Content/Assets/Fonts/Nanum_Brush/NanumBrushScript-Regular.uasset b/Content/Assets/Fonts/Nanum_Brush/NanumBrushScript-Regular.uasset new file mode 100644 index 0000000..db5acff --- /dev/null +++ b/Content/Assets/Fonts/Nanum_Brush/NanumBrushScript-Regular.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64d094ad5b04260223e39b6853212c8c7ebf7a390cae78a2b6fa7c3033cff069 +size 3433874 diff --git a/Content/Assets/Fonts/Nanum_Brush/NanumBrushScript-Regular_Font.uasset b/Content/Assets/Fonts/Nanum_Brush/NanumBrushScript-Regular_Font.uasset new file mode 100644 index 0000000..6a6d8eb --- /dev/null +++ b/Content/Assets/Fonts/Nanum_Brush/NanumBrushScript-Regular_Font.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd843b5d61d007f04a573f508875f99251b4cbc8ee7fce87f3ba3933af7b3190 +size 6402 diff --git a/Content/Assets/Fonts/Pirata_One/PirataOne-Regular.uasset b/Content/Assets/Fonts/Pirata_One/PirataOne-Regular.uasset new file mode 100644 index 0000000..48ee444 --- /dev/null +++ b/Content/Assets/Fonts/Pirata_One/PirataOne-Regular.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0570b402103e90678f30e07c28772805dc6ae198918bf13d515f5254add814c +size 55891 diff --git a/Content/Assets/Fonts/Pirata_One/PirataOne-Regular_Font.uasset b/Content/Assets/Fonts/Pirata_One/PirataOne-Regular_Font.uasset new file mode 100644 index 0000000..3022f45 --- /dev/null +++ b/Content/Assets/Fonts/Pirata_One/PirataOne-Regular_Font.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a99fe056dc54bd66bb4db856c5cc9f6370c07b82765f48fda43808b933d5b925 +size 6849 diff --git a/Content/Assets/MagicCircles/M_MagicCircle_1.uasset b/Content/Assets/MagicCircles/M_MagicCircle_1.uasset new file mode 100644 index 0000000..254437f --- /dev/null +++ b/Content/Assets/MagicCircles/M_MagicCircle_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c45c42b2036041975a93de55a6ec2bf6f82231a330fba4a5b984eb0f8726360 +size 13252 diff --git a/Content/Assets/MagicCircles/M_MagicTranslation.uasset b/Content/Assets/MagicCircles/M_MagicTranslation.uasset new file mode 100644 index 0000000..d9fb00d --- /dev/null +++ b/Content/Assets/MagicCircles/M_MagicTranslation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c06d238b2384d0ad7bf42bbf3f4cddc80b7074979de126c60ff2ac769e9bb5e +size 18536 diff --git a/Content/Assets/MagicCircles/M_MagicWall.uasset b/Content/Assets/MagicCircles/M_MagicWall.uasset new file mode 100644 index 0000000..70ea562 --- /dev/null +++ b/Content/Assets/MagicCircles/M_MagicWall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f4401a9dce952d87d65b5850ac1bad7b970a5154c4e190557a0cd3151ff53bc +size 16713 diff --git a/Content/Assets/MagicCircles/M_MagicWall_Blue.uasset b/Content/Assets/MagicCircles/M_MagicWall_Blue.uasset new file mode 100644 index 0000000..782269a --- /dev/null +++ b/Content/Assets/MagicCircles/M_MagicWall_Blue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f592b129ec368c222795b2e256b11326100f9045c2e81586d7d22e4f7139dfb3 +size 11520 diff --git a/Content/Assets/MagicCircles/M_MagicWall_Orange.uasset b/Content/Assets/MagicCircles/M_MagicWall_Orange.uasset new file mode 100644 index 0000000..31a8185 --- /dev/null +++ b/Content/Assets/MagicCircles/M_MagicWall_Orange.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f55ae7d7e95badb62df1a52b32f5cc4f4e685d0800b6218bb17d2956261a9972 +size 11478 diff --git a/Content/Assets/MagicCircles/MagicCircle_1.uasset b/Content/Assets/MagicCircles/MagicCircle_1.uasset new file mode 100644 index 0000000..004cf92 --- /dev/null +++ b/Content/Assets/MagicCircles/MagicCircle_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:372bc76c1607902d451ec19dd7440a724108f8c13b63d8fc342d6356cfa86e6b +size 141127 diff --git a/Content/Assets/Materials/MF_CameraFade.uasset b/Content/Assets/Materials/MF_CameraFade.uasset new file mode 100644 index 0000000..26e1881 --- /dev/null +++ b/Content/Assets/Materials/MF_CameraFade.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ada12c803dfc5e1705d8fd9f3a6360aaa6618f6ef9b1eedfb86e09b8c43ad1e1 +size 14453 diff --git a/Content/Assets/Materials/MF_Circle.uasset b/Content/Assets/Materials/MF_Circle.uasset new file mode 100644 index 0000000..6d01f5b --- /dev/null +++ b/Content/Assets/Materials/MF_Circle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b412da081e935fdfc17a1f968e3ad0db032363915258f01b20425ebc224e10ab +size 12775 diff --git a/Content/Assets/Materials/MF_DissolveEffect.uasset b/Content/Assets/Materials/MF_DissolveEffect.uasset new file mode 100644 index 0000000..d69f278 --- /dev/null +++ b/Content/Assets/Materials/MF_DissolveEffect.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a33a5de5b1bba698b6f07a1af91b6eadb148e2231c8c6a22e92dde92bce3af90 +size 23705 diff --git a/Content/Assets/Materials/MI_DissolveEffect.uasset b/Content/Assets/Materials/MI_DissolveEffect.uasset new file mode 100644 index 0000000..c8baa5c --- /dev/null +++ b/Content/Assets/Materials/MI_DissolveEffect.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55cc3fa89804097eb46ac5a90e99fec44d667703ce148e01e0022b4d94618839 +size 11549 diff --git a/Content/Assets/Materials/M_DissolveEffect.uasset b/Content/Assets/Materials/M_DissolveEffect.uasset new file mode 100644 index 0000000..7db31e3 --- /dev/null +++ b/Content/Assets/Materials/M_DissolveEffect.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ce2be1181f539c277e2efb3988dbb10d3712cc5ae76a629ab6a24444fa20df8 +size 26260 diff --git a/Content/Assets/Materials/PP_Highlight.uasset b/Content/Assets/Materials/PP_Highlight.uasset new file mode 100644 index 0000000..cbf8427 --- /dev/null +++ b/Content/Assets/Materials/PP_Highlight.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c80081e81a5a7ede26f1d9f8ac4b3d86e5be8c2f485728ff2a078f256ff5e2f0 +size 56033 diff --git a/Content/Assets/Pickups/HealthCrystal/Materials/MI_BlackCrystal.uasset b/Content/Assets/Pickups/HealthCrystal/Materials/MI_BlackCrystal.uasset new file mode 100644 index 0000000..d5ce730 --- /dev/null +++ b/Content/Assets/Pickups/HealthCrystal/Materials/MI_BlackCrystal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51efd6daa466ee0364b25ac7de829b5c22893c3d54936c7e621bb4457356a7ea +size 11515 diff --git a/Content/Assets/Pickups/HealthCrystal/Materials/MI_HealthCrystal.uasset b/Content/Assets/Pickups/HealthCrystal/Materials/MI_HealthCrystal.uasset new file mode 100644 index 0000000..843f319 --- /dev/null +++ b/Content/Assets/Pickups/HealthCrystal/Materials/MI_HealthCrystal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a434f4c19397d1b1cfa047562ea185628993f7e7aa02a634a68dde3f6931d76b +size 11984 diff --git a/Content/Assets/Pickups/HealthCrystal/Materials/M_HealthCrystal.uasset b/Content/Assets/Pickups/HealthCrystal/Materials/M_HealthCrystal.uasset new file mode 100644 index 0000000..ad738f8 --- /dev/null +++ b/Content/Assets/Pickups/HealthCrystal/Materials/M_HealthCrystal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe70deb1378fdb591ea2646090acc54f9a007f5b408f2c71cd756a167d53d3b8 +size 16577 diff --git a/Content/Assets/Pickups/HealthCrystal/SM_HealthCrystal.uasset b/Content/Assets/Pickups/HealthCrystal/SM_HealthCrystal.uasset new file mode 100644 index 0000000..376490a --- /dev/null +++ b/Content/Assets/Pickups/HealthCrystal/SM_HealthCrystal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11a383aa2ffe96426832e5ad33d2a4de1ae05fdce5178e8440536c9ffd55ed8c +size 31967 diff --git a/Content/Assets/Pickups/Potions/Bottle/MI_Bottle.uasset b/Content/Assets/Pickups/Potions/Bottle/MI_Bottle.uasset new file mode 100644 index 0000000..c587789 --- /dev/null +++ b/Content/Assets/Pickups/Potions/Bottle/MI_Bottle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75002ac2bbc1b5cb96d7b63ffb9122b7d5f47db3be4962ed886ee66a16280d85 +size 12668 diff --git a/Content/Assets/Pickups/Potions/Bottle/M_Bottle.uasset b/Content/Assets/Pickups/Potions/Bottle/M_Bottle.uasset new file mode 100644 index 0000000..5116aa6 --- /dev/null +++ b/Content/Assets/Pickups/Potions/Bottle/M_Bottle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f78e6c9d3c4a5765a91837cab62f4de4d8f1ac709bb14ce91471ac2fc67a6de1 +size 18753 diff --git a/Content/Assets/Pickups/Potions/Cork/M_Cork.uasset b/Content/Assets/Pickups/Potions/Cork/M_Cork.uasset new file mode 100644 index 0000000..92e6da6 --- /dev/null +++ b/Content/Assets/Pickups/Potions/Cork/M_Cork.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25910efb6e6bcf72eeae5eb70683478c7602823cb94f22402ecfb040ec4ff313 +size 11317 diff --git a/Content/Assets/Pickups/Potions/Liquid/MI_BlackLiquid.uasset b/Content/Assets/Pickups/Potions/Liquid/MI_BlackLiquid.uasset new file mode 100644 index 0000000..b17741f --- /dev/null +++ b/Content/Assets/Pickups/Potions/Liquid/MI_BlackLiquid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40c0a61c09138d33861606f6cb5c8da8bd4f6b5e1047073f5b81f2adb400621b +size 8754 diff --git a/Content/Assets/Pickups/Potions/Liquid/MI_BlueLiquid.uasset b/Content/Assets/Pickups/Potions/Liquid/MI_BlueLiquid.uasset new file mode 100644 index 0000000..a074e17 --- /dev/null +++ b/Content/Assets/Pickups/Potions/Liquid/MI_BlueLiquid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33e5d24d0d26fb621bfda3bdae3cd9a50b05139e82882c168da837809656972b +size 11529 diff --git a/Content/Assets/Pickups/Potions/Liquid/MI_PurpleLiquid.uasset b/Content/Assets/Pickups/Potions/Liquid/MI_PurpleLiquid.uasset new file mode 100644 index 0000000..632d691 --- /dev/null +++ b/Content/Assets/Pickups/Potions/Liquid/MI_PurpleLiquid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e708797bf1e8ee4310b16d3cb1e50fe7348590047338a53517a7f123b71b7a6a +size 11098 diff --git a/Content/Assets/Pickups/Potions/Liquid/MI_RedLiquid.uasset b/Content/Assets/Pickups/Potions/Liquid/MI_RedLiquid.uasset new file mode 100644 index 0000000..9a03b80 --- /dev/null +++ b/Content/Assets/Pickups/Potions/Liquid/MI_RedLiquid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:baffd5c990a84773dc6a5ca21d9764eb3529978c7dae945ad77b134707ac5a4d +size 9985 diff --git a/Content/Assets/Pickups/Potions/Liquid/M_WhiteLiquid.uasset b/Content/Assets/Pickups/Potions/Liquid/M_WhiteLiquid.uasset new file mode 100644 index 0000000..c8a040b --- /dev/null +++ b/Content/Assets/Pickups/Potions/Liquid/M_WhiteLiquid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:908a36ad6cc5f75654a854c5168eeb302a96f255779221e1ce18185dc1fda2b2 +size 14135 diff --git a/Content/Assets/Pickups/Potions/SM_PotionBottle.uasset b/Content/Assets/Pickups/Potions/SM_PotionBottle.uasset new file mode 100644 index 0000000..33c7530 --- /dev/null +++ b/Content/Assets/Pickups/Potions/SM_PotionBottle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:292f22e86a5524738e757b87a874dc4741890d535df0bb5ade83649d5522b4b5 +size 102959 diff --git a/Content/Assets/Sounds/Abilities/ArcaneShards/sfx_ArcaneShards.uasset b/Content/Assets/Sounds/Abilities/ArcaneShards/sfx_ArcaneShards.uasset new file mode 100644 index 0000000..eea1528 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/ArcaneShards/sfx_ArcaneShards.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:279d4cf8431fa71325709b1e404fbb9e70f8c77cc055c42fb332400c87977b83 +size 108667 diff --git a/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_01.uasset b/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_01.uasset new file mode 100644 index 0000000..239f31a --- /dev/null +++ b/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edf6ceb8b5a84b77c8c9b46ecb248cafaf1ba47fe201390cdd290a0333e63542 +size 213485 diff --git a/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_02.uasset b/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_02.uasset new file mode 100644 index 0000000..0ebf9d9 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bdbd479aa62078d0bc4cba76c9159334f1c855b807577cb9f49af99f5b0c47c +size 198516 diff --git a/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_03.uasset b/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_03.uasset new file mode 100644 index 0000000..185a8db --- /dev/null +++ b/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:424b3eb14ad45ac96c0f84fbad8762199ab0097cdc002b56c6ba2ccd11e06f96 +size 208143 diff --git a/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_04.uasset b/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_04.uasset new file mode 100644 index 0000000..cfa5048 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_04.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a55f3a26d98b9cb834dfddc0a1c9e3426dfb7ae1af12e94feffec4610f040c9 +size 220997 diff --git a/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_05.uasset b/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_05.uasset new file mode 100644 index 0000000..5f7642a --- /dev/null +++ b/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_05.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a55b6f3dd5b5ae4d188c6411247f5c147643df8630f9ed28b65fa550c22ac998 +size 192670 diff --git a/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_06.uasset b/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_06.uasset new file mode 100644 index 0000000..2d87a9f --- /dev/null +++ b/Content/Assets/Sounds/Abilities/ArcaneShards/wav/SFX_RockSpikes_06.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7392975f8a72589f3927982e8f1d4c6e176405d388b7ec03ba14ed7fdcf6547c +size 217405 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/att_InWorld.uasset b/Content/Assets/Sounds/Abilities/FireBolt/att_InWorld.uasset new file mode 100644 index 0000000..e67eb9f --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/att_InWorld.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:386fc3504ce779d6d8193367ff25df6c8855f489e1a5ab8613d22e94c1a85218 +size 1630 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/sfx_FireBolt.uasset b/Content/Assets/Sounds/Abilities/FireBolt/sfx_FireBolt.uasset new file mode 100644 index 0000000..72f3473 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/sfx_FireBolt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:966d6b73f31d5e49b656cc0e5377ae09b0fb44eb01c4011cb2c1c4adde52189c +size 82030 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/sfx_FireBoltHiss.uasset b/Content/Assets/Sounds/Abilities/FireBolt/sfx_FireBoltHiss.uasset new file mode 100644 index 0000000..c4c2b1d --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/sfx_FireBoltHiss.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bee2b88dbc1b8886d75e200a9b89e093f002fca064b06c89f8557de5ae879e41 +size 61570 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/sfx_FireBoltLow.uasset b/Content/Assets/Sounds/Abilities/FireBolt/sfx_FireBoltLow.uasset new file mode 100644 index 0000000..52c74df --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/sfx_FireBoltLow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24658898ae9dd79dfa62bfcce882a008f03d4051475355983439420a708adfa5 +size 82436 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/sfx_FireBolt_Impact.uasset b/Content/Assets/Sounds/Abilities/FireBolt/sfx_FireBolt_Impact.uasset new file mode 100644 index 0000000..ffb4a2d --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/sfx_FireBolt_Impact.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:539229ba11ff9ff86e883f201d23591c6088eb0e7cc5bf14f7b3e838b297440f +size 88639 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/wav/Hiss/SFX_Drone_Rocket_Booster.uasset b/Content/Assets/Sounds/Abilities/FireBolt/wav/Hiss/SFX_Drone_Rocket_Booster.uasset new file mode 100644 index 0000000..39c0b27 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/wav/Hiss/SFX_Drone_Rocket_Booster.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b46df635ce86f14d6f43d73580177b55435d1f7b48d445ac244d482b7583291 +size 548943 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_Fireball_Hit_01.uasset b/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_Fireball_Hit_01.uasset new file mode 100644 index 0000000..47aa160 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_Fireball_Hit_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7fed2b7f9d9d08cf6dbdb58a3caee1be88b31640d2c2ac867a3060cc6aaa49b +size 292673 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_Fireball_Hit_02.uasset b/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_Fireball_Hit_02.uasset new file mode 100644 index 0000000..f76f7c8 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_Fireball_Hit_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49a904b33d929b06945811c3f7a4e3501f8a23626bb51d9173b33dba40e659e4 +size 288922 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_Fireball_Hit_03.uasset b/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_Fireball_Hit_03.uasset new file mode 100644 index 0000000..8d61ef8 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_Fireball_Hit_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a34f260dfcf736a7ed16416b54d2fcc97940ba4ae86e59890025bed78f7f6fd7 +size 293004 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_SmallFireball_Hit_01.uasset b/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_SmallFireball_Hit_01.uasset new file mode 100644 index 0000000..256b59f --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_SmallFireball_Hit_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:492127521022ad78028d12ec64b571e7ed39fa4471dace64784adf8aabc80532 +size 208901 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_SmallFireball_Hit_02.uasset b/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_SmallFireball_Hit_02.uasset new file mode 100644 index 0000000..af22994 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_SmallFireball_Hit_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a319728cac5cb1477448569801cf605d6a0f25bfee72fd66482e0925d2322295 +size 214939 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_SmallFireball_Hit_03.uasset b/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_SmallFireball_Hit_03.uasset new file mode 100644 index 0000000..85826da --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/wav/Impact/SFX_SmallFireball_Hit_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed86c09837b80bfc17fb0ef1f782d54dc9327557c7f03cc57a16afb14ca3b286 +size 214239 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/wav/Shoot/SFX_FireBall_Shoot_LowLevel_01.uasset b/Content/Assets/Sounds/Abilities/FireBolt/wav/Shoot/SFX_FireBall_Shoot_LowLevel_01.uasset new file mode 100644 index 0000000..d9b55a4 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/wav/Shoot/SFX_FireBall_Shoot_LowLevel_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e028886555147faa464deeea0d6b93f82413815808c4c5da9efc9897e2f7d1aa +size 102622 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/wav/Shoot/SFX_FireBall_Shoot_LowLevel_02.uasset b/Content/Assets/Sounds/Abilities/FireBolt/wav/Shoot/SFX_FireBall_Shoot_LowLevel_02.uasset new file mode 100644 index 0000000..e8c1ab2 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/wav/Shoot/SFX_FireBall_Shoot_LowLevel_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e16b22a7ec2a9cbb79e666697d9d264b3f4f6fd3bc4c231e55118cec1e847f10 +size 104609 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/wav/Shoot/SFX_FireBall_Shoot_LowLevel_03.uasset b/Content/Assets/Sounds/Abilities/FireBolt/wav/Shoot/SFX_FireBall_Shoot_LowLevel_03.uasset new file mode 100644 index 0000000..3e43c7d --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/wav/Shoot/SFX_FireBall_Shoot_LowLevel_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1602004eb0b82a1c1de551a37b344eb104959638685ce146a4442ce243157f56 +size 103871 diff --git a/Content/Assets/Sounds/Abilities/FireBolt/wav/Shoot/SFX_FireBall_Shoot_LowLevel_04.uasset b/Content/Assets/Sounds/Abilities/FireBolt/wav/Shoot/SFX_FireBall_Shoot_LowLevel_04.uasset new file mode 100644 index 0000000..0e8d43f --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireBolt/wav/Shoot/SFX_FireBall_Shoot_LowLevel_04.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:028656fdbb3114fd63124997936ec30f536aa58d1e1bf409fe88e44e44669bb3 +size 101594 diff --git a/Content/Assets/Sounds/Abilities/FireNado/SFX_Fire-Nado_01.uasset b/Content/Assets/Sounds/Abilities/FireNado/SFX_Fire-Nado_01.uasset new file mode 100644 index 0000000..6efe5e7 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireNado/SFX_Fire-Nado_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93d235f5fd2673e4ebd8b2f137013e16877cbe39d90c5a9240f83fd903b2b4d9 +size 367005 diff --git a/Content/Assets/Sounds/Abilities/FireNado/SFX_Fire-Nado_02.uasset b/Content/Assets/Sounds/Abilities/FireNado/SFX_Fire-Nado_02.uasset new file mode 100644 index 0000000..b9ef007 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireNado/SFX_Fire-Nado_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80af9566091a5152ca1fce1afa83acbca4905e50e60ea7a842ece3cd5cc580ee +size 363314 diff --git a/Content/Assets/Sounds/Abilities/FireNado/SFX_Fire-Nado_03.uasset b/Content/Assets/Sounds/Abilities/FireNado/SFX_Fire-Nado_03.uasset new file mode 100644 index 0000000..150fabd --- /dev/null +++ b/Content/Assets/Sounds/Abilities/FireNado/SFX_Fire-Nado_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:554adc766b657a435013aa4a6779763f3a6512f51717737c70e2efeb52f20424 +size 358025 diff --git a/Content/Assets/Sounds/Abilities/Shock/sfx_Shock.uasset b/Content/Assets/Sounds/Abilities/Shock/sfx_Shock.uasset new file mode 100644 index 0000000..fe38c91 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/Shock/sfx_Shock.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c92c640f5dbba8124fd3ae6eb89497bb98807666bc17b7a6db27f35af3c224e8 +size 108081 diff --git a/Content/Assets/Sounds/Abilities/Shock/sfx_ShockLoop.uasset b/Content/Assets/Sounds/Abilities/Shock/sfx_ShockLoop.uasset new file mode 100644 index 0000000..2aa46b1 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/Shock/sfx_ShockLoop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b25de3e82dcc982739857f6853d6b3bfeb36a65bffff572c3a964f250034def0 +size 107876 diff --git a/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_01.uasset b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_01.uasset new file mode 100644 index 0000000..2940975 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d7208d133e0cbe829eda10e09dc8ffe234fac073987bc28661c70d752b7f3dc +size 258615 diff --git a/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_02.uasset b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_02.uasset new file mode 100644 index 0000000..2bd255f --- /dev/null +++ b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a3f92c145f43d0b0937d7f3b00a2008ef9c47a2484d87d0c83b74fdff97db1f +size 239264 diff --git a/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_03.uasset b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_03.uasset new file mode 100644 index 0000000..92702f7 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1111ed0217df24bdb7089ec3c73299edefb8fe23ec26b19a89ab08060919ce6e +size 250898 diff --git a/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_04.uasset b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_04.uasset new file mode 100644 index 0000000..a47ff76 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_04.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3d84c7c181ae0299f6e33640431172d20f5e34250efe9e7612e2f90bf0f54c6 +size 251059 diff --git a/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_05.uasset b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_05.uasset new file mode 100644 index 0000000..35a13c7 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_05.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:981c985d375a2bfc401634101c5d35e9b6dda0fde305559d1e4f4de27c3f131e +size 251250 diff --git a/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_06.uasset b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_06.uasset new file mode 100644 index 0000000..8040c1e --- /dev/null +++ b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Burst_06.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da22a4d764b069c1452a9a3bfb006f9c2153b8a0e9f140c4da287cceb3a6004f +size 257247 diff --git a/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Hum_Loop_01.uasset b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Hum_Loop_01.uasset new file mode 100644 index 0000000..219ae5d --- /dev/null +++ b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Hum_Loop_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9c6be7f6bcf3efe252ce948599a993d575aaced0740251db01c4cbf07390789 +size 607053 diff --git a/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Hum_Loop_02.uasset b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Hum_Loop_02.uasset new file mode 100644 index 0000000..dc4865d --- /dev/null +++ b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Hum_Loop_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c9b5134491c43c60d80e6264067f1b64dc95ad8c3ebee7de155ad0a7106d4f9 +size 608550 diff --git a/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Hum_Loop_03.uasset b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Hum_Loop_03.uasset new file mode 100644 index 0000000..a032b40 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/Shock/wav/SFX_Electric_Hum_Loop_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:417e18f940e0a8218e757b224c8f1c23218b5cc6d8196fc0366090189170a960 +size 604871 diff --git a/Content/Assets/Sounds/Abilities/ThunderStrike/SFX_ThunderStrike_01.uasset b/Content/Assets/Sounds/Abilities/ThunderStrike/SFX_ThunderStrike_01.uasset new file mode 100644 index 0000000..7d45561 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/ThunderStrike/SFX_ThunderStrike_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed4fc584ef2346e485b0a6b5511ebdb068376b6b7766ac105dd67196be466a9c +size 599759 diff --git a/Content/Assets/Sounds/Abilities/ThunderStrike/SFX_ThunderStrike_02.uasset b/Content/Assets/Sounds/Abilities/ThunderStrike/SFX_ThunderStrike_02.uasset new file mode 100644 index 0000000..ba794b0 --- /dev/null +++ b/Content/Assets/Sounds/Abilities/ThunderStrike/SFX_ThunderStrike_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:483d2695d446adbb63129e77b5ac349f7a71cd41d5798cfa833f9d6809ed62ba +size 611005 diff --git a/Content/Assets/Sounds/Abilities/ThunderStrike/SFX_ThunderStrike_03.uasset b/Content/Assets/Sounds/Abilities/ThunderStrike/SFX_ThunderStrike_03.uasset new file mode 100644 index 0000000..e8dee6c --- /dev/null +++ b/Content/Assets/Sounds/Abilities/ThunderStrike/SFX_ThunderStrike_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3778acacae58c39076bc410cf2d9312becf71b1cea9e88c70946c6149efbe09 +size 578623 diff --git a/Content/Assets/Sounds/Enemies/Demon/Death/SFX_Demon_Death_01.uasset b/Content/Assets/Sounds/Enemies/Demon/Death/SFX_Demon_Death_01.uasset new file mode 100644 index 0000000..a797f54 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Demon/Death/SFX_Demon_Death_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:717febe349dfda39d6ef4fe54c2ac1294ffb54ba85a5168a93de0d5083b88210 +size 235723 diff --git a/Content/Assets/Sounds/Enemies/Demon/Death/SFX_Demon_Death_02.uasset b/Content/Assets/Sounds/Enemies/Demon/Death/SFX_Demon_Death_02.uasset new file mode 100644 index 0000000..111618e --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Demon/Death/SFX_Demon_Death_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:956d4991e2b6c2ef9569cfbc1d3925440a8ce9971503a060ae79ac1484e1d11d +size 238999 diff --git a/Content/Assets/Sounds/Enemies/Demon/Death/SFX_Demon_Death_03.uasset b/Content/Assets/Sounds/Enemies/Demon/Death/SFX_Demon_Death_03.uasset new file mode 100644 index 0000000..4840a5d --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Demon/Death/SFX_Demon_Death_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53f9ef7dbc46db06363a51be85e8923ecee9957f01af3e6ddb6eb4cc46546700 +size 235235 diff --git a/Content/Assets/Sounds/Enemies/Demon/Death/sfx_DemonDeath.uasset b/Content/Assets/Sounds/Enemies/Demon/Death/sfx_DemonDeath.uasset new file mode 100644 index 0000000..6f195a6 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Demon/Death/sfx_DemonDeath.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad2178d2df3b6abd83f76b9d904c7f2d091f09288d764acebbfb43d3d6d7047a +size 106691 diff --git a/Content/Assets/Sounds/Enemies/Demon/Hurt/SFX_Demon_Hurt_01.uasset b/Content/Assets/Sounds/Enemies/Demon/Hurt/SFX_Demon_Hurt_01.uasset new file mode 100644 index 0000000..7538e87 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Demon/Hurt/SFX_Demon_Hurt_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d6c868d09b62e973c8e9ce3ff26cb8127ab6e1d1c95e72d4ba7ebfced47018a +size 136142 diff --git a/Content/Assets/Sounds/Enemies/Demon/Hurt/SFX_Demon_Hurt_02.uasset b/Content/Assets/Sounds/Enemies/Demon/Hurt/SFX_Demon_Hurt_02.uasset new file mode 100644 index 0000000..3f891fb --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Demon/Hurt/SFX_Demon_Hurt_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65cebf1cebb842d709dca7d91fda7dca2aea7fd481bcd87a0714071af2177157 +size 133366 diff --git a/Content/Assets/Sounds/Enemies/Demon/Hurt/SFX_Demon_Hurt_03.uasset b/Content/Assets/Sounds/Enemies/Demon/Hurt/SFX_Demon_Hurt_03.uasset new file mode 100644 index 0000000..db12b49 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Demon/Hurt/SFX_Demon_Hurt_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3beb258ec3ae541793faf1cc4a96a81add67df9995b26a0fbd05675e182256b5 +size 129209 diff --git a/Content/Assets/Sounds/Enemies/Demon/Hurt/sfx_Demon_Hurt.uasset b/Content/Assets/Sounds/Enemies/Demon/Hurt/sfx_Demon_Hurt.uasset new file mode 100644 index 0000000..7c57372 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Demon/Hurt/sfx_Demon_Hurt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5533e458968865247774401ffe7517133e16c9973ee3df7300ad43f4f6de3cff +size 105901 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Attack/SFX_Enemies_Ghoul_Attack_ClawSwipe_01.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Attack/SFX_Enemies_Ghoul_Attack_ClawSwipe_01.uasset new file mode 100644 index 0000000..1da334d --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Attack/SFX_Enemies_Ghoul_Attack_ClawSwipe_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53ed649a5744a1099e884e817253b00fbcc5422ae9e30edccfb3591eb09510cf +size 43009 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Attack/SFX_Enemies_Ghoul_Attack_ClawSwipe_02.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Attack/SFX_Enemies_Ghoul_Attack_ClawSwipe_02.uasset new file mode 100644 index 0000000..d26fd42 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Attack/SFX_Enemies_Ghoul_Attack_ClawSwipe_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edb6b38f1e9db2a6f1a171b23cd397a11c67b35eb79012af5894d5dadc7f9fe5 +size 44330 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Attack/SFX_Enemies_Ghoul_Attack_ClawSwipe_03.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Attack/SFX_Enemies_Ghoul_Attack_ClawSwipe_03.uasset new file mode 100644 index 0000000..30da089 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Attack/SFX_Enemies_Ghoul_Attack_ClawSwipe_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee69f50ee356113a0ff94315a0bda9519be925eedecf2ab4f7eb5a212a85dfa6 +size 43745 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Attack/SFX_Enemies_Ghoul_Attack_ClawSwipe_04.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Attack/SFX_Enemies_Ghoul_Attack_ClawSwipe_04.uasset new file mode 100644 index 0000000..5416a5a --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Attack/SFX_Enemies_Ghoul_Attack_ClawSwipe_04.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fd985f9155becb6f8580cd9257eded2c379381b963b6446bad4c79fdbdeaf84 +size 40838 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow1.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow1.uasset new file mode 100644 index 0000000..202cbc0 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12ad99182095f054a37e6ce9a3d6ea604340fa389554e2d82a1fbedff3cf1acc +size 20937 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow2.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow2.uasset new file mode 100644 index 0000000..4ec9b8f --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee6faa48e5c7d761d4455458fa871aad1a86008171183fd7f84a35609ae21469 +size 20906 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow3.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow3.uasset new file mode 100644 index 0000000..9292848 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:384bada74ab4790e4e62f8ec46a556617110fb440acd5a3ef4705122da78ccff +size 21840 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow4.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow4.uasset new file mode 100644 index 0000000..261733d --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4224612235109befee892803f228cd6aafe5201d5bec4ac7bd4e1c7c5fc029a5 +size 21664 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow_heavy1.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow_heavy1.uasset new file mode 100644 index 0000000..8c8b256 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow_heavy1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:681adccb350d0fef32a67ef13f1a0216128dfaa5473382c95d99d7a7656d0539 +size 21593 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow_heavy2.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow_heavy2.uasset new file mode 100644 index 0000000..839eb2a --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow_heavy2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c10d63ac4bc10ac50f57390ae653935b89f89cb074c39005e0833619d8e87305 +size 19306 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow_heavy3.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow_heavy3.uasset new file mode 100644 index 0000000..5b8a055 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow_heavy3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e4246c91186edab58049b4288892aeff792df3eb9f9cc5075ff12f7735a160e +size 21024 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow_heavy4.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow_heavy4.uasset new file mode 100644 index 0000000..94068f7 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Blow/blow_heavy4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6c565209052fce03445af871d4870ce80feae946e41e272edc67852ba90a05a +size 21032 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Blow/sfx_Ghoul_Blow.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Blow/sfx_Ghoul_Blow.uasset new file mode 100644 index 0000000..d134d02 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Blow/sfx_Ghoul_Blow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9987e6552ae0a3c152b61b34ac07f9202fcd92367e57a064f2cfdeb4f62c4b8 +size 106807 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Death/sfx_GhoulDeath.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Death/sfx_GhoulDeath.uasset new file mode 100644 index 0000000..2142f9d --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Death/sfx_GhoulDeath.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21e8798b7ffdad630fdf4f4227d5871c7cb1990326b4bf1a095db5fd9b0551c8 +size 106692 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Growl/SFX_Enemies_Ghoul_Attack_Vocal_01.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Growl/SFX_Enemies_Ghoul_Attack_Vocal_01.uasset new file mode 100644 index 0000000..4048502 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Growl/SFX_Enemies_Ghoul_Attack_Vocal_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7d0c520eb9a775febda32a8cc5dc6df64ac6788d0a23ceec274cfc4843ad1f9 +size 81484 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Growl/SFX_Enemies_Ghoul_Attack_Vocal_02.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Growl/SFX_Enemies_Ghoul_Attack_Vocal_02.uasset new file mode 100644 index 0000000..8c2012d --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Growl/SFX_Enemies_Ghoul_Attack_Vocal_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f83be04db3426af2b7f446afc729278d72cf2d3ee9c775f892ec56f03c325c56 +size 84867 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Growl/SFX_Enemies_Ghoul_Attack_Vocal_03.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Growl/SFX_Enemies_Ghoul_Attack_Vocal_03.uasset new file mode 100644 index 0000000..b89c948 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Growl/SFX_Enemies_Ghoul_Attack_Vocal_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad05be2db0ca46360f8401abeb6178f644464a1e702d9dde1c0fea4598d5f982 +size 84578 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Growl/SFX_Enemies_Ghoul_Attack_Vocal_04.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Growl/SFX_Enemies_Ghoul_Attack_Vocal_04.uasset new file mode 100644 index 0000000..bdafab7 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Growl/SFX_Enemies_Ghoul_Attack_Vocal_04.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ced3178a9a6724b147a210044e61ac844e902b06e12803a9ae5fdeb114f05dc +size 82252 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Growl/sfx_GhoulGrowl.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Growl/sfx_GhoulGrowl.uasset new file mode 100644 index 0000000..4a71ebd --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Growl/sfx_GhoulGrowl.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5ef40503792e700f0c0a0fb45fa1a5f54f2583ac3626a2a062cad90f6be616b +size 106255 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Swipe/SFX_Swipe_01.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Swipe/SFX_Swipe_01.uasset new file mode 100644 index 0000000..80323be --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Swipe/SFX_Swipe_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42124718c017dd5b09fe6a7887e165c552f635f84c0db2adae6a8b2aef4145e1 +size 94709 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Swipe/SFX_Swipe_02.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Swipe/SFX_Swipe_02.uasset new file mode 100644 index 0000000..966f49e --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Swipe/SFX_Swipe_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:921b70b122296f6fe9fb37849c63a693d95567d532cbde099e43049344e8785c +size 98215 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Swipe/SFX_Swipe_03.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Swipe/SFX_Swipe_03.uasset new file mode 100644 index 0000000..be078cc --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Swipe/SFX_Swipe_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6861a13b3ad1fc87815c9e8ecf0770125a7405d5f6585b51ec3109e5e9987a15 +size 96658 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Swipe/sfx_Ghoul_Swipe.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Swipe/sfx_Ghoul_Swipe.uasset new file mode 100644 index 0000000..7ce47d2 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Swipe/sfx_Ghoul_Swipe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:980fa848f5ebe9438e30757599d879e83e404c39caad94e85e52bdc2eb3a60cc +size 106661 diff --git a/Content/Assets/Sounds/Enemies/Ghoul/Swipe/sfx_Swipe.uasset b/Content/Assets/Sounds/Enemies/Ghoul/Swipe/sfx_Swipe.uasset new file mode 100644 index 0000000..b9557bc --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Ghoul/Swipe/sfx_Swipe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8cbbedc87131f3b939195d566172576c576fbd5116381b2fa3eeb2b18cf3c1e +size 106240 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Death/SFX_Goblin_Death_01.uasset b/Content/Assets/Sounds/Enemies/Goblin/Death/SFX_Goblin_Death_01.uasset new file mode 100644 index 0000000..62318ca --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Death/SFX_Goblin_Death_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48d2b00a709f6bf42646d066da19c9b883258e2241dc7f781dcbbdc4b730da09 +size 207137 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Death/SFX_Goblin_Death_02.uasset b/Content/Assets/Sounds/Enemies/Goblin/Death/SFX_Goblin_Death_02.uasset new file mode 100644 index 0000000..fcee329 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Death/SFX_Goblin_Death_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce0f1ccedf2c4e8ac984769e7b592dc0a4abbe6d2ea747ce78157b3ce00e856c +size 188890 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Death/SFX_Goblin_Death_03.uasset b/Content/Assets/Sounds/Enemies/Goblin/Death/SFX_Goblin_Death_03.uasset new file mode 100644 index 0000000..d906206 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Death/SFX_Goblin_Death_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea20ded79ea482c7d641e8fd363b740b7cec5483241013d70d45562494f6b8bb +size 191900 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Death/sfx_GoblinDeath.uasset b/Content/Assets/Sounds/Enemies/Goblin/Death/sfx_GoblinDeath.uasset new file mode 100644 index 0000000..7cf4d98 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Death/sfx_GoblinDeath.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:993f026cf52bc76d9363e4cc8e5e7cfd1e78818b04758bffdd740030bc52f791 +size 106317 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Hurt/SFX_Goblin_Hurt_01.uasset b/Content/Assets/Sounds/Enemies/Goblin/Hurt/SFX_Goblin_Hurt_01.uasset new file mode 100644 index 0000000..e0ce7ef --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Hurt/SFX_Goblin_Hurt_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41094a73125a7bd6f035b6e4d2a504b60d8a792e3e312f526a76797c45e40180 +size 98544 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Hurt/SFX_Goblin_Hurt_02.uasset b/Content/Assets/Sounds/Enemies/Goblin/Hurt/SFX_Goblin_Hurt_02.uasset new file mode 100644 index 0000000..cf773f5 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Hurt/SFX_Goblin_Hurt_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f22616fc0429b23179197695ac35fdefca9cf34a71b2e629b1ea461db2d60a7c +size 100793 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Hurt/SFX_Goblin_Hurt_03.uasset b/Content/Assets/Sounds/Enemies/Goblin/Hurt/SFX_Goblin_Hurt_03.uasset new file mode 100644 index 0000000..c404c52 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Hurt/SFX_Goblin_Hurt_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b18bc82796c9b6bb4f32e141f69fc2998d5c946b8fb116c3999280a56234cd0b +size 95979 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Hurt/sfx_GoblinHurt.uasset b/Content/Assets/Sounds/Enemies/Goblin/Hurt/sfx_GoblinHurt.uasset new file mode 100644 index 0000000..983e895 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Hurt/sfx_GoblinHurt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afbb251400da9acef5aad0f86ab60fcef189b7bb88ae0ca4331931b5bb04c537 +size 106301 diff --git a/Content/Assets/Sounds/Enemies/Goblin/RockHit/SFX_RockHit_Body_01.uasset b/Content/Assets/Sounds/Enemies/Goblin/RockHit/SFX_RockHit_Body_01.uasset new file mode 100644 index 0000000..f82314f --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/RockHit/SFX_RockHit_Body_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:565e678d90fcbef7150cbcde39b8ee212a8b4ec529870e6d85dc676676b170d3 +size 86194 diff --git a/Content/Assets/Sounds/Enemies/Goblin/RockHit/SFX_RockHit_Body_02.uasset b/Content/Assets/Sounds/Enemies/Goblin/RockHit/SFX_RockHit_Body_02.uasset new file mode 100644 index 0000000..4466285 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/RockHit/SFX_RockHit_Body_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e6d7f84feb8786e66392bcd535c116e8306851c51b2f95e000ba2912e8aff6d +size 90773 diff --git a/Content/Assets/Sounds/Enemies/Goblin/RockHit/SFX_RockHit_Body_03.uasset b/Content/Assets/Sounds/Enemies/Goblin/RockHit/SFX_RockHit_Body_03.uasset new file mode 100644 index 0000000..5c57b22 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/RockHit/SFX_RockHit_Body_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d49ae7bbbfa9d294be29c41d88a92125bc7f2cdd369d0f325004efc732170b18 +size 86971 diff --git a/Content/Assets/Sounds/Enemies/Goblin/RockHit/sfx_RockHitBody.uasset b/Content/Assets/Sounds/Enemies/Goblin/RockHit/sfx_RockHitBody.uasset new file mode 100644 index 0000000..2c1fdb5 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/RockHit/sfx_RockHitBody.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c7d4ef22010614d621fc888675812e403049895a40baff7cc0548d172ccd292 +size 106327 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_01.uasset b/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_01.uasset new file mode 100644 index 0000000..1677b09 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f6aff8158629bff48ffb18cbe3b84f75c5ce2f2710ce26faf68c7f02d67988e +size 59366 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_02.uasset b/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_02.uasset new file mode 100644 index 0000000..bc57e75 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e15539d0158efddef362dba2cbbf17b764aadea0d24106c9d25cf27789e53806 +size 60215 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_03.uasset b/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_03.uasset new file mode 100644 index 0000000..813faa3 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a01e503d0040049fc89a36c53dd423f8ab824c7d5c2bc62fdb3386d2903b3a59 +size 60638 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_04.uasset b/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_04.uasset new file mode 100644 index 0000000..c5ee86a --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_04.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad14d916ced281f58ec01fb1bd418cd684589e8ced8571e474cf10ff4ae78e3a +size 59632 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_05.uasset b/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_05.uasset new file mode 100644 index 0000000..9d200b0 --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_05.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8c4bc3f4f8389797e84345c22c8811c9028da1e113db1c3870feb38fe66882b +size 60056 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_06.uasset b/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_06.uasset new file mode 100644 index 0000000..f59df9b --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Swoosh/SFX_Sword_Swoosh_06.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3a22ce35a19513bd7e27684ea58c12ca5780fdd960f9ef6ca4507eac2dfca75 +size 60626 diff --git a/Content/Assets/Sounds/Enemies/Goblin/Swoosh/sfx_Sword_Swoosh.uasset b/Content/Assets/Sounds/Enemies/Goblin/Swoosh/sfx_Sword_Swoosh.uasset new file mode 100644 index 0000000..e1a6e7a --- /dev/null +++ b/Content/Assets/Sounds/Enemies/Goblin/Swoosh/sfx_Sword_Swoosh.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7d787f3c4e9ca07af5c97249cd1fedca2c41fb3cbba9234b51a262451a18ccf +size 107012 diff --git a/Content/Assets/Sounds/FootSteps/sfx_Footsteps.uasset b/Content/Assets/Sounds/FootSteps/sfx_Footsteps.uasset new file mode 100644 index 0000000..8dd2ab9 --- /dev/null +++ b/Content/Assets/Sounds/FootSteps/sfx_Footsteps.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1528c5f0b932d8d61a2fcd15b9a737dcc54de4949687a0748420e413b4659e28 +size 107875 diff --git a/Content/Assets/Sounds/FootSteps/sfx_Footsteps_Deep.uasset b/Content/Assets/Sounds/FootSteps/sfx_Footsteps_Deep.uasset new file mode 100644 index 0000000..0988dde --- /dev/null +++ b/Content/Assets/Sounds/FootSteps/sfx_Footsteps_Deep.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e867afa87c68dd7c7c75ba310abe1ee363e9d9a5c1629a9ffb2b76bde610caa +size 108271 diff --git a/Content/Assets/Sounds/FootSteps/sfx_Footsteps_Light.uasset b/Content/Assets/Sounds/FootSteps/sfx_Footsteps_Light.uasset new file mode 100644 index 0000000..52b1f33 --- /dev/null +++ b/Content/Assets/Sounds/FootSteps/sfx_Footsteps_Light.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:049c107436ac24e6dd419cd86b9a8dec739e0115cedff95c9ed0abd44d2109da +size 108276 diff --git a/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_01.uasset b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_01.uasset new file mode 100644 index 0000000..df23ca3 --- /dev/null +++ b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e1c4b51f8c66a0b68a92d2e5dd34e46b4b7b14531e1cad0b995fb8cea155510 +size 32302 diff --git a/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_02.uasset b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_02.uasset new file mode 100644 index 0000000..33bbe80 --- /dev/null +++ b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5f68ae7dbd1f60366d75c1d43e07adddb18a3b173c9904b87bcdf458cd58861 +size 33211 diff --git a/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_03.uasset b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_03.uasset new file mode 100644 index 0000000..f63ce4d --- /dev/null +++ b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e49bd872fa7dbe0a00d788008428b80c6ac28e8ddf0038714ef5290cdc130c7 +size 32611 diff --git a/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_04.uasset b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_04.uasset new file mode 100644 index 0000000..1d30290 --- /dev/null +++ b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_04.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb2b1653dbc19b9fdd753cb9bc8812ea4c1ef5b066fb95a66c92008749848231 +size 33769 diff --git a/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_05.uasset b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_05.uasset new file mode 100644 index 0000000..93771e3 --- /dev/null +++ b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_05.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c900cf5aa49df85b2dce81bce16e34feb4fe4c12507fd569e76d7fbc8223b9a3 +size 34099 diff --git a/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_06.uasset b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_06.uasset new file mode 100644 index 0000000..f936f38 --- /dev/null +++ b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_06.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10cec732691882c36e8319d4d69aee38c0526733c11fe4fb84ae5a70758f7bbd +size 31927 diff --git a/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_07.uasset b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_07.uasset new file mode 100644 index 0000000..e2c1631 --- /dev/null +++ b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_07.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73ad34870bc8228eff5949020393c4cdec11fd650a55bc301c2954e648048cbb +size 31471 diff --git a/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_08.uasset b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_08.uasset new file mode 100644 index 0000000..58170b8 --- /dev/null +++ b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_08.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f052356d62c72e594c72bfab6d098e4e22c6a2a95c094f832205194d25bdcbed +size 32942 diff --git a/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_09.uasset b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_09.uasset new file mode 100644 index 0000000..0d3a538 --- /dev/null +++ b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_09.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:446bd89decda8efdedee1880e9f5126f1c4abdf823f959fe5faf2174df045ce1 +size 33518 diff --git a/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_10.uasset b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_10.uasset new file mode 100644 index 0000000..c63ac93 --- /dev/null +++ b/Content/Assets/Sounds/FootSteps/wav/SFX_Footsteps_Stone_10.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1447bb4bc42357721dacdbca6f27359f95ad0eb4cd15c97a79fac0111ade7834 +size 33410 diff --git a/Content/Assets/Sounds/LevelUp/SFX_LevelUp.uasset b/Content/Assets/Sounds/LevelUp/SFX_LevelUp.uasset new file mode 100644 index 0000000..19337c3 --- /dev/null +++ b/Content/Assets/Sounds/LevelUp/SFX_LevelUp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94e565de97860980a0fd1ebdbcb68fdab90639d545b24eae3f0d7d1b00464c3c +size 607149 diff --git a/Content/Assets/Sounds/LevelUp/sfx_LevelUpSound.uasset b/Content/Assets/Sounds/LevelUp/sfx_LevelUpSound.uasset new file mode 100644 index 0000000..ceda1b2 --- /dev/null +++ b/Content/Assets/Sounds/LevelUp/sfx_LevelUpSound.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fe927c61e1cfd7cf9a6f62b922ccce80aea814c025d4b6e14cb699c32f98c6a +size 78852 diff --git a/Content/Assets/Sounds/Music/Music_MainMenu.uasset b/Content/Assets/Sounds/Music/Music_MainMenu.uasset new file mode 100644 index 0000000..0ac01b6 --- /dev/null +++ b/Content/Assets/Sounds/Music/Music_MainMenu.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58ccc6dc5abf96571896e1828a630842fb2da5f6d340157c7afe2c7185d24976 +size 9602435 diff --git a/Content/Assets/Sounds/Potions/Consume/SFX_Potion_Consume_01.uasset b/Content/Assets/Sounds/Potions/Consume/SFX_Potion_Consume_01.uasset new file mode 100644 index 0000000..03520f5 --- /dev/null +++ b/Content/Assets/Sounds/Potions/Consume/SFX_Potion_Consume_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d249ff3680dd80ab526e5003af45226db4dc538e4622a7e7f797bf388a9121a +size 123504 diff --git a/Content/Assets/Sounds/Potions/Consume/SFX_Potion_Consume_02.uasset b/Content/Assets/Sounds/Potions/Consume/SFX_Potion_Consume_02.uasset new file mode 100644 index 0000000..c752a16 --- /dev/null +++ b/Content/Assets/Sounds/Potions/Consume/SFX_Potion_Consume_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd601756c45693d1aa29d7d275e5486cdd37cb6651cca7289faed11eb3248bb3 +size 128521 diff --git a/Content/Assets/Sounds/Potions/Consume/SFX_Potion_Consume_03.uasset b/Content/Assets/Sounds/Potions/Consume/SFX_Potion_Consume_03.uasset new file mode 100644 index 0000000..caf5452 --- /dev/null +++ b/Content/Assets/Sounds/Potions/Consume/SFX_Potion_Consume_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c8536ed0e2245d8530c5b0952a4c426773cf894f593df21ff12f506e5a84a7e +size 116467 diff --git a/Content/Assets/Sounds/Potions/Consume/sfx_Potion_Consume.uasset b/Content/Assets/Sounds/Potions/Consume/sfx_Potion_Consume.uasset new file mode 100644 index 0000000..612084a --- /dev/null +++ b/Content/Assets/Sounds/Potions/Consume/sfx_Potion_Consume.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:371d911c47329082dc889a002f5225982c57e972e4ef1a4c64e26324f24863fe +size 106729 diff --git a/Content/Assets/Sounds/Potions/HitGround/SFX_Potion_HitGround_01.uasset b/Content/Assets/Sounds/Potions/HitGround/SFX_Potion_HitGround_01.uasset new file mode 100644 index 0000000..7327d0f --- /dev/null +++ b/Content/Assets/Sounds/Potions/HitGround/SFX_Potion_HitGround_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2d26350724e6c0cc557413604a07b191a92fe93c950c52b10215b4d3ee1e0be +size 63957 diff --git a/Content/Assets/Sounds/Potions/HitGround/SFX_Potion_HitGround_02.uasset b/Content/Assets/Sounds/Potions/HitGround/SFX_Potion_HitGround_02.uasset new file mode 100644 index 0000000..be0c3d2 --- /dev/null +++ b/Content/Assets/Sounds/Potions/HitGround/SFX_Potion_HitGround_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d443ed86366b2f85e37d9f3889cba03554baf0283290928246203782a85f9435 +size 57108 diff --git a/Content/Assets/Sounds/Potions/HitGround/SFX_Potion_HitGround_03.uasset b/Content/Assets/Sounds/Potions/HitGround/SFX_Potion_HitGround_03.uasset new file mode 100644 index 0000000..d880ed7 --- /dev/null +++ b/Content/Assets/Sounds/Potions/HitGround/SFX_Potion_HitGround_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bdd1e2ba81748e2527d7b2c6e30e41a1339f9427d6dc1264fe9485e33e74ab4 +size 64073 diff --git a/Content/Assets/Sounds/Potions/HitGround/sfx_Potion_HitGround.uasset b/Content/Assets/Sounds/Potions/HitGround/sfx_Potion_HitGround.uasset new file mode 100644 index 0000000..d6e17a4 --- /dev/null +++ b/Content/Assets/Sounds/Potions/HitGround/sfx_Potion_HitGround.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4531c3e6b404301062522ef3f668394cc546c018003e1deef9b14bae7f4c86d7 +size 106761 diff --git a/Content/Assets/Sounds/Potions/Spawn/SFX_Potion_PopsOut_01.uasset b/Content/Assets/Sounds/Potions/Spawn/SFX_Potion_PopsOut_01.uasset new file mode 100644 index 0000000..8063684 --- /dev/null +++ b/Content/Assets/Sounds/Potions/Spawn/SFX_Potion_PopsOut_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbcb42c62c276e12d0b302cb447242301aba20789c97065503d40d5a5f03332b +size 80537 diff --git a/Content/Assets/Sounds/Potions/Spawn/SFX_Potion_PopsOut_02.uasset b/Content/Assets/Sounds/Potions/Spawn/SFX_Potion_PopsOut_02.uasset new file mode 100644 index 0000000..9362be3 --- /dev/null +++ b/Content/Assets/Sounds/Potions/Spawn/SFX_Potion_PopsOut_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ec731283fcc131f078b65195ab1de1512c821f5000a131472882e6054d64849 +size 77769 diff --git a/Content/Assets/Sounds/Potions/Spawn/SFX_Potion_PopsOut_03.uasset b/Content/Assets/Sounds/Potions/Spawn/SFX_Potion_PopsOut_03.uasset new file mode 100644 index 0000000..576efb1 --- /dev/null +++ b/Content/Assets/Sounds/Potions/Spawn/SFX_Potion_PopsOut_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9c0a3562557ab7b35114a869c3f954d7aaf4bc06d6921a3dacec70a369afcde +size 84567 diff --git a/Content/Assets/Sounds/Potions/Spawn/SFX_Potion_PopsOut_04.uasset b/Content/Assets/Sounds/Potions/Spawn/SFX_Potion_PopsOut_04.uasset new file mode 100644 index 0000000..bb25268 --- /dev/null +++ b/Content/Assets/Sounds/Potions/Spawn/SFX_Potion_PopsOut_04.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91da4860eec71441536bc5996752b6c46496fbc0f886f8226edb7500f8ab0ac9 +size 79466 diff --git a/Content/Assets/Sounds/Potions/Spawn/sfx_Potion_Spawn.uasset b/Content/Assets/Sounds/Potions/Spawn/sfx_Potion_Spawn.uasset new file mode 100644 index 0000000..2859740 --- /dev/null +++ b/Content/Assets/Sounds/Potions/Spawn/sfx_Potion_Spawn.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b282c7a501683dd68ac3b7a05e7ebe18e59bf90b028f49e639f93574e3b4110 +size 106932 diff --git a/Content/Assets/Sounds/Slingshot/sfx_Slingshot_Fire.uasset b/Content/Assets/Sounds/Slingshot/sfx_Slingshot_Fire.uasset new file mode 100644 index 0000000..2524953 --- /dev/null +++ b/Content/Assets/Sounds/Slingshot/sfx_Slingshot_Fire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f3621f3623f0b287def9824f14c753f4c2b8206102eb9b7146f596570882084 +size 106816 diff --git a/Content/Assets/Sounds/Slingshot/wav/SFX_BowDraw_FastShot_Full_01.uasset b/Content/Assets/Sounds/Slingshot/wav/SFX_BowDraw_FastShot_Full_01.uasset new file mode 100644 index 0000000..7f650ec --- /dev/null +++ b/Content/Assets/Sounds/Slingshot/wav/SFX_BowDraw_FastShot_Full_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58efdd3f2f335e280349a90271946a001e911b0ad4202a21e4594cec91341222 +size 136732 diff --git a/Content/Assets/Sounds/Slingshot/wav/SFX_BowDraw_FastShot_Full_02.uasset b/Content/Assets/Sounds/Slingshot/wav/SFX_BowDraw_FastShot_Full_02.uasset new file mode 100644 index 0000000..d945f5b --- /dev/null +++ b/Content/Assets/Sounds/Slingshot/wav/SFX_BowDraw_FastShot_Full_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3889612466ee5ea9be1ff56542da715e7a85e67f184fa7f5aeaa67876f8f4d9 +size 139854 diff --git a/Content/Assets/Sounds/Slingshot/wav/SFX_BowDraw_FastShot_Full_03.uasset b/Content/Assets/Sounds/Slingshot/wav/SFX_BowDraw_FastShot_Full_03.uasset new file mode 100644 index 0000000..8584f61 --- /dev/null +++ b/Content/Assets/Sounds/Slingshot/wav/SFX_BowDraw_FastShot_Full_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:153c86a9af6f06056668caa177d66a890195ea47386e2cac82807c96d6419479 +size 148535 diff --git a/Content/Assets/Sounds/UI/ButtonClick/SFX_UI_ButtonClick_01.uasset b/Content/Assets/Sounds/UI/ButtonClick/SFX_UI_ButtonClick_01.uasset new file mode 100644 index 0000000..06ee522 --- /dev/null +++ b/Content/Assets/Sounds/UI/ButtonClick/SFX_UI_ButtonClick_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84e0b437b0c5975c8697ad0e609b1162faef6ea6767087f7a16c07a6c8ae6f7b +size 27446 diff --git a/Content/Assets/Sounds/UI/ButtonClick/SFX_UI_ButtonClick_02.uasset b/Content/Assets/Sounds/UI/ButtonClick/SFX_UI_ButtonClick_02.uasset new file mode 100644 index 0000000..bae1b5c --- /dev/null +++ b/Content/Assets/Sounds/UI/ButtonClick/SFX_UI_ButtonClick_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbb4413f38e5affbac5af2977274f327fc20abab06f998a9eea372aba376f9d4 +size 27778 diff --git a/Content/Assets/Sounds/UI/ButtonClick/SFX_UI_ButtonClick_03.uasset b/Content/Assets/Sounds/UI/ButtonClick/SFX_UI_ButtonClick_03.uasset new file mode 100644 index 0000000..cfa7064 --- /dev/null +++ b/Content/Assets/Sounds/UI/ButtonClick/SFX_UI_ButtonClick_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cc28419040153062cd36f84240920bc4abb2f0dd55e1b15cec1aafeea2e811c +size 28534 diff --git a/Content/Assets/Sounds/UI/ButtonClick/SFX_UI_ButtonClick_04.uasset b/Content/Assets/Sounds/UI/ButtonClick/SFX_UI_ButtonClick_04.uasset new file mode 100644 index 0000000..1d2cbde --- /dev/null +++ b/Content/Assets/Sounds/UI/ButtonClick/SFX_UI_ButtonClick_04.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:783e704e99f7faedb5fb0024d868a0dd1a3d4108c656de81dd237a9f7f093fc0 +size 28046 diff --git a/Content/Assets/Sounds/UI/Cancel/SFX_UI_Cancel_01.uasset b/Content/Assets/Sounds/UI/Cancel/SFX_UI_Cancel_01.uasset new file mode 100644 index 0000000..31f17a9 --- /dev/null +++ b/Content/Assets/Sounds/UI/Cancel/SFX_UI_Cancel_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02961bf82ee44c300ea4aef3862c2a816b4d8a4cf157cfd980499206d5533d0f +size 20471 diff --git a/Content/Assets/Sounds/UI/Cancel/SFX_UI_Cancel_02.uasset b/Content/Assets/Sounds/UI/Cancel/SFX_UI_Cancel_02.uasset new file mode 100644 index 0000000..a9feabc --- /dev/null +++ b/Content/Assets/Sounds/UI/Cancel/SFX_UI_Cancel_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:595a8c6c276c1961ff8757ffc8592e89add2665f4db4577ab584ab6283ffc42b +size 25956 diff --git a/Content/Assets/Sounds/UI/Cancel/SFX_UI_Cancel_03.uasset b/Content/Assets/Sounds/UI/Cancel/SFX_UI_Cancel_03.uasset new file mode 100644 index 0000000..2da3227 --- /dev/null +++ b/Content/Assets/Sounds/UI/Cancel/SFX_UI_Cancel_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f61065825d6cfd145eaa92da80ab752fc973dda05fe696031ae68cc5863a00d +size 25851 diff --git a/Content/Assets/Sounds/UI/Hover/SFX_UI_Hover_01.uasset b/Content/Assets/Sounds/UI/Hover/SFX_UI_Hover_01.uasset new file mode 100644 index 0000000..6781a6c --- /dev/null +++ b/Content/Assets/Sounds/UI/Hover/SFX_UI_Hover_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:723268c62a801d5c8ba7ef5b5d6e8ad7d71c41b8cc10572b0f7fdf03096788a3 +size 13707 diff --git a/Content/Assets/Sounds/UI/Hover/SFX_UI_Hover_02.uasset b/Content/Assets/Sounds/UI/Hover/SFX_UI_Hover_02.uasset new file mode 100644 index 0000000..a37f806 --- /dev/null +++ b/Content/Assets/Sounds/UI/Hover/SFX_UI_Hover_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d89673cd058460a62515aa5928307fa6601ad089fa4fd7abf6455ff5128c6be +size 17037 diff --git a/Content/Assets/Sounds/UI/Hover/SFX_UI_Hover_03.uasset b/Content/Assets/Sounds/UI/Hover/SFX_UI_Hover_03.uasset new file mode 100644 index 0000000..dbcdce6 --- /dev/null +++ b/Content/Assets/Sounds/UI/Hover/SFX_UI_Hover_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00d88036b95a59c69f49cea157cc65b4184cda82512d9c71a3fad4df11ad7a3c +size 16899 diff --git a/Content/Assets/Sounds/UI/Unlock_Skills/SFX_UI_Unlock_NewSkill.uasset b/Content/Assets/Sounds/UI/Unlock_Skills/SFX_UI_Unlock_NewSkill.uasset new file mode 100644 index 0000000..93b6fda --- /dev/null +++ b/Content/Assets/Sounds/UI/Unlock_Skills/SFX_UI_Unlock_NewSkill.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f0ce944921da8ad557d16b8f24c32de7e4d4d19387a1a2df325bb91e85632b5 +size 318953 diff --git a/Content/Assets/Sounds/UI/Unlock_Skills/SFX_UI_Unlock_SelectSkill.uasset b/Content/Assets/Sounds/UI/Unlock_Skills/SFX_UI_Unlock_SelectSkill.uasset new file mode 100644 index 0000000..64d6601 --- /dev/null +++ b/Content/Assets/Sounds/UI/Unlock_Skills/SFX_UI_Unlock_SelectSkill.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8db56a9d58a41d49425877bc456d0ba29ca57b211171e89899934ce7eed4caa +size 181836 diff --git a/Content/Assets/Sounds/sfx_Template_multi.uasset b/Content/Assets/Sounds/sfx_Template_multi.uasset new file mode 100644 index 0000000..ac172cd --- /dev/null +++ b/Content/Assets/Sounds/sfx_Template_multi.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7ffcba3a6766c74cd355b949ee248399ae3db22d53a54307736aff82ddc1c1e +size 105480 diff --git a/Content/Assets/Sounds/sfx_Template_single.uasset b/Content/Assets/Sounds/sfx_Template_single.uasset new file mode 100644 index 0000000..15c8737 --- /dev/null +++ b/Content/Assets/Sounds/sfx_Template_single.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51ed667347d28001d44c0949b42cdad2157a06412c3c916018e5ff83bceaf8ba +size 90695 diff --git a/Content/Assets/Spells/Shards/Material/M_Shards.uasset b/Content/Assets/Spells/Shards/Material/M_Shards.uasset new file mode 100644 index 0000000..bfa8f66 --- /dev/null +++ b/Content/Assets/Spells/Shards/Material/M_Shards.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c07b184502989ac2981df049b7a7cb58f62ab2470397414cf45137cdcab6b092 +size 25141 diff --git a/Content/Assets/Spells/Shards/Material/Shards_low_DefaultMaterial_BaseColor.uasset b/Content/Assets/Spells/Shards/Material/Shards_low_DefaultMaterial_BaseColor.uasset new file mode 100644 index 0000000..994c58b --- /dev/null +++ b/Content/Assets/Spells/Shards/Material/Shards_low_DefaultMaterial_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4cc31d23514c900ec8bf1035d848e543a4b7205e38f0de8b4afffff2982a7673 +size 634147 diff --git a/Content/Assets/Spells/Shards/Material/Shards_low_DefaultMaterial_Normal.uasset b/Content/Assets/Spells/Shards/Material/Shards_low_DefaultMaterial_Normal.uasset new file mode 100644 index 0000000..a4f5793 --- /dev/null +++ b/Content/Assets/Spells/Shards/Material/Shards_low_DefaultMaterial_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f9279cc17c393c13c11599cfd155d3231bc2e985b82a5934adf11b604ce714a +size 553920 diff --git a/Content/Assets/Spells/Shards/Material/Shards_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset b/Content/Assets/Spells/Shards/Material/Shards_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..7cad2c9 --- /dev/null +++ b/Content/Assets/Spells/Shards/Material/Shards_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71aebc9467704912ae02b03ad9ae85a8c18021f2e9ade7476f01686fc02fd43a +size 308268 diff --git a/Content/Assets/Spells/Shards/SM_Shard_debris.uasset b/Content/Assets/Spells/Shards/SM_Shard_debris.uasset new file mode 100644 index 0000000..7d6cc54 --- /dev/null +++ b/Content/Assets/Spells/Shards/SM_Shard_debris.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86cdc67b1e2e704da96d37dc6c8d138802e69e5e3da02d617823d091f5850520 +size 16872 diff --git a/Content/Assets/Spells/Shards/SM_Shard_large.uasset b/Content/Assets/Spells/Shards/SM_Shard_large.uasset new file mode 100644 index 0000000..8edb7ef --- /dev/null +++ b/Content/Assets/Spells/Shards/SM_Shard_large.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1950f4aee4044e8fef724477639f168d235cc7420f25a178dba5b0974c87af9f +size 17424 diff --git a/Content/Assets/Spells/Shards/SM_Shard_small.uasset b/Content/Assets/Spells/Shards/SM_Shard_small.uasset new file mode 100644 index 0000000..f0b334c --- /dev/null +++ b/Content/Assets/Spells/Shards/SM_Shard_small.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2579e8c7840dbedeb436582c7503af5f84af3168dc0e39fc09ebb57e429b4936 +size 16677 diff --git a/Content/Assets/Textures/Beacon_low_DefaultMaterial_BaseColor.uasset b/Content/Assets/Textures/Beacon_low_DefaultMaterial_BaseColor.uasset new file mode 100644 index 0000000..df32a78 --- /dev/null +++ b/Content/Assets/Textures/Beacon_low_DefaultMaterial_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86426e5d6443b23205eba0103ac0e0163fceb1c128e6863b3b140d36aa3ef165 +size 654144 diff --git a/Content/Assets/Textures/Beacon_low_DefaultMaterial_Emissive.uasset b/Content/Assets/Textures/Beacon_low_DefaultMaterial_Emissive.uasset new file mode 100644 index 0000000..37f50ef --- /dev/null +++ b/Content/Assets/Textures/Beacon_low_DefaultMaterial_Emissive.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0dcfd9b6cf02fab3640a982d070c76131383656a0ed7dd1c0410d1dc4691ca4e +size 71173 diff --git a/Content/Assets/Textures/Beacon_low_DefaultMaterial_Normal.uasset b/Content/Assets/Textures/Beacon_low_DefaultMaterial_Normal.uasset new file mode 100644 index 0000000..7043436 --- /dev/null +++ b/Content/Assets/Textures/Beacon_low_DefaultMaterial_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5615509092f0cfa360df8ca55a4564a3afa8b92a0da51f6bb603458653aed488 +size 218773 diff --git a/Content/Assets/Textures/Beacon_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Beacon_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..0043997 --- /dev/null +++ b/Content/Assets/Textures/Beacon_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57172ed8da67d81232acfcd7265ec6d8936aad2c6a00a376386a4ee9fa9c4540 +size 99917 diff --git a/Content/Assets/Textures/Character_low_ArmGuard_BaseColor.uasset b/Content/Assets/Textures/Character_low_ArmGuard_BaseColor.uasset new file mode 100644 index 0000000..684d3b9 --- /dev/null +++ b/Content/Assets/Textures/Character_low_ArmGuard_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71ab5c087b8fc0975e998fbf5cfa299742162acc0fb7299e834fe7cec320d92d +size 942917 diff --git a/Content/Assets/Textures/Character_low_ArmGuard_Normal.uasset b/Content/Assets/Textures/Character_low_ArmGuard_Normal.uasset new file mode 100644 index 0000000..ba997c8 --- /dev/null +++ b/Content/Assets/Textures/Character_low_ArmGuard_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:debe9f476f5b5e0b1fe051485cf1000de54ae97d28a2272f96b12b0992b0f8eb +size 245577 diff --git a/Content/Assets/Textures/Character_low_ArmGuard_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Character_low_ArmGuard_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..7f04bdd --- /dev/null +++ b/Content/Assets/Textures/Character_low_ArmGuard_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72499f972fe32db7a8646681184fc4555781811cc227fdf1c9f1e8d464f05610 +size 294274 diff --git a/Content/Assets/Textures/Character_low_Belt_BaseColor.uasset b/Content/Assets/Textures/Character_low_Belt_BaseColor.uasset new file mode 100644 index 0000000..a56be4e --- /dev/null +++ b/Content/Assets/Textures/Character_low_Belt_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcc0f2b1c8d01184f5edb05b70204dd360995b58ed49b439e3ec6cb305115bca +size 957417 diff --git a/Content/Assets/Textures/Character_low_Belt_Normal.uasset b/Content/Assets/Textures/Character_low_Belt_Normal.uasset new file mode 100644 index 0000000..5f7bd92 --- /dev/null +++ b/Content/Assets/Textures/Character_low_Belt_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b16c8b8b9e3f0b4ad65906a3685824dd238ff2c6e2ffd46864d5e4d18152f8da +size 284942 diff --git a/Content/Assets/Textures/Character_low_Belt_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Character_low_Belt_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..974ff17 --- /dev/null +++ b/Content/Assets/Textures/Character_low_Belt_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24a502498a6a446c7964d3dd6d18edac8334a2a5cee898e9a951bef6b8b51157 +size 301622 diff --git a/Content/Assets/Textures/Character_low_Body_BaseColor.uasset b/Content/Assets/Textures/Character_low_Body_BaseColor.uasset new file mode 100644 index 0000000..0693208 --- /dev/null +++ b/Content/Assets/Textures/Character_low_Body_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5770f4a0246ee16c170048590785bf9a72d9b55267fb2ca152d171ce00526d2 +size 330047 diff --git a/Content/Assets/Textures/Character_low_Body_Normal.uasset b/Content/Assets/Textures/Character_low_Body_Normal.uasset new file mode 100644 index 0000000..a6450f4 --- /dev/null +++ b/Content/Assets/Textures/Character_low_Body_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36a7d7092a53fc3fd07effc837d652de3b6a13652acc83eee0918e2c1f8411d6 +size 139418 diff --git a/Content/Assets/Textures/Character_low_Body_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Character_low_Body_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..f4f2ca8 --- /dev/null +++ b/Content/Assets/Textures/Character_low_Body_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab02bcb755598979596196a20d0bd601c982bd68350e521cdbcf64652f0158a6 +size 97326 diff --git a/Content/Assets/Textures/Character_low_Eyes_BaseColor.uasset b/Content/Assets/Textures/Character_low_Eyes_BaseColor.uasset new file mode 100644 index 0000000..330dcea --- /dev/null +++ b/Content/Assets/Textures/Character_low_Eyes_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:767f6ecfbec1205dcb86b2b874ef090894c2146c0004413eb415937b740b5306 +size 97441 diff --git a/Content/Assets/Textures/Character_low_Eyes_Normal.uasset b/Content/Assets/Textures/Character_low_Eyes_Normal.uasset new file mode 100644 index 0000000..72ff32c --- /dev/null +++ b/Content/Assets/Textures/Character_low_Eyes_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aff7971224b53cb139a99baa99528676ff067c1347edde0ea180d7925c76c253 +size 21914 diff --git a/Content/Assets/Textures/Character_low_Eyes_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Character_low_Eyes_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..1feadda --- /dev/null +++ b/Content/Assets/Textures/Character_low_Eyes_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4abfe4a43d7cd7b48342c02fb92813555a735ee3173a8b74988a03cbcf82b6e6 +size 33669 diff --git a/Content/Assets/Textures/Character_low_Hair_BaseColor.uasset b/Content/Assets/Textures/Character_low_Hair_BaseColor.uasset new file mode 100644 index 0000000..d5c59b6 --- /dev/null +++ b/Content/Assets/Textures/Character_low_Hair_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf27c2283433bc83ed46215845b66d4b5eae605386228410f386dadb7d63d678 +size 248109 diff --git a/Content/Assets/Textures/Character_low_Hair_Normal.uasset b/Content/Assets/Textures/Character_low_Hair_Normal.uasset new file mode 100644 index 0000000..8b52906 --- /dev/null +++ b/Content/Assets/Textures/Character_low_Hair_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2d34f40920ffcfb30ebb454b6d935fb4283898d9a4ba42ede9bf4254b2699be +size 111612 diff --git a/Content/Assets/Textures/Character_low_Hair_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Character_low_Hair_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..c6458f9 --- /dev/null +++ b/Content/Assets/Textures/Character_low_Hair_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38b30edaf1da3bb5e6a8407a103b0681a825c57ab73ff6b332008683fe8f9bb0 +size 58303 diff --git a/Content/Assets/Textures/Character_low_Tunic_BaseColor.uasset b/Content/Assets/Textures/Character_low_Tunic_BaseColor.uasset new file mode 100644 index 0000000..b27d94e --- /dev/null +++ b/Content/Assets/Textures/Character_low_Tunic_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f62829b790f5c0806a2d501bb5d05975d7945d3cb550ac3c86225d535fe3ab26 +size 724630 diff --git a/Content/Assets/Textures/Character_low_Tunic_Normal.uasset b/Content/Assets/Textures/Character_low_Tunic_Normal.uasset new file mode 100644 index 0000000..8472364 --- /dev/null +++ b/Content/Assets/Textures/Character_low_Tunic_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e8c710f00850b4cf8c5b2aed3bc5b07782857eb50a20f47ad5e228b2e8d8f5d +size 257393 diff --git a/Content/Assets/Textures/Character_low_Tunic_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Character_low_Tunic_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..0707b04 --- /dev/null +++ b/Content/Assets/Textures/Character_low_Tunic_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6cd8629b4975398e41362ccc141a2bad0d1f0296fbcbc9d21df27741a63376d +size 199739 diff --git a/Content/Assets/Textures/Checkpoint_low_DefaultMaterial_BaseColor.uasset b/Content/Assets/Textures/Checkpoint_low_DefaultMaterial_BaseColor.uasset new file mode 100644 index 0000000..aea2736 --- /dev/null +++ b/Content/Assets/Textures/Checkpoint_low_DefaultMaterial_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5370175126c470db354052ecdf244d830be32d58ef7b1afda8df7c3466b8d55 +size 926226 diff --git a/Content/Assets/Textures/Checkpoint_low_DefaultMaterial_Emissive.uasset b/Content/Assets/Textures/Checkpoint_low_DefaultMaterial_Emissive.uasset new file mode 100644 index 0000000..98cefd9 --- /dev/null +++ b/Content/Assets/Textures/Checkpoint_low_DefaultMaterial_Emissive.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77d9891e6099c9970a1b864c703205e0b914e2b7dd439588938a56b031d91838 +size 69918 diff --git a/Content/Assets/Textures/Checkpoint_low_DefaultMaterial_Normal.uasset b/Content/Assets/Textures/Checkpoint_low_DefaultMaterial_Normal.uasset new file mode 100644 index 0000000..1d5ccd3 --- /dev/null +++ b/Content/Assets/Textures/Checkpoint_low_DefaultMaterial_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d33c64fe7617843b1d28f7944db550304913bf527c7399d10919e8cbdf347b18 +size 269285 diff --git a/Content/Assets/Textures/Checkpoint_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Checkpoint_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..6e97d70 --- /dev/null +++ b/Content/Assets/Textures/Checkpoint_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d5fa4d5d78735c6433b4da81c0075396661ce26cc1f6cf06d1e06d9d46a1ca2 +size 153828 diff --git a/Content/Assets/Textures/Demon_black_low_M_Demon_BaseColor.uasset b/Content/Assets/Textures/Demon_black_low_M_Demon_BaseColor.uasset new file mode 100644 index 0000000..cb62509 --- /dev/null +++ b/Content/Assets/Textures/Demon_black_low_M_Demon_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00cacb9adea6654d74c29e0ec13c68089a4c3a0d29426cd71f19d5188a7b24d4 +size 496914 diff --git a/Content/Assets/Textures/Demon_low_M_Demon_Normal.uasset b/Content/Assets/Textures/Demon_low_M_Demon_Normal.uasset new file mode 100644 index 0000000..d524098 --- /dev/null +++ b/Content/Assets/Textures/Demon_low_M_Demon_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ee3a79522857b9f6459f2f9afa3d2a03f7810b94fe621f11639c005a345fd48 +size 226827 diff --git a/Content/Assets/Textures/Demon_low_M_Demon_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Demon_low_M_Demon_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..eb06e2e --- /dev/null +++ b/Content/Assets/Textures/Demon_low_M_Demon_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89a945a5592968d8af47f6aea18ee6f9dcd99c417bfcfd2d2afca2512f648258 +size 140017 diff --git a/Content/Assets/Textures/Demon_red_low_M_Demon_BaseColor.uasset b/Content/Assets/Textures/Demon_red_low_M_Demon_BaseColor.uasset new file mode 100644 index 0000000..8489188 --- /dev/null +++ b/Content/Assets/Textures/Demon_red_low_M_Demon_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ba6896cc36d709c00d2654456f71898c0c7dd1c19b6251f5df75c528d1c2d86 +size 427395 diff --git a/Content/Assets/Textures/Ghoul_low_M_Ghoul_BaseColor.uasset b/Content/Assets/Textures/Ghoul_low_M_Ghoul_BaseColor.uasset new file mode 100644 index 0000000..375fb93 --- /dev/null +++ b/Content/Assets/Textures/Ghoul_low_M_Ghoul_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc162876fe6e34c7dd4541660ac024e760f09bd1878f2b3e653879bb2d6448ba +size 1048774 diff --git a/Content/Assets/Textures/Ghoul_low_M_Ghoul_Normal.uasset b/Content/Assets/Textures/Ghoul_low_M_Ghoul_Normal.uasset new file mode 100644 index 0000000..7186a16 --- /dev/null +++ b/Content/Assets/Textures/Ghoul_low_M_Ghoul_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8008c4aeb10ed56a433783b379e85c6727c10e2fd7b98ae02065ea7c2a5e9581 +size 344947 diff --git a/Content/Assets/Textures/Ghoul_low_M_Ghoul_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Ghoul_low_M_Ghoul_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..e52d304 --- /dev/null +++ b/Content/Assets/Textures/Ghoul_low_M_Ghoul_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f99fcda4f87c77ed3573e4d1d4bacd67426adc9f52000d27b877645cb865052b +size 228425 diff --git a/Content/Assets/Textures/Goblin_low_M_Goblin_BaseColor.uasset b/Content/Assets/Textures/Goblin_low_M_Goblin_BaseColor.uasset new file mode 100644 index 0000000..72163c5 --- /dev/null +++ b/Content/Assets/Textures/Goblin_low_M_Goblin_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b30359e1b421dc95a523d0985658c06ad4701e92a27969a44de14e2bc95bc33d +size 528661 diff --git a/Content/Assets/Textures/Goblin_low_M_Goblin_Normal.uasset b/Content/Assets/Textures/Goblin_low_M_Goblin_Normal.uasset new file mode 100644 index 0000000..1e4ed5b --- /dev/null +++ b/Content/Assets/Textures/Goblin_low_M_Goblin_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2397a4f8a97fbfcb4ae1ea1817f52218228b169cb1fc517b740c19d190c9c853 +size 245066 diff --git a/Content/Assets/Textures/Goblin_low_M_Goblin_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Goblin_low_M_Goblin_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..7ebbef1 --- /dev/null +++ b/Content/Assets/Textures/Goblin_low_M_Goblin_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbded0fb9240f8ce81a3333b612466d93bcf8ef3c574ea9376eb14282c79b16a +size 133681 diff --git a/Content/Assets/Textures/HealthCrystal_BaseColor.uasset b/Content/Assets/Textures/HealthCrystal_BaseColor.uasset new file mode 100644 index 0000000..7dd08bf --- /dev/null +++ b/Content/Assets/Textures/HealthCrystal_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0c2cc742b4b2f9277a7381fe421de0c2fcc71c2e03e68149108a748976f0ed5 +size 156857 diff --git a/Content/Assets/Textures/HealthCrystal_Emissive.uasset b/Content/Assets/Textures/HealthCrystal_Emissive.uasset new file mode 100644 index 0000000..0d5fca8 --- /dev/null +++ b/Content/Assets/Textures/HealthCrystal_Emissive.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec31a0033b7cc6071bc742fca1281280066fbf24dbe0470c580bdeb682e00513 +size 72664 diff --git a/Content/Assets/Textures/HealthCrystal_Normal.uasset b/Content/Assets/Textures/HealthCrystal_Normal.uasset new file mode 100644 index 0000000..6d614ff --- /dev/null +++ b/Content/Assets/Textures/HealthCrystal_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcb91f44c68836d415b7f67c0b8b7e6a24decf0c46ed18c77419a5250c508dfc +size 67559 diff --git a/Content/Assets/Textures/HealthCrystal_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/HealthCrystal_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..95d06ec --- /dev/null +++ b/Content/Assets/Textures/HealthCrystal_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fa5fae30b8496055efcb6c901a03d9295590c572f5db234733369ab30b627da +size 72352 diff --git a/Content/Assets/Textures/Potion_low_Bottle_BaseColor.uasset b/Content/Assets/Textures/Potion_low_Bottle_BaseColor.uasset new file mode 100644 index 0000000..146fb96 --- /dev/null +++ b/Content/Assets/Textures/Potion_low_Bottle_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbc3a637219fd63497bf121b0759dd376f211dd5f1c4395ccdca20ff40ece14f +size 11371 diff --git a/Content/Assets/Textures/Potion_low_Bottle_Emissive.uasset b/Content/Assets/Textures/Potion_low_Bottle_Emissive.uasset new file mode 100644 index 0000000..b33306d --- /dev/null +++ b/Content/Assets/Textures/Potion_low_Bottle_Emissive.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d56fc9746918d2e2e3bc11c4411898b8b085477bca6a28a1909fc70676d238f +size 68626 diff --git a/Content/Assets/Textures/Potion_low_Bottle_Normal.uasset b/Content/Assets/Textures/Potion_low_Bottle_Normal.uasset new file mode 100644 index 0000000..df4ae6d --- /dev/null +++ b/Content/Assets/Textures/Potion_low_Bottle_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:555824f881db1e1f3cb00bf5d29fd6614ee9741062a5be0b37a50b2ca9f7c9c6 +size 40557 diff --git a/Content/Assets/Textures/Potion_low_Bottle_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Potion_low_Bottle_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..570b91f --- /dev/null +++ b/Content/Assets/Textures/Potion_low_Bottle_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd5f4a7204fe7edf14fb8fb02e199ddb83dae8e6f0f547ffdf3e28ef046a0733 +size 31340 diff --git a/Content/Assets/Textures/Potion_low_Bottle_Opacity.uasset b/Content/Assets/Textures/Potion_low_Bottle_Opacity.uasset new file mode 100644 index 0000000..1bad991 --- /dev/null +++ b/Content/Assets/Textures/Potion_low_Bottle_Opacity.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80877f84a53214244dd81f16a9ae9c6b80d0da3aa8de4ff5f4f57bd9c6311cc6 +size 8361 diff --git a/Content/Assets/Textures/Shaman_low_M_Shaman_Body_BaseColor.uasset b/Content/Assets/Textures/Shaman_low_M_Shaman_Body_BaseColor.uasset new file mode 100644 index 0000000..6d090a4 --- /dev/null +++ b/Content/Assets/Textures/Shaman_low_M_Shaman_Body_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9339dc93f68c56ffe17ed3e64535c283fa929e731800ce0310953a24f61e3f9a +size 968375 diff --git a/Content/Assets/Textures/Shaman_low_M_Shaman_Body_Normal.uasset b/Content/Assets/Textures/Shaman_low_M_Shaman_Body_Normal.uasset new file mode 100644 index 0000000..ff38c9f --- /dev/null +++ b/Content/Assets/Textures/Shaman_low_M_Shaman_Body_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ded69a84c360d3b0060f36abbb167bb6bb801550be380786e8e592cce969344 +size 389185 diff --git a/Content/Assets/Textures/Shaman_low_M_Shaman_Body_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Shaman_low_M_Shaman_Body_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..cffa47b --- /dev/null +++ b/Content/Assets/Textures/Shaman_low_M_Shaman_Body_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d17eeae025f20a06855ddf67652902bc802073bfe81984845f4fd2b41585ad57 +size 204016 diff --git a/Content/Assets/Textures/Shroom_low_M_Shroom_BaseColor.uasset b/Content/Assets/Textures/Shroom_low_M_Shroom_BaseColor.uasset new file mode 100644 index 0000000..61416e0 --- /dev/null +++ b/Content/Assets/Textures/Shroom_low_M_Shroom_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0421e055b74f0d81ec4c1a844050674ae6125b5071d455256d639102279dd9fe +size 686592 diff --git a/Content/Assets/Textures/Shroom_low_M_Shroom_Emissive.uasset b/Content/Assets/Textures/Shroom_low_M_Shroom_Emissive.uasset new file mode 100644 index 0000000..4b982f0 --- /dev/null +++ b/Content/Assets/Textures/Shroom_low_M_Shroom_Emissive.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a34e4b14b737b35b1d2aa5ffc4f283c70fa7ae3033dae90eaeb8d9826e66a8a8 +size 13389 diff --git a/Content/Assets/Textures/Shroom_low_M_Shroom_Normal.uasset b/Content/Assets/Textures/Shroom_low_M_Shroom_Normal.uasset new file mode 100644 index 0000000..6dc4b68 --- /dev/null +++ b/Content/Assets/Textures/Shroom_low_M_Shroom_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c64b27a2e6a486acb2a4837af09435c16fa548995427dd671995d38e818d0e3 +size 191192 diff --git a/Content/Assets/Textures/Shroom_low_M_Shroom_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Shroom_low_M_Shroom_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..bfed354 --- /dev/null +++ b/Content/Assets/Textures/Shroom_low_M_Shroom_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:410208b7d6011329c66d14b189bc376c3e812dd3bb8ca64c571f6a7e0e8451c9 +size 96126 diff --git a/Content/Assets/Textures/SlingshotRock_low_DefaultMaterial_BaseColor.uasset b/Content/Assets/Textures/SlingshotRock_low_DefaultMaterial_BaseColor.uasset new file mode 100644 index 0000000..5e7f3bc --- /dev/null +++ b/Content/Assets/Textures/SlingshotRock_low_DefaultMaterial_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6dd3d8a3f40bd9e52dc3ecbaf4c7398e6230b0d7fb03f6a637265eb33ffcc5aa +size 30151 diff --git a/Content/Assets/Textures/SlingshotRock_low_DefaultMaterial_Normal.uasset b/Content/Assets/Textures/SlingshotRock_low_DefaultMaterial_Normal.uasset new file mode 100644 index 0000000..e8ca1bd --- /dev/null +++ b/Content/Assets/Textures/SlingshotRock_low_DefaultMaterial_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f4ad76fe519dc3c537fd6349ea5dfc49d08ee9963c55f86fc82dd97a24d0892 +size 14196 diff --git a/Content/Assets/Textures/SlingshotRock_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/SlingshotRock_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..aa6d0c8 --- /dev/null +++ b/Content/Assets/Textures/SlingshotRock_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75da0dc236ebcaed7beb35c9e6b415af7b629acb75b61a13de5a98410c8c2d8e +size 10052 diff --git a/Content/Assets/Textures/Slingshot_green_low_M_Slingshot_BaseColor.uasset b/Content/Assets/Textures/Slingshot_green_low_M_Slingshot_BaseColor.uasset new file mode 100644 index 0000000..b117ad7 --- /dev/null +++ b/Content/Assets/Textures/Slingshot_green_low_M_Slingshot_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4aa8e831f92dda8b7b61401b2895ab4cf469219c61d830df814a5f9b3f277d58 +size 911570 diff --git a/Content/Assets/Textures/Slingshot_low_M_Slingshot_Normal.uasset b/Content/Assets/Textures/Slingshot_low_M_Slingshot_Normal.uasset new file mode 100644 index 0000000..82e7c11 --- /dev/null +++ b/Content/Assets/Textures/Slingshot_low_M_Slingshot_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f103993d04fa569995657464f3b1b7b528c306530e54297a66891cd443d44bfb +size 289728 diff --git a/Content/Assets/Textures/Slingshot_low_M_Slingshot_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Slingshot_low_M_Slingshot_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..16703bc --- /dev/null +++ b/Content/Assets/Textures/Slingshot_low_M_Slingshot_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1adaa31cb07a1df033595cb9554c20a9977ae53316e8e4beb5cf20277858e29c +size 134693 diff --git a/Content/Assets/Textures/Slingshot_red_low_M_Slingshot_BaseColor.uasset b/Content/Assets/Textures/Slingshot_red_low_M_Slingshot_BaseColor.uasset new file mode 100644 index 0000000..26545fe --- /dev/null +++ b/Content/Assets/Textures/Slingshot_red_low_M_Slingshot_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4a2c5efe766711619d1be1a0f608b490f199aa06f99aefc5e060e84fb50b4d0 +size 661231 diff --git a/Content/Assets/Textures/Spear_low_M_Spear_BaseColor.uasset b/Content/Assets/Textures/Spear_low_M_Spear_BaseColor.uasset new file mode 100644 index 0000000..5b5cb52 --- /dev/null +++ b/Content/Assets/Textures/Spear_low_M_Spear_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6666d9174197b436427af44142543c98473b2f4894d7c1fc6fd8593b4777e3ed +size 863918 diff --git a/Content/Assets/Textures/Spear_low_M_Spear_Normal.uasset b/Content/Assets/Textures/Spear_low_M_Spear_Normal.uasset new file mode 100644 index 0000000..fff01bc --- /dev/null +++ b/Content/Assets/Textures/Spear_low_M_Spear_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d671ad61fa17903fadbaabb37093264955af45506198cb60cc0f86ebefd634ac +size 293816 diff --git a/Content/Assets/Textures/Spear_low_M_Spear_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Spear_low_M_Spear_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..c065eaf --- /dev/null +++ b/Content/Assets/Textures/Spear_low_M_Spear_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c3389606fd9a1633431df9c8e850bb58324db45cd870b33364ce2a0844fce61 +size 143244 diff --git a/Content/Assets/Textures/Staff_low_Floaty_BaseColor.uasset b/Content/Assets/Textures/Staff_low_Floaty_BaseColor.uasset new file mode 100644 index 0000000..58d0c09 --- /dev/null +++ b/Content/Assets/Textures/Staff_low_Floaty_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71020df1e7464be46ac77917ec36a94dd55069bde5afcc98ab8717e143ddf4fb +size 386265 diff --git a/Content/Assets/Textures/Staff_low_Floaty_Emissive.uasset b/Content/Assets/Textures/Staff_low_Floaty_Emissive.uasset new file mode 100644 index 0000000..8ded509 --- /dev/null +++ b/Content/Assets/Textures/Staff_low_Floaty_Emissive.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87e8532a812e4ff3e1f9f9bda65d4f51c5c267e6e5f6c0ff7bf0f82ee48b8539 +size 151662 diff --git a/Content/Assets/Textures/Staff_low_Floaty_Normal.uasset b/Content/Assets/Textures/Staff_low_Floaty_Normal.uasset new file mode 100644 index 0000000..efc0173 --- /dev/null +++ b/Content/Assets/Textures/Staff_low_Floaty_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04ab2b48ed11406598d70b5556412e30337091b5c0998cf72995baff42cd8d37 +size 174439 diff --git a/Content/Assets/Textures/Staff_low_Floaty_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Staff_low_Floaty_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..aaa26ba --- /dev/null +++ b/Content/Assets/Textures/Staff_low_Floaty_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02e5b6b186664633566618fb42be1a0d316a0d96f9661d0faaee71d00cff23d2 +size 102891 diff --git a/Content/Assets/Textures/Staff_low_M_Staff_BaseColor.uasset b/Content/Assets/Textures/Staff_low_M_Staff_BaseColor.uasset new file mode 100644 index 0000000..178f5a5 --- /dev/null +++ b/Content/Assets/Textures/Staff_low_M_Staff_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1e15360f0f1608c25576b2b24682260aeb478c8d6f05bd772c0fe725b87c7d1 +size 964418 diff --git a/Content/Assets/Textures/Staff_low_M_Staff_Normal.uasset b/Content/Assets/Textures/Staff_low_M_Staff_Normal.uasset new file mode 100644 index 0000000..6664ee5 --- /dev/null +++ b/Content/Assets/Textures/Staff_low_M_Staff_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f180f9e2245e6a6d3c754e5f8213062066d4a70d1667fb2040a78209d446ce69 +size 341804 diff --git a/Content/Assets/Textures/Staff_low_M_Staff_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Staff_low_M_Staff_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..6dff06b --- /dev/null +++ b/Content/Assets/Textures/Staff_low_M_Staff_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:350d614fc57455ef251f814210bffb8cb20f40768be3109bd20386cd4d2c8fad +size 155297 diff --git a/Content/Assets/Textures/Staff_low_Top_BaseColor.uasset b/Content/Assets/Textures/Staff_low_Top_BaseColor.uasset new file mode 100644 index 0000000..a1a8ba5 --- /dev/null +++ b/Content/Assets/Textures/Staff_low_Top_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8df26ec5b2577536910b71f49cacf49ff3bd44c14ae984d6238dbadce67f9eb6 +size 914124 diff --git a/Content/Assets/Textures/Staff_low_Top_Emissive.uasset b/Content/Assets/Textures/Staff_low_Top_Emissive.uasset new file mode 100644 index 0000000..d9ea35f --- /dev/null +++ b/Content/Assets/Textures/Staff_low_Top_Emissive.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c80504264b3b9e073c210e7466134ff0261c1c8cbed2b1fb533acc7b198abd12 +size 181758 diff --git a/Content/Assets/Textures/Staff_low_Top_Normal.uasset b/Content/Assets/Textures/Staff_low_Top_Normal.uasset new file mode 100644 index 0000000..3af3e17 --- /dev/null +++ b/Content/Assets/Textures/Staff_low_Top_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2d5e29f3eba4224a75c536ae1227ab77f93f8c827246c4784d1993922842243 +size 320012 diff --git a/Content/Assets/Textures/Staff_low_Top_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Staff_low_Top_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..c8e8eb0 --- /dev/null +++ b/Content/Assets/Textures/Staff_low_Top_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:584b2e9781bb67bfbb79a3704d6cfc208fb9e8d356e1a8d4d7fdcca106945d02 +size 234639 diff --git a/Content/Assets/Textures/T_Cork_BaseColor.uasset b/Content/Assets/Textures/T_Cork_BaseColor.uasset new file mode 100644 index 0000000..198f608 --- /dev/null +++ b/Content/Assets/Textures/T_Cork_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19c8aba5abb8f386188bed89e838e0153defef07350498f01810c924a96e1469 +size 505731 diff --git a/Content/Assets/Textures/T_Cork_Normal.uasset b/Content/Assets/Textures/T_Cork_Normal.uasset new file mode 100644 index 0000000..3117810 --- /dev/null +++ b/Content/Assets/Textures/T_Cork_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b9a8019a8be7367864a9d4795900ea8158b9a1b4715103a234fc268dcbc6502 +size 153186 diff --git a/Content/Assets/Textures/T_Cork_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/T_Cork_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..e76f4b9 --- /dev/null +++ b/Content/Assets/Textures/T_Cork_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e44afe50e1603292138e18bb849c5c94d3759c598ea4b1110d6e5d2e69cbc577 +size 61214 diff --git a/Content/Assets/Textures/T_Corner_Balusters_BaseColor.uasset b/Content/Assets/Textures/T_Corner_Balusters_BaseColor.uasset new file mode 100644 index 0000000..f805c3c --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Balusters_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecbf24b653db9ea6be2ed0297ac2e1452da7de98f4415000feb030dc899f7dcf +size 113911 diff --git a/Content/Assets/Textures/T_Corner_Balusters_Normal.uasset b/Content/Assets/Textures/T_Corner_Balusters_Normal.uasset new file mode 100644 index 0000000..09da069 --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Balusters_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74e41f0db567c237dfb03e0a383ede604b22a43ed31f6745d7f78c4f6ec16590 +size 62054 diff --git a/Content/Assets/Textures/T_Corner_Balusters_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/T_Corner_Balusters_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..9a7e6dc --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Balusters_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e6d082b7c80c8551641434a66cf4cda7b417b903c892cd34e06cd8873696833 +size 33224 diff --git a/Content/Assets/Textures/T_Corner_Base_BaseColor.uasset b/Content/Assets/Textures/T_Corner_Base_BaseColor.uasset new file mode 100644 index 0000000..0bd44e4 --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Base_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b5eeb03c8655d182ed83560754f62e3314fb5b4a980ef4119da76a037793b77 +size 97930 diff --git a/Content/Assets/Textures/T_Corner_Base_Normal.uasset b/Content/Assets/Textures/T_Corner_Base_Normal.uasset new file mode 100644 index 0000000..653aede --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Base_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6e74a72c38002f0e27c83693e2b893b9857d9e11b32c721e7a7c4ce05d55ae7 +size 39934 diff --git a/Content/Assets/Textures/T_Corner_Base_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/T_Corner_Base_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..8788c30 --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Base_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad51a518952138c5016db4656f35138bb033a0299407accdf64ebfe719856e00 +size 23117 diff --git a/Content/Assets/Textures/T_Corner_Rail_BaseColor.uasset b/Content/Assets/Textures/T_Corner_Rail_BaseColor.uasset new file mode 100644 index 0000000..fdbb8b4 --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Rail_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13e3048d45892ac08b9654d2d6cf129082b2290f61c37de30084a446f07f5b58 +size 248978 diff --git a/Content/Assets/Textures/T_Corner_Rail_Normal.uasset b/Content/Assets/Textures/T_Corner_Rail_Normal.uasset new file mode 100644 index 0000000..94bdc85 --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Rail_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bf5fe507d45f25c8b0553c1231a9ce6f46431f35247a402981cde76f86a5a95 +size 67421 diff --git a/Content/Assets/Textures/T_Corner_Rail_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/T_Corner_Rail_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..051716e --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Rail_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18618dc0438c22db68867627e66dace758d11c7fa0436aa66b796b06b1ed3987 +size 36750 diff --git a/Content/Assets/Textures/T_Corner_Step_BaseColor.uasset b/Content/Assets/Textures/T_Corner_Step_BaseColor.uasset new file mode 100644 index 0000000..cda46f1 --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Step_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a731d7fb686937de61d35681b5289ae7d617e3393a40571135e270c542ae994 +size 275226 diff --git a/Content/Assets/Textures/T_Corner_Step_Normal.uasset b/Content/Assets/Textures/T_Corner_Step_Normal.uasset new file mode 100644 index 0000000..8b128e5 --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Step_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fa544b25467270ed7cc28e431f8f053efec692af8393337f551cd467eb2cf8e +size 52999 diff --git a/Content/Assets/Textures/T_Corner_Step_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/T_Corner_Step_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..071ffa2 --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Step_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9aff581b9b88cc9d65edf55bb455a4abeef826a2db3a0fa82c93787a2e28034b +size 30580 diff --git a/Content/Assets/Textures/T_Corner_Wall_BaseColor.uasset b/Content/Assets/Textures/T_Corner_Wall_BaseColor.uasset new file mode 100644 index 0000000..cb5c8af --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Wall_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bef465665f5ecac15ff1e1788b6d7445e98b7b2c8c7a38d56741d9b317bc5b70 +size 400680 diff --git a/Content/Assets/Textures/T_Corner_Wall_Normal.uasset b/Content/Assets/Textures/T_Corner_Wall_Normal.uasset new file mode 100644 index 0000000..ca74531 --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Wall_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5069af4ae92c241bd38ed6c9d36be5c719bdfb0fe4da5f88dd5a2bbeda72ee4 +size 122273 diff --git a/Content/Assets/Textures/T_Corner_Wall_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/T_Corner_Wall_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..ac3711f --- /dev/null +++ b/Content/Assets/Textures/T_Corner_Wall_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55d3068832c12f1453cb8046350bfd0188dbecde2ec04cee5c8d244b2cf128c3 +size 51523 diff --git a/Content/Assets/Textures/T_SmallCorner_Base.uasset b/Content/Assets/Textures/T_SmallCorner_Base.uasset new file mode 100644 index 0000000..f32a5d5 --- /dev/null +++ b/Content/Assets/Textures/T_SmallCorner_Base.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7dc6b04420a84159707469dd358b927dd43cfe1c7a22775940f9be5961d3186b +size 235239 diff --git a/Content/Assets/Textures/T_SmallCorner_Norm.uasset b/Content/Assets/Textures/T_SmallCorner_Norm.uasset new file mode 100644 index 0000000..b6cb9de --- /dev/null +++ b/Content/Assets/Textures/T_SmallCorner_Norm.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:709c3084ed035ae85fe1c0aefbbb5f85a5dd7c50dabcc89668d692a788d6795d +size 241107 diff --git a/Content/Assets/Textures/T_SmallCorner_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/T_SmallCorner_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..8d79156 --- /dev/null +++ b/Content/Assets/Textures/T_SmallCorner_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cec187f2db793aa05d74a8f5d1b6d5718f6969a863c81fba1346c4e9e7f3f460 +size 43684 diff --git a/Content/Assets/Textures/T_WhiteLiquid_BaseColor.uasset b/Content/Assets/Textures/T_WhiteLiquid_BaseColor.uasset new file mode 100644 index 0000000..40c5972 --- /dev/null +++ b/Content/Assets/Textures/T_WhiteLiquid_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3eac28d52474e71dac14fcd27d38d078cc5cbaa0ede843361d39098371bf2162 +size 137720 diff --git a/Content/Assets/Textures/T_WhiteLiquid_Emissive.uasset b/Content/Assets/Textures/T_WhiteLiquid_Emissive.uasset new file mode 100644 index 0000000..5c81eb1 --- /dev/null +++ b/Content/Assets/Textures/T_WhiteLiquid_Emissive.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd02be671333ec9f053d25644a59d1468e8bc1131584de339bbbdc5ab1e391ef +size 45980 diff --git a/Content/Assets/Textures/T_WhiteLiquid_Normal.uasset b/Content/Assets/Textures/T_WhiteLiquid_Normal.uasset new file mode 100644 index 0000000..4c92aad --- /dev/null +++ b/Content/Assets/Textures/T_WhiteLiquid_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d5adb3a607dd754540a00a3ea775523a5f94dc5003457ac32778806c720908b +size 135279 diff --git a/Content/Assets/Textures/T_WhiteLiquid_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/T_WhiteLiquid_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..2eac2c6 --- /dev/null +++ b/Content/Assets/Textures/T_WhiteLiquid_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:617c5edf5755f7041af269227eac82e1a4d674da3c338b022ff978f27f52c55f +size 82649 diff --git a/Content/Assets/Textures/T_WhiteLiquid_Opacity.uasset b/Content/Assets/Textures/T_WhiteLiquid_Opacity.uasset new file mode 100644 index 0000000..2f9cf2f --- /dev/null +++ b/Content/Assets/Textures/T_WhiteLiquid_Opacity.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8366de8a03a461f6ab2333af5a469e9c4cb910d74f30f09bff788798823017a +size 8493 diff --git a/Content/Assets/Textures/TileCornerInner_low_Corner_base_BaseColor.uasset b/Content/Assets/Textures/TileCornerInner_low_Corner_base_BaseColor.uasset new file mode 100644 index 0000000..5bcaca2 --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_Corner_base_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:069a1d821599307a0de819b9a87b9001248e1e40784f2f68db27ad5abec9b0f6 +size 358598 diff --git a/Content/Assets/Textures/TileCornerInner_low_Corner_base_Normal.uasset b/Content/Assets/Textures/TileCornerInner_low_Corner_base_Normal.uasset new file mode 100644 index 0000000..6e75206 --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_Corner_base_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02eb3c810934b308fea4e4022a416906eaf86e6a5917feadfea493d137767157 +size 43478 diff --git a/Content/Assets/Textures/TileCornerInner_low_Corner_base_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/TileCornerInner_low_Corner_base_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..f3a1257 --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_Corner_base_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05fb6a3acdc55115395fc4de6b5ea9f482fc94ea4f563dc644a631e4c14a124b +size 43142 diff --git a/Content/Assets/Textures/TileCornerInner_low_Corner_step_BaseColor.uasset b/Content/Assets/Textures/TileCornerInner_low_Corner_step_BaseColor.uasset new file mode 100644 index 0000000..a655db3 --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_Corner_step_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10826f846278cad646abac8dfc051235d320176bd093b1177b758c1aad838da6 +size 508649 diff --git a/Content/Assets/Textures/TileCornerInner_low_Corner_step_Normal.uasset b/Content/Assets/Textures/TileCornerInner_low_Corner_step_Normal.uasset new file mode 100644 index 0000000..dcc2f27 --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_Corner_step_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e30b61207312f8fb3c307655204ec45718d92e8d30e27872f7a7d9c8ad9c8294 +size 107275 diff --git a/Content/Assets/Textures/TileCornerInner_low_Corner_step_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/TileCornerInner_low_Corner_step_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..d5f479b --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_Corner_step_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4da9c8785e6e5de82815a611c4e7460e16360fa61a891cf9f24494f0be33508 +size 53401 diff --git a/Content/Assets/Textures/TileCornerInner_low_Corner_wall_BaseColor.uasset b/Content/Assets/Textures/TileCornerInner_low_Corner_wall_BaseColor.uasset new file mode 100644 index 0000000..4c07f8e --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_Corner_wall_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96cb7003e17cd556f49dd8141fa9785ef53177bd331f360dc8eed52636712b88 +size 608257 diff --git a/Content/Assets/Textures/TileCornerInner_low_Corner_wall_Normal.uasset b/Content/Assets/Textures/TileCornerInner_low_Corner_wall_Normal.uasset new file mode 100644 index 0000000..4f4bf9c --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_Corner_wall_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f115d09d01faa711431f31319fd876293588385d3506c6493e67a3eccdd009fd +size 145586 diff --git a/Content/Assets/Textures/TileCornerInner_low_Corner_wall_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/TileCornerInner_low_Corner_wall_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..7eaac20 --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_Corner_wall_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2209e4c614a3f283098464e11c15f9b6568c7247a76c1466d687cd4b7d7c8afa +size 65990 diff --git a/Content/Assets/Textures/TileCornerInner_low_M_Balusters_BaseColor.uasset b/Content/Assets/Textures/TileCornerInner_low_M_Balusters_BaseColor.uasset new file mode 100644 index 0000000..f1c0a7b --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_M_Balusters_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb7c4942a3b403ec2833c64c96f8343e77ea20665c57e4b5bd698f4161a4b785 +size 193232 diff --git a/Content/Assets/Textures/TileCornerInner_low_M_Balusters_Normal.uasset b/Content/Assets/Textures/TileCornerInner_low_M_Balusters_Normal.uasset new file mode 100644 index 0000000..94e17b4 --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_M_Balusters_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:889c829c9d0ea6cab2a0c8a3e5522e5b99e00861c9bc744991b064d79715459d +size 114507 diff --git a/Content/Assets/Textures/TileCornerInner_low_M_Balusters_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/TileCornerInner_low_M_Balusters_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..fa17b85 --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_M_Balusters_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0baf5c670692abf7f922d6f717323531fb62620e6d45ae69b74bdedcb0c46d6a +size 54905 diff --git a/Content/Assets/Textures/TileCornerInner_low_M_Rail_BaseColor.uasset b/Content/Assets/Textures/TileCornerInner_low_M_Rail_BaseColor.uasset new file mode 100644 index 0000000..49af31c --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_M_Rail_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39cb74505065013f62ed51164f1debc2e0231dfb5599dd4c9017b4eadbcadab6 +size 428933 diff --git a/Content/Assets/Textures/TileCornerInner_low_M_Rail_Normal.uasset b/Content/Assets/Textures/TileCornerInner_low_M_Rail_Normal.uasset new file mode 100644 index 0000000..7c0a102 --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_M_Rail_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4680350a68d257c649eb9b5925bc45d05dda69630d4186f3acc9769c04a731ae +size 99030 diff --git a/Content/Assets/Textures/TileCornerInner_low_M_Rail_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/TileCornerInner_low_M_Rail_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..736782c --- /dev/null +++ b/Content/Assets/Textures/TileCornerInner_low_M_Rail_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1959f6bc89bd4bd50ed526a056a9b94390f707ae4b46076ba281f3081fea1261 +size 49833 diff --git a/Content/Assets/Textures/Tileset1_low_DefaultMaterial_BaseColor.uasset b/Content/Assets/Textures/Tileset1_low_DefaultMaterial_BaseColor.uasset new file mode 100644 index 0000000..f9e2f5c --- /dev/null +++ b/Content/Assets/Textures/Tileset1_low_DefaultMaterial_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c801cd55833afa74771987c76f200ab6044114f0ee2de1d42d7dea4421c03f21 +size 530024 diff --git a/Content/Assets/Textures/Tileset1_low_DefaultMaterial_Normal.uasset b/Content/Assets/Textures/Tileset1_low_DefaultMaterial_Normal.uasset new file mode 100644 index 0000000..6aadd83 --- /dev/null +++ b/Content/Assets/Textures/Tileset1_low_DefaultMaterial_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:129ca280799c211f08cee9517917c08706bf632a7a45a250b8977d4406fe0eda +size 117484 diff --git a/Content/Assets/Textures/Tileset1_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Tileset1_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..c8ed33d --- /dev/null +++ b/Content/Assets/Textures/Tileset1_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8ea8103be2c2276ed1f64d96205d5bf33704c508c71af361765ebd6caab8c42 +size 30685 diff --git a/Content/Assets/Textures/Tileset1x1_low_DefaultMaterial_BaseColor.uasset b/Content/Assets/Textures/Tileset1x1_low_DefaultMaterial_BaseColor.uasset new file mode 100644 index 0000000..15d7666 --- /dev/null +++ b/Content/Assets/Textures/Tileset1x1_low_DefaultMaterial_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7bcef33f149f860e22f6abf2633616d1a3c568e5d7f0f42b41430ba6242fb52 +size 476494 diff --git a/Content/Assets/Textures/Tileset1x1_low_DefaultMaterial_Normal.uasset b/Content/Assets/Textures/Tileset1x1_low_DefaultMaterial_Normal.uasset new file mode 100644 index 0000000..1daa019 --- /dev/null +++ b/Content/Assets/Textures/Tileset1x1_low_DefaultMaterial_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41146efc5c6be4e8faff040f63ddf7379f4aabc45ebbc224ba3161788105eda8 +size 66429 diff --git a/Content/Assets/Textures/Tileset1x1_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Tileset1x1_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..e83ddd4 --- /dev/null +++ b/Content/Assets/Textures/Tileset1x1_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aba59c68a73206c031f76321f61efce9aa0c7dedfe22c589d859e618383b4cb0 +size 25750 diff --git a/Content/Assets/Textures/Tileset2_low_DefaultMaterial_BaseColor.uasset b/Content/Assets/Textures/Tileset2_low_DefaultMaterial_BaseColor.uasset new file mode 100644 index 0000000..52792f4 --- /dev/null +++ b/Content/Assets/Textures/Tileset2_low_DefaultMaterial_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe65e2ae3dee66b948396287fe7c2508f285835f59e52e782ca8b379238300ea +size 536324 diff --git a/Content/Assets/Textures/Tileset2_low_DefaultMaterial_Normal.uasset b/Content/Assets/Textures/Tileset2_low_DefaultMaterial_Normal.uasset new file mode 100644 index 0000000..82b7d1a --- /dev/null +++ b/Content/Assets/Textures/Tileset2_low_DefaultMaterial_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbb3355fcb7dfa603ded83537620a439bb540c22c104d5d02d2b2ec1eebee0b1 +size 121446 diff --git a/Content/Assets/Textures/Tileset2_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Tileset2_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..97b3d8e --- /dev/null +++ b/Content/Assets/Textures/Tileset2_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88a5e8de0625894bfcd9b3ae47a7b3506c26e36f6852af8af70b137930a2fbc6 +size 30759 diff --git a/Content/Assets/Textures/Tileset3_low_DefaultMaterial_BaseColor.uasset b/Content/Assets/Textures/Tileset3_low_DefaultMaterial_BaseColor.uasset new file mode 100644 index 0000000..fa1d6ff --- /dev/null +++ b/Content/Assets/Textures/Tileset3_low_DefaultMaterial_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ea3880943ff55bca0759ee649c8b731d04370faf69109b6b4b893e54c36913c +size 367350 diff --git a/Content/Assets/Textures/Tileset3_low_DefaultMaterial_Normal.uasset b/Content/Assets/Textures/Tileset3_low_DefaultMaterial_Normal.uasset new file mode 100644 index 0000000..4b69d20 --- /dev/null +++ b/Content/Assets/Textures/Tileset3_low_DefaultMaterial_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d65a274281c8345f42a58de1484adc5d0960609d678c513319cc96942be23b05 +size 149888 diff --git a/Content/Assets/Textures/Tileset3_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Tileset3_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..a911c45 --- /dev/null +++ b/Content/Assets/Textures/Tileset3_low_DefaultMaterial_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0856ef3ff72ee754a680876d9a835e566d626d2381063cf1249e8222c347eb95 +size 61604 diff --git a/Content/Assets/Textures/Tileset_Corner_low_Corner_base_BaseColor.uasset b/Content/Assets/Textures/Tileset_Corner_low_Corner_base_BaseColor.uasset new file mode 100644 index 0000000..9a5cd13 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_Corner_base_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cd65dd85e162fcbcb1313bf208442f8df0ef7b221e9c248e3ba30e5a96708b1 +size 98321 diff --git a/Content/Assets/Textures/Tileset_Corner_low_Corner_base_Normal.uasset b/Content/Assets/Textures/Tileset_Corner_low_Corner_base_Normal.uasset new file mode 100644 index 0000000..323952d --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_Corner_base_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:106d13afc661cfd9bbc721aca32b74694480864f37cf66191a794d7399538dc5 +size 40325 diff --git a/Content/Assets/Textures/Tileset_Corner_low_Corner_base_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Tileset_Corner_low_Corner_base_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..87a4fac --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_Corner_base_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4a10579997e26dac6a8331fadab65389010ed6e4e81532a4cbd4589a2dd07fd +size 23544 diff --git a/Content/Assets/Textures/Tileset_Corner_low_Corner_step_BaseColor.uasset b/Content/Assets/Textures/Tileset_Corner_low_Corner_step_BaseColor.uasset new file mode 100644 index 0000000..0e1f297 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_Corner_step_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8c8ffaf6c25599fb19160881e0a3003927cfc876bfff04bf320f410b4f8a0bc +size 275617 diff --git a/Content/Assets/Textures/Tileset_Corner_low_Corner_step_Normal.uasset b/Content/Assets/Textures/Tileset_Corner_low_Corner_step_Normal.uasset new file mode 100644 index 0000000..68b2207 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_Corner_step_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7768f92ca07aabb3e64802814a652be31899a059278aaa7e88ea7b4cfb199584 +size 53390 diff --git a/Content/Assets/Textures/Tileset_Corner_low_Corner_step_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Tileset_Corner_low_Corner_step_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..5f49cc1 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_Corner_step_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bd5907bb2c8e160519855199487c4e0baca62ebd65d5b8a49a6cf1f7837605e +size 30935 diff --git a/Content/Assets/Textures/Tileset_Corner_low_Corner_wall_BaseColor.uasset b/Content/Assets/Textures/Tileset_Corner_low_Corner_wall_BaseColor.uasset new file mode 100644 index 0000000..f4c00a1 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_Corner_wall_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39a260e1c5c5d1b8c9a98f7e497efb3b9ec3fbcf77d0071434bd80d5b3862a7b +size 408915 diff --git a/Content/Assets/Textures/Tileset_Corner_low_Corner_wall_Normal.uasset b/Content/Assets/Textures/Tileset_Corner_low_Corner_wall_Normal.uasset new file mode 100644 index 0000000..2ebaeb2 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_Corner_wall_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a172f674f09497143c41843ae9ab11a7f5dd04241ec1d1947d0e1334b74d665 +size 122664 diff --git a/Content/Assets/Textures/Tileset_Corner_low_Corner_wall_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Tileset_Corner_low_Corner_wall_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..d79c6d2 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_Corner_wall_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3c142c40a6e828e9852b62cf6bce4e60dc1cf4e4eb72b92ab40a832a4065232 +size 51848 diff --git a/Content/Assets/Textures/Tileset_Corner_low_M_Balusters_BaseColor.uasset b/Content/Assets/Textures/Tileset_Corner_low_M_Balusters_BaseColor.uasset new file mode 100644 index 0000000..f241dca --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_M_Balusters_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7aee95c2657fcbeb62bb349530574207bc0a6e7791a436b66701a0b6d7d8b65 +size 114187 diff --git a/Content/Assets/Textures/Tileset_Corner_low_M_Balusters_Normal.uasset b/Content/Assets/Textures/Tileset_Corner_low_M_Balusters_Normal.uasset new file mode 100644 index 0000000..c922cf4 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_M_Balusters_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c8715fb0eec9bdb1cab10fd8c0bc8a97a3d2f5fc1043b822bc3c697993b1c4b +size 62330 diff --git a/Content/Assets/Textures/Tileset_Corner_low_M_Balusters_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Tileset_Corner_low_M_Balusters_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..fdac2a1 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_M_Balusters_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2fd8d42c83737cb3c36145b9f2119adbdd65cfbbafe175238b10bcd749e045e5 +size 33500 diff --git a/Content/Assets/Textures/Tileset_Corner_low_M_Rail_BaseColor.uasset b/Content/Assets/Textures/Tileset_Corner_low_M_Rail_BaseColor.uasset new file mode 100644 index 0000000..2ede12c --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_M_Rail_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:179944775e1310161e36008010196189b9b9b39b3a0e64a940abd67df7746a10 +size 249254 diff --git a/Content/Assets/Textures/Tileset_Corner_low_M_Rail_Normal.uasset b/Content/Assets/Textures/Tileset_Corner_low_M_Rail_Normal.uasset new file mode 100644 index 0000000..6a9a048 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_M_Rail_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66bb3802d2fd0bdffb3748e0a7b71c08f597baeda4146839ffd8d13959bc64a2 +size 67697 diff --git a/Content/Assets/Textures/Tileset_Corner_low_M_Rail_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Tileset_Corner_low_M_Rail_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..d245dce --- /dev/null +++ b/Content/Assets/Textures/Tileset_Corner_low_M_Rail_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2ce0e7b89c67f029cbd8d6c155ec6be24c9b0beab1dd4c1a1724c0d557070b6 +size 37026 diff --git a/Content/Assets/Textures/Tileset_Edge_low_Corner_base_BaseColor.uasset b/Content/Assets/Textures/Tileset_Edge_low_Corner_base_BaseColor.uasset new file mode 100644 index 0000000..1220767 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_Corner_base_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0724328e5d64a307f7aabcd7c78d3ed45d8e1323f73cc9e953c5e209701fd712 +size 147358 diff --git a/Content/Assets/Textures/Tileset_Edge_low_Corner_base_Normal.uasset b/Content/Assets/Textures/Tileset_Edge_low_Corner_base_Normal.uasset new file mode 100644 index 0000000..e6cd401 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_Corner_base_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e1f50007f06566e12d35c4cf17cbcf86c0c3bdc807826e6d36084b729273de2 +size 42712 diff --git a/Content/Assets/Textures/Tileset_Edge_low_Corner_base_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Tileset_Edge_low_Corner_base_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..de5596b --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_Corner_base_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9f261812967dd6900d171e543587ebf53161f6dcf461e065fa49f9ed26d52b4 +size 27853 diff --git a/Content/Assets/Textures/Tileset_Edge_low_Corner_step_BaseColor.uasset b/Content/Assets/Textures/Tileset_Edge_low_Corner_step_BaseColor.uasset new file mode 100644 index 0000000..307983b --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_Corner_step_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dccf614a8376253579a3a6477de6d52302da458febae6e9c94431f302bb79b4 +size 177773 diff --git a/Content/Assets/Textures/Tileset_Edge_low_Corner_step_Normal.uasset b/Content/Assets/Textures/Tileset_Edge_low_Corner_step_Normal.uasset new file mode 100644 index 0000000..c4cf341 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_Corner_step_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73f891fccf0d76247a0e7ea204d089200498b0713c9eb8617473b4cd607fbf87 +size 36074 diff --git a/Content/Assets/Textures/Tileset_Edge_low_Corner_step_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Tileset_Edge_low_Corner_step_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..9d794b9 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_Corner_step_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38cf0d8717c29892cbc3bc02d72f4f0a5c086878a5eb09a1e6f39779b1039a25 +size 24897 diff --git a/Content/Assets/Textures/Tileset_Edge_low_Corner_wall_BaseColor.uasset b/Content/Assets/Textures/Tileset_Edge_low_Corner_wall_BaseColor.uasset new file mode 100644 index 0000000..ad21d7e --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_Corner_wall_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d4deaa245b76d28eba91969327e9c382f383f58457be50764353b2f5e436ebc +size 454574 diff --git a/Content/Assets/Textures/Tileset_Edge_low_Corner_wall_Normal.uasset b/Content/Assets/Textures/Tileset_Edge_low_Corner_wall_Normal.uasset new file mode 100644 index 0000000..9123f04 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_Corner_wall_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dada79c3ff959cb328b598845dce87f9cc9dbf5c8a01b73d8fe035f04dac949 +size 113698 diff --git a/Content/Assets/Textures/Tileset_Edge_low_Corner_wall_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Tileset_Edge_low_Corner_wall_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..b8d291e --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_Corner_wall_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae25fe06542d001bce1f2171a696ddc8d512568d88b640f5e4f9864e36b09fac +size 47894 diff --git a/Content/Assets/Textures/Tileset_Edge_low_M_Balusters_BaseColor.uasset b/Content/Assets/Textures/Tileset_Edge_low_M_Balusters_BaseColor.uasset new file mode 100644 index 0000000..7370425 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_M_Balusters_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e0a6044f65a28c96f1249049bc64b7b454933c358ca3423ec1ab2a677d7add3 +size 89664 diff --git a/Content/Assets/Textures/Tileset_Edge_low_M_Balusters_Normal.uasset b/Content/Assets/Textures/Tileset_Edge_low_M_Balusters_Normal.uasset new file mode 100644 index 0000000..12cc89b --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_M_Balusters_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd5f9a6171defb47c723d0f25313534e528dfd12e5b43e3f695e47d6ce1367e0 +size 42150 diff --git a/Content/Assets/Textures/Tileset_Edge_low_M_Balusters_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Tileset_Edge_low_M_Balusters_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..f4f5516 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_M_Balusters_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfc7b11689c434f99505042d355d6163e3a45229fa27bedfe40189431a257250 +size 24272 diff --git a/Content/Assets/Textures/Tileset_Edge_low_M_Rail_BaseColor.uasset b/Content/Assets/Textures/Tileset_Edge_low_M_Rail_BaseColor.uasset new file mode 100644 index 0000000..94b035c --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_M_Rail_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c2106ffea2749a7a04e91c53f3a1afddebcb357e319af087e3015058963add0 +size 122547 diff --git a/Content/Assets/Textures/Tileset_Edge_low_M_Rail_Normal.uasset b/Content/Assets/Textures/Tileset_Edge_low_M_Rail_Normal.uasset new file mode 100644 index 0000000..79f1704 --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_M_Rail_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f7d14c98d8123adfcac6a70a0ef090f04b624fd31b4e16ac6a60e7f0b26124d +size 36321 diff --git a/Content/Assets/Textures/Tileset_Edge_low_M_Rail_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/Tileset_Edge_low_M_Rail_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..b082f3f --- /dev/null +++ b/Content/Assets/Textures/Tileset_Edge_low_M_Rail_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93c63d6e9e992052fbde6a58065abbe35838ae6bc7c8d22e3428040e4812e2e5 +size 22055 diff --git a/Content/Assets/Textures/columns_rims_BaseColor.uasset b/Content/Assets/Textures/columns_rims_BaseColor.uasset new file mode 100644 index 0000000..178f04f --- /dev/null +++ b/Content/Assets/Textures/columns_rims_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c7804405928341415b3fc7538d83e0c7d347b428b52d452c3297328f5fa2870 +size 756968 diff --git a/Content/Assets/Textures/columns_rims_Normal.uasset b/Content/Assets/Textures/columns_rims_Normal.uasset new file mode 100644 index 0000000..f47732f --- /dev/null +++ b/Content/Assets/Textures/columns_rims_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f80c58db38173746554679d2113032bdc9e78b2fec5d45fca669a285e60ae3b5 +size 229715 diff --git a/Content/Assets/Textures/columns_rims_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/columns_rims_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..ad17e57 --- /dev/null +++ b/Content/Assets/Textures/columns_rims_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54b0cccb3e2115d28664f6c7af4e90dfa4e16cbfb62780dce91270a75388694b +size 96882 diff --git a/Content/Assets/Textures/pillars_BaseColor.uasset b/Content/Assets/Textures/pillars_BaseColor.uasset new file mode 100644 index 0000000..b32fb38 --- /dev/null +++ b/Content/Assets/Textures/pillars_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9abaa70d057e70205cc212983f1b18064933f1ccc8f2188b223049282169c294 +size 545061 diff --git a/Content/Assets/Textures/pillars_Normal.uasset b/Content/Assets/Textures/pillars_Normal.uasset new file mode 100644 index 0000000..40e4f9a --- /dev/null +++ b/Content/Assets/Textures/pillars_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a918c20bfd6e3f2c6bba1d142ecc2621b545251d58de6eb5157ef4e2ce49eb4f +size 229090 diff --git a/Content/Assets/Textures/pillars_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/pillars_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..4c8252f --- /dev/null +++ b/Content/Assets/Textures/pillars_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d3e732a80aed33122fc15c7ba43db904a8d1d0c43a284e3ec2608041bcb76c6 +size 102114 diff --git a/Content/Assets/Textures/rail_BaseColor.uasset b/Content/Assets/Textures/rail_BaseColor.uasset new file mode 100644 index 0000000..aec0344 --- /dev/null +++ b/Content/Assets/Textures/rail_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f3157d7e80a1061940d16ff6b178921d26eb55c2af12851a6af3f1bdad31911 +size 654497 diff --git a/Content/Assets/Textures/rail_Normal.uasset b/Content/Assets/Textures/rail_Normal.uasset new file mode 100644 index 0000000..984e866 --- /dev/null +++ b/Content/Assets/Textures/rail_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fecd003d8aa2a29ff5401df0889293c85a4a3a1bc22b4cd88482a1be3efedba +size 290762 diff --git a/Content/Assets/Textures/rail_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/rail_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..e628700 --- /dev/null +++ b/Content/Assets/Textures/rail_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:681b38adfb17e05aa7db6cf816398de28413123683b4f1efa43a32233cdc2e3c +size 135955 diff --git a/Content/Assets/Textures/steps_wall_BaseColor.uasset b/Content/Assets/Textures/steps_wall_BaseColor.uasset new file mode 100644 index 0000000..9ae4b9b --- /dev/null +++ b/Content/Assets/Textures/steps_wall_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c515a81cbed998c4afdc452563a0b9f59fd73028b78be709526ccebb68350167 +size 758825 diff --git a/Content/Assets/Textures/steps_wall_Normal.uasset b/Content/Assets/Textures/steps_wall_Normal.uasset new file mode 100644 index 0000000..59ee1db --- /dev/null +++ b/Content/Assets/Textures/steps_wall_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8905fb9d452eb82acdf1693441a96657e8c1e87129c46c710a8eaecffcb489b3 +size 284404 diff --git a/Content/Assets/Textures/steps_wall_OcclusionRoughnessMetallic.uasset b/Content/Assets/Textures/steps_wall_OcclusionRoughnessMetallic.uasset new file mode 100644 index 0000000..3dbcc9d --- /dev/null +++ b/Content/Assets/Textures/steps_wall_OcclusionRoughnessMetallic.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d784c55c45ed1621377c87ed92602029e12db139f345ee572f169677c324a77 +size 132271 diff --git a/Content/Assets/UI/Borders/BorderLarge/Border_Large.uasset b/Content/Assets/UI/Borders/BorderLarge/Border_Large.uasset new file mode 100644 index 0000000..85bd19c --- /dev/null +++ b/Content/Assets/UI/Borders/BorderLarge/Border_Large.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:559c4afad158c1ed9653f1e5cc7f1f02d5a880898ed5960022bbc6d303680d78 +size 334456 diff --git a/Content/Assets/UI/Borders/BorderLarge/Border_Large_png.uasset b/Content/Assets/UI/Borders/BorderLarge/Border_Large_png.uasset new file mode 100644 index 0000000..d137286 --- /dev/null +++ b/Content/Assets/UI/Borders/BorderLarge/Border_Large_png.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:021e0da75628aa95bb14e5ecd5dd78e7da33153504e66a98c16deb00f767d824 +size 334492 diff --git a/Content/Assets/UI/Borders/BorderLarge_BG/Border_Large_BG.uasset b/Content/Assets/UI/Borders/BorderLarge_BG/Border_Large_BG.uasset new file mode 100644 index 0000000..c6c52c4 --- /dev/null +++ b/Content/Assets/UI/Borders/BorderLarge_BG/Border_Large_BG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7253346839382eabe5d20a3c3c544bd2b0e0843bf6ec206d1b98777f73b1cfc7 +size 361054 diff --git a/Content/Assets/UI/Borders/BorderLarge_BG/T_Border_Large_BG_png.uasset b/Content/Assets/UI/Borders/BorderLarge_BG/T_Border_Large_BG_png.uasset new file mode 100644 index 0000000..ce4e056 --- /dev/null +++ b/Content/Assets/UI/Borders/BorderLarge_BG/T_Border_Large_BG_png.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6aaf7acb937efdc3102054427640504c285cf58aac411630be300ca1279e7e23 +size 1921962 diff --git a/Content/Assets/UI/Borders/Border_1/Border_1.uasset b/Content/Assets/UI/Borders/Border_1/Border_1.uasset new file mode 100644 index 0000000..1d7f96a --- /dev/null +++ b/Content/Assets/UI/Borders/Border_1/Border_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73af9def10a619b67ff3a04e5487abb523735f3367af819bf48b2e968896339b +size 15344 diff --git a/Content/Assets/UI/Borders/Border_1/Border_1_png.uasset b/Content/Assets/UI/Borders/Border_1/Border_1_png.uasset new file mode 100644 index 0000000..58c6d21 --- /dev/null +++ b/Content/Assets/UI/Borders/Border_1/Border_1_png.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63aca91101f3e8e03ae64e1b82221124b296a4cba7588a585fac3648defe40a9 +size 107475 diff --git a/Content/Assets/UI/Borders/Border_1/lrgBorder_1.uasset b/Content/Assets/UI/Borders/Border_1/lrgBorder_1.uasset new file mode 100644 index 0000000..28803c0 --- /dev/null +++ b/Content/Assets/UI/Borders/Border_1/lrgBorder_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9a0d0c5fb16c30fcd1c90db12a213d30746d300dca6f22a6b6518d8b783b916 +size 111997 diff --git a/Content/Assets/UI/Button_Red/Button.uasset b/Content/Assets/UI/Button_Red/Button.uasset new file mode 100644 index 0000000..0553ce8 --- /dev/null +++ b/Content/Assets/UI/Button_Red/Button.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fde88ec5411a186dbef5be633ecaf35b230f8fd9d066c6c6f390feb98fcf44a7 +size 410404 diff --git a/Content/Assets/UI/Button_Red/Button_Border.uasset b/Content/Assets/UI/Button_Red/Button_Border.uasset new file mode 100644 index 0000000..02b3bca --- /dev/null +++ b/Content/Assets/UI/Button_Red/Button_Border.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b28938a7137e131c1e4e05a9e7716b9357d987c8c93001a162c8a49cd112e7c6 +size 193863 diff --git a/Content/Assets/UI/Button_Red/Button_Grayed_Out.uasset b/Content/Assets/UI/Button_Red/Button_Grayed_Out.uasset new file mode 100644 index 0000000..ec66f0b --- /dev/null +++ b/Content/Assets/UI/Button_Red/Button_Grayed_Out.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a79ac9ce187d3d6f67ae9bd87f7a4d2efe53002556c76670714db390a0ab2f2 +size 417075 diff --git a/Content/Assets/UI/Button_Red/Button_Highlighted.uasset b/Content/Assets/UI/Button_Red/Button_Highlighted.uasset new file mode 100644 index 0000000..277f6d8 --- /dev/null +++ b/Content/Assets/UI/Button_Red/Button_Highlighted.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49f270b923b0599286ab42d6987dec1dbc13f5f8474595dbb83f27379b8c3fb5 +size 299945 diff --git a/Content/Assets/UI/Button_Red/Button_Pressed.uasset b/Content/Assets/UI/Button_Red/Button_Pressed.uasset new file mode 100644 index 0000000..7050ffd --- /dev/null +++ b/Content/Assets/UI/Button_Red/Button_Pressed.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4e25abee230406f3998af7faf6995f41d573064c4240897600bdc56ff99960f +size 345890 diff --git a/Content/Assets/UI/CooldownBar/cooldown_bar.uasset b/Content/Assets/UI/CooldownBar/cooldown_bar.uasset new file mode 100644 index 0000000..5a4af05 --- /dev/null +++ b/Content/Assets/UI/CooldownBar/cooldown_bar.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b96887c0406786ce957fa5f089079e4ea41986d3977910877100985c8e4ae03 +size 42865 diff --git a/Content/Assets/UI/Globes/MI_ArcaneSkillBG.uasset b/Content/Assets/UI/Globes/MI_ArcaneSkillBG.uasset new file mode 100644 index 0000000..668fdb4 --- /dev/null +++ b/Content/Assets/UI/Globes/MI_ArcaneSkillBG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66794d58ad695adf413183b63e6f4ee61261ad3a271ee75c95a0504bc71e3470 +size 11185 diff --git a/Content/Assets/UI/Globes/MI_EmptyGlobe.uasset b/Content/Assets/UI/Globes/MI_EmptyGlobe.uasset new file mode 100644 index 0000000..382caa0 --- /dev/null +++ b/Content/Assets/UI/Globes/MI_EmptyGlobe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d52825fd23c721c05958914928fa523106527ead6af71cc3e205a34d4b47a35b +size 5342 diff --git a/Content/Assets/UI/Globes/MI_FireSkillBG.uasset b/Content/Assets/UI/Globes/MI_FireSkillBG.uasset new file mode 100644 index 0000000..17df31c --- /dev/null +++ b/Content/Assets/UI/Globes/MI_FireSkillBG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d74aa1cd38a0dc36200073cb0237b38bb1e04848020dad6ee512fdb27bdeeb6e +size 11518 diff --git a/Content/Assets/UI/Globes/MI_FlowingUIBG.uasset b/Content/Assets/UI/Globes/MI_FlowingUIBG.uasset new file mode 100644 index 0000000..b1d56c5 --- /dev/null +++ b/Content/Assets/UI/Globes/MI_FlowingUIBG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2942e4072f3bb07c7483d869ac17bdc6fc8c124b154acceb99fb8ebc067c363 +size 9410 diff --git a/Content/Assets/UI/Globes/MI_Flowing_Red.uasset b/Content/Assets/UI/Globes/MI_Flowing_Red.uasset new file mode 100644 index 0000000..68ec643 --- /dev/null +++ b/Content/Assets/UI/Globes/MI_Flowing_Red.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52bd17a401d969fe169feeeea1c15f9fa817d0d42658c8c4f09890ad1e445046 +size 9046 diff --git a/Content/Assets/UI/Globes/MI_FurySkillBG.uasset b/Content/Assets/UI/Globes/MI_FurySkillBG.uasset new file mode 100644 index 0000000..0e97400 --- /dev/null +++ b/Content/Assets/UI/Globes/MI_FurySkillBG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffa9f6f22fc21461ac14a5449cd93e89edde275a0f7755ace928fbfeb1baa803 +size 11629 diff --git a/Content/Assets/UI/Globes/MI_GhostHealthGlobe.uasset b/Content/Assets/UI/Globes/MI_GhostHealthGlobe.uasset new file mode 100644 index 0000000..02821ec --- /dev/null +++ b/Content/Assets/UI/Globes/MI_GhostHealthGlobe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7125ad0a927badc6c15c87ccf625064ab4f8a6ca61386d5325fae0fe8e47853c +size 10387 diff --git a/Content/Assets/UI/Globes/MI_GhostManaGlobe.uasset b/Content/Assets/UI/Globes/MI_GhostManaGlobe.uasset new file mode 100644 index 0000000..4c5ec09 --- /dev/null +++ b/Content/Assets/UI/Globes/MI_GhostManaGlobe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d7fef82651bf5fe4f9bec416daa34dc15196ed22742d7e0c658b2165f493ac9 +size 10390 diff --git a/Content/Assets/UI/Globes/MI_GraceySkillBG.uasset b/Content/Assets/UI/Globes/MI_GraceySkillBG.uasset new file mode 100644 index 0000000..71d0891 --- /dev/null +++ b/Content/Assets/UI/Globes/MI_GraceySkillBG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e711038f49a6821c41536256b7f375c07cc0b3587cb4ea6d2fd78c2bd48b4d30 +size 11560 diff --git a/Content/Assets/UI/Globes/MI_HealthGlobe.uasset b/Content/Assets/UI/Globes/MI_HealthGlobe.uasset new file mode 100644 index 0000000..bb705ff --- /dev/null +++ b/Content/Assets/UI/Globes/MI_HealthGlobe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5125450fc19788cab81e596db813814237d56ab1b68592d25ddf7e1ee54cc6c5 +size 10117 diff --git a/Content/Assets/UI/Globes/MI_LevelBG.uasset b/Content/Assets/UI/Globes/MI_LevelBG.uasset new file mode 100644 index 0000000..0443e59 --- /dev/null +++ b/Content/Assets/UI/Globes/MI_LevelBG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bef8a947d30e18f69943a20b830ba34868208f088b6be35db7a417f6708f1480 +size 11668 diff --git a/Content/Assets/UI/Globes/MI_LockedBG.uasset b/Content/Assets/UI/Globes/MI_LockedBG.uasset new file mode 100644 index 0000000..1abc4f1 --- /dev/null +++ b/Content/Assets/UI/Globes/MI_LockedBG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75d127bd5d06ac9647a7ed88be8f278151906235e6a74360dd1e651a23454091 +size 10473 diff --git a/Content/Assets/UI/Globes/MI_ManaGlobe.uasset b/Content/Assets/UI/Globes/MI_ManaGlobe.uasset new file mode 100644 index 0000000..71ed29f --- /dev/null +++ b/Content/Assets/UI/Globes/MI_ManaGlobe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d62ce65e4f10bd2c1ba8f5722f2ee4a710f79691ccc6cb823c0e06511a41e8a +size 10774 diff --git a/Content/Assets/UI/Globes/MI_ShockSkillBG.uasset b/Content/Assets/UI/Globes/MI_ShockSkillBG.uasset new file mode 100644 index 0000000..4658acf --- /dev/null +++ b/Content/Assets/UI/Globes/MI_ShockSkillBG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:228ad441b93bf139cc38440612b62d41f0fdea04e83320f7c652e9390498f0f8 +size 11815 diff --git a/Content/Assets/UI/Globes/M_EmptyGlobe.uasset b/Content/Assets/UI/Globes/M_EmptyGlobe.uasset new file mode 100644 index 0000000..fe88d59 --- /dev/null +++ b/Content/Assets/UI/Globes/M_EmptyGlobe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24345c74e929d8be494d0139c9c8c09feb06936a989cad45e723c2f555fe958b +size 32615 diff --git a/Content/Assets/UI/Globes/M_FlowingGlobe.uasset b/Content/Assets/UI/Globes/M_FlowingGlobe.uasset new file mode 100644 index 0000000..4d26564 --- /dev/null +++ b/Content/Assets/UI/Globes/M_FlowingGlobe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb59890cadb0a8d074864f95e5819a653794181f63ec7db064dbf9a1d352c0bc +size 51918 diff --git a/Content/Assets/UI/Globes/M_FlowingUIBG.uasset b/Content/Assets/UI/Globes/M_FlowingUIBG.uasset new file mode 100644 index 0000000..661289c --- /dev/null +++ b/Content/Assets/UI/Globes/M_FlowingUIBG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f63925094cc925cf3e3658a3816b77142f5d8b53cf18f3f9d65d841075fcccd5 +size 16625 diff --git a/Content/Assets/UI/Globes/M_GlobeReversed.uasset b/Content/Assets/UI/Globes/M_GlobeReversed.uasset new file mode 100644 index 0000000..c6cdecc --- /dev/null +++ b/Content/Assets/UI/Globes/M_GlobeReversed.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bc50a6555c5753a01d894ce05e5196bbe2023e52c3d0c60af4d9905fc2193ab +size 54026 diff --git a/Content/Assets/UI/Globes/TilingNoise05.uasset b/Content/Assets/UI/Globes/TilingNoise05.uasset new file mode 100644 index 0000000..238b5aa --- /dev/null +++ b/Content/Assets/UI/Globes/TilingNoise05.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d306c4a83e96f655f6b5a867fcc8c3f477b837172421faa3a4940d4f1cf9ba45 +size 940324 diff --git a/Content/Assets/UI/HealthBar/MediumEnemy/Medium_Enemy_Back.uasset b/Content/Assets/UI/HealthBar/MediumEnemy/Medium_Enemy_Back.uasset new file mode 100644 index 0000000..efefae0 --- /dev/null +++ b/Content/Assets/UI/HealthBar/MediumEnemy/Medium_Enemy_Back.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c89bc53bacc7ddd555edea5854fb144fd01f2ece06e836b821e96ea69762f637 +size 9816 diff --git a/Content/Assets/UI/HealthBar/MediumEnemy/Medium_Enemy_Front.uasset b/Content/Assets/UI/HealthBar/MediumEnemy/Medium_Enemy_Front.uasset new file mode 100644 index 0000000..87aa174 --- /dev/null +++ b/Content/Assets/UI/HealthBar/MediumEnemy/Medium_Enemy_Front.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d23667ec5ae3ea3adb8ed0d8d09081d49b26869a6db2fba216ec5f343642f20 +size 10821 diff --git a/Content/Assets/UI/HealthBar/MediumEnemy/Medium_Health_Fill.uasset b/Content/Assets/UI/HealthBar/MediumEnemy/Medium_Health_Fill.uasset new file mode 100644 index 0000000..e40e299 --- /dev/null +++ b/Content/Assets/UI/HealthBar/MediumEnemy/Medium_Health_Fill.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:564276db2278b38fbdabff1d2d18dc88017df7f460567e58a27b44fed98bab6a +size 9819 diff --git a/Content/Assets/UI/HealthBar/Player/HealthBar.uasset b/Content/Assets/UI/HealthBar/Player/HealthBar.uasset new file mode 100644 index 0000000..5f6580e --- /dev/null +++ b/Content/Assets/UI/HealthBar/Player/HealthBar.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1addbc34eaa866b552b1e6b217092398ed96238b12c1da02a5546042042db120 +size 68185 diff --git a/Content/Assets/UI/HealthBar/Player/HealthBarAtt.uasset b/Content/Assets/UI/HealthBar/Player/HealthBarAtt.uasset new file mode 100644 index 0000000..5ba333f --- /dev/null +++ b/Content/Assets/UI/HealthBar/Player/HealthBarAtt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d650906659f1f64faa5c2ad2464aeffff0a7c9ff45457e3ca55f380e8d63d5a +size 49108 diff --git a/Content/Assets/UI/HealthBar/Player/HealthBarBG.uasset b/Content/Assets/UI/HealthBar/Player/HealthBarBG.uasset new file mode 100644 index 0000000..7599136 --- /dev/null +++ b/Content/Assets/UI/HealthBar/Player/HealthBarBG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e51f0b8e4cd96ec979df8118a6bf4a215238ebc69862cf981fa3c289946e1ed +size 14984 diff --git a/Content/Assets/UI/HealthBar/Player/HealthBarFill.uasset b/Content/Assets/UI/HealthBar/Player/HealthBarFill.uasset new file mode 100644 index 0000000..30f258a --- /dev/null +++ b/Content/Assets/UI/HealthBar/Player/HealthBarFill.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ee8bbc92e3a76c5410fa686eebbd50f56c1e34da484353ba99a0bf455d3e438 +size 17266 diff --git a/Content/Assets/UI/HealthMana/AuraRender.uasset b/Content/Assets/UI/HealthMana/AuraRender.uasset new file mode 100644 index 0000000..b4cef70 --- /dev/null +++ b/Content/Assets/UI/HealthMana/AuraRender.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5285a9e472260ee8f12aafab84361847a626dcb0cf715570b69eab4f62741ffd +size 1913196 diff --git a/Content/Assets/UI/HealthMana/HealthMana.uasset b/Content/Assets/UI/HealthMana/HealthMana.uasset new file mode 100644 index 0000000..dd9c0b3 --- /dev/null +++ b/Content/Assets/UI/HealthMana/HealthMana.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:104e4239c60d2b8198967001e82be2245352886d1d6f5bad4d32640fd656bb83 +size 93939 diff --git a/Content/Assets/UI/LoadScreen/PlusIcon_clearBG.uasset b/Content/Assets/UI/LoadScreen/PlusIcon_clearBG.uasset new file mode 100644 index 0000000..045f8d5 --- /dev/null +++ b/Content/Assets/UI/LoadScreen/PlusIcon_clearBG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c86f144248a21913134153f8634a4f9e66d80b9bc7f80fc363a98b0b93bb3b33 +size 11085 diff --git a/Content/Assets/UI/ManaBar/ManaBar.uasset b/Content/Assets/UI/ManaBar/ManaBar.uasset new file mode 100644 index 0000000..cd5f3a3 --- /dev/null +++ b/Content/Assets/UI/ManaBar/ManaBar.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07c7cc9c31a89cff3e462196b290f10915810fbfda7fa881c60c617ebcf650c1 +size 46827 diff --git a/Content/Assets/UI/ManaBar/ManaBarAtt.uasset b/Content/Assets/UI/ManaBar/ManaBarAtt.uasset new file mode 100644 index 0000000..6b752d1 --- /dev/null +++ b/Content/Assets/UI/ManaBar/ManaBarAtt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7ad19d84e626ea8b228379e150a3e01b960f6ccb84e57a1d4243bab6f8dcab5 +size 31524 diff --git a/Content/Assets/UI/Overlay/OverlayUI.uasset b/Content/Assets/UI/Overlay/OverlayUI.uasset new file mode 100644 index 0000000..bdfc103 --- /dev/null +++ b/Content/Assets/UI/Overlay/OverlayUI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93c5f16fbab24a011780950e20735fd8005b808c0e9b6726023e925678242984 +size 204398 diff --git a/Content/Assets/UI/Pickups/T_HealthCrystal.uasset b/Content/Assets/UI/Pickups/T_HealthCrystal.uasset new file mode 100644 index 0000000..c2d3f11 --- /dev/null +++ b/Content/Assets/UI/Pickups/T_HealthCrystal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06da2f5f2b71fdc501dbea43edabb3f4d484684b41ae72100774cb2ba7870018 +size 127733 diff --git a/Content/Assets/UI/Pickups/T_ManaCrystal.uasset b/Content/Assets/UI/Pickups/T_ManaCrystal.uasset new file mode 100644 index 0000000..7436647 --- /dev/null +++ b/Content/Assets/UI/Pickups/T_ManaCrystal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3b36b26cc3ac25fab020a877d1d78e7ebd95bb1f344c1dca98f64d07143fa86 +size 133220 diff --git a/Content/Assets/UI/Pickups/T_Potion_Blue.uasset b/Content/Assets/UI/Pickups/T_Potion_Blue.uasset new file mode 100644 index 0000000..0fdf417 --- /dev/null +++ b/Content/Assets/UI/Pickups/T_Potion_Blue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a84981bbbed3345685b1dd33ab63b341c3664e7008fd550085628fe215174f9 +size 191893 diff --git a/Content/Assets/UI/Pickups/T_Potion_Red.uasset b/Content/Assets/UI/Pickups/T_Potion_Red.uasset new file mode 100644 index 0000000..6ef8148 --- /dev/null +++ b/Content/Assets/UI/Pickups/T_Potion_Red.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f65eb3fd73bdb4b15165fe55b13907b03c5bf7b204758f001ccf9cd993c4191a +size 191654 diff --git a/Content/Assets/UI/Rings/GlobeRing/GlobeRing.uasset b/Content/Assets/UI/Rings/GlobeRing/GlobeRing.uasset new file mode 100644 index 0000000..ecfb8ec --- /dev/null +++ b/Content/Assets/UI/Rings/GlobeRing/GlobeRing.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a78c65d7fe97c923baab4d765a62b7cd999f1e87f7141681a849f5a009c83003 +size 131017 diff --git a/Content/Assets/UI/Rings/GlobeRing/GlobeRing2.uasset b/Content/Assets/UI/Rings/GlobeRing/GlobeRing2.uasset new file mode 100644 index 0000000..cf1a28f --- /dev/null +++ b/Content/Assets/UI/Rings/GlobeRing/GlobeRing2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35ed14b227f2396a42e3b3db6ae995e0b69d006aae62e4079d0e1a995f4d9c04 +size 128841 diff --git a/Content/Assets/UI/Rings/GlobeRing/RingBlueGlow.uasset b/Content/Assets/UI/Rings/GlobeRing/RingBlueGlow.uasset new file mode 100644 index 0000000..05f3dcd --- /dev/null +++ b/Content/Assets/UI/Rings/GlobeRing/RingBlueGlow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e578097cb74dce576271be4deac5143fb07cbae514bc867ea0f985bd8cc18eb8 +size 243763 diff --git a/Content/Assets/UI/Rings/SkillRing/SkillRing_1.uasset b/Content/Assets/UI/Rings/SkillRing/SkillRing_1.uasset new file mode 100644 index 0000000..8707594 --- /dev/null +++ b/Content/Assets/UI/Rings/SkillRing/SkillRing_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:073aaa9f437434e3339b1789ea71149986fcbb325d1173998566e57464443722 +size 169500 diff --git a/Content/Assets/UI/Rings/SkillRing/SkillRing_1a.uasset b/Content/Assets/UI/Rings/SkillRing/SkillRing_1a.uasset new file mode 100644 index 0000000..d25c83c --- /dev/null +++ b/Content/Assets/UI/Rings/SkillRing/SkillRing_1a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d14178f654d5790407b51f1f2c03e9c319863ff1123c19897ff688c81b25e349 +size 168707 diff --git a/Content/Assets/UI/Rings/SkillRing/SkillRing_2.uasset b/Content/Assets/UI/Rings/SkillRing/SkillRing_2.uasset new file mode 100644 index 0000000..6723a2f --- /dev/null +++ b/Content/Assets/UI/Rings/SkillRing/SkillRing_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b81c6877be20213f5277ffb57dcca9829a98764b8eed7b22d9bade8cb8ec0b1f +size 168248 diff --git a/Content/Assets/UI/Rings/SkillRing/SkillRing_2a.uasset b/Content/Assets/UI/Rings/SkillRing/SkillRing_2a.uasset new file mode 100644 index 0000000..43b3698 --- /dev/null +++ b/Content/Assets/UI/Rings/SkillRing/SkillRing_2a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b6294871fa74e1ab6a976ca00cd43d8e45f8ea0446380b69bb82c2b8ede303a +size 231820 diff --git a/Content/Assets/UI/Rings/SkillRingGlow/SkillRing_1_Glow.uasset b/Content/Assets/UI/Rings/SkillRingGlow/SkillRing_1_Glow.uasset new file mode 100644 index 0000000..bd72ae6 --- /dev/null +++ b/Content/Assets/UI/Rings/SkillRingGlow/SkillRing_1_Glow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46abb53df2b951a8477f6f8705077569b6cadc178b2971323b3ca8cfe261560f +size 261118 diff --git a/Content/Assets/UI/Rings/SkillRingGlow/SkillRing_1a_Glow.uasset b/Content/Assets/UI/Rings/SkillRingGlow/SkillRing_1a_Glow.uasset new file mode 100644 index 0000000..a2e5081 --- /dev/null +++ b/Content/Assets/UI/Rings/SkillRingGlow/SkillRing_1a_Glow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8188b30fa3c5429cc42380e6cf4c247b24e9c9f8670754adb7443df8387737ef +size 262296 diff --git a/Content/Assets/UI/Rings/SkillRingGlow/SkillRing_2_Glow.uasset b/Content/Assets/UI/Rings/SkillRingGlow/SkillRing_2_Glow.uasset new file mode 100644 index 0000000..16d891f --- /dev/null +++ b/Content/Assets/UI/Rings/SkillRingGlow/SkillRing_2_Glow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fe8eb75b78882e47c457ce20ab08f43bcda0fec5f92c2eb57481d4d449e5ba8 +size 260831 diff --git a/Content/Assets/UI/Rings/SkillRingGlow/SkillRing_2a_Glow.uasset b/Content/Assets/UI/Rings/SkillRingGlow/SkillRing_2a_Glow.uasset new file mode 100644 index 0000000..300d724 --- /dev/null +++ b/Content/Assets/UI/Rings/SkillRingGlow/SkillRing_2a_Glow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68e082139449bde59f5b39e255b158d4769334d674f62e13027907186253ab70 +size 257444 diff --git a/Content/Assets/UI/SpellTree/EquippedSpellsRowOutline.uasset b/Content/Assets/UI/SpellTree/EquippedSpellsRowOutline.uasset new file mode 100644 index 0000000..f249513 --- /dev/null +++ b/Content/Assets/UI/SpellTree/EquippedSpellsRowOutline.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66bda938a4633db2bcf75f8d2ba1bbdcb772cb51a9a636368abff6d3b42da190 +size 9922 diff --git a/Content/Assets/UI/SpellTree/Line.uasset b/Content/Assets/UI/SpellTree/Line.uasset new file mode 100644 index 0000000..58f3ed2 --- /dev/null +++ b/Content/Assets/UI/SpellTree/Line.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22c3c63640d64e2a5720527efdb7c431dc0cf92ea5810c7ad1eae8ae41eaf243 +size 8385 diff --git a/Content/Assets/UI/SpellTree/Line_Yellow.uasset b/Content/Assets/UI/SpellTree/Line_Yellow.uasset new file mode 100644 index 0000000..2d54187 --- /dev/null +++ b/Content/Assets/UI/SpellTree/Line_Yellow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ec69c5219a021fdbc442ee47ac5399af285815b666140be8b449a0621e4169f +size 8517 diff --git a/Content/Assets/UI/SpellTree/OffensiveSelectionBox.uasset b/Content/Assets/UI/SpellTree/OffensiveSelectionBox.uasset new file mode 100644 index 0000000..f2c23a3 --- /dev/null +++ b/Content/Assets/UI/SpellTree/OffensiveSelectionBox.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf31e25378353988323c2cf5aebf158b8ba0293e18c72342661fecf5da34aeff +size 9807 diff --git a/Content/Assets/UI/SpellTree/PassiveSelectionBox.uasset b/Content/Assets/UI/SpellTree/PassiveSelectionBox.uasset new file mode 100644 index 0000000..29866ac --- /dev/null +++ b/Content/Assets/UI/SpellTree/PassiveSelectionBox.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98e0a7066f6e18a589395f796f19aaf6eae50a8f5c3c272bec6e2b1f1d211960 +size 9855 diff --git a/Content/Assets/UI/SpellTree/Ring1.uasset b/Content/Assets/UI/SpellTree/Ring1.uasset new file mode 100644 index 0000000..1b85b00 --- /dev/null +++ b/Content/Assets/UI/SpellTree/Ring1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:843f7046c0053aa59da199d6f615e95fe77e4f42c8fc118337f63d521dbc66fe +size 127591 diff --git a/Content/Assets/UI/SpellTree/Ring1_active.uasset b/Content/Assets/UI/SpellTree/Ring1_active.uasset new file mode 100644 index 0000000..535c9a2 --- /dev/null +++ b/Content/Assets/UI/SpellTree/Ring1_active.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f75bd50b3291d1446521ef1b5becaa655398cda1c64272739ea35724db3a07d8 +size 133602 diff --git a/Content/Assets/UI/SpellTree/Ring2.uasset b/Content/Assets/UI/SpellTree/Ring2.uasset new file mode 100644 index 0000000..3364a93 --- /dev/null +++ b/Content/Assets/UI/SpellTree/Ring2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56926aa55c1b4acdd1828b8822f5543b51bc6459611186ffcd67eeed8e792fbe +size 128110 diff --git a/Content/Assets/UI/SpellTree/Ring2_active.uasset b/Content/Assets/UI/SpellTree/Ring2_active.uasset new file mode 100644 index 0000000..9a594f3 --- /dev/null +++ b/Content/Assets/UI/SpellTree/Ring2_active.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58f65c6b7b961daaadcd0319f3eb88ccb702dc01e4595629bd567b59226221ba +size 155827 diff --git a/Content/Assets/UI/SpellTree/Ring3.uasset b/Content/Assets/UI/SpellTree/Ring3.uasset new file mode 100644 index 0000000..0c88979 --- /dev/null +++ b/Content/Assets/UI/SpellTree/Ring3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d34321b6c1f44ee5f54602b94f968bd68291c6b520549a1f279ce863e642192c +size 235219 diff --git a/Content/Assets/UI/SpellTree/Ring3_active.uasset b/Content/Assets/UI/SpellTree/Ring3_active.uasset new file mode 100644 index 0000000..bfbac8c --- /dev/null +++ b/Content/Assets/UI/SpellTree/Ring3_active.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d8ef1cb24a0c76432f0fbe18177bc9f4c265d8efcb12eb5124708a05eeb6037 +size 341607 diff --git a/Content/Assets/UI/SpellTree/Ring4.uasset b/Content/Assets/UI/SpellTree/Ring4.uasset new file mode 100644 index 0000000..7db18cb --- /dev/null +++ b/Content/Assets/UI/SpellTree/Ring4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3d59174bff3469d9b19c29af5f6c23bcd63d8289863eee3c668bdf3ed747136 +size 235042 diff --git a/Content/Assets/UI/SpellTree/Ring4_active.uasset b/Content/Assets/UI/SpellTree/Ring4_active.uasset new file mode 100644 index 0000000..431e646 --- /dev/null +++ b/Content/Assets/UI/SpellTree/Ring4_active.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b797acee3fe371955a9e4a401db6c63f3f819548d126fedad8e596dfde096e3f +size 468627 diff --git a/Content/Assets/UI/SpellTree/connector.uasset b/Content/Assets/UI/SpellTree/connector.uasset new file mode 100644 index 0000000..f2bc196 --- /dev/null +++ b/Content/Assets/UI/SpellTree/connector.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44e29b605a33051a40ef9a3578ebdf640b253d6f09e8ecde7b98743aa90b37b9 +size 38168 diff --git a/Content/Assets/UI/SpellTree/connector_active.uasset b/Content/Assets/UI/SpellTree/connector_active.uasset new file mode 100644 index 0000000..ece94ac --- /dev/null +++ b/Content/Assets/UI/SpellTree/connector_active.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be1289dcb5a27f1c4ca7a626e64b28d6e6a0f09d2fd0b72a9fc4a95fe65a1dcb +size 43306 diff --git a/Content/Assets/UI/Spells/ArcaneBlast.uasset b/Content/Assets/UI/Spells/ArcaneBlast.uasset new file mode 100644 index 0000000..47a948e --- /dev/null +++ b/Content/Assets/UI/Spells/ArcaneBlast.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6195c96adf9a470b5858211720bf7bcec4c02072574ccf24d2abe9d393862d54 +size 11735 diff --git a/Content/Assets/UI/Spells/ArcaneShards.uasset b/Content/Assets/UI/Spells/ArcaneShards.uasset new file mode 100644 index 0000000..3f38835 --- /dev/null +++ b/Content/Assets/UI/Spells/ArcaneShards.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e09d2478cdd22125b5142b98e612a5f27c0b4062591379ee63ccbb183d65ae70 +size 12620 diff --git a/Content/Assets/UI/Spells/ArcaneShards2.uasset b/Content/Assets/UI/Spells/ArcaneShards2.uasset new file mode 100644 index 0000000..88eefb3 --- /dev/null +++ b/Content/Assets/UI/Spells/ArcaneShards2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a8b639d20a77547fb194631387393c2f9ef2ae6102a5cf1e9e03f972d76dc1c +size 12482 diff --git a/Content/Assets/UI/Spells/ArcaneStorm.uasset b/Content/Assets/UI/Spells/ArcaneStorm.uasset new file mode 100644 index 0000000..49a7fa3 --- /dev/null +++ b/Content/Assets/UI/Spells/ArcaneStorm.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31ebc27fa5cdd601534b1fbd9f00ac28e74d476feb456aa15d8f6f69fac3b721 +size 13449 diff --git a/Content/Assets/UI/Spells/BallLightning.uasset b/Content/Assets/UI/Spells/BallLightning.uasset new file mode 100644 index 0000000..c3570d3 --- /dev/null +++ b/Content/Assets/UI/Spells/BallLightning.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:071d3bdde8ef3cfabaa18afbe21d575148cbb4f84b763187caad19c04eb6757b +size 15758 diff --git a/Content/Assets/UI/Spells/FireBlast.uasset b/Content/Assets/UI/Spells/FireBlast.uasset new file mode 100644 index 0000000..f1f126c --- /dev/null +++ b/Content/Assets/UI/Spells/FireBlast.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f1862077c7afd09d9ba5dd0d673a794c0bd53481a9088aebf2e2189e01e496b +size 13093 diff --git a/Content/Assets/UI/Spells/FireBolt.uasset b/Content/Assets/UI/Spells/FireBolt.uasset new file mode 100644 index 0000000..9bde13e --- /dev/null +++ b/Content/Assets/UI/Spells/FireBolt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80843ed018bdc29d6cd74ef9d5c18c3bd1c7e15ebdc979fa95f2a52875452cf6 +size 12179 diff --git a/Content/Assets/UI/Spells/FireBolt_white.uasset b/Content/Assets/UI/Spells/FireBolt_white.uasset new file mode 100644 index 0000000..249b78d --- /dev/null +++ b/Content/Assets/UI/Spells/FireBolt_white.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b67db7f114e6f5466f42fb8fba4062259d4f0d17c3d5307deec7c94295cd23a +size 11161 diff --git a/Content/Assets/UI/Spells/FireNado.uasset b/Content/Assets/UI/Spells/FireNado.uasset new file mode 100644 index 0000000..22e11da --- /dev/null +++ b/Content/Assets/UI/Spells/FireNado.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf01d7cf4c6f3d8a1c863172b21072b3b4d3207860b6071eeb4e6a7841aa6f4b +size 11739 diff --git a/Content/Assets/UI/Spells/Halo.uasset b/Content/Assets/UI/Spells/Halo.uasset new file mode 100644 index 0000000..9b6baed --- /dev/null +++ b/Content/Assets/UI/Spells/Halo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4a8640425482a79c7c6a296d3b4dd09f3ab763946184547630ac7d877a44894 +size 12127 diff --git a/Content/Assets/UI/Spells/LifeSiphon.uasset b/Content/Assets/UI/Spells/LifeSiphon.uasset new file mode 100644 index 0000000..a6c5e9a --- /dev/null +++ b/Content/Assets/UI/Spells/LifeSiphon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f49e4d926cbfc0ab01ee0dbb0620569ec09cecd4d7b0634f85cb0b9b1bc16c1b +size 11328 diff --git a/Content/Assets/UI/Spells/LightningStorm.uasset b/Content/Assets/UI/Spells/LightningStorm.uasset new file mode 100644 index 0000000..cd9b582 --- /dev/null +++ b/Content/Assets/UI/Spells/LightningStorm.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2a7449aa214201d45dc4d8275ee1ce4b93caa16ba9c5847f757bf837577852a +size 14240 diff --git a/Content/Assets/UI/Spells/Locked.uasset b/Content/Assets/UI/Spells/Locked.uasset new file mode 100644 index 0000000..8416793 --- /dev/null +++ b/Content/Assets/UI/Spells/Locked.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81b26c35169fb1129e813934116124157fa62f618987bbdc1f43067178fe01a5 +size 12067 diff --git a/Content/Assets/UI/Spells/Locked_sm.uasset b/Content/Assets/UI/Spells/Locked_sm.uasset new file mode 100644 index 0000000..5f627a6 --- /dev/null +++ b/Content/Assets/UI/Spells/Locked_sm.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89849600a66558ea0f37cf3d7079c93a91288c1ec2d1eda33872b3f335020e58 +size 11550 diff --git a/Content/Assets/UI/Spells/Locked_sm_white.uasset b/Content/Assets/UI/Spells/Locked_sm_white.uasset new file mode 100644 index 0000000..3a35643 --- /dev/null +++ b/Content/Assets/UI/Spells/Locked_sm_white.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31bb8b4b57722927a60bcff1910252f5291421cce5058bb2d09d73c1f139f75d +size 10763 diff --git a/Content/Assets/UI/Spells/SelectionCircle.uasset b/Content/Assets/UI/Spells/SelectionCircle.uasset new file mode 100644 index 0000000..1430e86 --- /dev/null +++ b/Content/Assets/UI/Spells/SelectionCircle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:480242d91effe70274daeace485af4868ee25adfcfc82052dfb4bdb60a77c22c +size 13759 diff --git a/Content/Assets/UI/Spells/Shock.uasset b/Content/Assets/UI/Spells/Shock.uasset new file mode 100644 index 0000000..1368d8f --- /dev/null +++ b/Content/Assets/UI/Spells/Shock.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb0f6bd828ee7be999749c54f262f879771c02cb69e768c9ba5cd2cd2678c6e9 +size 12168 diff --git a/Content/Assets/UI/Wide_Button_Red/WideButton.uasset b/Content/Assets/UI/Wide_Button_Red/WideButton.uasset new file mode 100644 index 0000000..c135353 --- /dev/null +++ b/Content/Assets/UI/Wide_Button_Red/WideButton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc23b15bb50d77b0679be1e2363aedddb59e681f61a1d4973d5c3bce36ee7e53 +size 220424 diff --git a/Content/Assets/UI/Wide_Button_Red/WideButton_GrayedOut.uasset b/Content/Assets/UI/Wide_Button_Red/WideButton_GrayedOut.uasset new file mode 100644 index 0000000..6b58b86 --- /dev/null +++ b/Content/Assets/UI/Wide_Button_Red/WideButton_GrayedOut.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21cdf24b7d7268a74a7bd134a8f0a062b9f1872934ef453c463c654db53bcf7f +size 221700 diff --git a/Content/Assets/UI/Wide_Button_Red/WideButton_Highlighted.uasset b/Content/Assets/UI/Wide_Button_Red/WideButton_Highlighted.uasset new file mode 100644 index 0000000..98b3153 --- /dev/null +++ b/Content/Assets/UI/Wide_Button_Red/WideButton_Highlighted.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26f35d46cb556b5fbab625330764f64779cd4f52196cd0a29b80e38a33628816 +size 193601 diff --git a/Content/Assets/UI/Wide_Button_Red/WideButton_Pressed.uasset b/Content/Assets/UI/Wide_Button_Red/WideButton_Pressed.uasset new file mode 100644 index 0000000..cbce2db --- /dev/null +++ b/Content/Assets/UI/Wide_Button_Red/WideButton_Pressed.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29e8d834959610529698a2228fe513b2f1fa86e29dd1171fca349519e4c4b324 +size 180200 diff --git a/Content/Assets/UI/Wide_Button_Red/WideButton_Pressed_2.uasset b/Content/Assets/UI/Wide_Button_Red/WideButton_Pressed_2.uasset new file mode 100644 index 0000000..2758a4b --- /dev/null +++ b/Content/Assets/UI/Wide_Button_Red/WideButton_Pressed_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a13f6146807e47ca3f5c36337ce0f60d2f68e54e99f8cfff17a20f78a95febb +size 199874 diff --git a/Content/Assets/UI/XPBar/XP_Back.uasset b/Content/Assets/UI/XPBar/XP_Back.uasset new file mode 100644 index 0000000..5ec7773 --- /dev/null +++ b/Content/Assets/UI/XPBar/XP_Back.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:662e7f52c5e79c8c1cdc5c63789a82d9b445b61b45ff3f47c41c7613d356001b +size 9298 diff --git a/Content/Assets/UI/XPBar/XP_Front.uasset b/Content/Assets/UI/XPBar/XP_Front.uasset new file mode 100644 index 0000000..b41261e --- /dev/null +++ b/Content/Assets/UI/XPBar/XP_Front.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:915e77ada7132e648768fec42917bf65d0ac01c982a6011a4bf51535480c539e +size 12534 diff --git a/Content/Assets/UI/XPBar/XP_Middle.uasset b/Content/Assets/UI/XPBar/XP_Middle.uasset new file mode 100644 index 0000000..cb04c53 --- /dev/null +++ b/Content/Assets/UI/XPBar/XP_Middle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c3446e90d736cf25727e45cb4c76b6248cee8d2c1fcaa27f1aa07ce2e6426a9 +size 16709 diff --git a/Content/Assets/UI/XPBar/xp_bar.uasset b/Content/Assets/UI/XPBar/xp_bar.uasset new file mode 100644 index 0000000..11b9ff6 --- /dev/null +++ b/Content/Assets/UI/XPBar/xp_bar.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e20abcec2945835438ba770c5acd6c6ef5ce0a59556684ba5127cde5641f5d1 +size 23709 diff --git a/Content/Assets/UI/XPBar/xp_frame.uasset b/Content/Assets/UI/XPBar/xp_frame.uasset new file mode 100644 index 0000000..c07d6d1 --- /dev/null +++ b/Content/Assets/UI/XPBar/xp_frame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7cf83c50a341604d625761e841ecdbfe8679a8a591588ab89be3341074c7034 +size 64525 diff --git a/Content/Blueprints/AI/BehaviorTree/BB_Enemy.uasset b/Content/Blueprints/AI/BehaviorTree/BB_Enemy.uasset new file mode 100644 index 0000000..ef675fa --- /dev/null +++ b/Content/Blueprints/AI/BehaviorTree/BB_Enemy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a155857f772c5c1212317b4557f351c3d7ec8f56c677091b607862176d96eaa6 +size 3286 diff --git a/Content/Blueprints/AI/BehaviorTree/BHT_EnemyMellee.uasset b/Content/Blueprints/AI/BehaviorTree/BHT_EnemyMellee.uasset new file mode 100644 index 0000000..e8ea1dd --- /dev/null +++ b/Content/Blueprints/AI/BehaviorTree/BHT_EnemyMellee.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49006e80808e57b843ec053469435dbae2045a0d71d1c10ddd867960543f871b +size 19566 diff --git a/Content/Blueprints/AI/BehaviorTree/BHT_EnemyRanged.uasset b/Content/Blueprints/AI/BehaviorTree/BHT_EnemyRanged.uasset new file mode 100644 index 0000000..b26f297 --- /dev/null +++ b/Content/Blueprints/AI/BehaviorTree/BHT_EnemyRanged.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ee9d2bf885f23e2ab11a8eb4ece07beda263cf3ba4fb7b99bb8bc9e5ac41d2e +size 28262 diff --git a/Content/Blueprints/AI/BehaviorTree/BHT_EnemySummoner.uasset b/Content/Blueprints/AI/BehaviorTree/BHT_EnemySummoner.uasset new file mode 100644 index 0000000..95ee226 --- /dev/null +++ b/Content/Blueprints/AI/BehaviorTree/BHT_EnemySummoner.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b63042716a4bad98ac5a5b02f48f475f020ef1b5102526c2e7f7d49e95524d99 +size 32132 diff --git a/Content/Blueprints/AI/BehaviorTree/BHT_Roaming.uasset b/Content/Blueprints/AI/BehaviorTree/BHT_Roaming.uasset new file mode 100644 index 0000000..3930b9b --- /dev/null +++ b/Content/Blueprints/AI/BehaviorTree/BHT_Roaming.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af7c2e4c60f24a71a5b4772193578b7e48017b66e40e281056fcb004e4cad3fc +size 11509 diff --git a/Content/Blueprints/AI/BehaviorTree/BTDecorator_BlackboardKeyToCombatTarget.uasset b/Content/Blueprints/AI/BehaviorTree/BTDecorator_BlackboardKeyToCombatTarget.uasset new file mode 100644 index 0000000..6dacc70 --- /dev/null +++ b/Content/Blueprints/AI/BehaviorTree/BTDecorator_BlackboardKeyToCombatTarget.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b386e6819c869ffd1dbcac0d23ccb8c19629fdec2ba84c8b7ffa9d4a57e6da6b +size 37988 diff --git a/Content/Blueprints/AI/BehaviorTree/BTDecorator_CanUseAbility.uasset b/Content/Blueprints/AI/BehaviorTree/BTDecorator_CanUseAbility.uasset new file mode 100644 index 0000000..7ac121a --- /dev/null +++ b/Content/Blueprints/AI/BehaviorTree/BTDecorator_CanUseAbility.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02d7f7f56a91842f191411c9b377d60ffc33d97acb1e359fe059175151e2f538 +size 47702 diff --git a/Content/Blueprints/AI/BehaviorTree/BTS_FindNearestPlayer.uasset b/Content/Blueprints/AI/BehaviorTree/BTS_FindNearestPlayer.uasset new file mode 100644 index 0000000..07293cc --- /dev/null +++ b/Content/Blueprints/AI/BehaviorTree/BTS_FindNearestPlayer.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b46324f04be6c77446350d68fa8a6fcbbec2e14911b6d837f0f8c35c7315763 +size 15320 diff --git a/Content/Blueprints/AI/BehaviorTree/BTT_GoAroundTarget.uasset b/Content/Blueprints/AI/BehaviorTree/BTT_GoAroundTarget.uasset new file mode 100644 index 0000000..d294664 --- /dev/null +++ b/Content/Blueprints/AI/BehaviorTree/BTT_GoAroundTarget.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29be93582c8742e4852197b58c4e56dba54064354c6b2bbdf127cfd0d12e9708 +size 49359 diff --git a/Content/Blueprints/AI/BehaviorTree/BTT_UseAbility.uasset b/Content/Blueprints/AI/BehaviorTree/BTT_UseAbility.uasset new file mode 100644 index 0000000..85c8d69 --- /dev/null +++ b/Content/Blueprints/AI/BehaviorTree/BTT_UseAbility.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38af12c4af46fa7e9a92461771519b97c9ee9e2eb136d3e3ae0d64b952bd9814 +size 34162 diff --git a/Content/Blueprints/AI/BehaviorTree/BTTask_FindRandomNavigablePoint.uasset b/Content/Blueprints/AI/BehaviorTree/BTTask_FindRandomNavigablePoint.uasset new file mode 100644 index 0000000..1a37807 --- /dev/null +++ b/Content/Blueprints/AI/BehaviorTree/BTTask_FindRandomNavigablePoint.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55dd76fa0fa26c968ffcf34f22169250067cbe527977ac4041d8975944aabfd2 +size 62683 diff --git a/Content/Blueprints/AI/BehaviorTree/EQS_PlayerContext.uasset b/Content/Blueprints/AI/BehaviorTree/EQS_PlayerContext.uasset new file mode 100644 index 0000000..5539059 --- /dev/null +++ b/Content/Blueprints/AI/BehaviorTree/EQS_PlayerContext.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca77767af1db088084aca1d9b66f31a2abe9bc3c6523421cae4402f06b4e7291 +size 19215 diff --git a/Content/Blueprints/AI/BehaviorTree/EQS_TestingPawn.uasset b/Content/Blueprints/AI/BehaviorTree/EQS_TestingPawn.uasset new file mode 100644 index 0000000..811569c --- /dev/null +++ b/Content/Blueprints/AI/BehaviorTree/EQS_TestingPawn.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afb2b25bb014f502c9829cfa79e9c457111d876bd258d4ac281b1f8c474d9bd0 +size 22402 diff --git a/Content/Blueprints/AI/BehaviorTree/EQ_FindRangedAttackPosition.uasset b/Content/Blueprints/AI/BehaviorTree/EQ_FindRangedAttackPosition.uasset new file mode 100644 index 0000000..1f7725f --- /dev/null +++ b/Content/Blueprints/AI/BehaviorTree/EQ_FindRangedAttackPosition.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e982d35cf5bee488ef1b0fe5e755d807d0fe71e837bdaa1a1a6e40d4e33e247e +size 10266 diff --git a/Content/Blueprints/AI/Controller/BP_AuraAIController.uasset b/Content/Blueprints/AI/Controller/BP_AuraAIController.uasset new file mode 100644 index 0000000..7fab272 --- /dev/null +++ b/Content/Blueprints/AI/Controller/BP_AuraAIController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b497b73ad284ea25e670fc5579663dee5af5153a8c18600a82f1f1c4f4b7947 +size 33674 diff --git a/Content/Blueprints/AI/Controller/BP_AuraAIController_Mellee.uasset b/Content/Blueprints/AI/Controller/BP_AuraAIController_Mellee.uasset new file mode 100644 index 0000000..658453d --- /dev/null +++ b/Content/Blueprints/AI/Controller/BP_AuraAIController_Mellee.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d48404871f5ecd178f021925337c2521fefa6d4b4a961f4d3d93eb6cb37c2809 +size 26570 diff --git a/Content/Blueprints/AI/Controller/BP_AuraAIController_Ranged.uasset b/Content/Blueprints/AI/Controller/BP_AuraAIController_Ranged.uasset new file mode 100644 index 0000000..e7b4c84 --- /dev/null +++ b/Content/Blueprints/AI/Controller/BP_AuraAIController_Ranged.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52e0ee340651e63d421f4e339cc6128e053a2eb5bf3771b6c39a31321c9214a3 +size 26495 diff --git a/Content/Blueprints/AI/Controller/BP_AuraAIController_Roaming.uasset b/Content/Blueprints/AI/Controller/BP_AuraAIController_Roaming.uasset new file mode 100644 index 0000000..2bff6fe --- /dev/null +++ b/Content/Blueprints/AI/Controller/BP_AuraAIController_Roaming.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2abfe20d0d133180d2ab6ebe0577f701b2b99b47bde613d5e3be757571eb895 +size 26327 diff --git a/Content/Blueprints/AI/Controller/BP_AuraAIController_Summoner.uasset b/Content/Blueprints/AI/Controller/BP_AuraAIController_Summoner.uasset new file mode 100644 index 0000000..26fa86a --- /dev/null +++ b/Content/Blueprints/AI/Controller/BP_AuraAIController_Summoner.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0e06d2ae73ce5e758027fe8d14e9147ffad36325a94ac718b83970f918f8a7a +size 26529 diff --git a/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityCooldown_Constant_Aura.uasset b/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityCooldown_Constant_Aura.uasset new file mode 100644 index 0000000..a1a7cba --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityCooldown_Constant_Aura.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ca59e303ee4b2a664407e50a845ceaad61f65193bc3c0370cdf8a83ad759abe +size 2372 diff --git a/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityCost_Constant_Aura.uasset b/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityCost_Constant_Aura.uasset new file mode 100644 index 0000000..7bfdc43 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityCost_Constant_Aura.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2480f901c43dc00c7d0fdb484a537d67d8481184543cca5dff948e6ff4f60cdb +size 2645 diff --git a/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Aura.uasset b/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Aura.uasset new file mode 100644 index 0000000..a83804f --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Aura.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a55636131b2569e0ff0cee0b8648b600b421c8513e9e3108b78c0f5a81900cb +size 2493 diff --git a/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Demon.uasset b/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Demon.uasset new file mode 100644 index 0000000..fd82820 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Demon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a5a80b3573ee4bcebcb847b7638b1ba4d1b9e473d8b845334e565259cb0ffc5 +size 2499 diff --git a/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Fury.uasset b/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Fury.uasset new file mode 100644 index 0000000..dd0843f --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Fury.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efa8564147325b602ec1bd727780b7690c4360b2ef79996d6c4c809673d95047 +size 2203 diff --git a/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Ghoul.uasset b/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Ghoul.uasset new file mode 100644 index 0000000..7b746b3 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Ghoul.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aad9563d894896ebc87c625f127c5b7475afb02608b2420f8dcaf7864117639f +size 2212 diff --git a/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Goblin.uasset b/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Goblin.uasset new file mode 100644 index 0000000..d0b59e7 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/AbilityCurves/CT_AbilityDamages_Goblin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4882f1c4efd0be85f582d4607bcb1ede4f06b70a0fee5d79a6ff593130535f25 +size 2792 diff --git a/Content/Blueprints/AbilitySystem/Data/CharacterClasses/AbilityBooks/DA_AbilityBook_Elementalist.uasset b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/AbilityBooks/DA_AbilityBook_Elementalist.uasset new file mode 100644 index 0000000..35b143a --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/AbilityBooks/DA_AbilityBook_Elementalist.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c250e0ecd84c47954647909ba508bb1d611a13547c556c2e02cdd14ff36b7b1c +size 15228 diff --git a/Content/Blueprints/AbilitySystem/Data/CharacterClasses/AbilityBooks/DA_AbilityBook_Fakes.uasset b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/AbilityBooks/DA_AbilityBook_Fakes.uasset new file mode 100644 index 0000000..4bb2ef5 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/AbilityBooks/DA_AbilityBook_Fakes.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ced0c1fc6b18801b82896d85d46f820005bf05bfa4dd6e23bec96d25c0161b53 +size 16421 diff --git a/Content/Blueprints/AbilitySystem/Data/CharacterClasses/AbilityBooks/DA_AbilityBook_Valkyrie.uasset b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/AbilityBooks/DA_AbilityBook_Valkyrie.uasset new file mode 100644 index 0000000..8ac43d2 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/AbilityBooks/DA_AbilityBook_Valkyrie.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a08f693c78560625c2abe6f31bf32a9e5891de887f2c8bada3a35cedf4c66a55 +size 10403 diff --git a/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_DummyInvincible.uasset b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_DummyInvincible.uasset new file mode 100644 index 0000000..b9479a4 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_DummyInvincible.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89d126ab9add194aa866e349c1c0ba008f2ac0505ef787a6b8b5b576a457f3e1 +size 5317 diff --git a/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_Elementalist.uasset b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_Elementalist.uasset new file mode 100644 index 0000000..4ebc36f --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_Elementalist.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd56204dc30ded213623b00b97390f6a5673a06325dde03a31bc783fd6675f29 +size 10260 diff --git a/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_Ghoul.uasset b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_Ghoul.uasset new file mode 100644 index 0000000..d58abe7 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_Ghoul.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c266e84a64991e94bcddfe2e408418b4af80b7d1c08ed43ae86d599aaaa3a45d +size 6999 diff --git a/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_GoblinSlingshot.uasset b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_GoblinSlingshot.uasset new file mode 100644 index 0000000..77b3618 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_GoblinSlingshot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e74a118112cbfe7592d8b6a924797def6c3d15fb5bbba20dd3e31ffc6a42ab7 +size 7355 diff --git a/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_GoblinSpear.uasset b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_GoblinSpear.uasset new file mode 100644 index 0000000..0b7c08e --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_GoblinSpear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3978bf6cdd162f6e1cfee8a8a511e5b7d223ba7dc0802d753cda7604bb257505 +size 7318 diff --git a/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_SummonedDemon_FireThrower.uasset b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_SummonedDemon_FireThrower.uasset new file mode 100644 index 0000000..6bcf2de --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_SummonedDemon_FireThrower.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d9e0c36a2fc9a47261b491b16698c4f3fc548a3842a314e2e348140f95542ce +size 9267 diff --git a/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_SummonedDemon_IceMaker.uasset b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_SummonedDemon_IceMaker.uasset new file mode 100644 index 0000000..5c5101c --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_SummonedDemon_IceMaker.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73f1b160acd5521229350a9cb1caeb84b99c96366f5f46665130060f4e913d35 +size 9244 diff --git a/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_SummonedDemon_Warrior.uasset b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_SummonedDemon_Warrior.uasset new file mode 100644 index 0000000..8d2909b --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_SummonedDemon_Warrior.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e942a1b8264ef594f1a205461ebf81ff3e2143ccd60590f23234706954d879d5 +size 7342 diff --git a/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_Valkyrie.uasset b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_Valkyrie.uasset new file mode 100644 index 0000000..367079a --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DA_Valkyrie.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b91959f225ac63c44fbfb42ca9cae96b7762fa0007baf0ae8e830ad60ea6b65e +size 9371 diff --git a/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DT_GoblinShaman.uasset b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DT_GoblinShaman.uasset new file mode 100644 index 0000000..4bfe3f3 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/CharacterClasses/DT_GoblinShaman.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27c92a0a25b57726507b0db358b46918fd31cb4ec5aa1a8daabd9251fb8a5779 +size 9545 diff --git a/Content/Blueprints/AbilitySystem/Data/DA_AttributeInfo.uasset b/Content/Blueprints/AbilitySystem/Data/DA_AttributeInfo.uasset new file mode 100644 index 0000000..6f7a65b --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/DA_AttributeInfo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a7da92d32362339d78a194650c3f993937c3c0995699314f877c359e3b260f1 +size 20700 diff --git a/Content/Blueprints/AbilitySystem/Data/DA_EffectsInfos.uasset b/Content/Blueprints/AbilitySystem/Data/DA_EffectsInfos.uasset new file mode 100644 index 0000000..e641b37 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/DA_EffectsInfos.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91d934e665132fcddb62a4c962632f9991a6b6b14422caa8939b0bbc72b211e9 +size 4939 diff --git a/Content/Blueprints/AbilitySystem/Data/DA_LevelingInfo.uasset b/Content/Blueprints/AbilitySystem/Data/DA_LevelingInfo.uasset new file mode 100644 index 0000000..7b83170 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/DA_LevelingInfo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0715711b4e3ef3f21fba04b53bdc9eff66570eb553b58716a23c0159fd177f15 +size 3583 diff --git a/Content/Blueprints/AbilitySystem/Data/ScalingCurves/CT_ElementalistAttributes.uasset b/Content/Blueprints/AbilitySystem/Data/ScalingCurves/CT_ElementalistAttributes.uasset new file mode 100644 index 0000000..f5f2e48 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/ScalingCurves/CT_ElementalistAttributes.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:292ac319f3f5a9ed31e7f66526cbd685c8ed6d6a7c9ba2a22fac2ad64a01e9a5 +size 3152 diff --git a/Content/Blueprints/AbilitySystem/Data/ScalingCurves/CT_RangerAttributes.uasset b/Content/Blueprints/AbilitySystem/Data/ScalingCurves/CT_RangerAttributes.uasset new file mode 100644 index 0000000..08d2eda --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/ScalingCurves/CT_RangerAttributes.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69d46d438d782103722750ba2b6c591e63bc046079dfac88f124dd0db83fa56c +size 3122 diff --git a/Content/Blueprints/AbilitySystem/Data/ScalingCurves/CT_WarriorAttributes.uasset b/Content/Blueprints/AbilitySystem/Data/ScalingCurves/CT_WarriorAttributes.uasset new file mode 100644 index 0000000..805967a --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/ScalingCurves/CT_WarriorAttributes.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eab827a20bc3cf0b1fc5972d53949cd1f2a5e10ede38f3ffbf0344f9172c4cf6 +size 3127 diff --git a/Content/Blueprints/AbilitySystem/Data/ScalingCurves/DT_ExperienceGivenCurves.uasset b/Content/Blueprints/AbilitySystem/Data/ScalingCurves/DT_ExperienceGivenCurves.uasset new file mode 100644 index 0000000..0b06122 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/ScalingCurves/DT_ExperienceGivenCurves.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:679fb51a70038c8cca1e5a1d2afd1bb491a855387dc658b9f448d05441c28dce +size 2816 diff --git a/Content/Blueprints/AbilitySystem/Data/ScalingCurves/DT_LevelingCurves.uasset b/Content/Blueprints/AbilitySystem/Data/ScalingCurves/DT_LevelingCurves.uasset new file mode 100644 index 0000000..856c290 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/ScalingCurves/DT_LevelingCurves.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:762d330f52aff67f74ec1ce066effbc97b626e0cade6289a9966ef7893b2ed15 +size 2241 diff --git a/Content/Blueprints/AbilitySystem/Data/ScalingCurves/DT_StandardCurves.uasset b/Content/Blueprints/AbilitySystem/Data/ScalingCurves/DT_StandardCurves.uasset new file mode 100644 index 0000000..c6bf9a2 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/Data/ScalingCurves/DT_StandardCurves.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32ea5716f9e2b5dcabfe7e1dbc198d68bb62358243159f8ddaa7c2a0dd88e78a +size 2237 diff --git a/Content/Blueprints/AbilitySystem/EffectCalculations/ExecCalc_AbilityDamages.uasset b/Content/Blueprints/AbilitySystem/EffectCalculations/ExecCalc_AbilityDamages.uasset new file mode 100644 index 0000000..4fb65da --- /dev/null +++ b/Content/Blueprints/AbilitySystem/EffectCalculations/ExecCalc_AbilityDamages.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e08552c2e4050b773335cf04a2ca412e90e910cc002a56e576e1f86f1c81b4ea +size 272528 diff --git a/Content/Blueprints/AbilitySystem/EffectCalculations/ExecCalc_BaseDamageCalculations.uasset b/Content/Blueprints/AbilitySystem/EffectCalculations/ExecCalc_BaseDamageCalculations.uasset new file mode 100644 index 0000000..f51cbf3 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/EffectCalculations/ExecCalc_BaseDamageCalculations.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f24744bcd82ef470eb25c39ead2093c6a246405d15485adb8dad3f0fddea0ef +size 352381 diff --git a/Content/Blueprints/AbilitySystem/EffectCalculations/ExecCalc_EnvironmentDamages.uasset b/Content/Blueprints/AbilitySystem/EffectCalculations/ExecCalc_EnvironmentDamages.uasset new file mode 100644 index 0000000..d324022 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/EffectCalculations/ExecCalc_EnvironmentDamages.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a42eccda9b9e30e861289377ed53d1dfe6f3d7dd544f8ac7c404772d93b0209 +size 198207 diff --git a/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_ArmorPenetration.uasset b/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_ArmorPenetration.uasset new file mode 100644 index 0000000..1a52c5b --- /dev/null +++ b/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_ArmorPenetration.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07358dbea6a4e1e7277d96b8951f5dcaf315b298fb52ea49d942fdecb85c872c +size 42739 diff --git a/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_CriticalHitChance.uasset b/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_CriticalHitChance.uasset new file mode 100644 index 0000000..e8801f5 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_CriticalHitChance.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cf444a6c48cb515cf0b06724301ab37ad940fa4207f1fee0d139d3862e3a90f +size 41424 diff --git a/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_CriticalHitDamages.uasset b/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_CriticalHitDamages.uasset new file mode 100644 index 0000000..0982ac1 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_CriticalHitDamages.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5655eaaac0639fb5af57809b04adbfa2c3eb597a9a27a69f8dcc6351530da415 +size 41347 diff --git a/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_MagicalResistance.uasset b/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_MagicalResistance.uasset new file mode 100644 index 0000000..a075975 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_MagicalResistance.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3af96bcbc5a9a81b2406e02c4dfb6c327acd13e64f10117791d3244838d66aa +size 39001 diff --git a/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_MaxHealth.uasset b/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_MaxHealth.uasset new file mode 100644 index 0000000..1f380d7 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_MaxHealth.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4591d4ee1379549bcb1baab8e577c14794ff2d9d33ead603f1393dee6deeaec1 +size 50849 diff --git a/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_MaxMana.uasset b/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_MaxMana.uasset new file mode 100644 index 0000000..302b276 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_MaxMana.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b39176f00cb483062466cd1cd930301e320e111cf9f97be161569a6d523f7837 +size 51116 diff --git a/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_PhysicalResistance.uasset b/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_PhysicalResistance.uasset new file mode 100644 index 0000000..2c1f1b2 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/EffectCalculations/MMC_PhysicalResistance.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e691d3891d344f96235c697cddbfd856aa9b0455d8615f381a23683c59056d02 +size 38982 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GA_Aura_Blink.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GA_Aura_Blink.uasset new file mode 100644 index 0000000..14e807b --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GA_Aura_Blink.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:733d76f22056c84ccf44b726fa1f97dc63958aecc9e401b639bb710c6e4fb6e4 +size 178662 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GA_Aura_CrystalWall.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GA_Aura_CrystalWall.uasset new file mode 100644 index 0000000..7badcc3 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GA_Aura_CrystalWall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:027b1491aa088f66f8467282b0f2730b6aeec02af8795ac6c9108015c7a30963 +size 83701 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GE_Cooldown_Blink.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GE_Cooldown_Blink.uasset new file mode 100644 index 0000000..e9c12b7 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GE_Cooldown_Blink.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3952d0a6595653c6d46e696607dd1caf17cf4f6bf97bd1a1dc515cb04586f510 +size 7195 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GE_Cooldown_CrystalWall.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GE_Cooldown_CrystalWall.uasset new file mode 100644 index 0000000..92f6001 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GE_Cooldown_CrystalWall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15807ef046961367a8948f278d1e9b8a7b11109041d12b620fd0c9a923d3e1da +size 6516 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GE_Cost_Blink.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GE_Cost_Blink.uasset new file mode 100644 index 0000000..db479b3 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GE_Cost_Blink.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9efec438bdd1eef210061989955d2a27e533ef604c66d250b93aa31bb096be0 +size 5718 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GE_Cost_CrystalWall.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GE_Cost_CrystalWall.uasset new file mode 100644 index 0000000..e5a852f --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Arcane/GE_Cost_CrystalWall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4025f93c4c2553247a3d2e30127347979bdffbe3f18a0a2ab49ee52e669700bf +size 11924 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GA_Aura_Firebolt.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GA_Aura_Firebolt.uasset new file mode 100644 index 0000000..645ee31 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GA_Aura_Firebolt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bc19c3024a88833d503c192609c14bac86706468adbdb291c788de7a2fe4ec0 +size 275246 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GA_Aura_FireboltDot.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GA_Aura_FireboltDot.uasset new file mode 100644 index 0000000..67a7b3e --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GA_Aura_FireboltDot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:141c6c871ba07c9bb135f69684bb4efe1cb12d78d8496861ddc5d6900e4c101e +size 100450 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GE_Cooldown_Firebolt.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GE_Cooldown_Firebolt.uasset new file mode 100644 index 0000000..959d471 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GE_Cooldown_Firebolt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fea52618f43a087a15851308a73983e0ce5647c2f98aca05dec96b99a4e89245 +size 6948 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GE_Cost_Firebolt.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GE_Cost_Firebolt.uasset new file mode 100644 index 0000000..3281fb1 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GE_Cost_Firebolt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca43577c60df701df6193d83995ef1c0f10cdd65590778b6c2f4f74e396bc1ca +size 12147 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GE_FireboltBurn.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GE_FireboltBurn.uasset new file mode 100644 index 0000000..8e69824 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Fire/FireBolt/GE_FireboltBurn.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67bfc0698f923e0aa09d8b203c3a391ed81831fc4585c5de1752d80b7883c438 +size 7693 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Shock/Electrocute/GA_Shock_Electrocute.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Shock/Electrocute/GA_Shock_Electrocute.uasset new file mode 100644 index 0000000..970dc10 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Shock/Electrocute/GA_Shock_Electrocute.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd424337fda100ff6747326f49056f137b3f0f31f0b04c459ac6e53d967d6730 +size 514110 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Shock/Electrocute/GE_Cooldown_Shock_Electrocute.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Shock/Electrocute/GE_Cooldown_Shock_Electrocute.uasset new file mode 100644 index 0000000..049c243 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Shock/Electrocute/GE_Cooldown_Shock_Electrocute.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcca20c665d1e4f41278b2a82f46044fa7e8f496098b875fb5bbac8677b6722f +size 6629 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Shock/Electrocute/GE_Cost_Shock_Electrocute.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Shock/Electrocute/GE_Cost_Shock_Electrocute.uasset new file mode 100644 index 0000000..56b5898 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Aura/Shock/Electrocute/GE_Cost_Shock_Electrocute.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bee5cd01b806a8291f25d76953a86f8680cf1ddd305b0faa469cb58aa8863bae +size 12279 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Base/BPL_GameplayAbilityMacros.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Base/BPL_GameplayAbilityMacros.uasset new file mode 100644 index 0000000..d259a4f --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Base/BPL_GameplayAbilityMacros.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37345360c47a4ace22819d089b5620401a88e2558ade6e5ccca4dfd24e25fd66 +size 121217 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Base/GA_Base_CastingToCursor.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Base/GA_Base_CastingToCursor.uasset new file mode 100644 index 0000000..1803eec --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Base/GA_Base_CastingToCursor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acab039eda1e80742898a47e3eba2b1f94f0dabf0f624ae4df42aa9534a9e7c0 +size 191992 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/DefaultAbilities/GA_HitReact.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/DefaultAbilities/GA_HitReact.uasset new file mode 100644 index 0000000..6032c8b --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/DefaultAbilities/GA_HitReact.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81f4c797ed02cd55a47b9c460bdbd97a8659e8e60c471f97c58eca4256ea0cee +size 56632 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/DefaultAbilities/Passive/GA_EventListener.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/DefaultAbilities/Passive/GA_EventListener.uasset new file mode 100644 index 0000000..0d1e5ac --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/DefaultAbilities/Passive/GA_EventListener.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f88b59a354de61984a5ce71501d82807ddc3edad1b4c90c32f3bd73075b56be +size 81744 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/DefaultAbilities/Passive/GE_EventBasedGrantAttribute.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/DefaultAbilities/Passive/GE_EventBasedGrantAttribute.uasset new file mode 100644 index 0000000..1cf91d0 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/DefaultAbilities/Passive/GE_EventBasedGrantAttribute.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a7ab9382d4e97c935cbecee229c365ad8c956561624e4f4315baddea7bb4d67 +size 27799 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Demon/GA_Demon_FireThrow.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Demon/GA_Demon_FireThrow.uasset new file mode 100644 index 0000000..b6f59fc --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Demon/GA_Demon_FireThrow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc95928ae03b4c963955299864ecb0519be8c7641b049f849acbac13fbc46b57 +size 208285 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Demon/GA_Demon_MeleeSpinAttack.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Demon/GA_Demon_MeleeSpinAttack.uasset new file mode 100644 index 0000000..580465e --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Demon/GA_Demon_MeleeSpinAttack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acfdb3737e5cda2c245de06833808a9fce23c2e62a56200b5d926329de3b494d +size 236075 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/BP_Faker_RotatingBall.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/BP_Faker_RotatingBall.uasset new file mode 100644 index 0000000..d97dc08 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/BP_Faker_RotatingBall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6ff9979331661c8aac462c456b4eea1464385fc96d81938a707d6613fae3944 +size 28879 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Five.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Five.uasset new file mode 100644 index 0000000..4efc11f --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Five.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c598fed15dae5b0fcd59327173f029504a8df71653489d9385cfb3cff56d561b +size 14715 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Four.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Four.uasset new file mode 100644 index 0000000..a39a462 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Four.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6de0b0529c03c51049b041bfefc87042df242cd1177fbb598cd488dd1594c1c +size 14715 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_One.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_One.uasset new file mode 100644 index 0000000..f68cab7 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_One.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7e12aac9bcdba6e724124d884f275dd25ee234a77de8848f4ba4276b86a1075 +size 15262 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_PassiveBalls.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_PassiveBalls.uasset new file mode 100644 index 0000000..e2dad73 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_PassiveBalls.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92794e73a8bfe433dd6fca4f881c4068a18741768aee50bea6fd6733a3d1c323 +size 90076 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Six.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Six.uasset new file mode 100644 index 0000000..78d2f2b --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Six.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cb18ed4607080127821a21fc055c91c1837a18e9088689ef81541a47401312b +size 14701 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_SomeDamages.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_SomeDamages.uasset new file mode 100644 index 0000000..e59efb1 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_SomeDamages.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b9225f022794bec5c7782f68bbf41d80d098a1d722ee9c39032e5ed60c3f36a +size 16528 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Three.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Three.uasset new file mode 100644 index 0000000..9d0b6c9 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Three.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f4a524b3fcf4c075cf0d755ef92a9fa41615461bba20c48c53d3a643dd8c7d1 +size 23111 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Two.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Two.uasset new file mode 100644 index 0000000..2ca55e7 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GA_Faker_Two.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a3c5901b5fe3f543c86f7937260d0018ca221efaa5def06ce112ee5087abd9a +size 14701 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GE_Faker_Cooldown.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GE_Faker_Cooldown.uasset new file mode 100644 index 0000000..d7355ed --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GE_Faker_Cooldown.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e3027c14fcc3b2e6185be11ae032edbd39bd5a1f120ee399866bbad1a500f46 +size 7297 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GE_Faker_Cost.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GE_Faker_Cost.uasset new file mode 100644 index 0000000..ddded81 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/GE_Faker_Cost.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c85b9405885c627cdf240493d7fa56bee769cf8543cd5b9223beca339e0d64e7 +size 19700 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/KillOverTime/GA_KillOverTime.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/KillOverTime/GA_KillOverTime.uasset new file mode 100644 index 0000000..d86e606 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/KillOverTime/GA_KillOverTime.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f0f6be4c47a08040f5de825da61cdef978f2b09e54831078c0e441aeb356957 +size 82596 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/KillOverTime/GE_Cooldown_KillOverTime.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/KillOverTime/GE_Cooldown_KillOverTime.uasset new file mode 100644 index 0000000..8506868 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/KillOverTime/GE_Cooldown_KillOverTime.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25074e062d2bb27f2ad96bcaebfd2aa812961f33fdc9094982a1d92038916881 +size 7001 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/KillOverTime/GE_KillOverTime.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/KillOverTime/GE_KillOverTime.uasset new file mode 100644 index 0000000..a56c690 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Fake/KillOverTime/GE_KillOverTime.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c95e079b76028ddde534169b7993cf7baddb4da7416678d9b4aefe5ecc31b35d +size 12660 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/GA_TestAbility.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/GA_TestAbility.uasset new file mode 100644 index 0000000..aad3f99 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/GA_TestAbility.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a47f9f7b7af20ade63d7a31633e9a239f87636685b649954e91ea1334c0d14e +size 50159 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Ghoul/GA_Ghoul_MelleeAttack.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Ghoul/GA_Ghoul_MelleeAttack.uasset new file mode 100644 index 0000000..4d4e095 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Ghoul/GA_Ghoul_MelleeAttack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:857d50fb998a6a66820f80f6ad6e63ade4985ada7123b0dfbdf4fcc1ef16a0e8 +size 296210 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Goblin/GA_Goblin_ShamanFirebolt.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Goblin/GA_Goblin_ShamanFirebolt.uasset new file mode 100644 index 0000000..8b04c72 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Goblin/GA_Goblin_ShamanFirebolt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b4e91c579145b3c028f0821cc0c81d054126ffe1985557922fb6ad1c742a0ff +size 202344 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Goblin/GA_Goblin_Shaman_SummonDemon.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Goblin/GA_Goblin_Shaman_SummonDemon.uasset new file mode 100644 index 0000000..e8e2441 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Goblin/GA_Goblin_Shaman_SummonDemon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d592c284caf04250ed31a76f79b6df8b808fe8a22e4a3b5dc3e0c34f60d79387 +size 153716 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Goblin/GA_Goblin_SlingshotRangedAttack.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Goblin/GA_Goblin_SlingshotRangedAttack.uasset new file mode 100644 index 0000000..b682bae --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Goblin/GA_Goblin_SlingshotRangedAttack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a96603ad22a89509874080b752e29b1df9773510ab39546597f7368c74d32413 +size 202549 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Goblin/GA_Goblin_SpearMelleeAttack.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Goblin/GA_Goblin_SpearMelleeAttack.uasset new file mode 100644 index 0000000..3a533b2 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Goblin/GA_Goblin_SpearMelleeAttack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d028ef62d4650ff1d9bfb871f71fe96ef76c93ca2cbc1c2b935574af7669c4da +size 252662 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Fury/GA_Fury_Swing.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Fury/GA_Fury_Swing.uasset new file mode 100644 index 0000000..ead6a5f --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Fury/GA_Fury_Swing.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d966d191ac2161cf48240766c83fbffd282b49ff29e58d2e2f568233fbecae6b +size 279280 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Fury/GE_Cooldown_Fury_Swing.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Fury/GE_Cooldown_Fury_Swing.uasset new file mode 100644 index 0000000..6d3fd84 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Fury/GE_Cooldown_Fury_Swing.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:012c7ec6c9089d29d84bf5f319df6f02f8c4cd503ac138387e7c80e6268461aa +size 6956 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Fury/GE_Cost_Fury_Swing.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Fury/GE_Cost_Fury_Swing.uasset new file mode 100644 index 0000000..0321389 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Fury/GE_Cost_Fury_Swing.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:847f946a50d454c0fcb512cd2447defd41687811562821146ae9046cabfb9646 +size 11917 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Grace/GA_Grace_Dodge.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Grace/GA_Grace_Dodge.uasset new file mode 100644 index 0000000..f1750f3 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Grace/GA_Grace_Dodge.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbceb8916410cfca4aa4849b1a832074005e050c149908b704830cfcfe5449a6 +size 76514 diff --git a/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Grace/GE_Cooldown_Grace_Dodge.uasset b/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Grace/GE_Cooldown_Grace_Dodge.uasset new file mode 100644 index 0000000..e55cb81 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayAbilities/Valkyrie/Grace/GE_Cooldown_Grace_Dodge.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:631ec77150d638fff9fb07457554f79a68ec5074d5c4b5153462802d29ad00ad +size 6973 diff --git a/Content/Blueprints/AbilitySystem/GameplayCues/GC_KillOverTime.uasset b/Content/Blueprints/AbilitySystem/GameplayCues/GC_KillOverTime.uasset new file mode 100644 index 0000000..89cd5d5 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayCues/GC_KillOverTime.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5571973c5b716c57a1b321a991102b8756ee9770124d1826f2355986b26800a9 +size 26825 diff --git a/Content/Blueprints/AbilitySystem/GameplayCues/GC_PunchImpact.uasset b/Content/Blueprints/AbilitySystem/GameplayCues/GC_PunchImpact.uasset new file mode 100644 index 0000000..a4ed6b6 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayCues/GC_PunchImpact.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de4a6b2686ccefdb8dc22d4a28c78c27f2e8c1356f5c054750837eff046e3eba +size 65497 diff --git a/Content/Blueprints/AbilitySystem/GameplayCues/GC_ShockBurst.uasset b/Content/Blueprints/AbilitySystem/GameplayCues/GC_ShockBurst.uasset new file mode 100644 index 0000000..f07217a --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayCues/GC_ShockBurst.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b51578c64792bcdb0e007a415cab96c626bc0267a27d5b16eb1616316ac0ffc2 +size 36390 diff --git a/Content/Blueprints/AbilitySystem/GameplayCues/GC_ShockLoop.uasset b/Content/Blueprints/AbilitySystem/GameplayCues/GC_ShockLoop.uasset new file mode 100644 index 0000000..33f9546 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayCues/GC_ShockLoop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab90dfe16ec5943f2bf28a04f958af5ae5f432710c301e41e64e0fb4cf103f24 +size 130615 diff --git a/Content/Blueprints/AbilitySystem/GameplayCues/GC_SpearImpact.uasset b/Content/Blueprints/AbilitySystem/GameplayCues/GC_SpearImpact.uasset new file mode 100644 index 0000000..66c33a5 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayCues/GC_SpearImpact.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90ff0a2fd9d876fa1ee97862614b59ff1971587021bb53ee2515165be55459d5 +size 53040 diff --git a/Content/Blueprints/AbilitySystem/GameplayCues/GC_SwordImpact.uasset b/Content/Blueprints/AbilitySystem/GameplayCues/GC_SwordImpact.uasset new file mode 100644 index 0000000..d2553f2 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayCues/GC_SwordImpact.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e763a836aa573ca1b6ee238c9b0a11d6578334b700731074b87e8d75dc2ebfba +size 53016 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_Ghoul.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_Ghoul.uasset new file mode 100644 index 0000000..3503bb3 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_Ghoul.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a94a13fc7e18eceba655f488644991411276c24279f4b18c1f2b4a58ceda083 +size 24297 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_GoblinShaman.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_GoblinShaman.uasset new file mode 100644 index 0000000..dbf0253 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_GoblinShaman.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:533e56c600039f7a3661bc929c3e8900afc7ee7986364e7b66c6bd06b0eb06c4 +size 24101 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_GoblinSlingshot.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_GoblinSlingshot.uasset new file mode 100644 index 0000000..d0bffc4 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_GoblinSlingshot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32132b46386d99734c778c41ad681d7157049435b0c8e962854820911cfd4456 +size 23936 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_GoblinSpear.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_GoblinSpear.uasset new file mode 100644 index 0000000..5369e00 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_GoblinSpear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5ca8770af60cfe47cf425c21ece661c397e4a23874cb90954ea75e1224e645b +size 23886 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_SummonedDemon.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_SummonedDemon.uasset new file mode 100644 index 0000000..021cc4a --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Enemies/GE_StartingAttributes_SummonedDemon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f09c7824391512a5830c9b06a3d73845c95dac830e3569f27239cdd635ecb18e +size 24104 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Player/GE_StartingAttributes_Aura.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Player/GE_StartingAttributes_Aura.uasset new file mode 100644 index 0000000..2a6f8c9 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Player/GE_StartingAttributes_Aura.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c78f77006db0de033b8af2302b713a4d50fbb933da3d79b3203a9efdf1f9709 +size 24627 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Player/GE_StartingAttributes_Valkyrie.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Player/GE_StartingAttributes_Valkyrie.uasset new file mode 100644 index 0000000..7afd631 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/ClassAttributes/Player/GE_StartingAttributes_Valkyrie.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cddea10da23ac5d0543694794e57ca5704a81f0b8f72f699092535c60b273b7b +size 24182 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/DefaultAttributes/GE_Character_PassiveRegeneration.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/DefaultAttributes/GE_Character_PassiveRegeneration.uasset new file mode 100644 index 0000000..46cd243 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/DefaultAttributes/GE_Character_PassiveRegeneration.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72288f91cfb978915f6016b0a4f8140bae16a70ce61ede4f803201e0ab4c0026 +size 16455 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/DefaultAttributes/GE_Character_SecondaryAttributes.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/DefaultAttributes/GE_Character_SecondaryAttributes.uasset new file mode 100644 index 0000000..ad7a43e --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/DefaultAttributes/GE_Character_SecondaryAttributes.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb780aad308403779bb4186c597b714fe85de020c6166cea55df1f37be3588a5 +size 56735 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/DefaultAttributes/GE_StartingAttributes_Base.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/DefaultAttributes/GE_StartingAttributes_Base.uasset new file mode 100644 index 0000000..96d04df --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/DefaultAttributes/GE_StartingAttributes_Base.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c96e0866e22c30ef516b43a468d5cad88ca17c304ce821c2aac06a9c6411d35 +size 24013 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/GE_BlockCursor.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/GE_BlockCursor.uasset new file mode 100644 index 0000000..72e0b9a --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/GE_BlockCursor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c890ccc277cd4086e17978676b453bac781b5639b08e4dd94f112dbc3c038332 +size 6099 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/GE_HitReact.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/GE_HitReact.uasset new file mode 100644 index 0000000..13a7feb --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/GE_HitReact.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb5e5f41efd97f228620c6422d9789102e7a19c93eae02b3d521c2e449e70bda +size 7401 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/GE_InstantHitDamage.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/GE_InstantHitDamage.uasset new file mode 100644 index 0000000..a69a9f5 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/GE_InstantHitDamage.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:117a4bbb3dc5ac39ec146715fc41d0c49a768de000423b40e8e00d2e3b3b4721 +size 7750 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/GE_InstantHitDamage_Mellee.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/GE_InstantHitDamage_Mellee.uasset new file mode 100644 index 0000000..54b18dd --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/GE_InstantHitDamage_Mellee.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5bdb62426da90418971d14b06a1d6cf547c482c213ebb938b7bd979ab744433 +size 6744 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/GE_PreventAbilityInputs.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/GE_PreventAbilityInputs.uasset new file mode 100644 index 0000000..e453985 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/GE_PreventAbilityInputs.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b35d8e4705c6458ce9a5e29077a7c91250a154bbfc80f8e316ec84bf6a57f31 +size 6640 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/GE_RestoreMaxLife.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/GE_RestoreMaxLife.uasset new file mode 100644 index 0000000..86e29c8 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/GE_RestoreMaxLife.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf3bd25b76a47dca5648413aa728f3748db19fa394a3e6a5006fa3ca1ba94909 +size 12119 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/GE_RestoreMaxMana.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/GE_RestoreMaxMana.uasset new file mode 100644 index 0000000..a0d9018 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/GE_RestoreMaxMana.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9c71c23918c93ea9ff103bedc32e1730fdd7624eec09db9b1dac8d8918d0a4b +size 11659 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/GenericEffects/GE_AreaDamageEffect.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/GenericEffects/GE_AreaDamageEffect.uasset new file mode 100644 index 0000000..0bf7238 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/GenericEffects/GE_AreaDamageEffect.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:365ac6d1996d2c94a10769c726498920794ebde36c8a10b6f678a42218e28291 +size 7456 diff --git a/Content/Blueprints/AbilitySystem/GameplayEffects/GenericEffects/GE_AreaDamageEffect_Burning.uasset b/Content/Blueprints/AbilitySystem/GameplayEffects/GenericEffects/GE_AreaDamageEffect_Burning.uasset new file mode 100644 index 0000000..41d2305 --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayEffects/GenericEffects/GE_AreaDamageEffect_Burning.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be459297fe504bd60fed542837838167a3df723a747b73224d50e991b729fcac +size 6794 diff --git a/Content/Blueprints/AbilitySystem/GameplayTags/DT_PrimaryAttributes.uasset b/Content/Blueprints/AbilitySystem/GameplayTags/DT_PrimaryAttributes.uasset new file mode 100644 index 0000000..2c23d5a --- /dev/null +++ b/Content/Blueprints/AbilitySystem/GameplayTags/DT_PrimaryAttributes.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70bf8357315420c006c254e9de3823762b95ad7375bc2e793259264f0bedc656 +size 2819 diff --git a/Content/Blueprints/Actor/Area/BP_EffectArea.uasset b/Content/Blueprints/Actor/Area/BP_EffectArea.uasset new file mode 100644 index 0000000..b2a2d36 --- /dev/null +++ b/Content/Blueprints/Actor/Area/BP_EffectArea.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e01285de78b187716f1961c95dd06f331bbb855e84529d1b3d33cb00717c9d3 +size 61025 diff --git a/Content/Blueprints/Actor/Area/BP_FireArea.uasset b/Content/Blueprints/Actor/Area/BP_FireArea.uasset new file mode 100644 index 0000000..d597f81 --- /dev/null +++ b/Content/Blueprints/Actor/Area/BP_FireArea.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:951dfca5836c5344c645e9a0f0fe2eec0c86cafa6e4d51452f15ba783f1368cc +size 37039 diff --git a/Content/Blueprints/Actor/Area/BP_FullRegenArea.uasset b/Content/Blueprints/Actor/Area/BP_FullRegenArea.uasset new file mode 100644 index 0000000..8f5c168 --- /dev/null +++ b/Content/Blueprints/Actor/Area/BP_FullRegenArea.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae23c32bc2b824b3fcf700b290e44bb9c30d833af3e1e71d4ea8717fa7c924ae +size 37254 diff --git a/Content/Blueprints/Actor/Area/BP_XpArea.uasset b/Content/Blueprints/Actor/Area/BP_XpArea.uasset new file mode 100644 index 0000000..a1dfcc9 --- /dev/null +++ b/Content/Blueprints/Actor/Area/BP_XpArea.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28bb07b8d92553ce7e3337f8266f5c543135f49d56c4729a462f266d49657c24 +size 132967 diff --git a/Content/Blueprints/Actor/Area/GE_FireAreaEffect_Burst.uasset b/Content/Blueprints/Actor/Area/GE_FireAreaEffect_Burst.uasset new file mode 100644 index 0000000..454b1bd --- /dev/null +++ b/Content/Blueprints/Actor/Area/GE_FireAreaEffect_Burst.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd43cbd95de999ac05a51ed45cfe52fb915fdcaf0d37413d15bb468f031ea5ea +size 7813 diff --git a/Content/Blueprints/Actor/Area/GE_GrantAbility_Blink.uasset b/Content/Blueprints/Actor/Area/GE_GrantAbility_Blink.uasset new file mode 100644 index 0000000..5eff6a2 --- /dev/null +++ b/Content/Blueprints/Actor/Area/GE_GrantAbility_Blink.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9378f55a31073af4b1a4196bab6f52dbfe3dd0bc6c17b1e7fb09f2e4a71615a +size 6931 diff --git a/Content/Blueprints/Actor/Area/GE_GrantAbility_CrystalWall.uasset b/Content/Blueprints/Actor/Area/GE_GrantAbility_CrystalWall.uasset new file mode 100644 index 0000000..1245b88 --- /dev/null +++ b/Content/Blueprints/Actor/Area/GE_GrantAbility_CrystalWall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:304c86660a79a295718fc6450bb262ed742468cbba3bd9ef995514b6b6b56802 +size 7473 diff --git a/Content/Blueprints/Actor/Area/GE_GrantFireResistance.uasset b/Content/Blueprints/Actor/Area/GE_GrantFireResistance.uasset new file mode 100644 index 0000000..00bb7e1 --- /dev/null +++ b/Content/Blueprints/Actor/Area/GE_GrantFireResistance.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7871bead83644f87cc1a40d28816eed061a5360f547be6d3437bf92674549bf +size 11418 diff --git a/Content/Blueprints/Actor/Area/GE_GrantIntelligence.uasset b/Content/Blueprints/Actor/Area/GE_GrantIntelligence.uasset new file mode 100644 index 0000000..7ef4b49 --- /dev/null +++ b/Content/Blueprints/Actor/Area/GE_GrantIntelligence.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd1866a858dbc0a1639948e160c759f6e3853ec446df911fd0b724fe9bbfdfe6 +size 11402 diff --git a/Content/Blueprints/Actor/Area/GE_GrantResilience.uasset b/Content/Blueprints/Actor/Area/GE_GrantResilience.uasset new file mode 100644 index 0000000..b3c915b --- /dev/null +++ b/Content/Blueprints/Actor/Area/GE_GrantResilience.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24f82a89f820b3db1560f4731df54a45532f5407c6f7080b679c55fd75b4506c +size 11372 diff --git a/Content/Blueprints/Actor/Area/GE_GrantStrength.uasset b/Content/Blueprints/Actor/Area/GE_GrantStrength.uasset new file mode 100644 index 0000000..ac47c5e --- /dev/null +++ b/Content/Blueprints/Actor/Area/GE_GrantStrength.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7aea176c0aba21a8128f22465dfe4c99347abc5e51afa1dfaff6165062d9a665 +size 11342 diff --git a/Content/Blueprints/Actor/Area/GE_GrantVigor.uasset b/Content/Blueprints/Actor/Area/GE_GrantVigor.uasset new file mode 100644 index 0000000..f70eb2d --- /dev/null +++ b/Content/Blueprints/Actor/Area/GE_GrantVigor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd9963d7483abf2490b107327da2696b3842200cf040bd53650c374303198754 +size 11749 diff --git a/Content/Blueprints/Actor/Area/GE_PreventRegeneration.uasset b/Content/Blueprints/Actor/Area/GE_PreventRegeneration.uasset new file mode 100644 index 0000000..7adbee9 --- /dev/null +++ b/Content/Blueprints/Actor/Area/GE_PreventRegeneration.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:674247af12b70b7f62831c57b6bbb8a01fdbd01b036953350a31b1ac49e363e9 +size 6933 diff --git a/Content/Blueprints/Actor/BP_SomeInteractable.uasset b/Content/Blueprints/Actor/BP_SomeInteractable.uasset new file mode 100644 index 0000000..cd6e36a --- /dev/null +++ b/Content/Blueprints/Actor/BP_SomeInteractable.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1edc8d539510329ff23175e2ab9217e2fe0441c02303c054f04119f8ea474bc +size 103299 diff --git a/Content/Blueprints/Actor/LevelActors/BP_CharacterThrower.uasset b/Content/Blueprints/Actor/LevelActors/BP_CharacterThrower.uasset new file mode 100644 index 0000000..7afb8f7 --- /dev/null +++ b/Content/Blueprints/Actor/LevelActors/BP_CharacterThrower.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f404ee20d8904307b9a8916515537b2d7b72a1795fa7f2a54dab0934fb843128 +size 89667 diff --git a/Content/Blueprints/Actor/LevelActors/BP_DestructionField.uasset b/Content/Blueprints/Actor/LevelActors/BP_DestructionField.uasset new file mode 100644 index 0000000..272fe4c --- /dev/null +++ b/Content/Blueprints/Actor/LevelActors/BP_DestructionField.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f2b9e20cb2d3cd422dc102df8a579aabe153e7d4328e41b3175a9e2966b8f3d +size 98926 diff --git a/Content/Blueprints/Actor/LevelActors/BP_FadingStaticMeshActor.uasset b/Content/Blueprints/Actor/LevelActors/BP_FadingStaticMeshActor.uasset new file mode 100644 index 0000000..584297e --- /dev/null +++ b/Content/Blueprints/Actor/LevelActors/BP_FadingStaticMeshActor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2149122d6469a8218e3d17c99a14158684988b45f723e8853a94edb26577bdc +size 163651 diff --git a/Content/Blueprints/Actor/LevelActors/BP_Spawner.uasset b/Content/Blueprints/Actor/LevelActors/BP_Spawner.uasset new file mode 100644 index 0000000..7b1befb --- /dev/null +++ b/Content/Blueprints/Actor/LevelActors/BP_Spawner.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bdb3cf3ec83d2c9418c7240329140cb6594f01d654be2b90aad684f55e98a74 +size 145020 diff --git a/Content/Blueprints/Actor/LevelActors/BP_TriggeredSpawnArea.uasset b/Content/Blueprints/Actor/LevelActors/BP_TriggeredSpawnArea.uasset new file mode 100644 index 0000000..3477c6b --- /dev/null +++ b/Content/Blueprints/Actor/LevelActors/BP_TriggeredSpawnArea.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6ac753414b9c344b580495b73fd5dbc135c02ad4d4ec4a18afa0ca50bce4a52 +size 71537 diff --git a/Content/Blueprints/Actor/LevelActors/InterestCamera/BP_CameraModifierArea.uasset b/Content/Blueprints/Actor/LevelActors/InterestCamera/BP_CameraModifierArea.uasset new file mode 100644 index 0000000..cb8331f --- /dev/null +++ b/Content/Blueprints/Actor/LevelActors/InterestCamera/BP_CameraModifierArea.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18e665b41c32cb625c6492d3e228af69adec841c5846e0551e2893f55bb28135 +size 101571 diff --git a/Content/Blueprints/Actor/LevelActors/InterestCamera/BP_InterestCameraManager.uasset b/Content/Blueprints/Actor/LevelActors/InterestCamera/BP_InterestCameraManager.uasset new file mode 100644 index 0000000..3c1bc6a --- /dev/null +++ b/Content/Blueprints/Actor/LevelActors/InterestCamera/BP_InterestCameraManager.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02c71feba4087d3b9b0fe77b1d29f5423322aa471c055260742076f3bf76d08a +size 206422 diff --git a/Content/Blueprints/Actor/LevelActors/InterestCamera/S_InterestCamera.uasset b/Content/Blueprints/Actor/LevelActors/InterestCamera/S_InterestCamera.uasset new file mode 100644 index 0000000..1088246 --- /dev/null +++ b/Content/Blueprints/Actor/LevelActors/InterestCamera/S_InterestCamera.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a94be8dca0d310a6af098bd205e7df973a780c5adbf766d1274d92f1ae0efa08 +size 5107 diff --git a/Content/Blueprints/Actor/LevelActors/S_SpawnData.uasset b/Content/Blueprints/Actor/LevelActors/S_SpawnData.uasset new file mode 100644 index 0000000..ae0ae0b --- /dev/null +++ b/Content/Blueprints/Actor/LevelActors/S_SpawnData.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2eef7a0c470c8feb768412c2e53e3e1f98fe9147f36954b5718bd00e27467d46 +size 5651 diff --git a/Content/Blueprints/Actor/Lights/BP_CampFire.uasset b/Content/Blueprints/Actor/Lights/BP_CampFire.uasset new file mode 100644 index 0000000..5eb0c9d --- /dev/null +++ b/Content/Blueprints/Actor/Lights/BP_CampFire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f01cd0b79d424ff629a58524a7951c696f0cd0f63b31492b9038b81d2dc9cc62 +size 29018 diff --git a/Content/Blueprints/Actor/Lights/BP_Candle.uasset b/Content/Blueprints/Actor/Lights/BP_Candle.uasset new file mode 100644 index 0000000..117b7f3 --- /dev/null +++ b/Content/Blueprints/Actor/Lights/BP_Candle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1567a5b48a6f3999a2f8a92a5595609600fa4da602a7b3ea263b9955148d95dd +size 27769 diff --git a/Content/Blueprints/Actor/Lights/BP_FirePillar.uasset b/Content/Blueprints/Actor/Lights/BP_FirePillar.uasset new file mode 100644 index 0000000..9ec364b --- /dev/null +++ b/Content/Blueprints/Actor/Lights/BP_FirePillar.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76fdee31a88d841903a8674baa9f1387d81db4908087a44b77a933bc462deb0d +size 109361 diff --git a/Content/Blueprints/Actor/Lights/BP_LightCandle.uasset b/Content/Blueprints/Actor/Lights/BP_LightCandle.uasset new file mode 100644 index 0000000..d908a29 --- /dev/null +++ b/Content/Blueprints/Actor/Lights/BP_LightCandle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce25daf50a076c7bab53c3dbc86b1eec42bfba5ae70c31c40fb10a71b7af2e3c +size 66137 diff --git a/Content/Blueprints/Actor/Lights/BP_Torch.uasset b/Content/Blueprints/Actor/Lights/BP_Torch.uasset new file mode 100644 index 0000000..24c552e --- /dev/null +++ b/Content/Blueprints/Actor/Lights/BP_Torch.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:281ec452c0319f08d42275de5e11a38c8e04d12d5e3638ab7e210ac9fa7e98fc +size 27913 diff --git a/Content/Blueprints/Actor/Objective/BP_Beacon.uasset b/Content/Blueprints/Actor/Objective/BP_Beacon.uasset new file mode 100644 index 0000000..00f3c2a --- /dev/null +++ b/Content/Blueprints/Actor/Objective/BP_Beacon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c7b74020aacec31bca2b7487187c52869ee26dbd9db22c377d5c8e97ed47a44 +size 112217 diff --git a/Content/Blueprints/Actor/Objective/BP_Checkpoint.uasset b/Content/Blueprints/Actor/Objective/BP_Checkpoint.uasset new file mode 100644 index 0000000..0986d5f --- /dev/null +++ b/Content/Blueprints/Actor/Objective/BP_Checkpoint.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d85e4147f0758ee2dbadc586f869931df08762c6243091d55c0c38369901828a +size 115836 diff --git a/Content/Blueprints/Actor/Potion/BP_BadCrystal.uasset b/Content/Blueprints/Actor/Potion/BP_BadCrystal.uasset new file mode 100644 index 0000000..10bede0 --- /dev/null +++ b/Content/Blueprints/Actor/Potion/BP_BadCrystal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c086d83689bc7d8e50432c54a5685bfba624e58a20d9f1ecbbed1e7b253c815 +size 39605 diff --git a/Content/Blueprints/Actor/Potion/BP_HealthCrystal.uasset b/Content/Blueprints/Actor/Potion/BP_HealthCrystal.uasset new file mode 100644 index 0000000..a9a3703 --- /dev/null +++ b/Content/Blueprints/Actor/Potion/BP_HealthCrystal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88d41080175646fbddd3fa7b2f675404200179dea870fce988fdc4381efd1b42 +size 40019 diff --git a/Content/Blueprints/Actor/Potion/BP_HealthPotion.uasset b/Content/Blueprints/Actor/Potion/BP_HealthPotion.uasset new file mode 100644 index 0000000..6a3bbb2 --- /dev/null +++ b/Content/Blueprints/Actor/Potion/BP_HealthPotion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab0e307654cce0ea004ac216bc1e9406ffc6cd5853245251f09dbac0c1c67554 +size 40498 diff --git a/Content/Blueprints/Actor/Potion/BP_ManaPotion.uasset b/Content/Blueprints/Actor/Potion/BP_ManaPotion.uasset new file mode 100644 index 0000000..f0be196 --- /dev/null +++ b/Content/Blueprints/Actor/Potion/BP_ManaPotion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8875061e8692ce164153b566f0189ede5482c326d1a2b8b5974680966a8d3281 +size 40541 diff --git a/Content/Blueprints/Actor/Potion/BP_Potion.uasset b/Content/Blueprints/Actor/Potion/BP_Potion.uasset new file mode 100644 index 0000000..c42bf30 --- /dev/null +++ b/Content/Blueprints/Actor/Potion/BP_Potion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef5cedd673ffb4c4834e71f0352fd3b87d4d4f3ce6b590afa26e75a22a6cd851 +size 69180 diff --git a/Content/Blueprints/Actor/Potion/BP_RegenPotion.uasset b/Content/Blueprints/Actor/Potion/BP_RegenPotion.uasset new file mode 100644 index 0000000..dd17460 --- /dev/null +++ b/Content/Blueprints/Actor/Potion/BP_RegenPotion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06c333b58f01228b3fba4e9be02c71a7ce88fac56599f3915d91b9f4fa3fe498 +size 42429 diff --git a/Content/Blueprints/Actor/Potion/CT_AttributeCurveFactor.uasset b/Content/Blueprints/Actor/Potion/CT_AttributeCurveFactor.uasset new file mode 100644 index 0000000..8f2a178 --- /dev/null +++ b/Content/Blueprints/Actor/Potion/CT_AttributeCurveFactor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36c6e9d5c3f5f1694f6429b329bd1afd73d3664fdf8add4cc9a07483e8319c00 +size 2417 diff --git a/Content/Blueprints/Actor/Potion/CT_PotionEffects.uasset b/Content/Blueprints/Actor/Potion/CT_PotionEffects.uasset new file mode 100644 index 0000000..68a62a2 --- /dev/null +++ b/Content/Blueprints/Actor/Potion/CT_PotionEffects.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b229c725641c9fb76735a13366db7b35b02cbd3a0dc7356e59776c97bcce34d +size 2414 diff --git a/Content/Blueprints/Actor/Potion/GE_HealthPotionEffect.uasset b/Content/Blueprints/Actor/Potion/GE_HealthPotionEffect.uasset new file mode 100644 index 0000000..a360795 --- /dev/null +++ b/Content/Blueprints/Actor/Potion/GE_HealthPotionEffect.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10ecd46588587509e5adac850f05e2c60f86181fdcbb9752f40e66559efa8655 +size 12839 diff --git a/Content/Blueprints/Actor/Potion/GE_HurtOverTimeEffect.uasset b/Content/Blueprints/Actor/Potion/GE_HurtOverTimeEffect.uasset new file mode 100644 index 0000000..589904b --- /dev/null +++ b/Content/Blueprints/Actor/Potion/GE_HurtOverTimeEffect.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84c9bf285ba0750ec08d918505a84a8426010d9228e0bf80527ae98186eaebe9 +size 17001 diff --git a/Content/Blueprints/Actor/Potion/GE_ManaPotionEffect.uasset b/Content/Blueprints/Actor/Potion/GE_ManaPotionEffect.uasset new file mode 100644 index 0000000..2f549ec --- /dev/null +++ b/Content/Blueprints/Actor/Potion/GE_ManaPotionEffect.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:653588d8f249f10ac1cbb29e0e89ab1602d4461ace4cdad3942c50c1070da167 +size 12015 diff --git a/Content/Blueprints/Actor/ProjectileBlocker/BP_ProjectileBlower.uasset b/Content/Blueprints/Actor/ProjectileBlocker/BP_ProjectileBlower.uasset new file mode 100644 index 0000000..50cccc3 --- /dev/null +++ b/Content/Blueprints/Actor/ProjectileBlocker/BP_ProjectileBlower.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba62bf570480931df23b1671e6714cbea265a3e06f5a1e875897c5870cd73af6 +size 95702 diff --git a/Content/Blueprints/Actor/ProjectileBlocker/BP_ProjectilePortal.uasset b/Content/Blueprints/Actor/ProjectileBlocker/BP_ProjectilePortal.uasset new file mode 100644 index 0000000..568eed8 --- /dev/null +++ b/Content/Blueprints/Actor/ProjectileBlocker/BP_ProjectilePortal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07f3d469de8340652e966fdc324eb3988d3cec5b5230de28373562e7c4230326 +size 251311 diff --git a/Content/Blueprints/Actor/ProjectileBlocker/BP_ProjectileWallBouncer.uasset b/Content/Blueprints/Actor/ProjectileBlocker/BP_ProjectileWallBouncer.uasset new file mode 100644 index 0000000..fffab4f --- /dev/null +++ b/Content/Blueprints/Actor/ProjectileBlocker/BP_ProjectileWallBouncer.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15220147e4b014e4c56ac1e17aca541ac8c929cc5ae5ca293eae1a918ca4f8a7 +size 86866 diff --git a/Content/Blueprints/Actor/ProjectileBlocker/M_DynamicTexture.uasset b/Content/Blueprints/Actor/ProjectileBlocker/M_DynamicTexture.uasset new file mode 100644 index 0000000..7e57a66 --- /dev/null +++ b/Content/Blueprints/Actor/ProjectileBlocker/M_DynamicTexture.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c87cad8ff2b12300fd7cbb315c97de91d2aacb1d0f71c23de4f4bfdd299cb56c +size 11269 diff --git a/Content/Blueprints/Actor/Projectiles/BP_AuraProjectile.uasset b/Content/Blueprints/Actor/Projectiles/BP_AuraProjectile.uasset new file mode 100644 index 0000000..a8b88fe --- /dev/null +++ b/Content/Blueprints/Actor/Projectiles/BP_AuraProjectile.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dbf31756578277c134df4c3bcfa48cc0fb89318f5c10e4c6b552b3c4abd0a94 +size 116974 diff --git a/Content/Blueprints/Actor/Projectiles/BP_Firebolt.uasset b/Content/Blueprints/Actor/Projectiles/BP_Firebolt.uasset new file mode 100644 index 0000000..a603811 --- /dev/null +++ b/Content/Blueprints/Actor/Projectiles/BP_Firebolt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e5fd773b298ee4d3f013458117421b94f7e31482e4466fc08a70b50ca223d6b +size 53717 diff --git a/Content/Blueprints/Actor/Projectiles/BP_Slingshot_Rock.uasset b/Content/Blueprints/Actor/Projectiles/BP_Slingshot_Rock.uasset new file mode 100644 index 0000000..7d918cd --- /dev/null +++ b/Content/Blueprints/Actor/Projectiles/BP_Slingshot_Rock.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d38b5559635809474d41e9c41d2a1ffea8bd0c4baa49d5daad6e30eaf65a1833 +size 76461 diff --git a/Content/Blueprints/AnimNotify/ANS_GameplayEvent.uasset b/Content/Blueprints/AnimNotify/ANS_GameplayEvent.uasset new file mode 100644 index 0000000..861be39 --- /dev/null +++ b/Content/Blueprints/AnimNotify/ANS_GameplayEvent.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:134cae60fea95c0a71f7fb08e0afdfcb71ef7ad2b9de55a3772f7f9073956fb4 +size 60595 diff --git a/Content/Blueprints/AnimNotify/AN_GameplayEvent.uasset b/Content/Blueprints/AnimNotify/AN_GameplayEvent.uasset new file mode 100644 index 0000000..fc5f410 --- /dev/null +++ b/Content/Blueprints/AnimNotify/AN_GameplayEvent.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa77ef554da90d2a26cb667ca99bc373905c3c5d7329453b15fced0410762efb +size 31875 diff --git a/Content/Blueprints/Character/Enemies/ABP_Enemy.uasset b/Content/Blueprints/Character/Enemies/ABP_Enemy.uasset new file mode 100644 index 0000000..18dbe6c --- /dev/null +++ b/Content/Blueprints/Character/Enemies/ABP_Enemy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:439d4ba141d493e8537c206c4aa9c60bf8158dd00be16a2022fda798eac6813f +size 110737 diff --git a/Content/Blueprints/Character/Enemies/BP_AuraEnemy.uasset b/Content/Blueprints/Character/Enemies/BP_AuraEnemy.uasset new file mode 100644 index 0000000..21a7c00 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/BP_AuraEnemy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aecca822ea4a48a234ba74e832d81ddbc7197265a47966a76db213982b5af90c +size 350331 diff --git a/Content/Blueprints/Character/Enemies/Dummy/BP_DummyGoblin.uasset b/Content/Blueprints/Character/Enemies/Dummy/BP_DummyGoblin.uasset new file mode 100644 index 0000000..4472468 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Dummy/BP_DummyGoblin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af9fd2bd0d2ee633abee8e123ee18b27f08789589c40085c3dc4fa562e604176 +size 226935 diff --git a/Content/Blueprints/Character/Enemies/Ghoul/ABP_Ghoul.uasset b/Content/Blueprints/Character/Enemies/Ghoul/ABP_Ghoul.uasset new file mode 100644 index 0000000..7672bb3 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Ghoul/ABP_Ghoul.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e94c801342e95b49fc7ed2d4c2b8bb4361974735c9400b39268765ffa26d54d2 +size 31055 diff --git a/Content/Blueprints/Character/Enemies/Ghoul/AM_GhoulAttackLeft.uasset b/Content/Blueprints/Character/Enemies/Ghoul/AM_GhoulAttackLeft.uasset new file mode 100644 index 0000000..913ba37 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Ghoul/AM_GhoulAttackLeft.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da949bd641426d4afb8e81b8af9231def957d70246be72b9e62695328189c711 +size 20139 diff --git a/Content/Blueprints/Character/Enemies/Ghoul/AM_GhoulAttackRight.uasset b/Content/Blueprints/Character/Enemies/Ghoul/AM_GhoulAttackRight.uasset new file mode 100644 index 0000000..ac5cdc5 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Ghoul/AM_GhoulAttackRight.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82a45ae82a8e13c09bef9e7ee03f0d30b303d688b11d0999955bf065640e8526 +size 20195 diff --git a/Content/Blueprints/Character/Enemies/Ghoul/AM_HitReact_Ghoul.uasset b/Content/Blueprints/Character/Enemies/Ghoul/AM_HitReact_Ghoul.uasset new file mode 100644 index 0000000..510e870 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Ghoul/AM_HitReact_Ghoul.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:168af7bd1d4d2d85871301601aae6a7a2aff557d6eb06ca44e889b0d1751e9bf +size 11951 diff --git a/Content/Blueprints/Character/Enemies/Ghoul/BP_Ghoul.uasset b/Content/Blueprints/Character/Enemies/Ghoul/BP_Ghoul.uasset new file mode 100644 index 0000000..7b16618 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Ghoul/BP_Ghoul.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eae77c5d7c8909d6cea15819ab97ff6692bbe70d181a410a92ac139e1bb9af32 +size 145160 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Shaman/ABP_Shaman.uasset b/Content/Blueprints/Character/Enemies/Goblin_Shaman/ABP_Shaman.uasset new file mode 100644 index 0000000..7c94c66 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Shaman/ABP_Shaman.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d71e8cb2c11d14fa4a4e7d3e580f6fe52f8d6c44cba4530eebfcdd1a12f42462 +size 31776 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Shaman/AM_GoblinShaman_Summon.uasset b/Content/Blueprints/Character/Enemies/Goblin_Shaman/AM_GoblinShaman_Summon.uasset new file mode 100644 index 0000000..051feee --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Shaman/AM_GoblinShaman_Summon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e19b24ba800d0a3e190b02cdd703d1a327f24015b2be3ff4d6abc68a2da2a02 +size 12332 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Shaman/AM_HitReact_Shaman.uasset b/Content/Blueprints/Character/Enemies/Goblin_Shaman/AM_HitReact_Shaman.uasset new file mode 100644 index 0000000..d25dc13 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Shaman/AM_HitReact_Shaman.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0487d0cb79b41b571c0dc38c9c5118ad367e28602c5d0af02005b6e426aa3c56 +size 12325 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Shaman/AM_SpellThrow_Shaman.uasset b/Content/Blueprints/Character/Enemies/Goblin_Shaman/AM_SpellThrow_Shaman.uasset new file mode 100644 index 0000000..318dc39 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Shaman/AM_SpellThrow_Shaman.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd57ef8790de21aa5ac1a68cac1fb47b10fa1dc017decd71539104aaa5189b1e +size 18267 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Shaman/BP_Goblin_Shaman.uasset b/Content/Blueprints/Character/Enemies/Goblin_Shaman/BP_Goblin_Shaman.uasset new file mode 100644 index 0000000..590a679 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Shaman/BP_Goblin_Shaman.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83db63c68c38d52194e6254b14b7ccede8b5b6064dd01016ebebd75a0933dbcd +size 139534 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Slingshot/ABP_Goblin_Slingshot.uasset b/Content/Blueprints/Character/Enemies/Goblin_Slingshot/ABP_Goblin_Slingshot.uasset new file mode 100644 index 0000000..5e139ef --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Slingshot/ABP_Goblin_Slingshot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68b283bd65593d4e86752f8bf6ea926b5d3ecbab10a49d0a29c95b5a54a939d3 +size 81624 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Slingshot/ABP_Slingshot.uasset b/Content/Blueprints/Character/Enemies/Goblin_Slingshot/ABP_Slingshot.uasset new file mode 100644 index 0000000..1b2996c --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Slingshot/ABP_Slingshot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e62d659061fe0ee86c14da1a012e6d79b66cdd94ed78940bd8cded2e1fb9240 +size 138021 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Slingshot/AM_GoblinSlingshotRangedAttack.uasset b/Content/Blueprints/Character/Enemies/Goblin_Slingshot/AM_GoblinSlingshotRangedAttack.uasset new file mode 100644 index 0000000..5bfe0fc --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Slingshot/AM_GoblinSlingshotRangedAttack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:845358fe0c182382decf26cbdad370ccebed91c953274f5c7cf836ca9bda053a +size 19924 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Slingshot/AM_HitReact_Goblin_Slingshot.uasset b/Content/Blueprints/Character/Enemies/Goblin_Slingshot/AM_HitReact_Goblin_Slingshot.uasset new file mode 100644 index 0000000..9b4dbf2 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Slingshot/AM_HitReact_Goblin_Slingshot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21314ecb1d050ad69d3b977dab7c7ba982b300d6b03850edff6c9bec44bdaa5e +size 12474 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Slingshot/AM_Slingshot_Attack.uasset b/Content/Blueprints/Character/Enemies/Goblin_Slingshot/AM_Slingshot_Attack.uasset new file mode 100644 index 0000000..388f562 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Slingshot/AM_Slingshot_Attack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8038d5dcb2b7859f102a1b940bb742179d1449ac9d364df3048b0f61dbd45ca5 +size 8355 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Slingshot/BP_Goblin_Slingshot.uasset b/Content/Blueprints/Character/Enemies/Goblin_Slingshot/BP_Goblin_Slingshot.uasset new file mode 100644 index 0000000..06cbdd5 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Slingshot/BP_Goblin_Slingshot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:947642d551b9415488e830a411cfaa7837a2beff6e686eeb616d6b75a04cf610 +size 137507 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Spear/ABP_Goblin_Spear.uasset b/Content/Blueprints/Character/Enemies/Goblin_Spear/ABP_Goblin_Spear.uasset new file mode 100644 index 0000000..7844337 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Spear/ABP_Goblin_Spear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7d9253c4a753a0f0c04507fe123c149e076d3d665ae6ac78fa2d8721e31b028 +size 30864 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Spear/AM_GoblinSpearMelleeAttack.uasset b/Content/Blueprints/Character/Enemies/Goblin_Spear/AM_GoblinSpearMelleeAttack.uasset new file mode 100644 index 0000000..c54af2a --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Spear/AM_GoblinSpearMelleeAttack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:455c32b0802c8275ce7ca3b4d90aa7b4ccd085c9e9c9d061f9aa3d910af51c88 +size 17343 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Spear/AM_HitReact_Goblin_Spear.uasset b/Content/Blueprints/Character/Enemies/Goblin_Spear/AM_HitReact_Goblin_Spear.uasset new file mode 100644 index 0000000..2f7334a --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Spear/AM_HitReact_Goblin_Spear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1a2b795981786393236d739d9dbb134df5f1a8b81f30cd8bf1e58b097eecaf3 +size 13008 diff --git a/Content/Blueprints/Character/Enemies/Goblin_Spear/BP_Goblin_Spear.uasset b/Content/Blueprints/Character/Enemies/Goblin_Spear/BP_Goblin_Spear.uasset new file mode 100644 index 0000000..6698ded --- /dev/null +++ b/Content/Blueprints/Character/Enemies/Goblin_Spear/BP_Goblin_Spear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe7807d21618bfa7ac70a22708fe84f863856673f659b61c8caa1eeb4ef4a17a +size 129181 diff --git a/Content/Blueprints/Character/Enemies/SummonedDemon/ABP_SummonedDemon.uasset b/Content/Blueprints/Character/Enemies/SummonedDemon/ABP_SummonedDemon.uasset new file mode 100644 index 0000000..d257dee --- /dev/null +++ b/Content/Blueprints/Character/Enemies/SummonedDemon/ABP_SummonedDemon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcd00b0a1ccf211515cb0e5ca2ddfb64ae17430ac6b15d950b82a085f8c70c82 +size 28235 diff --git a/Content/Blueprints/Character/Enemies/SummonedDemon/AM_HitReact_SummonedDemon.uasset b/Content/Blueprints/Character/Enemies/SummonedDemon/AM_HitReact_SummonedDemon.uasset new file mode 100644 index 0000000..5459444 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/SummonedDemon/AM_HitReact_SummonedDemon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc9807bcd3971f069ef97152e9dc4085fac14b44e5599f33a30a967901014962 +size 12641 diff --git a/Content/Blueprints/Character/Enemies/SummonedDemon/AM_SummonedDemon_TailAttackLeft.uasset b/Content/Blueprints/Character/Enemies/SummonedDemon/AM_SummonedDemon_TailAttackLeft.uasset new file mode 100644 index 0000000..8aaaa8a --- /dev/null +++ b/Content/Blueprints/Character/Enemies/SummonedDemon/AM_SummonedDemon_TailAttackLeft.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2b5a9f6f74538c99bbf3dbb5de22e9e29d1f9b01241abb08b37bed593b7f336 +size 14883 diff --git a/Content/Blueprints/Character/Enemies/SummonedDemon/AM_SummonedDemon_TailAttackRight.uasset b/Content/Blueprints/Character/Enemies/SummonedDemon/AM_SummonedDemon_TailAttackRight.uasset new file mode 100644 index 0000000..02dd468 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/SummonedDemon/AM_SummonedDemon_TailAttackRight.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad22be4b78744058d1157f4efb23dee02409a65de20036e92bfc5132b7fd35b3 +size 14938 diff --git a/Content/Blueprints/Character/Enemies/SummonedDemon/AM_SummonedDemon_Throw.uasset b/Content/Blueprints/Character/Enemies/SummonedDemon/AM_SummonedDemon_Throw.uasset new file mode 100644 index 0000000..0de9d52 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/SummonedDemon/AM_SummonedDemon_Throw.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9165c0f791679431c71eb0ee7e5963751ad8da7fd65f59b5ebdd49be7d2adbb7 +size 13786 diff --git a/Content/Blueprints/Character/Enemies/SummonedDemon/BP_SummonedDemon_Base.uasset b/Content/Blueprints/Character/Enemies/SummonedDemon/BP_SummonedDemon_Base.uasset new file mode 100644 index 0000000..3de5c20 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/SummonedDemon/BP_SummonedDemon_Base.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e5a77e3d0a7b39bea0d346d73a6d84cb96ab6f1bd8d37312532bd0fc58760c1 +size 182663 diff --git a/Content/Blueprints/Character/Enemies/SummonedDemon/BP_SummonedDemon_FireThrower.uasset b/Content/Blueprints/Character/Enemies/SummonedDemon/BP_SummonedDemon_FireThrower.uasset new file mode 100644 index 0000000..ed73b8a --- /dev/null +++ b/Content/Blueprints/Character/Enemies/SummonedDemon/BP_SummonedDemon_FireThrower.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01783cfe317c38233dff901fa7c572f46866fc46d928f20931664218ed567451 +size 42618 diff --git a/Content/Blueprints/Character/Enemies/SummonedDemon/BP_SummonedDemon_IceMaker.uasset b/Content/Blueprints/Character/Enemies/SummonedDemon/BP_SummonedDemon_IceMaker.uasset new file mode 100644 index 0000000..f8dbc73 --- /dev/null +++ b/Content/Blueprints/Character/Enemies/SummonedDemon/BP_SummonedDemon_IceMaker.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3734bc595d85bb9429cd4c42a7c63c16acfa4a63a5f45d85321156a5f0b2102 +size 42131 diff --git a/Content/Blueprints/Character/Enemies/SummonedDemon/BP_SummonedDemon_Warrior.uasset b/Content/Blueprints/Character/Enemies/SummonedDemon/BP_SummonedDemon_Warrior.uasset new file mode 100644 index 0000000..4bb63df --- /dev/null +++ b/Content/Blueprints/Character/Enemies/SummonedDemon/BP_SummonedDemon_Warrior.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa114dad76869aa35a1d40667a2e359705e238cbf18453ee30b09cf7e1c8ab5d +size 42535 diff --git a/Content/Blueprints/Character/Enemies/SummonedDemon/DT_DemonSkin.uasset b/Content/Blueprints/Character/Enemies/SummonedDemon/DT_DemonSkin.uasset new file mode 100644 index 0000000..019788d --- /dev/null +++ b/Content/Blueprints/Character/Enemies/SummonedDemon/DT_DemonSkin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ec6c151aa615198351e2b27743cee30fce50d9610bf2882c7c266f7d98a8ab5 +size 5197 diff --git a/Content/Blueprints/Character/Playable/Aura/ABP_Aura.uasset b/Content/Blueprints/Character/Playable/Aura/ABP_Aura.uasset new file mode 100644 index 0000000..f5d850c --- /dev/null +++ b/Content/Blueprints/Character/Playable/Aura/ABP_Aura.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d63040253f08a02a2ee2195c731f4f9bdd35703f024ad64532fc72fda1d44de3 +size 150313 diff --git a/Content/Blueprints/Character/Playable/Aura/AM_HitReact_Aura.uasset b/Content/Blueprints/Character/Playable/Aura/AM_HitReact_Aura.uasset new file mode 100644 index 0000000..7c2c56c --- /dev/null +++ b/Content/Blueprints/Character/Playable/Aura/AM_HitReact_Aura.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f97a44f9bc06ff94438cb43d4d16f1e637adce852bab0334b4c57c7540aa6347 +size 10115 diff --git a/Content/Blueprints/Character/Playable/Aura/AM_SpellIncant_Aura.uasset b/Content/Blueprints/Character/Playable/Aura/AM_SpellIncant_Aura.uasset new file mode 100644 index 0000000..3d044f4 --- /dev/null +++ b/Content/Blueprints/Character/Playable/Aura/AM_SpellIncant_Aura.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af9a254ca016c581308edc927da58423e07bb3254327f2306c88cbda14fe1a33 +size 15591 diff --git a/Content/Blueprints/Character/Playable/Aura/AM_SpellThrow_Aura.uasset b/Content/Blueprints/Character/Playable/Aura/AM_SpellThrow_Aura.uasset new file mode 100644 index 0000000..e3e01d3 --- /dev/null +++ b/Content/Blueprints/Character/Playable/Aura/AM_SpellThrow_Aura.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc6fdd1a09adc4185dd30ec9aa02f0eaa17e178abd7980c447d5dc7fa1426679 +size 17025 diff --git a/Content/Blueprints/Character/Playable/Aura/AM_Spell_Channel_Aura.uasset b/Content/Blueprints/Character/Playable/Aura/AM_Spell_Channel_Aura.uasset new file mode 100644 index 0000000..d91537c --- /dev/null +++ b/Content/Blueprints/Character/Playable/Aura/AM_Spell_Channel_Aura.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36466c63d9407e955da4a856d42c60f6de2eb3f38f7b918f863266925e28f082 +size 14354 diff --git a/Content/Blueprints/Character/Playable/Aura/BP_Aura.uasset b/Content/Blueprints/Character/Playable/Aura/BP_Aura.uasset new file mode 100644 index 0000000..38b6426 --- /dev/null +++ b/Content/Blueprints/Character/Playable/Aura/BP_Aura.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49d5146f377a6603063601afa9a7ccb792b0f335959fc532d179683255b3daa4 +size 88156 diff --git a/Content/Blueprints/Character/Playable/BP_PlayerCharacterBase.uasset b/Content/Blueprints/Character/Playable/BP_PlayerCharacterBase.uasset new file mode 100644 index 0000000..1d84e90 --- /dev/null +++ b/Content/Blueprints/Character/Playable/BP_PlayerCharacterBase.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:059094097e66e1d975d67f613c66b51f42ed5eed7dcdeb2062c22b1b6f002911 +size 109584 diff --git a/Content/Blueprints/Character/Playable/Valkyrie/ABP_Valkyrie.uasset b/Content/Blueprints/Character/Playable/Valkyrie/ABP_Valkyrie.uasset new file mode 100644 index 0000000..70c87aa --- /dev/null +++ b/Content/Blueprints/Character/Playable/Valkyrie/ABP_Valkyrie.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3bd61079da415a4b4ab28f9bffb53dc42709677ac1ef072a3e9e30406db046b +size 149770 diff --git a/Content/Blueprints/Character/Playable/Valkyrie/AM_AttackL_Valkyrie.uasset b/Content/Blueprints/Character/Playable/Valkyrie/AM_AttackL_Valkyrie.uasset new file mode 100644 index 0000000..f2fda6b --- /dev/null +++ b/Content/Blueprints/Character/Playable/Valkyrie/AM_AttackL_Valkyrie.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c83c5136bbaddaaef381fac038ba31d39919fe1da5b392c143f5550014d2a5a +size 17005 diff --git a/Content/Blueprints/Character/Playable/Valkyrie/AM_AttackR_Valkyrie.uasset b/Content/Blueprints/Character/Playable/Valkyrie/AM_AttackR_Valkyrie.uasset new file mode 100644 index 0000000..1bd5600 --- /dev/null +++ b/Content/Blueprints/Character/Playable/Valkyrie/AM_AttackR_Valkyrie.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f5043d7ba99070ffcf5e44a5be29c5ac338b75865ca733beeeb807d8285a393 +size 16938 diff --git a/Content/Blueprints/Character/Playable/Valkyrie/AM_AttackTop_Valkyrie.uasset b/Content/Blueprints/Character/Playable/Valkyrie/AM_AttackTop_Valkyrie.uasset new file mode 100644 index 0000000..d4dcf47 --- /dev/null +++ b/Content/Blueprints/Character/Playable/Valkyrie/AM_AttackTop_Valkyrie.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a7f98138c923183fafe1ad41d017205a3a5cae428e52e3d18b7ee14a2153471 +size 17068 diff --git a/Content/Blueprints/Character/Playable/Valkyrie/AM_HitReact_Valkyrie.uasset b/Content/Blueprints/Character/Playable/Valkyrie/AM_HitReact_Valkyrie.uasset new file mode 100644 index 0000000..e139bd6 --- /dev/null +++ b/Content/Blueprints/Character/Playable/Valkyrie/AM_HitReact_Valkyrie.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41ee38f7553a778b5a00a5a235832bb47fffd433029229ecb76e4c08d5f9983e +size 9657 diff --git a/Content/Blueprints/Character/Playable/Valkyrie/BP_Valkyrie.uasset b/Content/Blueprints/Character/Playable/Valkyrie/BP_Valkyrie.uasset new file mode 100644 index 0000000..b987108 --- /dev/null +++ b/Content/Blueprints/Character/Playable/Valkyrie/BP_Valkyrie.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31dc7028be5476f05f7c00d2e96bf2d16789dfaedcf7d2a87e81f099964b959a +size 85393 diff --git a/Content/Blueprints/Components/BPI_Fade.uasset b/Content/Blueprints/Components/BPI_Fade.uasset new file mode 100644 index 0000000..8fff5b3 --- /dev/null +++ b/Content/Blueprints/Components/BPI_Fade.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7cf188dc99788ab7e10fe173c07c4aefdf3a0f1628434ef41d9266719472ffb +size 10561 diff --git a/Content/Blueprints/Components/S_CharacterSkin.uasset b/Content/Blueprints/Components/S_CharacterSkin.uasset new file mode 100644 index 0000000..a787a19 --- /dev/null +++ b/Content/Blueprints/Components/S_CharacterSkin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f2f8d30de334bd30035ca7f02d705fee2ac8f2f56f37c48b4709590873e7fbc +size 7017 diff --git a/Content/Blueprints/Equipments/DT_ValkyrieEquipment.uasset b/Content/Blueprints/Equipments/DT_ValkyrieEquipment.uasset new file mode 100644 index 0000000..34c840d --- /dev/null +++ b/Content/Blueprints/Equipments/DT_ValkyrieEquipment.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31a7e77c6dd914f51135033ec1aa8f4cee555568b7e185c987b4bc40540d2a33 +size 17430 diff --git a/Content/Blueprints/Game/BP_AuraGameModeBase.uasset b/Content/Blueprints/Game/BP_AuraGameModeBase.uasset new file mode 100644 index 0000000..5238650 --- /dev/null +++ b/Content/Blueprints/Game/BP_AuraGameModeBase.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:599273ae1362cd86f7229b35ed98a8c3ccb27d2da6d284b5697d739851ec2fbe +size 20377 diff --git a/Content/Blueprints/Game/BP_AuraGameState.uasset b/Content/Blueprints/Game/BP_AuraGameState.uasset new file mode 100644 index 0000000..9c36bcd --- /dev/null +++ b/Content/Blueprints/Game/BP_AuraGameState.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e31564f022b29238a3983b70ef367df15a4ff1dca6a70e1a9d806fde588878cd +size 20017 diff --git a/Content/Blueprints/Input/DT_AuraInputConfig.uasset b/Content/Blueprints/Input/DT_AuraInputConfig.uasset new file mode 100644 index 0000000..ca84c91 --- /dev/null +++ b/Content/Blueprints/Input/DT_AuraInputConfig.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ab1494d171aea2fa292f722fc70b3cdbf415f38848546a4aa271b41e3e02cec +size 5084 diff --git a/Content/Blueprints/Input/IMC_AuraContext.uasset b/Content/Blueprints/Input/IMC_AuraContext.uasset new file mode 100644 index 0000000..ba783ae --- /dev/null +++ b/Content/Blueprints/Input/IMC_AuraContext.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aac69c0d5b38c7c2f48793aadab8a2a3240df1f407d860483d50555afb2c523b +size 14072 diff --git a/Content/Blueprints/Input/InputActions/IA_Ability_1.uasset b/Content/Blueprints/Input/InputActions/IA_Ability_1.uasset new file mode 100644 index 0000000..4115c70 --- /dev/null +++ b/Content/Blueprints/Input/InputActions/IA_Ability_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33f08c5fffa4ca0c70d2f3677c6a513a3392dc8e885acb051fef1857ebc4cd9a +size 1383 diff --git a/Content/Blueprints/Input/InputActions/IA_Ability_2.uasset b/Content/Blueprints/Input/InputActions/IA_Ability_2.uasset new file mode 100644 index 0000000..0062775 --- /dev/null +++ b/Content/Blueprints/Input/InputActions/IA_Ability_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f72d0695b77f6e1794be77ffb94f499ecb76826b50c9f704257fe2edea342291 +size 1383 diff --git a/Content/Blueprints/Input/InputActions/IA_Ability_3.uasset b/Content/Blueprints/Input/InputActions/IA_Ability_3.uasset new file mode 100644 index 0000000..ef89f60 --- /dev/null +++ b/Content/Blueprints/Input/InputActions/IA_Ability_3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4625eede9bc1e670fd22aa8d5eae0b98d4f68ddd76344432985f7e79588e1fa3 +size 1383 diff --git a/Content/Blueprints/Input/InputActions/IA_Ability_4.uasset b/Content/Blueprints/Input/InputActions/IA_Ability_4.uasset new file mode 100644 index 0000000..c08e084 --- /dev/null +++ b/Content/Blueprints/Input/InputActions/IA_Ability_4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:247b59258ece6e9cc26268569bf14a8da970a485f920fb9596a67f8973c19521 +size 1383 diff --git a/Content/Blueprints/Input/InputActions/IA_Ability_E.uasset b/Content/Blueprints/Input/InputActions/IA_Ability_E.uasset new file mode 100644 index 0000000..481ea3e --- /dev/null +++ b/Content/Blueprints/Input/InputActions/IA_Ability_E.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d4ee1e9d89d4c3f50d808ff508ae1d7759dd966586bb98e88a9d3ab1199ce89 +size 1387 diff --git a/Content/Blueprints/Input/InputActions/IA_Ability_F.uasset b/Content/Blueprints/Input/InputActions/IA_Ability_F.uasset new file mode 100644 index 0000000..afd6b98 --- /dev/null +++ b/Content/Blueprints/Input/InputActions/IA_Ability_F.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:642325fe49737a93eb08b115d1fde058874ffc84710308cf40128f92a334ebac +size 1387 diff --git a/Content/Blueprints/Input/InputActions/IA_Ability_LMB.uasset b/Content/Blueprints/Input/InputActions/IA_Ability_LMB.uasset new file mode 100644 index 0000000..453b062 --- /dev/null +++ b/Content/Blueprints/Input/InputActions/IA_Ability_LMB.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbad9715c2d3af0469f0a74bb9063da2ce154d773b0870f6ed46cbcfafe30158 +size 1397 diff --git a/Content/Blueprints/Input/InputActions/IA_Ability_Q.uasset b/Content/Blueprints/Input/InputActions/IA_Ability_Q.uasset new file mode 100644 index 0000000..d66de96 --- /dev/null +++ b/Content/Blueprints/Input/InputActions/IA_Ability_Q.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99c82ba8747ae8fa54bd1025e1af2c5c9dfede1d07758250401199ae5d3c85bf +size 1387 diff --git a/Content/Blueprints/Input/InputActions/IA_Ability_R.uasset b/Content/Blueprints/Input/InputActions/IA_Ability_R.uasset new file mode 100644 index 0000000..5ea1320 --- /dev/null +++ b/Content/Blueprints/Input/InputActions/IA_Ability_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0074ec18930bb64e8f7b55f59b99972b13cced842d92bf2c6b3c77a08f641d1b +size 1387 diff --git a/Content/Blueprints/Input/InputActions/IA_Ability_RMB.uasset b/Content/Blueprints/Input/InputActions/IA_Ability_RMB.uasset new file mode 100644 index 0000000..933e622 --- /dev/null +++ b/Content/Blueprints/Input/InputActions/IA_Ability_RMB.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2854d35c0ccba470f9a7f7faf468c6d5f642518c3a37707e085f7c60c1073afe +size 1397 diff --git a/Content/Blueprints/Input/InputActions/IA_Ability_Space.uasset b/Content/Blueprints/Input/InputActions/IA_Ability_Space.uasset new file mode 100644 index 0000000..345431a --- /dev/null +++ b/Content/Blueprints/Input/InputActions/IA_Ability_Space.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31d122bc488dd3391ddf59aceb8a2b5a8816da061fbbeace1dc250d4cdcb284e +size 1407 diff --git a/Content/Blueprints/Input/InputActions/IA_HoldPosition.uasset b/Content/Blueprints/Input/InputActions/IA_HoldPosition.uasset new file mode 100644 index 0000000..68b486f --- /dev/null +++ b/Content/Blueprints/Input/InputActions/IA_HoldPosition.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08fc20c28795c3b6a560904e7b40d4f0ce54e129c35f81e7d46805d6f03006f4 +size 1402 diff --git a/Content/Blueprints/Input/InputActions/IA_Move.uasset b/Content/Blueprints/Input/InputActions/IA_Move.uasset new file mode 100644 index 0000000..533304a --- /dev/null +++ b/Content/Blueprints/Input/InputActions/IA_Move.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b0e3f325bc862af858622480e93f4c005a5a8c86a5425c8bef38ac851bd667e +size 1509 diff --git a/Content/Blueprints/Inventory/DA_AuraInventoryData.uasset b/Content/Blueprints/Inventory/DA_AuraInventoryData.uasset new file mode 100644 index 0000000..eba2dba --- /dev/null +++ b/Content/Blueprints/Inventory/DA_AuraInventoryData.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e8891978f68674cfa2035e88c2402f3f5224545bbb3a3566f37d0924a45332a +size 2288 diff --git a/Content/Blueprints/Inventory/ItemTables/CDT_ItemTable.uasset b/Content/Blueprints/Inventory/ItemTables/CDT_ItemTable.uasset new file mode 100644 index 0000000..7417983 --- /dev/null +++ b/Content/Blueprints/Inventory/ItemTables/CDT_ItemTable.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32a11e54e3326099390492b943962c153bbfd90c341094ba49bf6183f6f35bc4 +size 5046 diff --git a/Content/Blueprints/Inventory/ItemTables/DT_TestingItems.uasset b/Content/Blueprints/Inventory/ItemTables/DT_TestingItems.uasset new file mode 100644 index 0000000..21c5ae9 --- /dev/null +++ b/Content/Blueprints/Inventory/ItemTables/DT_TestingItems.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a14a452209391c3de6140b25c51c15dfb13b44543e2579a3cd9d4e6c4f348a8c +size 6152 diff --git a/Content/Blueprints/Material/BPL_MaterialFunctions.uasset b/Content/Blueprints/Material/BPL_MaterialFunctions.uasset new file mode 100644 index 0000000..2ff27f4 --- /dev/null +++ b/Content/Blueprints/Material/BPL_MaterialFunctions.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84079b1027c3b1fdb7ed4c474216c9d54604ded4b4cafc23540a758a3acbd1c5 +size 50470 diff --git a/Content/Blueprints/Material/MPC_CameraFadeParameters.uasset b/Content/Blueprints/Material/MPC_CameraFadeParameters.uasset new file mode 100644 index 0000000..fab7cfd --- /dev/null +++ b/Content/Blueprints/Material/MPC_CameraFadeParameters.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b507f68a9c094c9821075b8e667d4db38e8b251f93630bf0ca214d3708c5b46 +size 2444 diff --git a/Content/Blueprints/Player/BP_AuraPlayerController.uasset b/Content/Blueprints/Player/BP_AuraPlayerController.uasset new file mode 100644 index 0000000..1d7e63a --- /dev/null +++ b/Content/Blueprints/Player/BP_AuraPlayerController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c9f5dc6fcca64a11dd7c47a2a530996f32d5e65b907af53185a9bf87691ca74 +size 251748 diff --git a/Content/Blueprints/Player/BP_AuraPlayerState.uasset b/Content/Blueprints/Player/BP_AuraPlayerState.uasset new file mode 100644 index 0000000..d33b478 --- /dev/null +++ b/Content/Blueprints/Player/BP_AuraPlayerState.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f64d833163af874e8601a4eddf562f00ab1805f3ef072146aa7ee5f60977229 +size 90662 diff --git a/Content/Blueprints/UI/AbilityMenu/DD_AbilityDragDrop.uasset b/Content/Blueprints/UI/AbilityMenu/DD_AbilityDragDrop.uasset new file mode 100644 index 0000000..9575348 --- /dev/null +++ b/Content/Blueprints/UI/AbilityMenu/DD_AbilityDragDrop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68ecb130f6121b8ecc9be3daaa58afe0e06790c84b7ddbd8d462d755d82f02b6 +size 11079 diff --git a/Content/Blueprints/UI/AbilityMenu/WBP_AbilityDrag.uasset b/Content/Blueprints/UI/AbilityMenu/WBP_AbilityDrag.uasset new file mode 100644 index 0000000..e254416 --- /dev/null +++ b/Content/Blueprints/UI/AbilityMenu/WBP_AbilityDrag.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b67d9b7f8b50651fbd23452e43aec2946ed40347726a07af0915aa98aabf6be5 +size 93302 diff --git a/Content/Blueprints/UI/AbilityMenu/WBP_AbilityInfoTooltip.uasset b/Content/Blueprints/UI/AbilityMenu/WBP_AbilityInfoTooltip.uasset new file mode 100644 index 0000000..ee9aba3 --- /dev/null +++ b/Content/Blueprints/UI/AbilityMenu/WBP_AbilityInfoTooltip.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1861ee81bb83ec28bb414dcedbdf74e06fd0e3426d19eaa6eae1ea17c7d3470 +size 422223 diff --git a/Content/Blueprints/UI/AbilityMenu/WBP_AbilityMenu.uasset b/Content/Blueprints/UI/AbilityMenu/WBP_AbilityMenu.uasset new file mode 100644 index 0000000..6302176 --- /dev/null +++ b/Content/Blueprints/UI/AbilityMenu/WBP_AbilityMenu.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f62fd0d60542f3153e92132e723e10cd25797ec024b87a4b8ec7b8da7be357c3 +size 340152 diff --git a/Content/Blueprints/UI/AbilityMenu/WBP_AbilityPointsCounter.uasset b/Content/Blueprints/UI/AbilityMenu/WBP_AbilityPointsCounter.uasset new file mode 100644 index 0000000..dde4665 --- /dev/null +++ b/Content/Blueprints/UI/AbilityMenu/WBP_AbilityPointsCounter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c27b5a0cc42f0bbcf929ba91987a5e0ef557bc93c4f065381cc112bdd3a7c2fc +size 82027 diff --git a/Content/Blueprints/UI/AbilityMenu/WBP_AbilitySelectionButton.uasset b/Content/Blueprints/UI/AbilityMenu/WBP_AbilitySelectionButton.uasset new file mode 100644 index 0000000..ac6a6c4 --- /dev/null +++ b/Content/Blueprints/UI/AbilityMenu/WBP_AbilitySelectionButton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d02221bb4342a31aa4a53fad353b7a800bdbf3fa57cff757fa5c213ceac88bd2 +size 539253 diff --git a/Content/Blueprints/UI/AbilityMenu/WBP_AbilityTree.uasset b/Content/Blueprints/UI/AbilityMenu/WBP_AbilityTree.uasset new file mode 100644 index 0000000..0d6d660 --- /dev/null +++ b/Content/Blueprints/UI/AbilityMenu/WBP_AbilityTree.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea5cdb72f2b33ce236e27d19353a3816185d836dbb2a1fc368cd8700cd7f716c +size 85705 diff --git a/Content/Blueprints/UI/AbilityMenu/WBP_TreePickerButton.uasset b/Content/Blueprints/UI/AbilityMenu/WBP_TreePickerButton.uasset new file mode 100644 index 0000000..ba5b3f2 --- /dev/null +++ b/Content/Blueprints/UI/AbilityMenu/WBP_TreePickerButton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e02ea44c367b2c23b31b1410312722d6f9828207f8562f13c3c91697319c233 +size 55761 diff --git a/Content/Blueprints/UI/AttributeMenu/WBP_AttributeMenu.uasset b/Content/Blueprints/UI/AttributeMenu/WBP_AttributeMenu.uasset new file mode 100644 index 0000000..94968ed --- /dev/null +++ b/Content/Blueprints/UI/AttributeMenu/WBP_AttributeMenu.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb555b3e504066da65b263a6b80a80fff2dd2f2eb2c7b5044256f536ea164964 +size 199838 diff --git a/Content/Blueprints/UI/AttributeMenu/WBP_AttributeModifierRow.uasset b/Content/Blueprints/UI/AttributeMenu/WBP_AttributeModifierRow.uasset new file mode 100644 index 0000000..c96f826 --- /dev/null +++ b/Content/Blueprints/UI/AttributeMenu/WBP_AttributeModifierRow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89bf0e729d3b4579bfb1f17a78ad2cdbb318157c2539eeccde6daadd505766f7 +size 85858 diff --git a/Content/Blueprints/UI/AttributeMenu/WBP_AttributeObserverRow.uasset b/Content/Blueprints/UI/AttributeMenu/WBP_AttributeObserverRow.uasset new file mode 100644 index 0000000..2d4b052 --- /dev/null +++ b/Content/Blueprints/UI/AttributeMenu/WBP_AttributeObserverRow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dadd514d71d9c977373add3b163cfdc66636d0c4c94b4122c7061d150715f90 +size 85594 diff --git a/Content/Blueprints/UI/AttributeMenu/WBP_AttributePointsCounter.uasset b/Content/Blueprints/UI/AttributeMenu/WBP_AttributePointsCounter.uasset new file mode 100644 index 0000000..5535d39 --- /dev/null +++ b/Content/Blueprints/UI/AttributeMenu/WBP_AttributePointsCounter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4899e20206a65e5369d7581cc3076bded79f890e6cf9d49a80361dd578b3204d +size 84954 diff --git a/Content/Blueprints/UI/CommonWidgets/WBP_DraggableAbilityRingButton.uasset b/Content/Blueprints/UI/CommonWidgets/WBP_DraggableAbilityRingButton.uasset new file mode 100644 index 0000000..fdd0051 --- /dev/null +++ b/Content/Blueprints/UI/CommonWidgets/WBP_DraggableAbilityRingButton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41f9b0e4e9dcff0ab0e4535f88a9763e51ef005badb2debc0a65ba73e2a9e603 +size 189584 diff --git a/Content/Blueprints/UI/CommonWidgets/WBP_FramedValue.uasset b/Content/Blueprints/UI/CommonWidgets/WBP_FramedValue.uasset new file mode 100644 index 0000000..e4a2833 --- /dev/null +++ b/Content/Blueprints/UI/CommonWidgets/WBP_FramedValue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c55b83867c6f5f2c23d929e057fe4da74041c3ffb054326146d1a3cc5f21a988 +size 111262 diff --git a/Content/Blueprints/UI/CommonWidgets/WBP_LargePanel.uasset b/Content/Blueprints/UI/CommonWidgets/WBP_LargePanel.uasset new file mode 100644 index 0000000..8fc2989 --- /dev/null +++ b/Content/Blueprints/UI/CommonWidgets/WBP_LargePanel.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b9b6ef57d9afac76da48a25152960e7079a8346e74d407af2e3380e56af5e6b +size 129821 diff --git a/Content/Blueprints/UI/CommonWidgets/WBP_PendingMessage.uasset b/Content/Blueprints/UI/CommonWidgets/WBP_PendingMessage.uasset new file mode 100644 index 0000000..2e2f2c0 --- /dev/null +++ b/Content/Blueprints/UI/CommonWidgets/WBP_PendingMessage.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cdfdee3553654ce83b2f61fcb61905b9ee2924d17418acc5618bb37caf3aa87 +size 70324 diff --git a/Content/Blueprints/UI/CommonWidgets/WBP_RedButton.uasset b/Content/Blueprints/UI/CommonWidgets/WBP_RedButton.uasset new file mode 100644 index 0000000..3fa32c4 --- /dev/null +++ b/Content/Blueprints/UI/CommonWidgets/WBP_RedButton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef663d7b67f37b1d6094c49ed7a21b050acf58d874ed34c33dfd8aa6dddadc2e +size 143399 diff --git a/Content/Blueprints/UI/CommonWidgets/WBP_RingButton.uasset b/Content/Blueprints/UI/CommonWidgets/WBP_RingButton.uasset new file mode 100644 index 0000000..53b2909 --- /dev/null +++ b/Content/Blueprints/UI/CommonWidgets/WBP_RingButton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27fb4268589c2accfdc227cdf30ecbbb7f6eda0d84356ec151514253a0ca0f6b +size 213192 diff --git a/Content/Blueprints/UI/CommonWidgets/WBP_TextValueRow.uasset b/Content/Blueprints/UI/CommonWidgets/WBP_TextValueRow.uasset new file mode 100644 index 0000000..3d99145 --- /dev/null +++ b/Content/Blueprints/UI/CommonWidgets/WBP_TextValueRow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:feba09f4b07558cef03672127c6d4d87914a10892a9fbcd14c5b61f48059b6ed +size 136731 diff --git a/Content/Blueprints/UI/FloatingText/BP_FloatingDamageComponent.uasset b/Content/Blueprints/UI/FloatingText/BP_FloatingDamageComponent.uasset new file mode 100644 index 0000000..fb42598 --- /dev/null +++ b/Content/Blueprints/UI/FloatingText/BP_FloatingDamageComponent.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb50db40f13b6cb4242b0fbe1658ee0ba73c7a5526e6b502efdc78a4d1b85116 +size 40791 diff --git a/Content/Blueprints/UI/FloatingText/WBP_DamageText.uasset b/Content/Blueprints/UI/FloatingText/WBP_DamageText.uasset new file mode 100644 index 0000000..167e0f7 --- /dev/null +++ b/Content/Blueprints/UI/FloatingText/WBP_DamageText.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee2b6a51757b612c06c5e1fc322b68c51c835662c6ca4ec4bcce3e4f3eabb96a +size 174693 diff --git a/Content/Blueprints/UI/HUD/BP_AuraHUD.uasset b/Content/Blueprints/UI/HUD/BP_AuraHUD.uasset new file mode 100644 index 0000000..0b9d0f6 --- /dev/null +++ b/Content/Blueprints/UI/HUD/BP_AuraHUD.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd05bf89f9a9223ff15c3ea796b1fc225d4b8936957f2a49fe6323474252c07a +size 23101 diff --git a/Content/Blueprints/UI/Inventory/WBP_InventoryPanel.uasset b/Content/Blueprints/UI/Inventory/WBP_InventoryPanel.uasset new file mode 100644 index 0000000..7c5a4a7 --- /dev/null +++ b/Content/Blueprints/UI/Inventory/WBP_InventoryPanel.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cc895b26578040404367ea2cd240d924be84d03e3de1d9ea486eed4ec93913b +size 49757 diff --git a/Content/Blueprints/UI/Inventory/WBP_InventorySlot.uasset b/Content/Blueprints/UI/Inventory/WBP_InventorySlot.uasset new file mode 100644 index 0000000..68492f5 --- /dev/null +++ b/Content/Blueprints/UI/Inventory/WBP_InventorySlot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e19a7be5491e0cd58e350446bdcfb47d4d1dea11bdeb0a32416b2d06223e2d00 +size 172706 diff --git a/Content/Blueprints/UI/MainMenu/MultiplayerMenu/WBP_JoinableSession.uasset b/Content/Blueprints/UI/MainMenu/MultiplayerMenu/WBP_JoinableSession.uasset new file mode 100644 index 0000000..5edc1ba --- /dev/null +++ b/Content/Blueprints/UI/MainMenu/MultiplayerMenu/WBP_JoinableSession.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a747d9c3643d8424625db2189338381ed2f2fabd62f6cecfa24eee94ac37796d +size 72377 diff --git a/Content/Blueprints/UI/MainMenu/MultiplayerMenu/WBP_MultiplayerMenu.uasset b/Content/Blueprints/UI/MainMenu/MultiplayerMenu/WBP_MultiplayerMenu.uasset new file mode 100644 index 0000000..a5eef6e --- /dev/null +++ b/Content/Blueprints/UI/MainMenu/MultiplayerMenu/WBP_MultiplayerMenu.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a27c1f5d06237b0e3015763f7709022234fc4b32ef32fdbe4a2273eb5c4be5c4 +size 374754 diff --git a/Content/Blueprints/UI/MainMenu/WBP_MainMenu.uasset b/Content/Blueprints/UI/MainMenu/WBP_MainMenu.uasset new file mode 100644 index 0000000..1eb5933 --- /dev/null +++ b/Content/Blueprints/UI/MainMenu/WBP_MainMenu.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11149c191bd15ffd23e746643d30819891e1699825554c2d1b3487bdab644a1b +size 132998 diff --git a/Content/Blueprints/UI/Overlay/SubWidgets/WBP_AbilityRing.uasset b/Content/Blueprints/UI/Overlay/SubWidgets/WBP_AbilityRing.uasset new file mode 100644 index 0000000..c129284 --- /dev/null +++ b/Content/Blueprints/UI/Overlay/SubWidgets/WBP_AbilityRing.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:292736cdd74b542c6b6796f32760ca34f921f1f021e3c2f15905ba2d95532f4c +size 494400 diff --git a/Content/Blueprints/UI/Overlay/SubWidgets/WBP_CharacterStateOverlay.uasset b/Content/Blueprints/UI/Overlay/SubWidgets/WBP_CharacterStateOverlay.uasset new file mode 100644 index 0000000..c7a6227 --- /dev/null +++ b/Content/Blueprints/UI/Overlay/SubWidgets/WBP_CharacterStateOverlay.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c59669969c845beaec7364ac98e9b1f19293644445309f9e4336e19b927e054 +size 121439 diff --git a/Content/Blueprints/UI/Overlay/SubWidgets/WBP_EffectMessage.uasset b/Content/Blueprints/UI/Overlay/SubWidgets/WBP_EffectMessage.uasset new file mode 100644 index 0000000..1ac9f0f --- /dev/null +++ b/Content/Blueprints/UI/Overlay/SubWidgets/WBP_EffectMessage.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41b647033983fb04f851f07077af189c0c0d7fa8a4146f0590bc55af01da9782 +size 97859 diff --git a/Content/Blueprints/UI/Overlay/SubWidgets/WBP_GoodNewsMessage.uasset b/Content/Blueprints/UI/Overlay/SubWidgets/WBP_GoodNewsMessage.uasset new file mode 100644 index 0000000..6a79f62 --- /dev/null +++ b/Content/Blueprints/UI/Overlay/SubWidgets/WBP_GoodNewsMessage.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab4efc2750faedea09b56118fcf7520e7712ce7a65edd960e8ba7cfe4ac09f62 +size 89431 diff --git a/Content/Blueprints/UI/Overlay/SubWidgets/WBP_LevelRing.uasset b/Content/Blueprints/UI/Overlay/SubWidgets/WBP_LevelRing.uasset new file mode 100644 index 0000000..5ca2886 --- /dev/null +++ b/Content/Blueprints/UI/Overlay/SubWidgets/WBP_LevelRing.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de24bd497ada121c8f493d805118495813e0506e0995f78e1702aff7960f1df4 +size 90996 diff --git a/Content/Blueprints/UI/Overlay/WBP_AuraInteractionWidget.uasset b/Content/Blueprints/UI/Overlay/WBP_AuraInteractionWidget.uasset new file mode 100644 index 0000000..a486d0a --- /dev/null +++ b/Content/Blueprints/UI/Overlay/WBP_AuraInteractionWidget.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0e8c0bdb8b9392818868b401a2b7e049c94601b4e14ace17f4dfebdbe944131 +size 90184 diff --git a/Content/Blueprints/UI/Overlay/WBP_InspectionPanel.uasset b/Content/Blueprints/UI/Overlay/WBP_InspectionPanel.uasset new file mode 100644 index 0000000..d48109e --- /dev/null +++ b/Content/Blueprints/UI/Overlay/WBP_InspectionPanel.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10aaf69324c2958f5810c78e50cb16719460ada5c850c40d34ac7ce6ed3740b2 +size 99074 diff --git a/Content/Blueprints/UI/Overlay/WBP_Overlay.uasset b/Content/Blueprints/UI/Overlay/WBP_Overlay.uasset new file mode 100644 index 0000000..923d226 --- /dev/null +++ b/Content/Blueprints/UI/Overlay/WBP_Overlay.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ea5792f7ca9a0df6c6aad01931de00eacad7cbbc1161c669389c71d8f58fdec +size 294799 diff --git a/Content/Blueprints/UI/ProgressBar/WBP_ExperienceProgressBar.uasset b/Content/Blueprints/UI/ProgressBar/WBP_ExperienceProgressBar.uasset new file mode 100644 index 0000000..68fdf9b --- /dev/null +++ b/Content/Blueprints/UI/ProgressBar/WBP_ExperienceProgressBar.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cf320422f8676c186afc61e63c28e9c8dbc2f09872e49e12b86162b74aae78e +size 57012 diff --git a/Content/Blueprints/UI/ProgressBar/WBP_GlobeProgress.uasset b/Content/Blueprints/UI/ProgressBar/WBP_GlobeProgress.uasset new file mode 100644 index 0000000..da87728 --- /dev/null +++ b/Content/Blueprints/UI/ProgressBar/WBP_GlobeProgress.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df4587c46ad3a9fc7523ccdaecf32a98716bbb468c6db3e140d05aa308826c10 +size 339463 diff --git a/Content/Blueprints/UI/ProgressBar/WBP_HealthGlobe.uasset b/Content/Blueprints/UI/ProgressBar/WBP_HealthGlobe.uasset new file mode 100644 index 0000000..98fcf1a --- /dev/null +++ b/Content/Blueprints/UI/ProgressBar/WBP_HealthGlobe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd0497b4fce1bdbc93fba45f705cff7c9146a838a125b572cf47e63d94c2707d +size 81591 diff --git a/Content/Blueprints/UI/ProgressBar/WBP_HealthProgressBar.uasset b/Content/Blueprints/UI/ProgressBar/WBP_HealthProgressBar.uasset new file mode 100644 index 0000000..7053b03 --- /dev/null +++ b/Content/Blueprints/UI/ProgressBar/WBP_HealthProgressBar.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba953539e0e80985032bd5753a1837229783b80e1897075d7e86c7dacc91ad5a +size 206006 diff --git a/Content/Blueprints/UI/ProgressBar/WBP_ManaGlobe.uasset b/Content/Blueprints/UI/ProgressBar/WBP_ManaGlobe.uasset new file mode 100644 index 0000000..3554330 --- /dev/null +++ b/Content/Blueprints/UI/ProgressBar/WBP_ManaGlobe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4a7309a89f965eb0b8636e302de8e6e75c026b7039902fd76de627c2922bd0f +size 89425 diff --git a/Content/Blueprints/UI/RichText/BP_TextDecorator_Abilities.uasset b/Content/Blueprints/UI/RichText/BP_TextDecorator_Abilities.uasset new file mode 100644 index 0000000..38ea640 --- /dev/null +++ b/Content/Blueprints/UI/RichText/BP_TextDecorator_Abilities.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5d295b6e65f6704f316e7d0fde70bd59712e2f3cd912a33c13b2db22566cbf0 +size 6023 diff --git a/Content/Blueprints/UI/RichText/BP_TextDecorator_Attributes.uasset b/Content/Blueprints/UI/RichText/BP_TextDecorator_Attributes.uasset new file mode 100644 index 0000000..83d7f3a --- /dev/null +++ b/Content/Blueprints/UI/RichText/BP_TextDecorator_Attributes.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec0faaa34837e2c933419b7cb04a748bdec64e1ef80a385549b00810bb928ccf +size 6512 diff --git a/Content/Blueprints/UI/RichText/DT_RI_Abilities.uasset b/Content/Blueprints/UI/RichText/DT_RI_Abilities.uasset new file mode 100644 index 0000000..641c799 --- /dev/null +++ b/Content/Blueprints/UI/RichText/DT_RI_Abilities.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0f6c9c7c191a92c9b64dc15a30facf3497086b6c92cd6c12e9bd2b5796db6f6 +size 21723 diff --git a/Content/Blueprints/UI/RichText/DT_RI_Attributes.uasset b/Content/Blueprints/UI/RichText/DT_RI_Attributes.uasset new file mode 100644 index 0000000..657ceaa --- /dev/null +++ b/Content/Blueprints/UI/RichText/DT_RI_Attributes.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1aa1e42cd574f60e7c9e23243225d578a2b296833f49052e1bd56eca5765bde +size 7231 diff --git a/Content/Blueprints/UI/RichText/DT_RTT_AbilityDescription.uasset b/Content/Blueprints/UI/RichText/DT_RTT_AbilityDescription.uasset new file mode 100644 index 0000000..0ab00e8 --- /dev/null +++ b/Content/Blueprints/UI/RichText/DT_RTT_AbilityDescription.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11de150878a4164ea1a1e29b40f21c10089779d1c2ee82fe100b46f8bbbdb0c6 +size 32628 diff --git a/Content/Blueprints/UI/RichText/DT_RTT_Defaults.uasset b/Content/Blueprints/UI/RichText/DT_RTT_Defaults.uasset new file mode 100644 index 0000000..75d1b3b --- /dev/null +++ b/Content/Blueprints/UI/RichText/DT_RTT_Defaults.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbc2cb3f8534ab3e86df7bf38f398b799d3ea20c62944e1ae4e9edbeea728756 +size 27764 diff --git a/Content/Blueprints/UI/WidgetController/BP_OverlayWidgetController.uasset b/Content/Blueprints/UI/WidgetController/BP_OverlayWidgetController.uasset new file mode 100644 index 0000000..a0877aa --- /dev/null +++ b/Content/Blueprints/UI/WidgetController/BP_OverlayWidgetController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8f462a0c0981ac3392647e23fa271ff53c11ac42074fb4980432a8d9858f81a +size 2891 diff --git a/Content/Blueprints/UI/WidgetController/WC_AbilityMenuController.uasset b/Content/Blueprints/UI/WidgetController/WC_AbilityMenuController.uasset new file mode 100644 index 0000000..74ebc9a --- /dev/null +++ b/Content/Blueprints/UI/WidgetController/WC_AbilityMenuController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58fa31ee6c3c7fb55524ca510c634cf16c1cba624114fd72488f239fefaeb2e0 +size 12374 diff --git a/Content/Blueprints/UI/WidgetController/WC_AttributeMenuWidgetController.uasset b/Content/Blueprints/UI/WidgetController/WC_AttributeMenuWidgetController.uasset new file mode 100644 index 0000000..cb87aa9 --- /dev/null +++ b/Content/Blueprints/UI/WidgetController/WC_AttributeMenuWidgetController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a204d8339b1cac4ee6101fcc923ffcc69bf38ae570d7c34da9b7441766a29a01 +size 6369 diff --git a/Content/Blueprints/UI/WidgetController/WC_EnemyBarController.uasset b/Content/Blueprints/UI/WidgetController/WC_EnemyBarController.uasset new file mode 100644 index 0000000..4462887 --- /dev/null +++ b/Content/Blueprints/UI/WidgetController/WC_EnemyBarController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdd22c87ee436315e585de5d32f5578cc2d8c4a1c9e14a2b8317ae5ebbdfc756 +size 33972 diff --git a/Content/Blueprints/UI/WidgetController/WC_MainMenuController.uasset b/Content/Blueprints/UI/WidgetController/WC_MainMenuController.uasset new file mode 100644 index 0000000..fb1fecb --- /dev/null +++ b/Content/Blueprints/UI/WidgetController/WC_MainMenuController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe650648705999485fa273284c7f7d5a66acb742c1d84f98d6f4f19697cde7a9 +size 106995 diff --git a/Content/Blueprints/UI/WidgetController/WC_OverlayWidgetController.uasset b/Content/Blueprints/UI/WidgetController/WC_OverlayWidgetController.uasset new file mode 100644 index 0000000..9f33a5a --- /dev/null +++ b/Content/Blueprints/UI/WidgetController/WC_OverlayWidgetController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5138e182a415bff0bc11afee69d6dbfd3b841dfe6167908bf62e6032758a74c +size 12620 diff --git a/Content/Maps/DemoLevel/DemoLevel.umap b/Content/Maps/DemoLevel/DemoLevel.umap new file mode 100644 index 0000000..7693db7 --- /dev/null +++ b/Content/Maps/DemoLevel/DemoLevel.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4cc321488c550d98f6ecb51c5c064277418c6cf5c06aee918e411d211b1b650d +size 1028138 diff --git a/Content/Maps/DemoLevel/DemoLevel_GhoulRoomEntering.uasset b/Content/Maps/DemoLevel/DemoLevel_GhoulRoomEntering.uasset new file mode 100644 index 0000000..0305014 --- /dev/null +++ b/Content/Maps/DemoLevel/DemoLevel_GhoulRoomEntering.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:078e6dafe03a6e060f213e96d8bd4b6b870e3b51f5842a8f145098eec58601ed +size 76320 diff --git a/Content/Maps/MainMenu/MainMenu.umap b/Content/Maps/MainMenu/MainMenu.umap new file mode 100644 index 0000000..4d1edf8 --- /dev/null +++ b/Content/Maps/MainMenu/MainMenu.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d9e5945a85685a9cb430c53fcb99b0dfdff8f993966b01c0a9fdee9970fbfde +size 131779 diff --git a/Content/Maps/Playground/Playground.umap b/Content/Maps/Playground/Playground.umap new file mode 100644 index 0000000..44ed41a --- /dev/null +++ b/Content/Maps/Playground/Playground.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3010db922d708f271c61e52dc37c4835f514ca36d983b7c4be1fcd0b8fb375ce +size 464460 diff --git a/Docs/.gitignore b/Docs/.gitignore new file mode 100644 index 0000000..dd33554 --- /dev/null +++ b/Docs/.gitignore @@ -0,0 +1 @@ +.obsidian diff --git a/Docs/Notes.md b/Docs/Notes.md new file mode 100644 index 0000000..a4bc7b4 --- /dev/null +++ b/Docs/Notes.md @@ -0,0 +1,2052 @@ + +# Section 1 - Project Creation Asset Pack + +## 1 Project Setup We open the Startup Project and configure some settings + +- Downloading the project assets + +## 2 Setting up Version Control We set up our project for version control using Git + +- Setup the git repo to gitginger:/Aura.git + +## 3 The Base Character Class We create a base Character class for our game Characters to inherit from + +- Created the C++ project and the base character class `AuraCharacterBase` +- cleaned some unused methods from it + +## 4 Player and Enemy Characters We derive two subclasses from our base Character class: AuraCharacter and AuraEnemy + +- Derive two subclasses `AuraCharacter` & `AuraEnemy` + +## 5 Character Blueprint Setup We create our Character Blueprints and set the mesh assets. We also add a Weapon to the Base Character + +- Create Skeletal mesh for `Weapon` in `AuraCharacterBase` +- Create blueprint for Aura character with mesh and weapon models assets +- Add weapon socket to the skeleton `SK_Aura` +- Create blueprint for goblin spear with mesh and weapon models assets +- Rename socket on skeleton `SK_Goblin` + +## 6 Animation Blueprints We create an Animation Blueprint for Aura and an Animation Blueprint Template for all our Enemies + +- Create animation blueprint class `CharacterAnimInstance` from Howling project +- Inherit Aura anim blueprint from it and setup main states machine and default slot +- Create Template Animation Blueprint for enemies with main states machine and default slot +- Use it for GoblinSpear with the animations +- Do Goblin Slingshot as well + +## 7 Enhanced Input We create our Input Action for Movement and Input Mapping Context to map input keys + +- Create input action for move & input action mapping on WASD +- Create `AuraPlayerController` C++ class + +## 8 Aura Player Controller We setup Input in the Player Controller Class + +- Set player controller to replicate +- Add the enhanced input module +- Add mapping context to the player controller and initialize it in the begin play +- Setup cursor and input data in player controller + +## 9 Movement Input We create a Move callback for our Move Input Action and Bind it in the Player Controller class + +- Create move UInputAction bind to the Move method +- Implement Move method using control rotation +- Create blueprint class to map assets + +## 10 Game Mode We create a Game Mode and assign the Default Pawn and Player Controller Classes + +- Create cpp & bp for base game mode with playercontroller and pawn +- Add spring arm and camera to the controlled character cpp class +- Setting up spring arm, character and character movement to a top down game +- Split animation blueprint main states into idle and walkrun + +## 11 Enemy Interface We create an Enemy Interface function that we can use to highlight enemies when hovering over them + +- Create cpp class for `IEnemyInterface` +- Make `AuraEnemy` implement it + +## 12 Highlight Enemies We implement the highlight decision process in the Player Controller + +- Implement `HighlightActor` and `UnHightlightActor` for `AuraEnemy` +- Check on player controller tick the hit result behind cursor +- Use result for hover actor + +## 13 Post Process Highlight We use a Post Process Highlight material to show a red outline of highlighted enemies + +- Set project `Custom Depth-Stencil Pass` to `Enabled with Stencil` for the hovering effect +- Change channel visibility block for CharacterMesh preset +- Create highlight property in character base class + +# Section 2 - Intro to the Gameplay Ability System + +## 1 The Gameplay Ability System We learn what the Gameplay Ability System is and what it can do for us + +- Gameplay system is awesome, masterpiece of engeneering +- GAS is OP + +## 2 The Main Parts of GAS We learn about the main parts of GAS in this high-level overview of the Gameplay Ability System + +- There is 6 main parts of GAS system + 1. **Ability System Component** - Actor component added to pawn or player state. Grants the set of abilities, trigger them and manage their states. + 2. **Attribute Set** - Actor Component added to pawn or player state. List of attributes that have impact on abilities behaviours. + 5. **Gameplay Ability** - Class that contains the full behaviour of an action. + 6. **Ability Task** - Asynchronous task ran by Gameplay Abilities. + 3. **Gameplay Effect** - Used to change the values of attributes directly or over time. + 4. **Gameplay Cue** - Cosmetic or sound effects for states or events. + 7. **Gameplay Tags** - Extended tag system with hierarchical system + +- We can set Ability system and Attribute set in a pawn or in a player state. It depends on the usage. + +## 3 The Player State We create the Player State class for Aura + +- Created `AuraPlayerState` cpp & bp +- Set `NetUpdateFrequency` to 100 because the ability system will be there +- Set it in gamemode + +## 4 Ability System Component and Attribute Set We create the Ability System Component and Attribute Set classes + +- Add *"GameplayAbilities"* Plugin +- Created `AuraAbilitySystemComponent` & `AuraAttributeSet` cpp classes +- Added *"GameplayAbilities"*, *"GameplayTags"*, *"GameplayTasks"* dependencies to private modules in build + +## 5 GAS in Multiplayer We learn about how classes work in Multiplayer and what Replication is + +- Explaination of UE concepts. + - Server, Listen, Client. + - Gamemode only exists on server. + - Player Controller exists on server and owning client. + - Player State exists everywhere for everyone. + - HUD exists only on clients. + +## 6 Constructing the ASC and AS We construct the Ability System Component and Attribute Set for the Enemy and for the Player Controlled Character + +- Add the AbilitySystemComponent and AttributeSet pointers in the base character class +- Create instance in enemy character class and player state +- Move module *"GameplayAbilities"* from private to public build +- Make base character class and player state class inherit `IAbilitySystemInterface` +- Implement the `GetAbilitySystemComponent` method in both classes +- Implement similar method to get attribute set + +## 7 Replication Mode We learn about the Replication Mode for Ability System Components + +- Set replication mode for ability system component to Mixed for player and Minimal for AI controller character + +## 8 Init Ability Actor Info We learn how to set the Owner Actor and the Avatar Actor for our Ability System Component + +- AbilitySystemComponent has two owners + - OwnerActor: The one spawning and owning it (Character or PlayerState) + - AvatarActor: The representing pawn in the world +- When using Mixed, the OwnerActor's Owner must be the controller +- Initialize ability system with method `AbilitySystemComponent->InitAbilityActorInfo(OwnerActor, AvatarActor)` after pawn has been possessed + - AuraEnemy: During BeginPlay as it's only part of the actor + - AuraPlayerState: After possessing a pawn. OnPossessed on server and OnRep_PlayerState on client + - Player Controlled Pawn: After PossessedBy for server and AcknowledgePossession for client +- At this point, playing with 2 players listen/client crashes + +# Section 3 - Attributes + +## 1 Attributes We learn what Attributes are, how they are stored, and how the preferred way to change them is through Gameplay Effects + +- Attributes are stats a player can have +- We prefer to modify attributes with effects to help with prediction +- We can have multiple attributes sets + +## 2 Health and Mana We add our first Attributes to our Attribute set: Health and Mana + +- We create attributes in the attribute set class + - `FGameplayAttributeData` type and replicated variable +- Attributes for Health, MaxHealth, Mana, MaxMana + +- To create a replicated variable + 1. Implement the lifetime + - `virtual void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override;` + - implementation with super call + 2. Create the variable + - `UPROPERTY(ReplicatedUsing = OnRep_MyValue) MyType MyValue;` + - `UFUNCTION() void OnRep_MyValue(const MyType& OldMyValue) const;` + 3. Define replication condition in `GetLifetimeReplicatedProps` + - `DOREPLIFETIME_CONDITION_NOTIFY(UMyClass, MyValue, COND_None, REPNOTIFY_Always)` + - add the header `#include "Net/UnrealNetwork.h"` + 4. For gameplay attributes, add the gameplay attribute notifier in `OnRep_MyValue` + - `GAMEPLAYATTRIBUTE_REPNOTIFY(UMyClass, MyValue, OldMyValue)` + - add the header `#include "AbilitySystemComponent.h"` + +## 3 Attribute Accessors We learn about the Attribute Accessor macros provided by the Ability System + +- We can create accessors (getter & setters) for attributes +- The macro will generate them all +```cpp +#define ATTRIBUTE_ACCESSORS(ClassName, PropertyName) \ + GAMEPLAYATTRIBUTE_PROPERTY_GETTER(ClassName, PropertyName) \ + GAMEPLAYATTRIBUTE_VALUE_GETTER(PropertyName) \ + GAMEPLAYATTRIBUTE_VALUE_SETTER(PropertyName) \ + GAMEPLAYATTRIBUTE_VALUE_INITTER(PropertyName) +``` +> \> ShowDebug AbilitySystem +- Added the Init functions to the attribute set constructor + +## 4 Effect Actor We create an effect actor designed to change attributes + +- Created `AuraEffectActor` cpp with an overlapping sphere and a root mesh +- Add the OnOverlap and EndOverlap methods triggered by the sphere collision +- On overlap, extract the ability system using cast to IAbilitySystemInterface and modify attributes +- Created derived BP_HealthPotion that add to health and get destroyed when an actor overlapps with it. + +# Section 4 - RPG Game UI + +## 1 Game UI Architecture We lay out the plan for our game's UI architecture + +- We're gonna use a MVC model + - View is widgets + - Model are attribute sets and ability system component + - Controller will be a new `UObject` subclass. + +## 2 Aura User Widget and Widget Controller We create our base Widget and Widget Controller classes + +- Create Root Widget cpp class and UObject Controller cpp class +- The root widget has a reference to a controller object +- The controller has a reference to PlayerController, PlayerState, AbilitySystemComponent and AttributeSet + +## 3 Globe Progress Bar We create the Globe progress bar, making use of widget inheritance + +- Globe Progress bar with modifiable variables + +## 4 Health Globe We derive a Health Globe and Mana Globe widget based on our Globe Progress Bar + +- Create the overlay widget with a health and mana globe + +## 5 Aura HUD We create the HUD class for our project + +- Create AuraHUD cpp & bp class with a widget class to add to viewport on begin play +- Set the BP_AuraHUD as hud class in gamemode + +## 6 Overlay Widget Controller We make an Overlay Widget Controller for the Overlay widget in our Viewport + +- BIG FIX: We should not use TObjectPtr with type that are not subclasses of UObject (like IInterface) +- Create struct `FWidgetControllerParams` in AuraWidgetController.h to group parameters from the controller +- Create `UOverlayWidgetController` subclass of AuraWidgetController and singleton access from `AAuraHUD` with `GetOverlayWidgetController(...)` +- Add `OverlayWidgetController` reference and `OverlayWidgetControllerClass` in AuraHUD +- Add InitOverlay in AuraHUD to create the overlay widget which is no longer created in its begin play +- Call InitOverlay in character InitAbilityActorInfo +- Fix to not assert for input subsystem in player controller begin play which causes crash in multiplayer + +## 7 Broadcasting Initial Values We learn how to broadcast initial values from the Widget Controller to the Widgets + +- Add method `BroadcastInitialValues` to AuraWidgetController class +- Created broadcast delegates in `UOverlayWidgetController` +- Created the blueprints `BP_OverlayWidgetController` +- Make `WBP_HealthBar` and `WBP_ManaBar` subscribe to broadcast to update widgets +- To make an event dispatcher + 1. Declare its signature with `DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnSomethingSignature, MyType, MyValue)` + 2. Add the property to the class `FOnSomethingSignature OnSomething` + 3. Call it using `OnSomething.Broadcast(MyValue)` + +## 8 Listening for Attribute Changes We learn how to listen for attribute changes in the Ability System + +- Create methods in `UOverlayWidgetController` for `HealthChanged` and `MaxHealthChanged` +- Add `BindCallbacksToDependencies` to widget controller to subscribe for callbacks. Called at the end of `SetWidgetControllerParams` +- `UOverlayWidgetController` subscribes for changed from attribute set health, maxhealth, mana, maxmana and uses implemented functions for it + +## 9 Callbacks for Mana Changes We create callbacks for mana attribute changes + +- Nothing + +# Section 5 - Gameplay Effects + +## 1 Gameplay Effects We learn what Gameplay Effects are and how they can be used to modify Attributes + +- `UGameplayEffect` + - Used to change attributes and gameplay tags + - Should not be subclassed + - contains modifiers and executions. modifiers define what to do with a value (add, multiply, replace, ...) and have a magnitudes influenced by things (attributes, scalar values, set by caller, ...) + - has duration policy (instant, duration, infinite (until manually removed)) + - can stack in customized way + - can add gameplay tags or abilities or other things + - "gameplay effect spec" is a lightweight version + +## 2 Effect Actor Improved We improve our Effect Actor so it is more versatile and can apply gameplay effects + +- Remove mesh, sphere and overlap methods (kind of everythings) +- Added method `ApplyEffectToActor` usable from the blueprint +- Add gameplay effect class and effect level properties to set on blueprint side +- Use actor's gameplay ability component to apply the effect to himself + +## 3 Instant Gameplay Effects We create an Instant Gameplay Effect and apply it on overlap with our Potions + +- Create abstract blueprint BP_Potion to create health and mana + - a potion has a sphere collision and a mesh + - colliding actor will get effect applied + - if effect successfully applied, destroy the actor +- Create Gameplay effect for heal potion and mana potion and assigned them to the blueprints +- modifier -> Op Add -> Magnitude Scalable float of some value + +## 4 Duration Gameplay Effects We learn about Duration Gameplay Effects + +- Created new potions and effects to hurt ourself +- Create new materials for the new potions +- When defining a duration for an effect, it will apply then reverse at the end of the time + +## 5 Periodic Gameplay Effects We learn the difference between Duration and Infinite Gameplay Effects and those with Periodic behavior + +- Effects have a period parameter to apply over time +- period time will tick and trigger the full effect each times +- make hurt effect occur over time + +## 6 Effect Stacking We learn how effects can stack and cover the parameters for stacking + +- Can stack by target or by source +- in wow, heals should be by target and dot by source +- stack can be limited and have rules for stack expirations + +## 7 Infinite Gameplay Effects We add an Infinite Gameplay Effect to our Effect Actor + +- Effect can be infinite. Applied and removed mannualy + +## 8 Instant and Duration Application Policy We add an application and removal policy for the effects in our Effect Actor + +- Stupid overengeneering thing chapter + +## 9 Infinite Effect Application and Removal We learn how we can remove infinite gameplay effects and create a Fire Area. + +- `AAuraEffectActor` now has a map of [ASC: ActiveEffectList] to register applied effects that are not instants +- As map cannot have TArray as value type, we have to define an intermediate struct containing the array +- Added the functionnality to remove effects using the map +- We only remove one stack of the effect + +## 10 PreAttributeChange We learn about PreAttributeChange and how we can use it to clamp Attribute changes + +- implement the function `PreAttributeChange` in the attribute system +- it is triggered before changing an attribute to modify the future value +- used to clamp health and mana modifications to stay in bounds + +## 11 PostGameplayEffectExecute We learn about PostGameplayEffectExecute and the plethora of values we can harvest in it about a Gameplay Effect + +- implement the method `PostGameplayEffectExecute` to recieve informations about executed effects +- Create `ExtractEffectModProperties` that extract many informations from the effect into a struct `FEffectProperties` + +## 12 Curve Tables for Scalable Floats We learn how to create Curve Tables so we can scale the value in our Gameplay Effect using a Scalable Float Magnitude Calculation + +- Effects magnitudes can be scaled with level using curve from curve tables +- Created a curve table for heal and mana potion effects + +# Section 6 - Gameplay Tags + +## 1 Gameplay Tags We learn what Gameplay Tags are and why they are so useful + +- Tags are used to define states of things in an universal way unlike using enums + +## 2 Creating Gameplay Tags in the Editor We learn how to create Gameplay Tags from within the editor + +- Created tags in the project settings gameplay tags for all four attributes + +## 3 Creating Gameplay Tags from Data Tables We learn how to create Data Tables that are converted into Gameplay Tags + +- Created tags in a data table and added it to the tag data tables + +## 4 Apply Gameplay Tags with Effects We learn how to add Gameplay Tags for Gameplay Effects + +- Tags can be granted with effect +- Tags stacks +- We should read the `AbilitySystemComponent.h` file + +## 5 Gameplay Effect Delegates We learn how to respond to Gameplay Effect application via the Ability System Component's built-in delegates + +- Create method `OnEffectApplied` in `UAuraAbilitySystemComponent` +- Subscribe to delegate when effect is applied to trigger effect applied in a new method `AbilitySystemInitDone` +- Renamed `InitAbilityActorInfo` to `InitAbilitySystem` and move it to root character class as virtual +- Make it call `AbilitySystemInitDone` +- Bind delegate to ability system component and character when effect applied +- `ASC->OnGameplayEffectAppliedDelegateToSelf.AddUObject(this, &UThis::Method)` + +## 6 Get All Asset Tags We learn how to get all Asset Tags on a Gameplay Effect in C++ + +- Inspect Tag with `EffectSpec.GetAllAssetTags` to list effect tags + +## 7 Broadcasting Effect Asset Tags We learn how to broadcast a Gameplay Tag Container filled with Asset Tags to the Widget Controller + +- Add multicast delegate `OnEffectAssetTags` to ability system component +- Trigger multicast when effect is applied +- Add a lambda function to overlay widget controller and subscription to it +- Troubleshooting time. Sometimes, we should refresh blueprint nodes + +```cpp +OnThingDelegate.AddLambda([this](MyType MyValue) { + // Lambda code here +}); +``` + +## 8 UI Widget Data Table We learn how to create a Data Table to hold widget information for messages + +- Created struct matching gameplay tags to widgets +- Add the DataTable property to widget controller +- Created a table and set it in the blueprint properties + +## 9 Retrieving Rows from Data Tables We create a function for finding Data Table rows corresponding to message Gameplay Tags + +- We can read from data table in C++ +```cpp +FMyType* Row = MyDataTable->FindRow(FName("MyKey"), TEXT("")); +``` + +## 10 Broadcasting Data Table Rows We learn how to broadcast data from Data Table rows to Widget Blueprints + +- Tag matching + - "Attribute.Agility" matches "Attribute" + - "Attribute" does not match "Attribute.Agility" + + +## 11 Message Widget We create the message widget for when we add a message tag to a gameplay effect + +- Created message widgets and push them when an effect tags triggers + +## 12 Animating the Message Widget We animate the message widget + +- Created an animation to play when spawning message widget +- Destroy the widget after the animation + +## 13 Replacing Callbacks with Lambdas We learn how to replace callback functions to lambdas which we bind to delegates instead + +- Replaced method callbacks with lambdas in overlay widget controller +- Combined signatures of attribute changes into one + +## 14 Ghost Globe We are challenged to create a Ghost Globe that trails behind the Health and Mana Globes + +- Ghost trail globe interpolating to correct value in tick + +## 15 Properly Clamping Attributes We learn how to properly clamp attribute changes via PostGameplayEffectExecute + +- Clamp attributes in PostGameplayEffectExecute instead of PreAttributeChange + +# Section 7 - RPG Attributes + +## 1 Initialize Attributes from a Data Table We learn how to initialize Attributes by setting values in a Data Table + +- Added other attributes for Strength, Intelligence, Resilience and Vigor +- We can create a data table for attributes using AttributeMetaData +- Set it in the default ability component system DefaultStartingData +- This method is not the best one + +## 2 Initialize Attributes with Gameplay Effects We learn how to initialize Attributes with the use of a Gameplay Effect + +- Move common types in file `AbilitySystemTypes.h` +- Ability system component has list of starting effects to apply +- The course set it in the character but executes it at the same place +- Check some possible invalid cases +- Created the starting effect for all attributes +- Remove usage of data table + +- Starting attributes effect is of type instant and use override on primary attributes + +## 3 Attribute Based Modifiers We learn how to modify an Attribute in a Gameplay Effect with a modifier based on other Attribute values + +- We can apply modifier on effect using attribute of ether source or target + +## 4 Modifier Order of Operations We learn how the math works behind modifiers and go over several examples + +- Modifier occurs in order. That's why it's better to modify max health before health + +## 5 Modifier Coefficients We learn how modifiers can have coefficients to create more complex modifier math + +- Three parameters Coeficients, PreMultiplyAdditiveValue, PostMultiplyAdditiveValue + - NewResult = (Value + PreMultiplyAdditiveValue) * Coeficients + PostMultiplyAdditiveValue + +## 6 Secondary Attributes We create the Secondary Attributes for our RPG project + +- Secondary attributes are depending on primary attributes +- Created secondary attributes for Armor, ArmorPenetration, BlockChance, CriticalHitChance, CriticalHitDamage, CriticalHitResistance, HealthRegeneration, ManaRegeneration +- Set MaxHealth and MaxMana as secondary attributes + +## 7 Derived Attributes We learn how to derive Attributes from other Attributes, so when the backing Attribute changes, so does the derived Attribute + +- To make a derived attribute, we can use an infinite gameplay effect that override attributes using backing primary attributes +- Created GE_SecondaryAttribute with infinite duration + - Armor = 0.5 * Resilience + 10 + - Armor Penetration = 0.25 * Resilience + 0.5 * Strength + - Block Chance = 0.25 * Armor + - Crit Chance = 1.0 * Armor Pene + 0.5 * Intelligence + - Crit Damage = 4.0 * Armor Pene + 2.0 * Intelligence + - Crit Resistance = 0.1 * (Armor - 10.0) + - Health Regen = 0.5 * Vigor + - Mana Regeneration = 0.5 * Intelligence + - Max Health = 5.0 * Vigor + 10.0 + Level + - Max Mana = 5.0 * Intelligence + 10.0 + 10.0 * Level +- When setting override and add, the override overrides. Order doesn't matter + +## 8 Custom Calculations We learn how Modifier Magnitude Calculations (MMC) can have arbitrarily complex modifiers. + +- To modifiers depending on multiple attributes or complex method, we use MMC + +## 9 Player Level and Combat Interface We add Level to our Player State and create the Combat Interface so we can get the Level of an entity in the game + +- Created Replicated value `Level` in `AAuraPlayerState` +- Same but not replicated in AuraEnemy +- Create CombatInterface cpp with GetPlayerLevel method +- CharacterBase implement Combat interface + - AuraEnemy return his level + - AuraCharacter return player state level + +## 10 Modifier Magnitude Calculations We learn how to create Modifier Magnitude Calculations (MMC) to have arbitrarily complex modifiers. + +- We create a MMC, cpp class used to make custom attribute modifier calculation + +```cpp +// Header +UCLASS() +class MY_API UMMC_MyCalcul : public UGameplayModMagnitudeCalculation +{ + GENERATED_BODY() +public: + UMMC_MyCalcul(); + virtual float CalculateBaseMagnitude_Implementation(const FGameplayEffectSpec& EffectSpec) const override; +private: + // Create as many to capture all attributes we need + FGameplayEffectAttributeCaptureDefinition AttributeDef; +}; + +// Cpp +UMMC_MyCalcul::UMMC_MyCalcul() +{ + AttributeDef.AttributeToCapture = UMYAttributeSet::GetMyAttributeAttribute(); + AttributeDef.AttributeSource = EGameplayEffectAttributeCaptureSource::Target; + AttributeDef.bSnapshot = false; + + RelevantAttributesToCapture.Add(AttributeDef); +} + +float UMMC_MyCalcul::CalculateBaseMagnitude_Implementation(const FGameplayEffectSpec& EffectSpec) const +{ + // Gather tag from source and target + const FGameplayTagContainer* SourceTag = EffectSpec.CapturedSourceTags.GetAggregatedTags(); + const FGameplayTagContainer* TargetTag = EffectSpec.CapturedTargetTags.GetAggregatedTags(); + + FAggregatorEvaluateParameters EvaluationParameters; + EvaluationParameters.SourceTags = SourceTag; + EvaluationParameters.TargetTags = TargetTag; + + float MyAttribute = 0.0f; + GetCapturedAttributeMagnitude(AttributeDef, EffectSpec, EvaluationParameters, MyAttribute); + + // Can fetch many other values from context + // EffectSpec.GetContext().GetSourceObject() + + return MyAttribute * MyAttribute; +} +``` + +## 11 Initializing Vital Attributes We initialize the Vital Attributes with a Gameplay Effect + +- Fix anomaly in blueprint +- Create MMC for derived attributes +- To heal full life, make effect that give health equal to maxhealth + +Small modifications +- Removed cpp MMC for derived attributes and used a base class for all derived attributes +- Made multiple blueprints class for all derived attributes +- TODO: Fix player level interface in c++ to use in bp + +# Section 8 - Attribute Menu + +## 1 Attribute Menu - Game Plan We lay out the Game Plan for our Attribute Menu + +- Menu widget preparation + +## 2 Attribute Menu - Framed Value We create the Framed Value widget that we can reuse in other widgets + +- FramedValue widget + +## 3 Attribute Menu - Text Value Row We create a Text Value Row widget that has text as well as a Framed Value + +- Made text value row with a named slot + +## 4 Attribute Menu - Text Value Button Row We create the Text Value Button Row widget that makes use of the Named Slot so we can take advantage of widget inheritance + +- Made inheriting text value row with button + +## 5 Attribute Menu - Construction We begin construction of the Attribute Menu widget itself + +- Made Attribute Panel Menu with list of previously made widgets + +## 6 Button Widget We make a Button widget that we can reuse in any number of situations + +- Make a reusable button widget + +## 7 Wide Button Widget We subclass the Button widget into a Wide Button that looks pretty darn spiffy + +- Same button but wider + +## 8 Opening the Attribute Menu We implement functionality for opening the Attribute Menu + +- Use a button to show or hide attribute menu + +## 9 Closing the Attribute Menu We implement functionality for closing the Attribute Menu + +- Already done lol +- Using destruct to call OnClosed + +## 10 Plan for Displaying Attribute Data We create a plan for displaying the Attribute Data in a well-coded manner + +- Need a way to update data to attribute menu +- Can have widget controller observing each attributes but that's not scallable +- Have instead a controller that broadcast when a value change with a tag +- Each widget will have his own tag and only react if it matches +- Assiociation of tag and secondary attributes on cpp side + +## 11 Gameplay Tags Singleton We create a singleton for storing native Gameplay Tags that we wish to access from C++ + +- Make singleton `AuraGameplayTags` `to generate gameplay tags in cpp +- add an initialization method to generate tags + +## 12 Aura Asset Manager We create our own custom Asset Manager for the project and configure the project to use it, initializing the Gameplay Tags singleton + +- Create a singleton from type `UAssetManager` + - Get method to retrieve the singleton + - get the `GEngine->AssetManager` + - cast it to our type and return it + - override `StartInitialLoading` + - get `AuraGameplayTags` singleton and use the initializer +- Set the new asset manager type to be the project Asset Manager class +- Add one gameplay tag example in the AuraGameplayTag + +## 13 Native Gameplay Tags We add native Gameplay Tags, creating them an accessing them from C++ and Blueprint + +- Add cpp gameplay tag for all primary and secondary attributes + +## 14 Attribute Info Data Asset We create a Data Asset to store Attribute Info so we can broadcast it from the Widget Controller + +- Create data asset for attribute infos containing tag, name, description and value +- Create the blueprint value and initialize it with all attributes + +## 15 Attribute Menu Widget Controller We create the Attribute Menu Widget Controller + +- Create new widget controller for attribute menu + +## 16 Aura Ability System Blueprint Library We make our very own Blueprint Function Library so we can expose hidden gems in C++ to the Blueprint side + +- Created a blueprint library function to get overlay widget controller from anywhere + +## 17 Constructing the Attribute Menu Widget Controller We construct the Attribute Menu Widget Controller + +- Copy the method to get overlay widget controller with attribute menu controller + +## 18 Attribute Info Delegate We make the Attribute Info Delegate, capable of broadcasting Attribute Info up to Widget Blueprints + +- attribute widget delete subscribes to some infos +- create methods in widgets to display received data + +## 19 Widget Attribute Tags We give each row in the Attribute Menu its own Gameplay Tag associated with an Attribute + +- Add gameplay tag value to each widgets to define the observed value +- Use macro to broadcast all attributes in the attribute menu controller + +## 20 Mapping Tags to Attributes We map Gameplay Tags to Attributes in the Attribute Set so we can easily figure out which Attribute is associated with which Attribute Tag + +- In the course, creating a map marching gameplay tags with attributes +- attributes are set a typedef of function calling +- did not understand everything here, big things about templating types + +## 21 Responding to Attribute Changes We implement a callback for responding to changes in the values of our Attributes + +- The course uses the tag map to write a more elegant solution with less boilerplate. +- But it goes throught the O(n) for loop each time it's requesting an attribute info in the dataasset + +# Section 9 - Gameplay Abilities + +## 1 Gameplay Abilities We briefly go over what Gameplay Abilities are, what they can do, and how they work + +- Gameplay Ablity + - Class that define a skill or ability + - Must be granted + - Granted on server + - Spec replicated to client + - Used on activation + - Can have resource cost and cooldown + - Run asynchronously + - can have multiple executions at the same time + - Ability task is asynchronous operation + - send delegate informations + +## 2 Granting Abilities We learn how to grant Gameplay Abilities to an Ability System Component + +- Made root ability class +- Add list of ability in characters +- Method to add all abilities from a character +- We grant ability with the ability component system + - we can grant and instantly use + +## 3 Settings on Gameplay Abilities We go over the numerous settings on the Gameplay Ability Blueprint + +- Abiliy can be instanced in three way + - Never instanced and used as singleton ability in the game + - Instanced once per actor and reused each uses + - Instanced each executions +- `NetExecutionPolicy` Can choose a replication policy to predict or not +- Cost and cooldown are setup with gameplay effects +- Things not to do + - "Replication Policy" is useless says Epic + - "Server Respect Remote Ability Cancellation" should not be + - "Replicate Input Directly" is discouraged + +## 4 Input Config Data Asset We create a Data Asset to map Input Tags to Input Actions + +- Input actions bounds to input with input mapping context +- We're going to make changing ability buttons possible +- Created a data asset for input config + - A struct that link an input action to a gameplay tag + - The data asset contains a array of this struct +- Added tags in cpp for inputs abilities and matching Input Action assets (as bool) +- Link them all in the input mapping context + +## 5 Aura Input Component We create our own Enhanced Inpuit Component capable of mapping callback functions to Input Actions by Gameplay Tag + +- Created our own input component type from type `UEnhancedInputComponent` +- Add template method that bind an ability action from our previous data set and send action tag +- `template + void BindAbilityActions(const UAuraInputConfig* InputConfig, + UserClass* BindObject, PressedFuncType PressedFunc, + ReleaseFuncType ReleaseFunc, HeldFuncType HelfFunc)` + +## 6 Callbacks for Ability Input We create callbacks on the Aura Player Controller class that will be bound to the Input Actions and receive their Input Tags + +- Add the data asset ability input config to our player controller and set it in the bp +- Create callback function for ability pressed, released and held in player controller +- use the previous template method from the input component to bind ability actions to callback + +## 7 Activating Abilities We learn how to Activate Abilities in the Ability System Component based on the Input Tags associated with them + +- In gameplay ability class + - Add a tag for the trigger input + - can be changed at runtime for the player +- In the ability system component + - Modify the spec to add the input tag from the aura ability class + - Add functions for input tag held and released + - Check with a O(n) for loop if we have an ability spec with matching input tag + - Activate or release it if we do +- In player controller + - Add reference to the ability system component + - Use ability input callback functions to call ability system component matching functions + +## 8 Click To Move We lay out a ground plan for Click-To-Move behavior + +- The standard template top down game does not manage click to move for clients +- We will implement our own way using the pathfinder and a spline to smooth the result + +## 9 Setting Up Click to Move We set up the Click-To-Move system + +- When player click, we save if there was an hovered enemy +- When the click is hold + - In case of a targeted enemy, we proceed with ability trigger + - In case of no enemy + - we add the delta time to follow time + - Line trace under cursor to cached destination + - Add movement input to the controlled pawn toward the cached destination + +## 10 Setting Up Auto Running We add the Auto-Running mechanic to our Click-To-Move system + +- When player release click + - In case of no targeted enemy and the follow time is quick enough + - Pathfind from pawn location to cached destination + - Add the points to the spline + - set the cached destination to the last point of the spline +- Also added a nav mesh volume and obstacles in the world and "NavigationSystem" to modules + +## 11 Implementing Auto Running We finish Click-To-Move's Auto Running mechanic + +- new function `AutoRunTick` used from player controller tick function + - get the closest spline point and direction from the pawn + - add the direction to the pawn movement input +- Allow client side navigation in project settings + +## 12 Code Clean Up We clean up the code in the Aura Player Controller class and make sure things work in multiplayer + +- player controller cache cursor hit on tick +- OnEffectApplied is now triggered on client + +```cpp +// To write Remote Function Call (RFC) +/* MyClass.h */ +UFUNCTION(Client, Reliable) void ClientMyFunction(); +UFUNCTION(Server, Reliable) void ServerMyFunction(); +UFUNCTION(NetMulticast, Reliable) void MulticastMyFunction(); +/* MyClass.cpp */ +void ClientMyFunction_Implementation() { /* */ } +void ServerMyFunction_Implementation() { /* */ } +void MulticastMyFunction_Implementation() { /* */ } +``` + +## 13 Aura Projectile We create a Projectile class that we can spawn with a Gameplay Ability + +- Create a basic projectile actor + - sphere collider component + - projectile movement component + - speed 550 + - no gravity + - editor arrow + - Overlap with channels WorldDynamic, WorldStatic, Pawn +- Made a firebolt from projectile + +## 14 Aura Projectile Spell We create the Gameplay Ability that we will use to spawn projectiles + +- Create subclass of base gameplay ability for projectile ability +- Lot of informations about what an ability can do by reading `GameplayAbility.h` in the engine + - K2 prefix is a legacy feature means Kismet2 which has been replaced by Blueprint. It is now used to prefix a function that should be implemented in blueprint + - ActivateAbility is not directly use. We should use TryActivateAbility to check for prerequisistes + - The important functions + - CanActivateAbility() + - const function to see if ability is activatable. Callable by UI etc + - TryActivateAbility() + - Attempts to activate the ability. Calls CanActivateAbility(). Input events can call this directly. + - Also handles instancing-per-execution logic and replication/prediction calls. + - CallActivateAbility() + - Protected, non virtual function. Does some boilerplate 'pre activate' stuff, then calls ActivateAbility() + - ActivateAbility() + - What the abilities *does*. This is what child classes want to override. + - Should call CommitAbility and EndAbility + - CommitAbility() + - Commits reources/cooldowns etc. ActivateAbility() must call this! + - CancelAbility() + - Interrupts the ability (from an outside source). + - EndAbility() + - The ability has ended. This is intended to be called by the ability to end itself. + - Can get owning actor, actor skeletal mesh component + - Many shortcut to activate effects +- The blueprint ActivateAbility is called before the cpp + +## 15 Spawning Projectiles We actually spawn fireballs with our new Gameplay Ability, but learn that there are a few more things we must implement when we learn about Ability Tasks + +- Replicate projectiles +- Add method to get combat socket in CombatInterface + - Character Base will return a socket location in the weapon +- Projectile Ability has class parameter +- Aura projectile ability + - has effect on server + - Spawn actor at location of combat interface socket +- Added sockets to the weapon skeleton + +```cpp +// To spawn an actor +AActor* MyActor = GetWorld()->SpawnActorDeferred(MyClass, SpawnTransform, OwnerActor, Cast(CasterActor), ESpawnActorCollisionHandlingMethod::AlwaysSpawn); +/* Can do things before the construction script here */ +MyActor->FinishSpawning(SpawnTransform); +// SpawnActor also exist and has no need to call finish spawning afterward +``` + +# Section 10 - Ability Tasks + +## 1 Ability Tasks We learn about Ability Tasks, what they are, and how we can use them in Abilities + +- `UAbilityTask` can be inherited to create our own tasks + - `DECLARE_DYNAMIC_MULTICAST_DELEGATE(FMyDelegate)` to declare delegate type + - can have multiple delegates that will appear in the node +- We should use ability task for everything that wait for something like montage waiting for notify + +## 2 Sending Gameplay Events We learn how to send a Gameplay Event to an Actor and listen for that Event in an Ability with an Ability Task + +- Created a anim notify that send a gameplay tag to the actor when triggered + +## 3 Spawn FireBolt from Event We spawn a Fire Bolt in response to receiving a Gameplay Event + +- Projectile ability has a function to spawn ability +- The blueprint will call the spawn after an awaited event + +## 4 Custom Ability Tasks We learn how to create a custom Ability Task class + +- tasks have a method `Activate` that triggers to execute the job +- can write a creation method and delegates so it will all appear in a blueprint create node +- Created an ability task to get data under cursor + +```cpp +// Method to have a create task blueprint node +UFUNCTION(BlueprintCallable, meta = (DisplayName = "MyTask", HidePin = "OwningAbility", DefaultToSelf = "OwningAbility", BlueprintInternalUseOnly = true)) +static UMyStask* CreateMyTask(UGameplayAbility* OwningAbility); + +// BlueprintAssignable delegate values will have an execution pin from the creation blueprint node + +// Add at top of the file +DECLARE_DYNAMIC_MULTICAST_DELEGATE_xxxParams(FMyTaskEventSignature, /* [...] */) + +// Add delegate for each trigger pin +UPROPERTY(BlueprintAssignable) +FMyTaskEventSignature MyTriggerableEvent; +``` + +## 5 Target Data We learn about Target Data and how we can use it to send data from Client to Server + +- Target Data is a structured way of managing target informations for abilities + - Actor Array + - source location + - list of actor + - Location Info + - source location + - target location + - Single Hit Result + - hit result +- Abilities have a delegate ready for target data updates +- Ability task should use `ShouldBroadcastAbilityTaskDelegates()` to check if they can broadcast informations + +## 6 Send Mouse Cursor Data We set up our Ability Task to send Target Data to the server + +- Create method to send cursor hit result informations +- Switched delegate parameter type from vector to targetdata hitresult + +## 7 Receiving Target Data We implement receiving Target Data by the server in our Ability Task + +- Subscribe on server for target data delegate to broadcast the data +- check if the target data delegate already occured and turn in waiting state if not +- Add the line `UAbilitySystemGlobals::Get().InitGlobalData();` to the initial loading of the asset manager + +## 8 Prediction in GAS We learn how GAS implements its Prediction with the use of Prediction Keys + +- The prediction key is the hash identifier created when the ability activates +- It is used to identify predicted events from a client to match with future server behavior +- Every side effects of the ability have another prediction key +- More infos in file `GameplayPrediction.h` + +## 9 Orienting the Projectile We use our Target Data and orient the Projectile correctly on clients and server + +- Add the target location parameter to spawn projectile +- Add the hold position action + +## 10 Motion Warping We use Motion Warping to orient Aura toward the Projectile's direction + +- Add the motion warping plugin +- Add motion warping state notify during the ability montage + - WarpTargetName = "FacingTarget" + - Warp rotation only. Facing +- Add motion warping component to aura character +- Get warping component from ability start to set the target + +## 11 Projectile Impact We implement Impact sound effects and visuals + +- Add on impact broadcast in aura projectile to manage impact behavior on blueprint side + +## 12 Projectile Collision Channel We create a custom Collision Channel for the Projectile + +- Create a projectile collision channel default to ignore +- pawn, character mesh, destructible will overlap + +## 13 Projectile Gameplay Effect We create a Gameplay Effect for our Projectile to apply when it hits something in the Level + +- add projectile spawns with a `FGameplayEffectSpecHandle` created from the spawner asc and has a method to apply effect to a target asc +- projectile ability has an effect class +- To expose a variable as pin from spawn `UPROPERTY(meta = (ExposeOnSpawn = true))` + +## 14 Enemy Health Bar We create an Enemy Health Bar and get it working + +- Add delegate in character base for percent health change +- Create health progress bar widget +- Add the health bar to enemy character +- Use character as widget controller and subscribe to the on percent health change to update the widget + +## 15 Ghost Bar We add a Ghost bar to our Progress Bar widget + +- Ghost bar for enemy health widget + +# Section 11 - RPG Character Classes + +## 1 RPG Character Classes We discuss how we will be handling RPG Character Classes and their default Attributes + +- Should change starting effect to data assets to make easy prefab of effect lists + +## 2 Character Class Info We create a Data Asset to hold the default Gameplay Effects and Abilities for each Character Class + +- Made data asset for character class infos + - name + - class gameplay tag + - base effects (scaling with levels) + - on begin effects (applied on begin) +- Move StartingEffects from ability system component to class info +- Apply base effects after character base ability system initialization +- Add list of base effects handles in character base class + +## 3 Default Attribute Effects We create the Gameplay Effects to initialize the default Attributes for Enemies + +- Enemies have differente base attributes but similar secondary attribute scaling + +## 4 Curve Tables - CSV and JSON We learn how to create CSV and JSON files from our Curve Tables, and how to make Curve Tables from these file formats + +- Curve tables can be exported in csv +- JSON can be imported as Data table, Curve table, Float curve, Vector curve, Linear color curve + +## 5 Initializing Enemy Attributes We initialize our Enemy Attributes based on their Character Class and Level + +- The course is using one date asset in the game mode to define the attributes of an enumeration class carried by all characters + +# Section 12 - Damage 128 vids so far + +## 1 Meta Attributes We learn how Meta Attributes can act as intermediary Attributes, allowing for calculations before the actual Attributes are affected + +- Meta attribute can perform calcul before applying attribute changes + +## 2 Damage Meta Attribute We create our Damage meta attribute + +- A meta attribute is set in the attribute set but not replicated as it is only used by the server +- Added a meta attribute `IncomingDamage` in the aura ability set +- Add post gameplay effect execute for incoming damage + - save new incoming damage and set it to zero + - modify health using incoming damage and clamp + - we have here the possibility of customizing the damage taking + +## 3 Set By Caller Magnitude We learn about the Set by Caller Magnitude and how to use it + +- Create gameplay tag for damages +- Use `AssignTagSetByCallerMagnitude` to modify an effect spec handle value giving the tag and value +- Set the firebolt damage to a defined value + +## 4 Ability Damage We give our Gameplay Ability class a Scalable Float that we can use a Curve Table for to scale Damage based on Level + +- `FScalableFloat` is a struct that can be used a property. It can be a constant float or a curve table scaling value +- Add the scalable float damage in base gameplay ability with a getter scaling from the ability level + +## 5 Enemy Hit React We create an Enemy Hit React Ability + +- Reacting is an ability +- Being in a hit reaction is a gameplay tag +- HitReact effect + - infinite + - grant tag Effects.HitReact +- Register to a change of gameplay tag with `AbilitySystemComponent->RegisterGameplayTagEvent(MyGameplayTag, EGameplayTagEventType).AddLambda([](const FGameplayTag& CallbackTag, int32 NewCount) {});` + - GameplayTagEventType can be `NewOrRemoved` or `AnyCountChange` +- Character base has a bool value to check if is hitreacting updated by the callback +- Hit react ability + - Grant hit react effect + - Play hit react montage + - Remove hit react effect when montage ends +- combat interface has a montage for hit react +- add the hit react montage in character base, set for all classes + +## 6 Activating the Enemy Hit React Ability We activate the Enemy's Hit React Ability + +- When attribute set receive incoming damage, check if is fatal + - If not, activate ability with tag Events.HitReact +- Added the hit react ability to each class data assets +- Hit react set "Retrigger instanced abilities" to chain hit react + +## 7 Enemy Death We create a Death Ability + +- Add the blueprint implementable Die method to combat interface +- implemented by blueprint to multicast a drop weapon and enable ragdoll +- triggered by fatal damages + +## 8 Dissolve Effect We implement a Dissolve Material Effect for when the Enemy dies + +- Handle death in multicast cosmetic to change material to dynamic instanced dissolvable material and trigger a timeline that changes its parameters + +## 9 Floating Text Widget We create a Widget for showing the Damage caused with floating text + +- Creating floating text widget with animation + +## 10 Showing Damage Text We actually show the floating text when a Character is damaged + +- In player controller, add client rfc method to show a damage dealt event implemented in blueprint +- Trigger the method when an attribute set is receiving incoming damages + +## 11 Execution Calculations We learn about Execution Calculations, their strengths and caveats, and what they're capable of + +- Customizable way to modify attribute in effects +- Can use programming logic +- No prediction +- Only instant or periodic +- Does not run PreAttributeChange +- Only executed on server (Not working with LocalOnly abilities) + +## 12 Damage Execution Calculation We create our own Damage Execution Calculation and learn what values can be accessed in it + +- created exec calc for damages + - capture usefull informations in execute + +## 13 ExecCalcs - Capturing Attributes We learn how to capture Attribute values in the Damage Execution Calculation + +- Create custom attribute based exec calc that can capture source datas + +## 14 Implementing Block Chance We capture the Block Chance Attribute and take it into account when determining if there was a successful Block + +- Add the block chance to the relevant attributes to capture in the damage calculator +- When a block occurs, divide damages by 2 + +## 15 Implementing Armor and Armor Penetration We implement Armor and Armor Penetration in our Damage ExecCalc + +- Add the armor of the target and armor penetration of the source in the relevant attributes to capture +- Armor penetration will decrease armor and armor left will decrease damage taken + +## 16 Damage Calculation Coefficients We create Curve Tables for the coefficients in our Damage calculations and replace hardcoded "magic numbers" + +- In the course, the ExecCalc for damages will use a curve table to decrease block chances per level + +## 17 Implementing Critical Hits We implement Critical Hits, taking into account the Critical Hit Chance, Resistance, and Damage Attributes + +- Critial hit can occurs and will multiply damages by 2 plus a bonus using critial damages decreased by critical resistance. Resistance cannot decrease damages less than initial damages +- there are 3 types of damages, physical scaling with strength, magical scaling with intelligence, brut ignoring everything and dealt after any calcul. + +# Section 13 - Advanced Damage Techniques + +## 1 The Gameplay Effect Context We take a deep dive into the FGameplayEffectContext struct and see what it can do - and what it can't + +- An effect context is an object created for the effect containing many informations + - instigator set when creating the context with an ASC + - other things that we can modify at our will + - an actor list + - a hit result + - a world origin + - an ability +- Context can be subclassed to add more informations to it +- Add Ability in context when spawning projectile ability +- Add hit result context in fireball hit + +## 2 Custom Gameplay Effect Context We create our own custom Gameplay Effect Context struct + +- Create custom damage effect context containing critical hit and blocked hit informations + +## 3 NetSerialize We look at NetSerialize and see what it does for serialization of the FGameplayEffectContext struct + +- The Archive type has an operator overloaded `<<` that works both way to serialize or deserialize +- The function to serialize is the same as deserialize thanks to operator overloading + +## 4 Implementing Net Serialize We implement NetSerialize for our custom Gameplay Effect Context struct + +- Copy of the implementation of parent net serialize because the serialization has to all happen in one step +- Add our new variables to the bits + +## 5 Struct Ops Type Traits We learn how Type Traits determine the capabilities of a Script Struct and we define Type Traits for our struct + +- there is a template struct TStructOpsTypeTraits bellow FGameplayEffectContext that we should use +- Contains enum used by the reflection system to define behavior during serialization and replication +- Copy the parent duplicate method + +## 6 Aura Ability System Globals We create our own Ability System Globals class, which is necessary to designate our custom Effect Context to be used in our GAS project + +- Created a new class from ability system globals + - override the allocate gameplay effect context to allocate our own type +- Reference the custom effect context in DefaultGame.ini + +## 7 Using a Custom Effect Context We learn how we can set and get the values of the variables in our custom Effect Context + +- Create method blueprint library to extract custom effect context from effect context handle +- Create getter and setter to access custom property in blueprint +- To not make a reference parameter being an output in blueprint, prefix it with `UPARAM(Ref)` + +## 8 Floating Text Color We change the color of our Floating Text based on the values retrieved from our custom Effect Context + +- In aura attribute set, during post gameplay effect execute, Send effect context parameters to the player controller method that show a floating damage widget on the screen + +## 9 Hit Message We add a Hit Message and set the text for it based on the values retrieved from our custom Effect Context + +- Add an animated text bellow the floating damage widget that animated with it according to the hit kind (critical or block) + +## 10 Damage Types We define Damage Types with Gameplay Tags and create a Damage Gameplay Ability capable of dealing multiple damage types + +- Create additional gameplay tags for each damage type. brut, physical, magical, fire, ice, shock, shadow +- make blueprint library function to get all damage gameplay tags +- new intermediate class gameplay damage ability that contains a map of damages per types. Can assign set by caller magnitudes for all damage types in an effect spec handle +- projectile actor has a list of applied effects handles + +## 11 Mapping Damage Types to Resistances We add a map to our Gameplay Tags singleton so Damage Types are associated with Resistance to those Damage Types + +- Add attribute list for resistances and use it everywhere we use secondary attributes + +## 12 Resistance Attributes We add Resistance Attributes to our Attribute Set + +- add the resistance attribute to the attribute set +- Create a map in gameplay tags singleton to match damage effect type with damage resistance + +## 13 Resistance Damage Reduction We reduce damage using our Damage Resistances + +- Make a function in blueprint to calculate base damage type against resistance +- use the ExecCalc for damage to take resistance into calculs + +## 14 Multiplayer Test We test our gameplay mechanics in multiplayer + +# Section 14 - Enemy AI 159 + +## 1 Enemy AI Setup We discuss how our Enemy AI will behave + +- Must create a behavior three and controller and assign it to the enemy character + +## 2 AI Controller Blackboard and Behavior Tree We create an AI Controller, a Blackboard, and a Behavior Tree for our AI Enemies + +- Add module `AIModule` to build +- Create cpp ai controller class + - contains behavior tree assignable in blueprint + - run the behavior tree on possess +- Create behavior tree and black board and assign it to enemy character + +## 3 Behavior Tree Service We create a Behavior Tree Service to find the nearest player + +- Created a service FindNearestPlayer +- Service can access `AIOwner` and `ActorOwner` +- Service run bellow a task node while it's running +- selector task run sub tasks until one succeeds + +## 4 Blackboard Keys We add some Keys to our Blackboard + +- Add key for actor to follow and distance to actor +- Add a key selector in the cpp service +- the ticknode of find nearest player will lock for actor with tag of opposite team ("Enemy" <-> "Player") +- Create editor object filter for selector keys using +``` +virtual void OnNodeCreated() { + TargetToFollowSelector.AddObjectFilter(this, + GET_MEMBER_NAME_CHECKED(UBTService_FindNearestPlayer, TargetToFollowSelector), + AActor::StaticClass()); + + DistanceToTargetSelector.AddFloatFilter(this, + GET_MEMBER_NAME_CHECKED(UBTService_FindNearestPlayer, DistanceToTargetSelector)); +} +``` + +## 5 Finding the Nearest Player We create the algorithm for finding the nearest player + +- Pick the closest actor and set it in the blackboard key +- Move to closest player actor + +## 6 AI and Effect Actors We sort out compatibility issues with our AI and our Effect Actors + +- Uncheck use controller yaw in enemy character and use orient toward movement in character movement instead for a smooth rotation +- Make potion actor picked up only by player + +## 7 Behavior Tree Decorators We add Decorators to our Behavior Tree nodes to make them conditional + +- The course makes a decorator to check if we're a melee class + +## 8 Attack Behavior Tree Task We create a Behavior Tree Task for Attacking + +- Created an attack task +- Create a move around target task + +## 9 Find New Location Around Target We give our melee attackers a way to find a new attack location close to their target + +- Move around the target to follow when reaching the desired range + +## 10 Environment Query System We learn about the Environment Query System and how it can be used with AI + +- Generate set of points around actor with scores +- Scores can be influences with parameters and custom logic + +## 11 Environment Queries We learn how to create an Environment Query + +- There is an actor class EQSTestingPawn used to test environment queries +- An eqs can generate geometric path around a target +- Can be expensive so not to use too frequently + +## 12 EQS Tests We learn how to run a trace Test on our Environment Queries + +- We can add a test to the generation of points to give values for each points +- eqs have context class that we can customize by creating a blueprint from `EnvQueryContext_BlueprintBase` + - contains functions that are used to determine points + - used one to return all player controlled characters + +## 13 Distance Test We learn how to perform a Distance Test on an Environment Query + +- Created eqs that check + - grid of points in a walkable rectangle around + - Prefer points far from enemies + - Prefer points close to caster + - Filter only points with visibility on enemy +- defined ranged attack to be at 700 for now + +## 14 Using EQS Queries in Behavior Trees We learn how to use our EQS Queries in our Behavior Trees + +- There is a behavior task to run query and set the best result in a blackboard key +- Created behavior for mellee and ranged enemies +- Created AIController for mellee and ranged +- Assign correct behaviors to controllers and controllers to enemies + +# Section 15 - Enemy Melee Attacks 174 + +## 1 Melee Attack Ability We implement the Attack Ability for melee attackers + +- Create ability for mellee attack + +## 2 Attack Montage We create the Attack Montage for our melee Enemies + +- Create montage for goblin spear + +## 3 Combat Target We learn how to set a Combat Target for our AI Enemies + +- Add target functionnalities in Combat interface + +## 4 Melee Attack Gameplay Event We learn how to send a Gameplay Event to an Actor from an Anim Notify + +- Use anim notifications to trigger damage in ability + +## 5 Get Live Players Within Radius We create a static utility function for getting all live players inside an invisible sphere of specified radius + +- Get sphere overlap for enemies of caster + +## 6 Causing Melee Damage We implement causing melee damage of the Physical Damage Type + +- Use the hitdamage effect to apply damages to all overlapped enemies + +## 7 Multiplayer Melee Test We test enemy melee attacks in multiplayer + +- Yup, it works + +## 8 Montage Gameplay Tags We create Gameplay Tags for our Montage Events + +- Use a method in combat interface to get the correct montage to play from a name + +## 9 Tagged Montage We create the concept of a Tagged Montage, or a Montage that is associated with a Gameplay Tag + +- Created struct that contains + - the montage to play + - the socket name tag to get when hit event happen + - the hit event that will occur during the montage + +## 10 Multiple Attack Sockets We handle the situation where an Enemy AI might have multiple attack sockets + +- Get the ability montage for the mellee ability and use the corresponding socket name and event to trigger the damage hit + +## 11 Ghoul Enemy We create the Ghoul Enemy type + +- Create ghoul character. Warrior with slow move speed and lot of health + +## 12 Ghoul Attack Montages We create Attack Montages for both left and right attacks for the Ghoul + +- Create attack montage for the ghoul + +## 13 Melee Polish We polish up melee gameplay mechanics + +- Character movement has a section for avoidance so they avoid each other in groups + +# Section 16 - Enemy Ranged Attacks 187 + +## 1 Ranged Attack We create the Ranged Attacker's Gameplay Ability + +- Created goblin ranged attack from projectile ability and add the ai auto attack tag + +## 2 Rock Projectile We create the Rock Projectile that our Slingshot Goblin will launch + +- Create actor from projectile with a rotating static mesh for the rock projectile of slingshot + +## 3 Ranged Damage Curve We create the Damage Curve for our Ranged Attacker + +- Add SlingshotHit in goblin ability damages curves and use it to define physical damages of the ability + +## 4 Granting Ranged Attacks We grant the Ranged Attacker the Ranged Attack Ability + +- Give the ability to slingshot goblins + +## 5 Slingshot Attack Montage We create the Slingshot Attack Montage + +- Create animation montage with + +## 6 Playing the Ranged Attack Montage We play the Ranged Attack Montage in the Ranged Attack Ability + +- Link the montage to the combat ranged animation to play it in the ability + +## 7 Spawning the Rock Projectile We spawn the Rock Projectile in the Ranged Attack Ability + +- Set the projetile of the ability to be the rock projectile and add rotating movement to the mesh +- Add emissive color and smoke effect to the projectile + +## 8 Slingshot Animation Blueprint We create an Animation Blueprint for the Slingshot Weapon + +- Create animation blueprint for slingshot + - normal idle animation and default animation slot + - modify the pouch bone with the location of the right hand socket of the character mesh + +## 9 Slingshot Attack Montage We play an Attack Montage for the Slingshot when attacking + +- Animation blueprint has a boolean state of holding pouch bone + - when firing animation, release the pouch bone and play the attack montage + - when animation ends, hold the pouch again + +# Section 17 - Enemy Spell Attacks 196 + +## 1 Goblin Shaman We create the Goblin Shaman Enemy type + +- Create shaman character with slow move speed + - Create class data asset for goblin shaman and assign it + - Assign hit react montage + +## 2 Shaman Attack Montage We create an Attack Montage for the Goblin + +- Create attack animation montage + - enable root motion in base attack animation + - Setup combat sockets locations + +## 3 Shaman Attack Ability We create the Goblin's Attack Gameplay Ability + +- Copy the slingshot ranged ability + - set the animation tag to spell throw + - projectile class to firebolt + - damage type to magical fire + - use new ability damage curve in goblin abilities +- Add the ability to the class data asset + +## 4 Dead Blackboard Key We make a Dead blackboard key so we can know when our Enemy is dead in the Behavior Tree + +- On enemy death, get the ai controller brain component and stop all logic + +## 5 Enemies Multiplayer Testing We test out Enemy mechanics in multiplayer + +- We don't have bugs here + +# Section 18 - Enemy Finishing Touches 201 + +## 1 Goblin Spear - Sound Notifies We add sound notifies for our Spear Goblin Enemy + +- Add souds for goblin and ghoul steps and attack + +## 2 Impact Effects We add impact effects for when the Spear Enemy hits a target + +- Add particle effect when goblin ability hit + +## 3 Melee Impact Gameplay Cue We learn how to create a Gameplay Cue to ensure that our hit effects replicate + +- Create a gameplay cue of type GameplayCueNotifyStatic +- override function `OnExecute` to give a behavior when cue activates +- create gameplay tag `GameplayCue.Impact.Spear` and assign it to the cue +- execute gameplay cue with param on owner in the goblin spear attack impact +- we can send many different parameters in the gameplay cue parameters structure + +## 4 Montage and Socket Tags We introduce the concept of Socket Tags to our Tagged Montage + +- When getting the combat montage, we get a structure also containing informations about the hit socket and triggered gameplay tag + +## 5 Goblin Spear - Hurt and Death Sounds We add Hurt and Death sounds to our Spear Goblin + +- Goblin have sound when hit and when dying + +## 6 Goblin Slingshot - Sound Notifies We add sound notifies for our Slingshot Goblin + +- Rock has sound on impact +- Add footstep sounds for goblin + +## 7 Rock Impact Effects We add impact effects for our Goblin's slingshot rock + +- Slingshot impact trigger a particle system + +## 8 Goblin Shaman - Sound Notifies We add sound notifies for our Shaman Goblin + +- Shaman sounds when walking and hurt + +## 9 Ghoul - Sound Notifies We add sound notifies for our Ghoul + +- Add footstep sounds and death sounds for ghoul + +## 10 Ghoul - Swipe Trail We create a swipe trail for our Ghoul attack + +- Ghoul attack have a trail effect + +## 11 Demon Blueprint We create the Demon Character Blueprint + +- Create a new aura enemy for summoned demon + +## 12 Demon Melee Attack We implement the Demon's melee attack + +- Create montages for demon melee attack with the spin animations +- Create ability demon spin melee attack + +## 13 Demon Ranged Attack We implement a ranged attack for the Demon + +- Create montage for demon ranged attack +- Create ability demon throw projectile + +## 14 Demon - Sound Notifies We add sound notifies to the Demon Character + +- Add sounds for demon footstep, hit reaction and death + +## 15 Demon - Dissolve Effect We add the dissolve effect for the Demon's death + +- Setup dissolve effect in demon handle death + +## 16 Shaman Summon Locations We create an algorithm to calculate summon locations for the Shaman + +- Create summon ability that find places to summon things + +## 17 Async Spawn Times We use Timers to create Asynchronous spawn times for the Shaman's spawn Ability + +- For loop with delay to trigger each spawns + +## 18 Summoning Particle Effect We implement a particle effect for summoning + +- Spawn summoning circle at each summoning locations + +## 19 Select Minion Class at Random We create an algorithm to select a class to spawn at random + +- Pick random class from array and spawn it + +## 20 Minion Summon Montage We implement the summoning montage for the Shaman + +- Create the shaman summon montage and assign it to the CombatMontage.Attack.Spell.Incant + +## 21 Minion Count We implement a minion count + +- Assign a summoned minion list on the summon ability + +## 22 Elementalist Behavior Tree We create a Behavior Tree for the Elementalist Enemy type + +- Add the summoning ability in the behavior tree + +## 23 Elementalist Attack Task We create a Behavior Tree Task for the Shaman's Attack + +- The course does some weird shit + +## 24 Decrementing Minion Count We decrement Minion count when a minion dies + +- Create function in summon ability to spawn character and manage the summoned minion list + +## 25 Adding Juice with Tweening We add some Juice to the summoning of minions with Tweening + +- Add spawn effect on enemy characters + +## 26 Enemies Final Polish We polish up the mechanics for our Enemies + +- May think about creating arc projectiles + +# Section 19 - Level Tweaks 227 + +## 1 Level Lighting and Post Process We make our level look a great deal better with Post Process Effects + +- Level with a post process material that cancel eye adaptation +- To cancel eye adaptation, use EV100 to 0, 0 + +## 2 Texture Streaming Pool Over Budget We learn about the Texture Streaming Pool Over Budget error message, what it means and how to eliminate it. + +- Compress the 4k texture to take less vram + +## 3 Flame Pillar Actor We create a Flame Pillar Actor and ensure that its light pulsates in a random manner + +- Use custom timeline to change light location and intensity for a burning effect + +## 4 Fade Actor We create a Fade Actor which can fade out when obstructing the camera + +- Create static mesh class that can fade in and out +- Create interface to fade in and out +- Add capsule collision to the camera to fade interfering actors + +## 5 Fading Out Obstructing Geometry We fade out obstructing geometry using our Fade Actor class + +- Player controller update on tick material parameter collection to define character and camera location +- Create material function MF_CameraFade to return the opacity value of the fragment using parameter collection +- Some materials can use it and link it to the opacity mask to automatically implement fading with camera +- TODO: Implement a fading material for all assets + +# Section 20 - Cost and Cooldown 232 + +## 1 Health Mana Spells Widget We create the Widget that will show Health, Mana, Spells, and XP + +- Update the widget overlay with a design to have vital attributes, abilities and xp bar +- Create a widget containing health globe, mana globe, ability slots and custom named slots + +## 2 Spell Globe We create a Spell Globe widget to show spell icons + +- Created a reusable widget for an icon in a ring +- Created a subwidget to add a cooldown marker inside + +## 3 Adding Spell Globes We add the Spell Globes to our Widget + +- Use the ability widget in the character widget + +## 4 XP Bar We add an XP bar to our Widget + +- Create xp bar frame and progress and add it to the overlay + +## 5 Ability Info Data Asset We create the Ability Info Data Asset that will store data related to Abilities + +- Create data asset for ability descriptions with name, description, icon and ring background + +## 6 Initialize Overlay Startup Abilities We initialize the Startup Abilities in our Overlay so we can see the spell icons + +- Create a delegate in the Ability System Component to broadcast when ability are modified +- Use the previous delegate in the Overlay widget controller to broadcast ability modifications using data from the data asset + +## 7 For Each Ability Delegate We create a delegate that allows us to bind any functionality that we wish executed for each Ability in our Ability System Component + +- In ability system component, create a ForEachAbility function that iterate through all abilities and execute a lambda closure or a delegate + - Need to call `FScopedAbilityListLock ActiveScopeLock(*this);` before the loop to lock ability from other tasks +- Functions to extract ability id tag and input tag from ability spec + +## 8 Binding Widget Events to the Ability Info Delegate We bind our Widget Events to the Ability Info Delegate Broadcast + +- When overlay widget receive a controller, dispatch it to all ability ring +- Ability Ring will subscribe to the controller delegate for ability modification and check if its about them +- Use `UAuraAbilitySystemComponent::OnRep_ActivateAbilities()` to broadcast ability change on client + +## 9 Gameplay Ability Cost We implement Ability Cost for our Gameplay Abilities in the form of Mana + +- Create a cost effect for the firebolt + 1. Create gameplay effect + 2. Make it instant + 3. Add a modifier Add for Mana Attribute + 4. Use a negative value + 5. Assign it to the effect cost of the ability + +## 10 Gameplay Ability Cooldown We implement Gameplay Ability Cooldown + +- Create a gameplay tag for cooldown effects +- Create a cooldown effect for the firebolt + 1. Create gameplay effect + 2. Effect grant gameplay tag cooldown `Ability.Cooldown.Fire.Firebolt` + 3. Make it have a duration + 4. Assign it to the effect cooldown of the ability + +## 11 Cooldown Async Task We create an Async task capable of listening for changes to Cooldown Tags + +- Create a blueprint async task to watch over the cooldown + - Send notification when receiving the cooldown effect with the duration + - Send notification when cooldown tag is removed +- Use it from the blueprint side to update visual cooldown + +## 12 Cooldown Tags in Ability Info We add Cooldown Tags for each Ability in Ability Info + +- Make function from ability system component to get the cooldown tag from an ability +- Add the cooldown tag to the ability info when broadcasting ability modifications + +## 13 Showing Cooldown Time in the HUD We show an Ability's Cooldown in the HUD + +- Link the broadcast of the cooldown to UI + +## 14 Modeling Mode We learn how to change the pivot points of meshes with Modeling Mode + +- K + +# Section 21 - Experience and Leveling Up 246 + +## 1 Experience and Leveling Up We discuss ways to implement Experience and challenges that arise with it + +- Player has an experience count and the level is calculated by a curve + +## 2 Level Up Info Data Asset We create a Data Asset to store info related to leveling up + +- Create data asset for leveling + - float curve for xp required to each levels + - array of reward for each levels + +## 3 Adding XP to the Player State We add XP to the Player State class + +- Create LevelingExperience component to manage level and experience and add it to the player state + +## 4 Listening for XP Changes We listen for XP delegate broadcasts + +- Broadcast changes from leveling experience in overlay widget controller to change the experience bar + +## 5 Awarding XP Game Plan We discuss a plan to implement awarding XP + +- Incoming experience will be a meta attribute + +## 6 XP Reward for Enemies We add an XP reward for various Enemy classes + +- Add the scalable float for death experience in the character class data info + +## 7 Incoming XP Meta Attribute We create an IncomingXP Meta Attribute to handle incoming experience points + +- Add the meta attribute for incoming XP and observe modifications in the attribute set + +## 8 Passively Listening for Events We create a passive Gameplay Ability that can listen for Gameplay Events + +- Create Passive ability (from `GameplayAbility`) that listen to event on activation +- Create gameplay effect for event based effect +- the event listenner ability will use the magnitude of received effect and use it in a based effect with the set by caller magnitude +- Add passive ability to character class and grant and activate them when ability system is ready + +## 9 Sending XP Events We send an Event for gaining XP + +- On fatal damages, send a gameplay event with a payload containing the experience to earn + +## 10 Showing XP in the HUD We show XP in the HUD in our XP bar + +- Add PlayerInterface to fetch player informations from the avatar actor + - Function to get the leveling experience component +- On modification of meta attribute IncomingXP, get the leveling component and add the incoming XP to it + +## 11 Level Up Interface Function We create a Level Up function in our Player Interface + +- The player state listen for level up in its leveling component + +## 12 Leveling Up We implement leveling up + +- When leveling up, the player state will look for rewards and attribute them using a function overridable in blueprint + +## 13 Showing Level in the HUD We show the level in the HUD as a globe widget + +- Create level widget from the ring icon and listen for level up changes to display the level + +## 14 Level Up Niagara System We add a niagara system for leveling up + +- On levelup, player state will multicast an effect function + +## 15 Level Up HUD Message We add a HUD message for level ups + +- On level up, overlay widget will display a message + +# Section 22 - Attribute Points 261 + +## 1 Attribute Points Member Variable We add a member variable to the Player State for Attribute Points + +- Add replicated properties for attribute and skill points to a component added to player state +- Create observer delegate for changes + +## 2 Showing Attribute Points in the HUD We show the Attribute Points in the Attribute Menu + +- Add observing changes from the menu attribute widget controller +- Add the number of attribute points to the attribute menu + +## 3 Attribute Upgrade Buttons We make our Upgrade buttons functional in the Attribute Menu + +- Attribute modifier rows disable button when no available attribute points + +## 4 Upgrading Attributes We implement upgrading Attributes + +- Clicking button will send a gameplay event of tag attribute +- Event will be catch by a passive event listener and apply effect to add attributes + +## 5 Top Off Our Fluids We fill up the Health and Mana globes when leveling up + +- Modifying Max Health or Mana will keep the health percent still +- Leveling Up will restore full health and mana + +## 6 Attribute Menu Polish We polish up our Attribute Menu + +- Add sound effect on button hover and click + +# Section 23 - Spell Menu 267 + +## 1 Spell Menu Design We discuss the design of our Spell Menu, Spell Trees, and Spell Selection system + +## 2 Spell Globe Button We create a new Widget for spell globe icons that functions as a button + +## 3 Offensive Spell Tree We create the Offsensive Spell Tree + +## 4 Passive Spell Tree We create the Passive Spell Tree + +## 5 Equipped Spell Row We create the Equipped Spells row Widget + +## 6 Spell Menu Widget We create the overall Spell Menu widget + +## 7 Spell Description Box We add a scroll box for the spell description + +## 8 Spell Menu Button We add a button to the Overlay to open the spell menu + +## 9 Spell Menu Widget Controller We create the Widget Controller for the Spell Menu + +## 10 Constructing the Spell Menu Widget Controller We construct the Spell Menu Widget Controller + +## 11 Equipped Row Button We create the widget that functions as a button for the Equipped Spells Row + +- Create widget Selecting ability button + - has an ability id tag + - can be active and selected + +## 12 Ability Status and Type We create a way to categorize Abilities by their status in the menu as well as distinguish between Offensive and Passive spells + +- Create status tag for ability info used to modify the button appearance and reactions + +## 13 Showing Abilities in the Spell Tree We learn how to show the Abilities in the Spell Tree + +## 14 Ability Level Requirement We implement an Ability Requirement for Abilities + +## 15 Update Ability Statuses We update the Abilitiy Status when stats change + +## 16 Updating Status in the Spell Menu We update the Ability Status in the menu + +## 17 Show Spell Points We show the number of Spell Points in the Spell Menu + +## 18 Selecting Icons We add the capability to select icons in the Spell Menu + +## 19 Deselecting Icons We add the capability to deselect icons in the Spell Menu + +## 20 Spell Menu Buttons We make the buttons that we will use to perform actions in the Spell Menu + +## 21 Selected Ability We create a variable to keep track of the currently selected Ability + +## 22 Spending Spell Points We add the capability to spend Spell Points + +## 23 Rich Text Blocks We create styles for a Rich Text Block for our spell descriptions + +## 24 Spell Descriptions We learn how to use the Rich Text Block for spell descriptions + +## 25 FireBolt Description We implement the FireBolt spell description + +## 26 Cost and Cooldown in Spell Description We show the Cost and Cooldown in the spell description's Rich Text Block + +## 27 Self Deselect We implement the ability for a button to deselect itself + +## 28 Equipped Spell Row Animations We create animations for the Equipped Spells Row + +## 29 Ability Types We enforce Ability Types + +## 30 Equipping Abilities We implement the capability to equip Abilities + +## 31 Updating the Overlay When Equipping Abilities We update the overlay when an Ability has become Equipped + +## 32 Globe Reassigned We handle the situation when a globe has been reassigned to a new Ability + +## 33 Unbinding Delegates We unbind delegates to avoid duplicates + +# Section 24 - Combat Tricks 302 + +## 1 Debuff Tags We create the Gameplay Tags we will use for debuffs + +- Create gameplay tag `Debuff`, `Debuff.Stun`, `Debuff.Slow`, `Debuff.Dot`, `Debuff.Attributes` + +## 2 Debuff Parameters We create parameters that will configure a debuff + +- The course created a struct to have an appliable debuff with chance to apply and damage values + +## 3 Damage Effect Params Struct We create a struct for all of the effect parameters for the Damage Gameplay Effect + +- The course created a function to apply a debuff struct to target actor. Creating an effect from the struct and assigning values with SetByCallerMagnitudes to it + +## 4 Using Damage Effect Params We use the Damage Effect Params + + + +## 5 Determining Debuff We determine whether or not Damage caused a successful debufff + +- Incoming damages sends an event to source actor with a payload containing the informations on the data. + +## 6 Debuff Info in the Effect Context We add debuff variables to the Effect Context + + + +## 7 Debuff in the Attribute Set We handle debuffs in the Attribute Set + + + +## 8 Dynamic Gameplay Effects We learn how to create and apply Gameplay Effects dynamically in code. + + + +## 9 Debuff Niagara Component We create a Niagara Component designed to handle debuff effects + +- Add delegate for actor death and ASC initialization + +## 10 Death Impulse Magnitude We add a Death Impulse magnitude to our Damage Gameplay Effect + + + +## 11 Death Impulse in the Effect Context We add the Death Impulse to the Effect Context + +- Add a HitImpulse vector to the custom effect context + +## 12 Handling Death Impulse We handle the Death impulse on Character death + +- Die event get the dying effect parameter. +- We use it to get the hit impulse of the killing effect. +- We use the hit impulse to apply a force to a ragdoll body after death + +## 13 Knockback We implement Knockback for Damage + + + +# Section 25 - What a Shock 315 + +## 1 FireBolt Projectile Spread We generate the algorithm for multiple projectiles, spread by a specified angle + +- Add a math algorithm to the LibAmasson Plugin to generate points and transforms in an arc + +## 2 Spawning Multiple Projectiles We spawn multiple projectiles with our FireBolt Ability + +- Fireball spawn multiple projectiles at higher levels + +## 3 Homing Projectiles We implement homing projectiles + +- Fireball picks the hit actor from the hit result and set it as the homing projectile component + +## 4 Click Niagara System We add a Niagara System for Click-To-Move + +- Rally point niagara effect when click to move is triggered + +## 5 Invoke Replicated Event We learn about Invoking Replicated Events to send input data to the server + +- Send event to the ability when user press and release the ability input + +```c++ +// On Input Press +AbilitySpecInputPressed(AbilitySpec); +if (AbilitySpec.IsActive()) +{ + InvokeReplicatedEvent(EAbilityGenericReplicatedEvent::InputPressed, + AbilitySpec.Handle, + AbilitySpec.ActivationInfo.GetActivationPredictionKey() + ); +} + +// On Input Release +AbilitySpecInputReleased(AbilitySpec); +if (AbilitySpec.IsActive()) +{ + InvokeReplicatedEvent(EAbilityGenericReplicatedEvent::InputReleased, + AbilitySpec.Handle, + AbilitySpec.ActivationInfo.GetActivationPredictionKey() + ); +} +``` + +## 6 Aura Beam Spell We create the class for spells which emit beams + +- Create ability blueprint and utilites + +## 7 Electrocute Montage We create the Electrocute Anim Montage + +- Looping montage when channeling + +## 8 Player Block Tags We create tags to block various capabilities in the Player Controller + +- Create gameplay tag to prevent some player event to occur + +``` +Player.Hide.Cursor; +// When present, hide the player controller cursor +Player.Block.AbilityInput; +// When present, player will no longer try to activate abilities +Player.Block.CursorTrace; +// When present, the interaction controller will be deactivated +``` + +## 9 GameplayCue Notify Paths We learn about the Gameplay Cue Notify Paths in our project and configure ours + +- Created a GameplayCueNotify_Static to play the sound of the shock ability +- Use ExecuteGameplayCueOnOwner to play it + +To optimize the project, we can specify folders that contains our gameplay cues. + +```ini +# DefaultGame.ini +[/Script/GameplayAbilities.AbilitySystemGlobals] ++GameplayCueNotifyPaths="/Game/Blueprints/AbilitySystem/GameplayCues" +``` + +We can also specify a bigger number of RPC to call per frames (default is 2) +```ini +# DefaultEngine.ini +net.MaxRPCPerNetUpdate = 10 +``` + +## 10 Gameplay Cue Notify Actor We learn about the Gameplay Cue Notify Actor version and create one + +- Created a GameplayCueNotify_Actor to spawn the shock niagara effect. +- Use `AddGameplayCueOnActor (Looping)` to play it and `RemoveGameplayCueOnActor (Looping)` + +The `WhileActive` method is called even if someone joined after the begining of the effect. +Whereas the `OnActive` only trigger once and can be missed by absent players. + +## 11 Electrocute Looping Sound We use the looping sound for our Electricity + +- Add play looping sound on gameplay cue + +## 12 Target Trace Channel We make the target trace channel + +- CursorHit Trace channel + +## 13 First Trace Target We distinguish our first trace target + +- Do a line trace from the caster to the cursor point and get the hit target + +## 14 Additional Targets We add additional targets to our Electrocute Ability + +- Get the N closests enemies actors around the impact in a range. + +## 15 Shock Loop Cues on Additional Targets We add the Shock Loop Gameplay Cue to additional targets + +- Loop over all targets to apply shock cue + +## 16 Electrocute Cost Cooldown and Damage We implement Cost and Cooldown for Electrocute + +- Create the Cost and cooldown effect for shock + +## 17 Applying Electrocute Cost and Damage We apply the Cost and Cooldown for Electrocute + +- Apply the cooldown when using the ability and the cost at every tick of damages. + +18 Electrocute Polish We polish up the Electrocute ability +19 Explode Dem FireBoltz We explode Fireballs if they haven't moved sufficiently for a time period +20 Stun We implement the Stun debuff +21 Stun Niagara System We add the Stun Niagara System +22 Shock Loop Animations We implement Shock Loop animations +Section 26 - Passive Spells 337 +1 Passive Spell Tags We create the Gameplay Tags for Passive Spells +2 Aura Passive Ability We create the Passive Ability Class +3 Passive Ability Info We add to Ability Info for Passive Abilities +4 Passive Tags in Spell Tree We add Gameplay Tags to the Passive Spell Tree +5 Multiple Level Up Rewards We implement multiple level up rewards +6 Passive Ability Activation We implement Activation of Passive Abilities upon Equip +7 Passive Niagara Component We create the Niagara Component for Passive Abilities +Section 27 - Arcane Shards 344 +1 Magic Circle We create the Magic Circle +2 Spawning Magic Circles We spawn a Magic Circle +3 Magic Circle Interface Functions We create interface functions for the Magic Circle +4 Arcane Shards Spell We create the Arcane Shards Ability +5 Wait Input Press We use Wait Input Press and learn how to make this work using Invoke Replicated Event +6 Anti Aliasing and Moving Decals We learn about different Anti Aliasing modes and how they interact with decals +7 Point Collection We create a Point Collection class for Arcane Shards +8 Async Point Locations We devise an Asynchronous algorithm to get point locations one after the other +9 Gameplay Cue Notify Burst We learn about the Gameplay Cue Notify Burst flavor of Gameplay Cues and how awesome it is +10 Arcane Shards Montage We implement the Arcane Shards spell montage +11 Radial Damage Parameters We create Radial Damage Parameters +12 Setting Radial Damage Parameters We set the Radial Damage Parameters +13 Radial Damage with Falloff We implement Radial Damage with a Falloff +14 Tying Radial Damage All Together We tie all of the components of Radial Damage together +15 Ignore Enemies while Magic Circle Active We ignore tracing against Enemies while the Magic Circle is active +16 Knockback Force and Death Impulse Overrides We implment Knockback Force and Death Impulse +17 Spell Descriptions We add spell descriptions to our Spell Menu +18 +Section 28 - Fire Blast 363 +1 FireBlast Ability We create the FireBlast Gameplay Ability +2 FireBlast Cost and Cooldown We implement Cost and Cooldown for FireBlast +3 Aura Fire Ball We create the Fireball ability for FireBlast +4 Spawning FireBalls We spawn the Fireballs for FireBlast +5 FireBall Timelines We create Timelines for the Fireballs to fly out and come back +6 Causing FireBall Damage We cause damage with the Fireballs as they pass through objects +7 FireBall Explosive Damage The Fireballs explode when coming back in, causing Explosive Damage +8 Empty Cooldown Texture We discover a bug when switching Abilities during Cooldown and fix it +9 Execute Local Gameplay Cues We learn how to execute Gameplay Cues locally, avoiding sending RPCs +Section 29 - Saving Progress 372 +1 Saving Progress We discuss the theory behind saving progress in games +2 Main Menu We create the Main Menu for our game +3 Play and Quit Buttons We add Play and Quit buttons to the Main Menu +4 Vacant Load Slot We create the Vacant Load Slot +5 Enter Name Load Slot We create the Enter Name Load Slot +6 Taken Load Slot We create the Taken Load Slot +7 Load Menu We create the Load Menu itself +8 MVVM We discuss the MVVM architecture pattern and its similarities and differences to MVC +9 View Model Class We create the View Model class +10 Constructing a View Model We construct our Load Screen View Model +11 Load Slot View Model We create a Load Slot View Model +12 Switching the Widget Switcher We switch the Widget Switcher +13 Save Game Object We create the Save Game object for the Load Screen Menu +14 Binding Variables to ViewModels We learn how to bind variables to a View Model +15 Load Slot Status We give the Load Slots their own status +16 Enabling the Select Slot Button We enable/disable the Select Slot Button +17 Enabling Play and Delete Buttons We enable/disable the Play and Delete Buttons +18 Are You Sure Widget We create the Are You Sure Widget +19 Deleting a Slot We implement Deleting Save Game Slots +20 Map Name Field Notify We create a Field Notify for the Map Name +21 Saving the Map Name We save the Map Name +22 Traveling to the Saved Map We implement traveling to a Saved Map +Section 30 - Checkpoints 394 +1 Choose Player Start We override the Game Mode's Choose Player Start function +2 Default Player Start We designate the Default Player Start when starting a new game +3 Saving the Player Start Tag We save the Player Start Tag for the next time we load in +4 Checkpoint We create the Checkpoint class +5 Save Progress Interface Function We save progress via an Interface function +6 Saving Player Data We save the Player's Data +7 Loading Player Data We load the Player's Data +8 Initializing Attributes from Disk We initialize our Attributes from Data loaded from disk +9 Showing Player Level in Load Screen We show the Player's Level in the Load Screen Menu +10 Saving Abilities We save Gameplay Abilities +11 Loading Abilities We load Gameplay Abilities +12 Data Structures for Saving Data We create Data Structures for saving an Actor's state +13 Saving World State We save the world!!! +14 Loading World State We load the world +Section 31 - Map Entrance 408 +1 Different Highlight Colors We implement different highlight colors +2 Highlight Interface We create a Highlight Interface so other objects can be highlighted aside from Enemies +3 Targeting Status We create a Targeting Status for the Player Controller +4 Highlighting Non-Enemies We highlight non-Enemy objects +5 Set Move-To Location We implement a way to override the Move-To location +6 Beacons We create Beacons +7 Map Entrance We create the Map Entrance class +8 Dungeon Stair Entrance We create the Dungeon Stair entrance +9 Dungeon Entrance Blueprints We create the Dungeon Stair Entrance Blueprint +10 Polish Menu We polish the Menu +11 Spawn Volumes We create a Spawn Volume class +12 Player Death We implement Player Death, respawning at the last save point +13 Loot Tiers We create Loot Tiers +14 Loot Effects We add effects to our Loot +15 Loot Drop Curve We create a Loot Drop curve +16 Pickup Sounds We implement pickup sounds +17 Quit Button We add a Quit Button to the Overlay +Setion 32 - Course Conclusion 425 +1 Quest - Levels We are tasked to design and create our levels for the game project +2 Conclusion Congratulations!!! \ No newline at end of file diff --git a/Docs/README.md b/Docs/README.md new file mode 100644 index 0000000..4a35dbd --- /dev/null +++ b/Docs/README.md @@ -0,0 +1,8 @@ + +All docs are written using markdown with Obsidian. + +Installed Obsidian Plugins: + - Excalidraw + - Kanban + + diff --git a/Docs/TODO.md b/Docs/TODO.md new file mode 100644 index 0000000..2e11502 --- /dev/null +++ b/Docs/TODO.md @@ -0,0 +1,42 @@ +--- + +kanban-plugin: basic + +--- + +## Quick + +- [ ] Make HitReact occur with a cooldown +- [ ] Add fake plan to collide with player cursor when targeting out of bounds +- [ ] Make Widget Segment Picker begin possible in vertical box + + +## Features + +- [ ] Inventory on player
- [ ] Dropable items
- [ ] inventory modifications
- [ ] Bank chest +- [ ] Equipment System
- [ ] Items with stats and slots to equip
- [ ] Have a visual composite name
- [ ] method to refresh visuals on character + + +## Refactorings + +- [ ] Move ability tree functionalities from AAuraPlayerState to it's own actor component +- [ ] Make projectile hit in sequence + + +## Ability Ideas + +- [ ] Projectile that follows you around when fired. Like a paladin hammers but with homing projectile physics + + +*** + +## Archive + +- [x] Make player pawn ignoring mouse cursor +- [x] Fix up client side ability casting + +%% kanban:settings +``` +{"kanban-plugin":"basic"} +``` +%% \ No newline at end of file diff --git a/Docs/Tutos/AbilitySystem/Ability System.md b/Docs/Tutos/AbilitySystem/Ability System.md new file mode 100644 index 0000000..d6c5acd --- /dev/null +++ b/Docs/Tutos/AbilitySystem/Ability System.md @@ -0,0 +1,4 @@ +[Home](../Home.md) +# Ability System + +- [Ability Status Implementation](AbilityStatusImplementation/Ability%20System%20Implementation.md) diff --git a/Docs/Tutos/AbilitySystem/AbilityStatusImplementation/Ability System Implementation.md b/Docs/Tutos/AbilitySystem/AbilityStatusImplementation/Ability System Implementation.md new file mode 100644 index 0000000..c8a25c8 --- /dev/null +++ b/Docs/Tutos/AbilitySystem/AbilityStatusImplementation/Ability System Implementation.md @@ -0,0 +1,50 @@ + +[Home](../../Home.md) + +# Ability Status Implementation + +An ability status is a gameplay tag assigned to the dynamic tags of an ability spec. + +It can be one of the four values + +Tag | Meaning +-|- +`Ability.Status.Locked` | The ability cannot be learnt +`Ability.Status.Eligible` | The ability can be learnt +`Ability.Status.Unlocked` | Ability learnt from the book but not bind +`Ability.Status.Equipped` | Ability has an input tag bind + +Each character has a class information that contains an ability book + +```C++ +AAuraBaseCharacter *MyCharacter; +UAbilityInfo* Book = MyCharacter->GetClassInfo()->AbilitiesBook; +``` + +The Ability System Component has a list of ability specs. + +```C++ +UAuraAbilitySystemComponent *AuraASC; +TArray Abilities = AuraASC->GetActivatableAbilities(); +``` + +We can fetch an ability status with ether an ability spec or an ability id tag + +```C++ +FGameplayAbilitySpec AbilitySpec; +FGameplayTag StatusTag = UAuraAbilitySystemComponent::GetStatusTagFromAbilitySpec(AbilitySpec); + +bool StatusFound = AuraASC->GetStatusTagForAbilityIDTag(AbilityIDTag, FGameplayTag, StatusTag); +``` + +Status | In Active Abilities | Level > 0 | InputTag +-|-|-|- +Locked | ❌ | ❌ | ❌ +Eligible | ✔️ | ❌ | ❌ +Unlocked | ✔️ | ✔️ | ❌ +Equipped | ✔️ | ✔️ | ✔️ + +To keep the status tag up to date, it is updated in the asc when +- We recieve an ability with a matching tag of `Ability.ID`. in the `OnGiveAbility` +- We assign an input tag to the ability spec. in the `AssignInputTagToAbilitySpec` and `RemoveInputTagFromAbilitySpec` +- We modify an ability spec level with the function `SetLevelForAbilitySpec` or `AddLevelForAbilitySpec` diff --git a/Docs/Tutos/AbilitySystem/CreateNewAbility/Create New Ability.md b/Docs/Tutos/AbilitySystem/CreateNewAbility/Create New Ability.md new file mode 100644 index 0000000..302c964 --- /dev/null +++ b/Docs/Tutos/AbilitySystem/CreateNewAbility/Create New Ability.md @@ -0,0 +1,3 @@ + +[Home](../../Home.md) + diff --git a/Docs/Tutos/CreateNewBehavior/Create New Behavior.md b/Docs/Tutos/CreateNewBehavior/Create New Behavior.md new file mode 100644 index 0000000..d3bd7ac --- /dev/null +++ b/Docs/Tutos/CreateNewBehavior/Create New Behavior.md @@ -0,0 +1,4 @@ + +[Home](../Home.md) + +# TODO diff --git a/Docs/Tutos/CreateNewCharacter/01_CreateEnemyCharacterBlueprint.png b/Docs/Tutos/CreateNewCharacter/01_CreateEnemyCharacterBlueprint.png new file mode 100644 index 0000000..f604314 --- /dev/null +++ b/Docs/Tutos/CreateNewCharacter/01_CreateEnemyCharacterBlueprint.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:175e367c0e85b70dc1f8697ebe36e9e06dda34afd1c7a45f0944d6891cfa8ea1 +size 72272 diff --git a/Docs/Tutos/CreateNewCharacter/02_CreateAnimationBlueprint.png b/Docs/Tutos/CreateNewCharacter/02_CreateAnimationBlueprint.png new file mode 100644 index 0000000..75b6d4c --- /dev/null +++ b/Docs/Tutos/CreateNewCharacter/02_CreateAnimationBlueprint.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ccc29b4615401d14888e2fe6d7e99e9bd2ad72a4cf8049ee8696827c4ee24de +size 16690 diff --git a/Docs/Tutos/CreateNewCharacter/03_AssignAnimations.png b/Docs/Tutos/CreateNewCharacter/03_AssignAnimations.png new file mode 100644 index 0000000..d425bf1 --- /dev/null +++ b/Docs/Tutos/CreateNewCharacter/03_AssignAnimations.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6480b99ffa8b5c1a4ed516757573f1a02b7ec5a1194eb315802126b8f3cba08f +size 32105 diff --git a/Docs/Tutos/CreateNewCharacter/04_CombatSocketLocation.png b/Docs/Tutos/CreateNewCharacter/04_CombatSocketLocation.png new file mode 100644 index 0000000..bee96ed --- /dev/null +++ b/Docs/Tutos/CreateNewCharacter/04_CombatSocketLocation.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cee081b9f2c85e7d0ac10ed0014be8054341c2200b0b8ed37e9157e1535e7d1e +size 131205 diff --git a/Docs/Tutos/CreateNewCharacter/05_HandleDeath.png b/Docs/Tutos/CreateNewCharacter/05_HandleDeath.png new file mode 100644 index 0000000..2e30c17 --- /dev/null +++ b/Docs/Tutos/CreateNewCharacter/05_HandleDeath.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1989deb20e4201ca0b6ecfc4a1b56dcce57341ed2da4bd694db785529702d835 +size 14337 diff --git a/Docs/Tutos/CreateNewCharacter/06_CreateCharacterClass.png b/Docs/Tutos/CreateNewCharacter/06_CreateCharacterClass.png new file mode 100644 index 0000000..2ab429b --- /dev/null +++ b/Docs/Tutos/CreateNewCharacter/06_CreateCharacterClass.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:586226ab8570a6fe9815b459c2d3ca865cbce8593f083b75e23a2e39b3e82164 +size 41698 diff --git a/Docs/Tutos/CreateNewCharacter/07_FilledClassInfo.png b/Docs/Tutos/CreateNewCharacter/07_FilledClassInfo.png new file mode 100644 index 0000000..7b03967 --- /dev/null +++ b/Docs/Tutos/CreateNewCharacter/07_FilledClassInfo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecc31c5c38042c04f611b9b1d2b5fafa12b55823f6809569e532f8bb6bbadc1a +size 53317 diff --git a/Docs/Tutos/CreateNewCharacter/08_AssignClassDataAsset.png b/Docs/Tutos/CreateNewCharacter/08_AssignClassDataAsset.png new file mode 100644 index 0000000..ad57f86 --- /dev/null +++ b/Docs/Tutos/CreateNewCharacter/08_AssignClassDataAsset.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab373b481d403adbd5616855f6c8d421aa64bec5dba94b80fb4c2126caa662f9 +size 11549 diff --git a/Docs/Tutos/CreateNewCharacter/09_AssignAIController.png b/Docs/Tutos/CreateNewCharacter/09_AssignAIController.png new file mode 100644 index 0000000..f7d5f90 --- /dev/null +++ b/Docs/Tutos/CreateNewCharacter/09_AssignAIController.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9daf8e79a4e5be5484f7dbfbce037102549c844310b23815593ecde0a8c52f56 +size 35844 diff --git a/Docs/Tutos/CreateNewCharacter/10_SetDropTable.png b/Docs/Tutos/CreateNewCharacter/10_SetDropTable.png new file mode 100644 index 0000000..a936129 --- /dev/null +++ b/Docs/Tutos/CreateNewCharacter/10_SetDropTable.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87b2510d297102fb3002e6cd6f19e05f0093c8e41021b1444c7bbb26e681006a +size 11644 diff --git a/Docs/Tutos/CreateNewCharacter/11_CreatePlayerCharacterBlueprint.png b/Docs/Tutos/CreateNewCharacter/11_CreatePlayerCharacterBlueprint.png new file mode 100644 index 0000000..a9f776e --- /dev/null +++ b/Docs/Tutos/CreateNewCharacter/11_CreatePlayerCharacterBlueprint.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1badb8f8fd506a28b2df44eb3bb3c834ce65475c069c8334f7be0b32ed1f3e1 +size 73806 diff --git a/Docs/Tutos/CreateNewCharacter/Create New Character.md b/Docs/Tutos/CreateNewCharacter/Create New Character.md new file mode 100644 index 0000000..f3b1da5 --- /dev/null +++ b/Docs/Tutos/CreateNewCharacter/Create New Character.md @@ -0,0 +1,133 @@ + +[Home](../Home.md) + +# Create Blueprint Character + +- [Create New Enemy](#create-new-enemy) +- [Create Playable Character](#create-playable-character) +- [Character Standards](#character-standards) + +## Create New Enemy + +### 1 - Create the character blueprint + +- Create a subclass of `BP_AuraEnemy` + +![Create Enemy Blueprint](01_CreateEnemyCharacterBlueprint.png) + +### 2 - Base Character Setup + +[Setup the base character values](#base-character) + +### 3 - Assign a behavior + +- Assign a controller class + +![Assign AIController](09_AssignAIController.png) + +- The controller contains the behavior tree that automatically runs. To make a custom behavior, refer to the [chapter](../CreateNewBehavior/Content.md) + +### 4 - Setup the drop table + +There is a variable in the `BP_AuraEnemy` that child classes can fill to define a drop table + +![Setup Drop Table](10_SetDropTable.png) + +The key is the class that spawn when character dies and value is the probability of spawning. +Any actor class can spawn + +## Create Playable Character + +### 1 - Create the Character Blueprint + +- Create a subclass of `BP_PlayerCharacterBase` + +![Create Playable Character Blueprint](11_CreatePlayerCharacterBlueprint.png) + +### 2 - Base Character Setup + +[Setup the base character values](#base-character) + +## Base Character + +### 1 - Setup Mesh and Animations + +- Create an animation blueprint for the mesh. + +Make a new ABP or instanciate the template animation blueprint or use your own + +![Create Animation Blueprint](02_CreateAnimationBlueprint.png) + +- Setup the character mesh and its animation blueprint. Also pick a weapon mesh if you need one + +- Adjust the mesh position and capsule size + +- Create the hit react animation montage + +- Setup combat animations + +Fill up the map of combat montages in the character defaults combat interface + +All possible key are sub tags of `CombatMontage.*` + +A reaction to `CombatMontage.HitReact` animation is required + +![Assign Animations](03_AssignAnimations.png) + +> To use multiple animation for a same tag, we need to override the behavior of the `GetCombatMontage` method + +### 2 - Set the combat socket locations + +- override the function `GetCombatSocketLocation` and setup socket for each subtag of `CombatSocket.*` + +![Set Combat Sockets](04_CombatSocketLocation.png) + +### 3 - Handle death behavior + +- override the event `Die` that executes on the server. + +- for enemies, the parent class will execute the multicast event `M_HandleDeath`. We can override it to defined a custom behavior when the character dies + +![Handle Death Behavior](05_HandleDeath.png) + +- The parent call will manage ragdoll, weapon drop, movement stop and remove health widget + +- The custom implementation would typically play a death sound and dissolve meshes + +### 4 - Character Class Info + +- Create data asset blueprint from `CharacterClassInfo` + +![Create Character Class](06_CreateCharacterClass.png) + +- Set the name of the class + +- Set the class tag to a subtag of `CharacterClass.` + +- Add base effects + - Subclass of `GE_StartingAttributes_Base` to define primary attributes scaling + - `GE_Character_SecondaryAttributes` to scale secondary attributes + - `GE_Character_PassiveRegeneration` to grant passive health and mana regeneration + +- Add the base abilities + - The `GA_HitReact` Ability to have a reaction to damages + - Any other ability you will need + +- Add starting effects + - `GE_RestoreMaxLife` to grant full life to the unit when starting game. As the maximum life is only calculated after starting attributes is granted, all unit start with 0 hp. + - `GE_RestoreMaxMana` if the unit has mana + +![Filled Class Info](07_FilledClassInfo.png) + +- Assign the data asset to the character blueprint + +![Assign Data Asset](08_AssignClassDataAsset.png) + + +## Character Standards + +Make sure to create sound for all situations + +- Footsteps +- Getting hurt +- Death diff --git a/Docs/Tutos/Home.md b/Docs/Tutos/Home.md new file mode 100644 index 0000000..9d9ef11 --- /dev/null +++ b/Docs/Tutos/Home.md @@ -0,0 +1,12 @@ + +# Aura + +## Create new entities + +- [Create New Character](./CreateNewCharacter/Create%20New%20Character.md) +- [Create New Behavior](./CreateNewBehavior/Create%20New%20Behavior.md) +- [Create New Ability](./AbilitySystem/CreateNewAbility/Create%20New%20Ability.md) + +## Technical implementations + +- [Ability System](./AbilitySystem/Ability%20System.md) diff --git a/Platforms/HoloLens/Config/HoloLensEngine.ini b/Platforms/HoloLens/Config/HoloLensEngine.ini new file mode 100644 index 0000000..f6345e1 --- /dev/null +++ b/Platforms/HoloLens/Config/HoloLensEngine.ini @@ -0,0 +1,32 @@ + + +[/Script/HoloLensPlatformEditor.HoloLensTargetSettings] +bBuildForEmulation=False +bBuildForDevice=True +bUseNameForLogo=True +bBuildForRetailWindowsStore=False +bAutoIncrementVersion=False +bShouldCreateAppInstaller=False +AppInstallerInstallationURL= +HoursBetweenUpdateChecks=0 +bEnablePIXProfiling=False +TileBackgroundColor=(B=64,G=0,R=0,A=255) +SplashScreenBackgroundColor=(B=64,G=0,R=0,A=255) ++PerCultureResources=(CultureId="",Strings=(PackageDisplayName="",PublisherDisplayName="",PackageDescription="",ApplicationDisplayName="",ApplicationDescription=""),Images=()) +TargetDeviceFamily=Windows.Holographic +MinimumPlatformVersion=10.0.18362.0 +MaximumPlatformVersionTested=10.0.19041.0 +MaxTrianglesPerCubicMeter=500.000000 +SpatialMeshingVolumeSize=20.000000 +CompilerVersion=Default +Windows10SDKVersion=10.0.18362.0 ++CapabilityList=internetClientServer ++CapabilityList=privateNetworkClientServer ++Uap2CapabilityList=spatialPerception +bSetDefaultCapabilities=False +SpatializationPlugin= +SourceDataOverridePlugin= +ReverbPlugin= +OcclusionPlugin= +SoundCueCookQualityIndex=-1 + diff --git a/Plugins/CompositeEquipmentSystem/CompositeEquipmentSystem.uplugin b/Plugins/CompositeEquipmentSystem/CompositeEquipmentSystem.uplugin new file mode 100644 index 0000000..99e3d42 --- /dev/null +++ b/Plugins/CompositeEquipmentSystem/CompositeEquipmentSystem.uplugin @@ -0,0 +1,30 @@ +{ + "FileVersion": 3, + "Version": 1, + "VersionName": "0.1", + "FriendlyName": "CompositeEquipmentSystem", + "Description": "Equipment system to attach elements to a character skeletal mesh", + "Category": "Gameplay", + "CreatedBy": "Amasson", + "CreatedByURL": "", + "DocsURL": "", + "MarketplaceURL": "", + "SupportURL": "", + "CanContainContent": true, + "IsBetaVersion": true, + "IsExperimentalVersion": false, + "Installed": false, + "Modules": [ + { + "Name": "CompositeEquipmentSystem", + "Type": "Runtime", + "LoadingPhase": "Default" + } + ], + "Plugins": [ + { + "Name": "Niagara", + "Enabled": true + } + ] +} \ No newline at end of file diff --git a/Plugins/CompositeEquipmentSystem/Content/BP_CompositeEquipmentSystem_Studio.uasset b/Plugins/CompositeEquipmentSystem/Content/BP_CompositeEquipmentSystem_Studio.uasset new file mode 100644 index 0000000..fcdfddf --- /dev/null +++ b/Plugins/CompositeEquipmentSystem/Content/BP_CompositeEquipmentSystem_Studio.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27e704519e4f4e01c1b7bce039d6572361d0a768c166112535bd3d30c6b84dc6 +size 66801 diff --git a/Plugins/CompositeEquipmentSystem/Resources/Icon128.png b/Plugins/CompositeEquipmentSystem/Resources/Icon128.png new file mode 100644 index 0000000..26245f6 --- /dev/null +++ b/Plugins/CompositeEquipmentSystem/Resources/Icon128.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7239efaeefbd82de33ebe18518e50de075ea4188a468a9e4991396433d2275f +size 12699 diff --git a/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/CompositeEquipmentSystem.Build.cs b/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/CompositeEquipmentSystem.Build.cs new file mode 100644 index 0000000..e317b11 --- /dev/null +++ b/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/CompositeEquipmentSystem.Build.cs @@ -0,0 +1,54 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using UnrealBuildTool; + +public class CompositeEquipmentSystem : ModuleRules +{ + public CompositeEquipmentSystem(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicIncludePaths.AddRange( + new string[] { + // ... add public include paths required here ... + } + ); + + + PrivateIncludePaths.AddRange( + new string[] { + // ... add other private include paths required here ... + } + ); + + + PublicDependencyModuleNames.AddRange( + new string[] + { + "Core", + // ... add other public dependencies that you statically link with here ... + } + ); + + + PrivateDependencyModuleNames.AddRange( + new string[] + { + "CoreUObject", + "Engine", + "Slate", + "SlateCore", + "Niagara", + // ... add private dependencies that you statically link with here ... + } + ); + + + DynamicallyLoadedModuleNames.AddRange( + new string[] + { + // ... add any modules that your module loads dynamically here ... + } + ); + } +} diff --git a/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Private/Components/CompositeEquipmentComponent.cpp b/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Private/Components/CompositeEquipmentComponent.cpp new file mode 100644 index 0000000..bae98e1 --- /dev/null +++ b/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Private/Components/CompositeEquipmentComponent.cpp @@ -0,0 +1,237 @@ +// Amasson + + +#include "Components/CompositeEquipmentComponent.h" +#include "Kismet/GameplayStatics.h" +#include "NiagaraFunctionLibrary.h" +#include "NiagaraComponent.h" + +UCompositeEquipmentComponent::UCompositeEquipmentComponent() +{ + PrimaryComponentTick.bCanEverTick = false; + +} + +void UCompositeEquipmentComponent::InitializeWithLeaderPose(USkeletalMeshComponent* NewLeaderPose) +{ + LeaderPoseComponent = NewLeaderPose; + PoseOwner = IsValid(LeaderPoseComponent) ? LeaderPoseComponent->GetOwner() : nullptr; + + UpdateCompositesObjects(); +} + +void UCompositeEquipmentComponent::AddCompositeName(FName CompositeName) +{ + CompositeNames.Add(CompositeName); + UpdateCompositesObjects(); +} + +void UCompositeEquipmentComponent::RemoveCompositeName(FName CompositeName) +{ + CompositeNames.Remove(CompositeName); + UpdateCompositesObjects(); +} + +void UCompositeEquipmentComponent::SetCompositeNames(const TSet& NewCompositeNames) +{ + CompositeNames = NewCompositeNames; + UpdateCompositesObjects(); +} + +void UCompositeEquipmentComponent::AddCompositeCustom(const FEquipmentComposite& Composite, FName KeyName) +{ + if (CompositeNames.Remove(KeyName)) + DestroyRemovedComposites(); + + CompositeNames.Add(KeyName); + + CreateCompositeWithKey(Composite, KeyName); + + UpdateCompositesObjects(); +} + + +/** Private */ + +void UCompositeEquipmentComponent::UpdateCompositesObjects() +{ + DestroyRemovedComposites(); + + CreateAddedComposites(); + + OnEquipedCompositesUpdated.Broadcast(this); +} + +void UCompositeEquipmentComponent::DestroyRemovedComposites() +{ + TArray KeysToRemove; + + for (TPair& NameAndGeneratedObjects : GeneratedObjectsForCompositeNames) + { + const FName& CompositeName(NameAndGeneratedObjects.Key); + FEquipmentCompositeGeneratedObjects& GeneratedObjects(NameAndGeneratedObjects.Value); + + bool bShouldRemoveKey = !CompositeNames.Contains(CompositeName); + + if (bShouldRemoveKey) + { + GeneratedObjects.Destroy(); + KeysToRemove.Add(CompositeName); + } + } + + for (const FName& Key : KeysToRemove) + { + GeneratedObjectsForCompositeNames.Remove(Key); + } +} + +void UCompositeEquipmentComponent::CreateAddedComposites() +{ + for (const FName& CompositeName : CompositeNames) + { + if (!GeneratedObjectsForCompositeNames.Contains(CompositeName)) + CreateCompositeFromTable(CompositeName); + } +} + +void UCompositeEquipmentComponent::CreateCompositeFromTable(const FName& CompositeName) +{ + if (IsValid(EquipmentTable)) + { + FEquipmentComposite* CompositeRow = EquipmentTable->FindRow(CompositeName, "Fetch Equipment Data"); + if (CompositeRow) + { + CreateCompositeWithKey(*CompositeRow, CompositeName); + return; + } + } + /** + * In case of invalid name, we still create an empty object in our + * GeneratedObjectsForCompositeNames array to prevent future lookup + * that would waste performances + */ + CreateCompositeWithKey(FEquipmentComposite(), CompositeName); +} + +void UCompositeEquipmentComponent::CreateCompositeWithKey(const FEquipmentComposite& Composite, const FName& CompositeKey) +{ + FEquipmentCompositeGeneratedObjects ComponentsArray; + CreateCompositeObjects(Composite, ComponentsArray); + GeneratedObjectsForCompositeNames.Add(CompositeKey, ComponentsArray); +} + +void UCompositeEquipmentComponent::CreateCompositeObjects(const FEquipmentComposite& Composite, FEquipmentCompositeGeneratedObjects& GeneratedObjects) +{ + if (!(IsValid(LeaderPoseComponent) && PoseOwner.IsValid())) + return; + + CreateStaticMeshes(Composite.StaticMeshes, GeneratedObjects); + CreateSkeletalMeshes(Composite.SkeletalMeshes, GeneratedObjects); + CreateSpecialEffects(Composite.SpecialEffects, GeneratedObjects); + CreateChildActors(Composite.ChildActors, GeneratedObjects); +} + +void UCompositeEquipmentComponent::CreateStaticMeshes(const TArray& EquipableMeshes, FEquipmentCompositeGeneratedObjects& GeneratedObjects) +{ + for (const FEquipableStaticMesh& Equipable : EquipableMeshes) + { + UStaticMeshComponent* MeshComponent = CreateAttachedComponent_Unsafe(Equipable); + + if (IsValid(MeshComponent)) + { + MeshComponent->SetStaticMesh(Equipable.StaticMesh); + + for (int32 i = 0; i < Equipable.OverrideMaterials.Num(); i++) + MeshComponent->SetMaterial(i, Equipable.OverrideMaterials[i]); + + + GeneratedObjects.AddComponent(MeshComponent); + } + } +} + +void UCompositeEquipmentComponent::CreateSkeletalMeshes(const TArray& EquipableMeshes, FEquipmentCompositeGeneratedObjects& GeneratedObjects) +{ + AActor* Owner = LeaderPoseComponent->GetOwner(); + if (!IsValid(Owner)) return; + + for (const FEquipableSkeletalMesh& Equipable : EquipableMeshes) + { + USkeletalMeshComponent* SkeletalComponent = CreateAttachedComponent_Unsafe(Equipable); + + if (IsValid(SkeletalComponent)) + { + SkeletalComponent->SetSkeletalMesh(Equipable.SkeletalMesh); + + for (int32 i = 0; i < Equipable.OverrideMaterials.Num(); i++) + SkeletalComponent->SetMaterial(i, Equipable.OverrideMaterials[i]); + + for (const FName& BoneName : Equipable.HiddenBones) + SkeletalComponent->HideBoneByName(BoneName, EPhysBodyOp::PBO_None); + + if (Equipable.bUseLeaderPose) + SkeletalComponent->SetLeaderPoseComponent(LeaderPoseComponent); + + if (IsValid(Equipable.AnimInstanceClass)) + SkeletalComponent->SetAnimInstanceClass(Equipable.AnimInstanceClass); + + + GeneratedObjects.AddComponent(SkeletalComponent); + } + } +} + +void UCompositeEquipmentComponent::CreateSpecialEffects(const TArray& EquipableEffects, FEquipmentCompositeGeneratedObjects& GeneratedObjects) +{ + for (const FEquipableSpecialEffect& Equipable : EquipableEffects) + { + if (IsValid(Equipable.CascadeEffect)) + { + UParticleSystemComponent* ParticleComponent = UGameplayStatics::SpawnEmitterAttached( + Equipable.CascadeEffect, + LeaderPoseComponent, + Equipable.SocketName, + Equipable.RelativeTransform.GetLocation(), + Equipable.RelativeTransform.GetRotation().Rotator(), + EAttachLocation::Type::KeepRelativeOffset + ); + + GeneratedObjects.AddComponent(ParticleComponent); + } + + if (IsValid(Equipable.NiagaraEffect)) + { + UNiagaraComponent* NiagaraComponent = UNiagaraFunctionLibrary::SpawnSystemAttached( + Equipable.NiagaraEffect, + LeaderPoseComponent, + Equipable.SocketName, + Equipable.RelativeTransform.GetLocation(), + Equipable.RelativeTransform.GetRotation().Rotator(), + EAttachLocation::Type::KeepRelativeOffset, + true + ); + + GeneratedObjects.AddComponent(NiagaraComponent); + } + } +} + +void UCompositeEquipmentComponent::CreateChildActors(const TArray& EquipableActors, FEquipmentCompositeGeneratedObjects& GeneratedObjects) +{ + AActor* Owner = LeaderPoseComponent->GetOwner(); + if (!IsValid(Owner)) return; + + for (const FEquipableChildActor& Equipable : EquipableActors) + { + UChildActorComponent* ChildActorComponent = CreateAttachedComponent_Unsafe(Equipable); + + if (IsValid(ChildActorComponent)) + { + ChildActorComponent->SetChildActorClass(Equipable.ActorClass); + + + GeneratedObjects.AddComponent(ChildActorComponent); + } + } +} diff --git a/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Private/CompositeEquipmentSystem.cpp b/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Private/CompositeEquipmentSystem.cpp new file mode 100644 index 0000000..0cffd21 --- /dev/null +++ b/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Private/CompositeEquipmentSystem.cpp @@ -0,0 +1,20 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#include "CompositeEquipmentSystem.h" + +#define LOCTEXT_NAMESPACE "FCompositeEquipmentSystemModule" + +void FCompositeEquipmentSystemModule::StartupModule() +{ + // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module +} + +void FCompositeEquipmentSystemModule::ShutdownModule() +{ + // This function may be called during shutdown to clean up your module. For modules that support dynamic reloading, + // we call this function before unloading the module. +} + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(FCompositeEquipmentSystemModule, CompositeEquipmentSystem) \ No newline at end of file diff --git a/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Private/Structures/CompositeEquipmentSystemStructs.cpp b/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Private/Structures/CompositeEquipmentSystemStructs.cpp new file mode 100644 index 0000000..988d060 --- /dev/null +++ b/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Private/Structures/CompositeEquipmentSystemStructs.cpp @@ -0,0 +1,18 @@ +// Amasson + + +#include "Structures/CompositeEquipmentSystemStructs.h" + + +void FEquipmentCompositeGeneratedObjects::AddComponent(UActorComponent* NewComponent) +{ + Components.Add(NewComponent); +} + +void FEquipmentCompositeGeneratedObjects::Destroy() +{ + for (UActorComponent* Component : Components) + { + Component->DestroyComponent(); + } +} diff --git a/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Public/Components/CompositeEquipmentComponent.h b/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Public/Components/CompositeEquipmentComponent.h new file mode 100644 index 0000000..a8309a2 --- /dev/null +++ b/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Public/Components/CompositeEquipmentComponent.h @@ -0,0 +1,107 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Components/ActorComponent.h" +#include "Structures/CompositeEquipmentSystemStructs.h" +#include "CompositeEquipmentComponent.generated.h" + + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnEquipedCompositesUpdatedSignature, UCompositeEquipmentComponent*, MeshEquipmentComponent); + +UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) +class COMPOSITEEQUIPMENTSYSTEM_API UCompositeEquipmentComponent : public UActorComponent +{ + GENERATED_BODY() + +public: + + UCompositeEquipmentComponent(); + + UPROPERTY(BlueprintAssignable) + FOnEquipedCompositesUpdatedSignature OnEquipedCompositesUpdated; + + UFUNCTION(BlueprintCallable, Category="Leader Pose") + void InitializeWithLeaderPose(USkeletalMeshComponent* NewLeaderPose); + + FORCEINLINE USkeletalMeshComponent* GetLeaderPoseComponent() const { return LeaderPoseComponent; } + + UFUNCTION(BlueprintCallable, Category="Equiped Composites") + void AddCompositeName(FName CompositeName); + + UFUNCTION(BlueprintCallable, Category="Equiped Composites") + void RemoveCompositeName(FName CompositeName); + + UFUNCTION(BlueprintCallable, Category="Equiped Composites") + void SetCompositeNames(const TSet& NewCompositeNames); + + UFUNCTION(BlueprintCallable, Category="Equiped Composites") + void AddCompositeCustom(const FEquipmentComposite& Composite, FName KeyName); + +protected: + + /** Table of EquipmentComposite */ + UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = "Equipment Data", meta = (RequiredAssetDataTags = "RowStructure=/Script/CompositeEquipmentSystem.EquipmentComposite")) + TObjectPtr EquipmentTable; + + UPROPERTY(BlueprintReadOnly, EditAnywhere, Category="Equiped Composites", meta = (AllowPrivateAccess = true)) + TSet CompositeNames; + +private: + + UPROPERTY(BlueprintReadOnly, Category = "Leader Pose", meta = (AllowPrivateAccess = true)) + TObjectPtr LeaderPoseComponent; + + UPROPERTY() + TWeakObjectPtr PoseOwner; + + UPROPERTY() + TMap GeneratedObjectsForCompositeNames; + +protected: + + void UpdateCompositesObjects(); + + void DestroyRemovedComposites(); + void CreateAddedComposites(); + + void CreateCompositeFromTable(const FName& CompositeName); + void CreateCompositeWithKey(const FEquipmentComposite& Composite, const FName& CompositeKey); + + void CreateCompositeObjects(const FEquipmentComposite& Composite, FEquipmentCompositeGeneratedObjects& GeneratedObjects); + + void CreateStaticMeshes(const TArray& EquipableMeshes, FEquipmentCompositeGeneratedObjects& GeneratedObjects); + void CreateSkeletalMeshes(const TArray& EquipableMeshes, FEquipmentCompositeGeneratedObjects& GeneratedObjects); + void CreateSpecialEffects(const TArray& EquipableEffects, FEquipmentCompositeGeneratedObjects& GeneratedObjects); + void CreateChildActors(const TArray& EquipableActors, FEquipmentCompositeGeneratedObjects& GeneratedObjects); + + template + TComponent* CreateAttachedComponent_Unsafe(const FEquipableAttached& Equipable) + { + static_assert(std::is_base_of::value, "TComponent must be a subclass of USceneComponent."); + + UActorComponent* CreatedComponent = PoseOwner->AddComponentByClass( + TComponent::StaticClass(), + true, + Equipable.RelativeTransform, + false + ); + + if (!IsValid(CreatedComponent)) + return nullptr; + + if (TComponent* SceneComponent = Cast(CreatedComponent)) + { + SceneComponent->AttachToComponent( + LeaderPoseComponent, + FAttachmentTransformRules::KeepRelativeTransform, + Equipable.SocketName + ); + return SceneComponent; + } + + return nullptr; + } + +}; diff --git a/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Public/CompositeEquipmentSystem.h b/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Public/CompositeEquipmentSystem.h new file mode 100644 index 0000000..959fb6c --- /dev/null +++ b/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Public/CompositeEquipmentSystem.h @@ -0,0 +1,15 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "Modules/ModuleManager.h" + +class FCompositeEquipmentSystemModule : public IModuleInterface +{ +public: + + /** IModuleInterface implementation */ + virtual void StartupModule() override; + virtual void ShutdownModule() override; +}; diff --git a/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Public/Structures/CompositeEquipmentSystemStructs.h b/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Public/Structures/CompositeEquipmentSystemStructs.h new file mode 100644 index 0000000..b6ee8f5 --- /dev/null +++ b/Plugins/CompositeEquipmentSystem/Source/CompositeEquipmentSystem/Public/Structures/CompositeEquipmentSystemStructs.h @@ -0,0 +1,131 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Engine/DataTable.h" +#include "CompositeEquipmentSystemStructs.generated.h" + + +USTRUCT(BlueprintType) +struct COMPOSITEEQUIPMENTSYSTEM_API FEquipableAttached +{ + GENERATED_BODY() + +public: + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Position") + FTransform RelativeTransform; + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Position") + FName SocketName; + +}; + +USTRUCT(BlueprintType) +struct COMPOSITEEQUIPMENTSYSTEM_API FEquipableStaticMesh : public FEquipableAttached +{ + GENERATED_BODY() + +public: + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Mesh") + TObjectPtr StaticMesh; + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Mesh") + TArray OverrideMaterials; + +}; + + +USTRUCT(BlueprintType) +struct COMPOSITEEQUIPMENTSYSTEM_API FEquipableSkeletalMesh : public FEquipableAttached +{ + GENERATED_BODY() + +public: + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Mesh") + TObjectPtr SkeletalMesh; + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Mesh") + TArray OverrideMaterials; + + /** Incompatible with UseLeaderPose */ + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Mesh") + TArray HiddenBones; + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Animation") + bool bUseLeaderPose = true; + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Animation") + TSubclassOf AnimInstanceClass; + +}; + + +class UNiagaraSystem; +class UParticleSystem; + +USTRUCT(BlueprintType) +struct COMPOSITEEQUIPMENTSYSTEM_API FEquipableSpecialEffect : public FEquipableAttached +{ + GENERATED_BODY() + +public: + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VFX") + TObjectPtr NiagaraEffect; + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VFX") + TObjectPtr CascadeEffect; + +}; + + +USTRUCT(BlueprintType) +struct COMPOSITEEQUIPMENTSYSTEM_API FEquipableChildActor : public FEquipableAttached +{ + GENERATED_BODY() + +public: + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Actor") + TSubclassOf ActorClass; + +}; + + +USTRUCT(BlueprintType, Blueprintable) +struct COMPOSITEEQUIPMENTSYSTEM_API FEquipmentComposite : public FTableRowBase +{ + GENERATED_BODY() + +public: + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Composites") + TArray StaticMeshes; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Composites") + TArray SkeletalMeshes; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Composites") + TArray SpecialEffects; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Composites") + TArray ChildActors; +}; + + +USTRUCT(BlueprintType) +struct FEquipmentCompositeGeneratedObjects +{ + GENERATED_USTRUCT_BODY() + + UPROPERTY() + TArray Components; + + void AddComponent(UActorComponent* NewComponent); + + void Destroy(); +}; diff --git a/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem.umap b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem.umap new file mode 100644 index 0000000..95d9721 --- /dev/null +++ b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1afcb1efa9080b35c2eb32da05cdbef290716f8d86a939a106ce9205dc78b14f +size 85098 diff --git a/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_GameMode.uasset b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_GameMode.uasset new file mode 100644 index 0000000..7843afd --- /dev/null +++ b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_GameMode.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69d41adfa672d4ea0586e4dbd483da2a092fc930f7285d63a3dc08c0d1c53072 +size 19986 diff --git a/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_GameState.uasset b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_GameState.uasset new file mode 100644 index 0000000..08a6893 --- /dev/null +++ b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_GameState.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d84edfa6fcbe63d9af5ef4b8a457de0b92be2c8645d7fb8dea9601ff6c1c7126 +size 20215 diff --git a/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_InteractionCube.uasset b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_InteractionCube.uasset new file mode 100644 index 0000000..8ce21dd --- /dev/null +++ b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_InteractionCube.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f63416446f70377d175b192caba6e44b8a61facfaa29235e5e6ce66f38b8346e +size 124134 diff --git a/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_InteractionWidget.uasset b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_InteractionWidget.uasset new file mode 100644 index 0000000..5cc864e --- /dev/null +++ b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_InteractionWidget.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e891755d63e70eabfd1cdbb7c90950e0c65fe8f6d71247115de0e3ef0ec2fe3a +size 58575 diff --git a/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_Keyboard.uasset b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_Keyboard.uasset new file mode 100644 index 0000000..15748ab --- /dev/null +++ b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_Keyboard.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02f824ed24058a9ae48690dbcf75e5977951b014536f691d31df3a75640cf38c +size 128078 diff --git a/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_Material_Gray.uasset b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_Material_Gray.uasset new file mode 100644 index 0000000..f8afa93 --- /dev/null +++ b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_Material_Gray.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98e601751a1f0ca288fc01964d8e1ae1aac81b3c93735f50eec8e9c0bc221623 +size 8653 diff --git a/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_Material_LightBlue.uasset b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_Material_LightBlue.uasset new file mode 100644 index 0000000..f7f6309 --- /dev/null +++ b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_Material_LightBlue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53a00ea60ec71408870effa948ae3aa7a256ecdac1f9f1de149c19ddea101b82 +size 9755 diff --git a/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_Material_Red.uasset b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_Material_Red.uasset new file mode 100644 index 0000000..ed7687f --- /dev/null +++ b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_Material_Red.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d3b393520b80b61b7344c4350b9853d4667e76641a79ab95ae8545e3b90159d +size 8376 diff --git a/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_PlayerController.uasset b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_PlayerController.uasset new file mode 100644 index 0000000..022bf9d --- /dev/null +++ b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_PlayerController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b4460df37f1ec7aeca7f82855bb5d211cbdf62b95d665d48d81a3603bb75810 +size 50554 diff --git a/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_PromptActor.uasset b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_PromptActor.uasset new file mode 100644 index 0000000..f485587 --- /dev/null +++ b/Plugins/InteractionSystem/Content/Tests/TestMap_InteractionSystem_PromptActor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d3d61317836231e70fca2b02c36920ea0ca4d13573722007da3d0d112735d2e +size 62949 diff --git a/Plugins/InteractionSystem/Content/UI/WBP_AInteractionSystemWidget.uasset b/Plugins/InteractionSystem/Content/UI/WBP_AInteractionSystemWidget.uasset new file mode 100644 index 0000000..8a728da --- /dev/null +++ b/Plugins/InteractionSystem/Content/UI/WBP_AInteractionSystemWidget.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce5c103b245cb7a3bd4b3d5893d3d8a94f1385210eb9a185bebcf13b2096767d +size 143016 diff --git a/Plugins/InteractionSystem/InteractionSystem.uplugin b/Plugins/InteractionSystem/InteractionSystem.uplugin new file mode 100644 index 0000000..5c53ba1 --- /dev/null +++ b/Plugins/InteractionSystem/InteractionSystem.uplugin @@ -0,0 +1,24 @@ +{ + "FileVersion": 3, + "Version": 1, + "VersionName": "0.1", + "FriendlyName": "InteractionSystem", + "Description": "Triggerable interaction system", + "Category": "Gameplay", + "CreatedBy": "Amasson", + "CreatedByURL": "", + "DocsURL": "", + "MarketplaceURL": "", + "SupportURL": "", + "CanContainContent": true, + "IsBetaVersion": true, + "IsExperimentalVersion": false, + "Installed": false, + "Modules": [ + { + "Name": "InteractionSystem", + "Type": "Runtime", + "LoadingPhase": "Default" + } + ] +} \ No newline at end of file diff --git a/Plugins/InteractionSystem/Resources/Icon128.png b/Plugins/InteractionSystem/Resources/Icon128.png new file mode 100644 index 0000000..26245f6 --- /dev/null +++ b/Plugins/InteractionSystem/Resources/Icon128.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7239efaeefbd82de33ebe18518e50de075ea4188a468a9e4991396433d2275f +size 12699 diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/InteractionSystem.Build.cs b/Plugins/InteractionSystem/Source/InteractionSystem/InteractionSystem.Build.cs new file mode 100644 index 0000000..38847f9 --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/InteractionSystem.Build.cs @@ -0,0 +1,53 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using UnrealBuildTool; + +public class InteractionSystem : ModuleRules +{ + public InteractionSystem(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicIncludePaths.AddRange( + new string[] { + // ... add public include paths required here ... + } + ); + + + PrivateIncludePaths.AddRange( + new string[] { + // ... add other private include paths required here ... + } + ); + + + PublicDependencyModuleNames.AddRange( + new string[] + { + "Core", + // ... add other public dependencies that you statically link with here ... + } + ); + + + PrivateDependencyModuleNames.AddRange( + new string[] + { + "CoreUObject", + "Engine", + "Slate", + "SlateCore", + // ... add private dependencies that you statically link with here ... + } + ); + + + DynamicallyLoadedModuleNames.AddRange( + new string[] + { + // ... add any modules that your module loads dynamically here ... + } + ); + } +} diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/Private/Components/InteractionControllerComponent.cpp b/Plugins/InteractionSystem/Source/InteractionSystem/Private/Components/InteractionControllerComponent.cpp new file mode 100644 index 0000000..a352e1b --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/Private/Components/InteractionControllerComponent.cpp @@ -0,0 +1,137 @@ +// Amasson + + +#include "Components/InteractionControllerComponent.h" +#include "GameFramework/PlayerController.h" + + +UInteractionControllerComponent::UInteractionControllerComponent() +{ + PrimaryComponentTick.bCanEverTick = true; + +} + +void UInteractionControllerComponent::BeginPlay() +{ + Super::BeginPlay(); + + OwningPlayerController = Cast(GetOwner()); + + if (!IsValid(OwningPlayerController)) + { + UE_LOG(LogTemp, Error, TEXT("UInteractionControllerComponent is not owned by a valid APlayerController")); + } +} + +void UInteractionControllerComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) +{ + Super::TickComponent(DeltaTime, TickType, ThisTickFunction); + + UpdateHover(); +} + +void UInteractionControllerComponent::TriggerHoveredObject() +{ + if (IsValid(HoveredObject)) + { + bHoveredObjectPressed = true; + APawn* TriggeringPawn = nullptr; + if (IsValid(OwningPlayerController)) + TriggeringPawn = OwningPlayerController->GetPawn(); + + Super::ExecuteTrigger(HoveredObject, OwningPlayerController, TriggeringPawn, FName("PlayerInteraction"), this); + } +} + +void UInteractionControllerComponent::ReleaseTriggerHoveredObject() +{ + bHoveredObjectPressed = false; + if (IsValid(HoveredObject)) + { + APawn* TriggeringPawn = nullptr; + if (IsValid(OwningPlayerController)) + TriggeringPawn = OwningPlayerController->GetPawn(); + + Super::ExecuteReleaseTrigger(HoveredObject, OwningPlayerController, TriggeringPawn, FName("PlayerInteraction"), this); + } +} + +void UInteractionControllerComponent::Activate(bool bReset) +{ + Super::Activate(bReset); + + if (bReset) + CursorHit = FHitResult(); + SetComponentTickEnabled(true); +} + +void UInteractionControllerComponent::Deactivate() +{ + Super::Deactivate(); + + if (IsValid(HoveredObject)) + UnhoverObject_Unsafe(); + SetComponentTickEnabled(false); +} + +void UInteractionControllerComponent::UpdateHover() +{ + if (!IsValid(OwningPlayerController)) + return; + + OwningPlayerController->GetHitResultUnderCursor(CursorChannel, false, CursorHit); + + UObject* NewHitObject = GetHoverableObjectFromCursorHit(); + + if (IsValid(HoveredObject)) + { + bool bCurrentHoverIsStillValid = IWorldHoverable::Execute_CanBeHovered(HoveredObject, OwningPlayerController, CursorHit); + + bool bShouldUnhover = (!bCurrentHoverIsStillValid) || (NewHitObject != HoveredObject); + if (bShouldUnhover) + UnhoverObject_Unsafe(); + } + + if (!HoveredObject && IsValid(NewHitObject)) + { + HoverObject(NewHitObject); + } +} + +UObject* UInteractionControllerComponent::GetHoverableObjectFromCursorHit() +{ + UPrimitiveComponent* HitComponent = CursorHit.GetComponent(); + if (IsValid(HitComponent) && HitComponent->Implements()) + { + if (IWorldHoverable::Execute_CanBeHovered(HitComponent, OwningPlayerController, CursorHit)) + return HitComponent; + } + AActor* HitActor = CursorHit.GetActor(); + if (IsValid(HitActor) && HitActor->Implements()) + { + if (IWorldHoverable::Execute_CanBeHovered(HitActor, OwningPlayerController, CursorHit)) + return HitActor; + } + return nullptr; +} + +void UInteractionControllerComponent::UnhoverObject_Unsafe() +{ + if (bHoveredObjectPressed) + ReleaseTriggerHoveredObject(); + + IWorldHoverable::Execute_HoveredEnd(HoveredObject, OwningPlayerController); + + OnHoverObjectEnd.Broadcast(this, HoveredObject); + + HoveredObject = nullptr; +} + +void UInteractionControllerComponent::HoverObject(UObject* NewHoverObject) +{ + HoveredObject = NewHoverObject; + + IWorldHoverable::Execute_HoveredBegin(HoveredObject, OwningPlayerController, CursorHit); + + OnHoverObjectBegin.Broadcast(this, HoveredObject); +} diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/Private/Components/ObjectTriggererComponent.cpp b/Plugins/InteractionSystem/Source/InteractionSystem/Private/Components/ObjectTriggererComponent.cpp new file mode 100644 index 0000000..c7cf077 --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/Private/Components/ObjectTriggererComponent.cpp @@ -0,0 +1,119 @@ +// Amasson + + +#include "Components/ObjectTriggererComponent.h" +#include "Interfaces/Triggerable.h" +#include "GameFramework/GameStateBase.h" + +UObjectTriggererComponent::UObjectTriggererComponent() +{ + PrimaryComponentTick.bCanEverTick = false; + + SetIsReplicatedByDefault(true); +} + +void UObjectTriggererComponent::BeginPlay() +{ + Super::BeginPlay(); + + GlobalObjectTriggerer = GetGlobalObjectTriggererComponent(); +} + + +void UObjectTriggererComponent::ExecuteTrigger(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload) +{ + if (IsValid(TriggerableObject) && TriggerableObject->Implements()) + { + ETriggerMode TriggerMode = ITriggerable::Execute_GetTriggerMode(TriggerableObject); + switch (TriggerMode) + { + case ETriggerMode::TM_Server: + Server_ExecuteTrigger(TriggerableObject, TriggeringController, TriggeringPawn, Tag, Payload); + break; + case ETriggerMode::TM_Client: + Client_ExecuteTrigger(TriggerableObject, TriggeringController, TriggeringPawn, Tag, Payload); + break; + case ETriggerMode::TM_Multicast: + Server_MulticastExecuteTrigger(TriggerableObject, TriggeringController, TriggeringPawn, Tag, Payload); + break; + } + } +} + +void UObjectTriggererComponent::ExecuteReleaseTrigger(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload) +{ + if (IsValid(TriggerableObject) && TriggerableObject->Implements()) + { + ETriggerMode TriggerMode = ITriggerable::Execute_GetTriggerMode(TriggerableObject); + switch (TriggerMode) + { + case ETriggerMode::TM_Server: + Server_ExecuteReleaseTrigger(TriggerableObject, TriggeringController, TriggeringPawn, Tag, Payload); + break; + case ETriggerMode::TM_Client: + Client_ExecuteReleaseTrigger(TriggerableObject, TriggeringController, TriggeringPawn, Tag, Payload); + break; + case ETriggerMode::TM_Multicast: + Server_MulticastExecuteReleaseTrigger(TriggerableObject, TriggeringController, TriggeringPawn, Tag, Payload); + break; + } + } +} + + +void UObjectTriggererComponent::Server_ExecuteTrigger_Implementation(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload) +{ + ITriggerable::Execute_Trigger(TriggerableObject, TriggeringController, TriggeringPawn, Tag, Payload); +} + +void UObjectTriggererComponent::Client_ExecuteTrigger_Implementation(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload) +{ + ITriggerable::Execute_Trigger(TriggerableObject, TriggeringController, TriggeringPawn, Tag, Payload); +} + +void UObjectTriggererComponent::Server_MulticastExecuteTrigger_Implementation(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload) +{ + UObjectTriggererComponent* Triggerer = GlobalObjectTriggerer; + if (!IsValid(Triggerer)) + Triggerer = this; + Triggerer->NetMulticast_ExecuteTrigger(TriggerableObject, TriggeringController, TriggeringPawn, Tag, Payload); +} + +void UObjectTriggererComponent::NetMulticast_ExecuteTrigger_Implementation(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload) +{ + ITriggerable::Execute_Trigger(TriggerableObject, TriggeringController, TriggeringPawn, Tag, Payload); +} + +void UObjectTriggererComponent::Server_ExecuteReleaseTrigger_Implementation(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload) +{ + ITriggerable::Execute_ReleaseTrigger(TriggerableObject, TriggeringController, TriggeringPawn, Tag, Payload); +} + +void UObjectTriggererComponent::Client_ExecuteReleaseTrigger_Implementation(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload) +{ + ITriggerable::Execute_ReleaseTrigger(TriggerableObject, TriggeringController, TriggeringPawn, Tag, Payload); +} + +void UObjectTriggererComponent::Server_MulticastExecuteReleaseTrigger_Implementation(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload) +{ + UObjectTriggererComponent* Triggerer = GlobalObjectTriggerer; + if (!IsValid(Triggerer)) + Triggerer = this; + Triggerer->NetMulticast_ExecuteReleaseTrigger(TriggerableObject, TriggeringController, TriggeringPawn, Tag, Payload); +} + +void UObjectTriggererComponent::NetMulticast_ExecuteReleaseTrigger_Implementation(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload) +{ + ITriggerable::Execute_ReleaseTrigger(TriggerableObject, TriggeringController, TriggeringPawn, Tag, Payload); +} + +UObjectTriggererComponent* UObjectTriggererComponent::GetGlobalObjectTriggererComponent() const +{ + AGameStateBase* GameState = GetWorld()->GetGameState(); + UObjectTriggererComponent *GlobalTrigger = GameState->GetComponentByClass(); + + if (!IsValid(GlobalTrigger)) + UE_LOG(LogTemp, Warning, TEXT("No UObjectTriggererComponent in GameState... Multicast triggers won't be executed by everyone")); + + return GlobalTrigger; +} diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/Private/Components/Shapes/BoxInteractionComponent.cpp b/Plugins/InteractionSystem/Source/InteractionSystem/Private/Components/Shapes/BoxInteractionComponent.cpp new file mode 100644 index 0000000..02cb629 --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/Private/Components/Shapes/BoxInteractionComponent.cpp @@ -0,0 +1,58 @@ +// Amasson + + +#include "Components/Shapes/BoxInteractionComponent.h" + +/** Trigger */ + +void UBoxInteractionComponent::Trigger_Implementation(AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload) +{ + if (IsValid(TriggeringActor) && TriggeringActor->Implements()) + { + ITriggerable::Execute_Trigger(TriggeringActor, TriggeringController, TriggeringPawn, this->TriggeringTag, this->TriggeringPayload); + } +} + +void UBoxInteractionComponent::ReleaseTrigger_Implementation(AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload) +{ + if (IsValid(TriggeringActor) && TriggeringActor->Implements()) + { + ITriggerable::Execute_ReleaseTrigger(TriggeringActor, TriggeringController, TriggeringPawn, this->TriggeringTag, this->TriggeringPayload); + } +} + +ETriggerMode UBoxInteractionComponent::GetTriggerMode_Implementation() const +{ + if (IsValid(TriggeringActor) && TriggeringActor->Implements()) + { + return ITriggerable::Execute_GetTriggerMode(TriggeringActor); + } + return ETriggerMode::TM_Client; +} + + +/** Hovering */ + +void UBoxInteractionComponent::GetWorldHoverableInfos_Implementation(FWorldHoverableInfos& Infos) +{ + Infos.Location = GetComponentTransform().TransformPosition(InfoLocationOffset); + Infos.Text = InfoText; + Infos.bScreenSpace = false; +} + +bool UBoxInteractionComponent::CanBeHovered_Implementation(AController* Controller, const FHitResult& TraceHit) +{ + if (MaxRange >= 0) + return TraceHit.Distance < MaxRange; + return true; +} + +void UBoxInteractionComponent::HoveredBegin_Implementation(AController* Controller, const FHitResult& TraceHit) +{ + OnHoverBegin.Broadcast(this, TraceHit); +} + +void UBoxInteractionComponent::HoveredEnd_Implementation(AController* Controller) +{ + OnHoverEnd.Broadcast(this); +} diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/Private/InteractionSystem.cpp b/Plugins/InteractionSystem/Source/InteractionSystem/Private/InteractionSystem.cpp new file mode 100644 index 0000000..ce69aa1 --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/Private/InteractionSystem.cpp @@ -0,0 +1,20 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#include "InteractionSystem.h" + +#define LOCTEXT_NAMESPACE "FInteractionSystemModule" + +void FInteractionSystemModule::StartupModule() +{ + // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module +} + +void FInteractionSystemModule::ShutdownModule() +{ + // This function may be called during shutdown to clean up your module. For modules that support dynamic reloading, + // we call this function before unloading the module. +} + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(FInteractionSystemModule, InteractionSystem) \ No newline at end of file diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/Private/InteractionSystemLibrary.cpp b/Plugins/InteractionSystem/Source/InteractionSystem/Private/InteractionSystemLibrary.cpp new file mode 100644 index 0000000..1e49410 --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/Private/InteractionSystemLibrary.cpp @@ -0,0 +1,11 @@ +// Amasson + + +#include "InteractionSystemLibrary.h" + +void UInteractionSystemLibrary::DefaultsActorWorldHoverableInfos(AActor* Actor, FText TooltipText, FWorldHoverableInfos& Infos) +{ + Infos.Location = IsValid(Actor) ? Actor->GetActorLocation() : FVector(); + Infos.Text = TooltipText; + Infos.bScreenSpace = false; +} diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/Private/Interfaces/Triggerable.cpp b/Plugins/InteractionSystem/Source/InteractionSystem/Private/Interfaces/Triggerable.cpp new file mode 100644 index 0000000..f677fe3 --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/Private/Interfaces/Triggerable.cpp @@ -0,0 +1,5 @@ +// Amasson + + +#include "Interfaces/Triggerable.h" + diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/Private/Interfaces/WorldHoverable.cpp b/Plugins/InteractionSystem/Source/InteractionSystem/Private/Interfaces/WorldHoverable.cpp new file mode 100644 index 0000000..472348f --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/Private/Interfaces/WorldHoverable.cpp @@ -0,0 +1,5 @@ +// Amasson + + +#include "Interfaces/WorldHoverable.h" + diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/Public/Components/InteractionControllerComponent.h b/Plugins/InteractionSystem/Source/InteractionSystem/Public/Components/InteractionControllerComponent.h new file mode 100644 index 0000000..88d11cf --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/Public/Components/InteractionControllerComponent.h @@ -0,0 +1,81 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Components/ObjectTriggererComponent.h" +#include "Interfaces/WorldHoverable.h" +#include "Interfaces/Triggerable.h" +#include "InteractionControllerComponent.generated.h" + +class APlayerController; + + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnHoverObjectChangedSignature, UInteractionControllerComponent*, InteractionComponent, UObject*, WorldHoverable); + +UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) +class INTERACTIONSYSTEM_API UInteractionControllerComponent : public UObjectTriggererComponent +{ + GENERATED_BODY() + +public: + + UInteractionControllerComponent(); + + virtual void BeginPlay() override; + + virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override; + + UPROPERTY(BlueprintAssignable, Category = "Hover") + FOnHoverObjectChangedSignature OnHoverObjectBegin; + + UPROPERTY(BlueprintAssignable, Category = "Hover") + FOnHoverObjectChangedSignature OnHoverObjectEnd; + + UFUNCTION(BlueprintCallable, Category = "Hover") + FORCEINLINE UObject* GetHoveredObject() const { return HoveredObject; } + + UFUNCTION(BlueprintCallable, Category = "Hover") + FORCEINLINE AActor* GetHoveredActor() const { return IsValid(HoveredObject) ? Cast(HoveredObject) : nullptr; } + + UFUNCTION(BlueprintCallable, Category = "Hover") + FORCEINLINE UActorComponent* GetHoveredComponent() const { return IsValid(HoveredObject) ? Cast(HoveredObject) : nullptr; } + + UFUNCTION(BlueprintCallable, Category = "Cursor") + const FHitResult& GetCursorHit() const { return CursorHit; } + + UFUNCTION(BlueprintCallable, Category = "Trigger") + void TriggerHoveredObject(); + + UFUNCTION(BlueprintCallable, Category = "Trigger") + void ReleaseTriggerHoveredObject(); + + virtual void Activate(bool bReset = false) override; + virtual void Deactivate() override; + +protected: + + void UpdateHover(); + + UObject* GetHoverableObjectFromCursorHit(); + void UnhoverObject_Unsafe(); + void HoverObject(UObject* NewHoverObject); + + UPROPERTY() + TObjectPtr OwningPlayerController; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Cursor", meta = (AllowPrivateAccess = true)) + TEnumAsByte CursorChannel; + + UPROPERTY() + FHitResult CursorHit; + + UPROPERTY() + TObjectPtr HoveredObject; + + // UPROPERTY(EditAnywhere, Category = "Cursor", meta = (AllowPrivateAccess = true)) + // TObjectPtr InteractionInput; + + bool bHoveredObjectPressed = false; + +}; diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/Public/Components/ObjectTriggererComponent.h b/Plugins/InteractionSystem/Source/InteractionSystem/Public/Components/ObjectTriggererComponent.h new file mode 100644 index 0000000..0368437 --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/Public/Components/ObjectTriggererComponent.h @@ -0,0 +1,59 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Components/ActorComponent.h" +#include "ObjectTriggererComponent.generated.h" + + +UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) +class INTERACTIONSYSTEM_API UObjectTriggererComponent : public UActorComponent +{ + GENERATED_BODY() + +public: + + UObjectTriggererComponent(); + + virtual void BeginPlay() override; + + UFUNCTION(BlueprintCallable, Category = "Trigger") + void ExecuteTrigger(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload); + + UFUNCTION(BlueprintCallable, Category = "Trigger") + void ExecuteReleaseTrigger(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload); + +protected: + + UFUNCTION(Server, Reliable) + void Server_ExecuteTrigger(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload); + + UFUNCTION(Client, Reliable) + void Client_ExecuteTrigger(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload); + + UFUNCTION(Server, Reliable) + void Server_MulticastExecuteTrigger(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload); + + UFUNCTION(NetMulticast, Reliable) + void NetMulticast_ExecuteTrigger(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload); + + UFUNCTION(Server, Reliable) + void Server_ExecuteReleaseTrigger(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload); + + UFUNCTION(Client, Reliable) + void Client_ExecuteReleaseTrigger(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload); + + UFUNCTION(Server, Reliable) + void Server_MulticastExecuteReleaseTrigger(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload); + + UFUNCTION(NetMulticast, Reliable) + void NetMulticast_ExecuteReleaseTrigger(UObject* TriggerableObject, AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload); + + + UObjectTriggererComponent* GetGlobalObjectTriggererComponent() const; + + UPROPERTY() + TObjectPtr GlobalObjectTriggerer; + +}; diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/Public/Components/Shapes/BoxInteractionComponent.h b/Plugins/InteractionSystem/Source/InteractionSystem/Public/Components/Shapes/BoxInteractionComponent.h new file mode 100644 index 0000000..808ead2 --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/Public/Components/Shapes/BoxInteractionComponent.h @@ -0,0 +1,71 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Components/BoxComponent.h" +#include "Interfaces/WorldHoverable.h" +#include "Interfaces/Triggerable.h" +#include "BoxInteractionComponent.generated.h" + + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnInteractionHoverBeginSignature, UBoxInteractionComponent*, BoxInteraction, FHitResult, CursorHit); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnInteractionHoverEndSignature, UBoxInteractionComponent*, BoxInteraction); + +/** + * + */ + +UCLASS( Blueprintable, ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) +class INTERACTIONSYSTEM_API UBoxInteractionComponent : public UBoxComponent, public IWorldHoverable, public ITriggerable +{ + GENERATED_BODY() + +public: + + UPROPERTY(BlueprintAssignable) + FOnInteractionHoverBeginSignature OnHoverBegin; + + UPROPERTY(BlueprintAssignable) + FOnInteractionHoverEndSignature OnHoverEnd; + + /** Trigger */ + + virtual void Trigger_Implementation(AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload) override; + virtual void ReleaseTrigger_Implementation(AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload) override; + virtual ETriggerMode GetTriggerMode_Implementation() const override; + + + /** Hovering */ + + virtual void GetWorldHoverableInfos_Implementation(FWorldHoverableInfos& Infos) override; + virtual bool CanBeHovered_Implementation(AController* Controller, const FHitResult& TraceHit) override; + virtual void HoveredBegin_Implementation(AController* Controller, const FHitResult& TraceHit) override; + virtual void HoveredEnd_Implementation(AController* Controller) override; + + + /** Trigger Properties */ + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Interaction") + TObjectPtr TriggeringActor; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Interaction") + FName TriggeringTag; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Interaction") + TObjectPtr TriggeringPayload; + + + /** Hovering Properties */ + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Interaction") + float MaxRange = -1; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Interaction") + FVector InfoLocationOffset; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Interaction") + FText InfoText; + + +}; diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/Public/InteractionSystem.h b/Plugins/InteractionSystem/Source/InteractionSystem/Public/InteractionSystem.h new file mode 100644 index 0000000..862e055 --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/Public/InteractionSystem.h @@ -0,0 +1,15 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "Modules/ModuleManager.h" + +class FInteractionSystemModule : public IModuleInterface +{ +public: + + /** IModuleInterface implementation */ + virtual void StartupModule() override; + virtual void ShutdownModule() override; +}; diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/Public/InteractionSystemLibrary.h b/Plugins/InteractionSystem/Source/InteractionSystem/Public/InteractionSystemLibrary.h new file mode 100644 index 0000000..e23ae22 --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/Public/InteractionSystemLibrary.h @@ -0,0 +1,23 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Kismet/BlueprintFunctionLibrary.h" +#include "Interfaces/WorldHoverable.h" +#include "InteractionSystemLibrary.generated.h" + +/** + * + */ +UCLASS() +class INTERACTIONSYSTEM_API UInteractionSystemLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "WorldTooltip", meta = (DefaultToSelf = "Actor")) + static void DefaultsActorWorldHoverableInfos(AActor* Actor, FText TooltipText, FWorldHoverableInfos& Infos); + +}; diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/Public/Interfaces/Triggerable.h b/Plugins/InteractionSystem/Source/InteractionSystem/Public/Interfaces/Triggerable.h new file mode 100644 index 0000000..3231d6e --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/Public/Interfaces/Triggerable.h @@ -0,0 +1,45 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UObject/Interface.h" +#include "Triggerable.generated.h" + + +UENUM(BlueprintType) +enum class ETriggerMode : uint8 +{ + TM_Multicast UMETA(DisplayName="Multicast"), + TM_Server UMETA(DisplayName="Server"), + TM_Client UMETA(DisplayName="Client"), +}; + + +// This class does not need to be modified. +UINTERFACE(MinimalAPI) +class UTriggerable : public UInterface +{ + GENERATED_BODY() +}; + +/** + * + */ +class INTERACTIONSYSTEM_API ITriggerable +{ + GENERATED_BODY() + + // Add interface functions to this class. This is the class that will be inherited to implement this interface. +public: + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Triggerable") + void Trigger(AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload); + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Triggerable") + void ReleaseTrigger(AController* TriggeringController, APawn* TriggeringPawn, FName Tag, UObject* Payload); + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Triggerable") + ETriggerMode GetTriggerMode() const; + +}; diff --git a/Plugins/InteractionSystem/Source/InteractionSystem/Public/Interfaces/WorldHoverable.h b/Plugins/InteractionSystem/Source/InteractionSystem/Public/Interfaces/WorldHoverable.h new file mode 100644 index 0000000..7e627f6 --- /dev/null +++ b/Plugins/InteractionSystem/Source/InteractionSystem/Public/Interfaces/WorldHoverable.h @@ -0,0 +1,59 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UObject/Interface.h" +#include "WorldHoverable.generated.h" + + +USTRUCT(BlueprintType) +struct INTERACTIONSYSTEM_API FWorldHoverableInfos +{ + GENERATED_BODY() + +public: + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FVector Location = FVector::ZeroVector; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FText Text; + + /** Is Location in Screen Space or World Space */ + UPROPERTY(EditAnywhere, BlueprintReadWrite) + bool bScreenSpace = false; + +}; + + +// This class does not need to be modified. +UINTERFACE(MinimalAPI) +class UWorldHoverable : public UInterface +{ + GENERATED_BODY() +}; + +/** + * + */ +class INTERACTIONSYSTEM_API IWorldHoverable +{ + GENERATED_BODY() + + // Add interface functions to this class. This is the class that will be inherited to implement this interface. +public: + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "WorldTooltip") + void GetWorldHoverableInfos(FWorldHoverableInfos& Infos); + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "WorldTooltip") + bool CanBeHovered(AController* Controller, const FHitResult& TraceHit); + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "WorldTooltip") + void HoveredBegin(AController* Controller, const FHitResult& TraceHit); + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "WorldTooltip") + void HoveredEnd(AController* Controller); + +}; diff --git a/Plugins/LibAmasson/Content/Blueprints/BFL_GenericFunctionsExtension.uasset b/Plugins/LibAmasson/Content/Blueprints/BFL_GenericFunctionsExtension.uasset new file mode 100644 index 0000000..284467b --- /dev/null +++ b/Plugins/LibAmasson/Content/Blueprints/BFL_GenericFunctionsExtension.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f81b7ed3e0779a5c2e5763af805004f5947c5b8e047159ac31bd45fed28efb35 +size 339772 diff --git a/Plugins/LibAmasson/Content/Blueprints/BPL_ActorMacros.uasset b/Plugins/LibAmasson/Content/Blueprints/BPL_ActorMacros.uasset new file mode 100644 index 0000000..b8e2dbe --- /dev/null +++ b/Plugins/LibAmasson/Content/Blueprints/BPL_ActorMacros.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d4ff96dbc85750a26b249105d14a68b2d1fc23969b3863a00b49b82f784d4cf +size 44957 diff --git a/Plugins/LibAmasson/Content/Blueprints/BPL_GenericMacrosExtension.uasset b/Plugins/LibAmasson/Content/Blueprints/BPL_GenericMacrosExtension.uasset new file mode 100644 index 0000000..894033f --- /dev/null +++ b/Plugins/LibAmasson/Content/Blueprints/BPL_GenericMacrosExtension.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:619ed186c25a1e69d868ca0b0ef3e4c7c7ac486683a32a5042de13b6a67e8315 +size 222987 diff --git a/Plugins/LibAmasson/Content/Blueprints/BPL_UserWidgetMacros.uasset b/Plugins/LibAmasson/Content/Blueprints/BPL_UserWidgetMacros.uasset new file mode 100644 index 0000000..4485fd3 --- /dev/null +++ b/Plugins/LibAmasson/Content/Blueprints/BPL_UserWidgetMacros.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08edfa37061a41917dee8ad714b9a099e91eb54b7190433471e204a57a637720 +size 63439 diff --git a/Plugins/LibAmasson/Content/Blueprints/BP_OnlineSessionManager.uasset b/Plugins/LibAmasson/Content/Blueprints/BP_OnlineSessionManager.uasset new file mode 100644 index 0000000..68d049f --- /dev/null +++ b/Plugins/LibAmasson/Content/Blueprints/BP_OnlineSessionManager.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08f9bc2834251f306f2ebebcbde0e56c42bda2a46df3396f292de0192aaeb470 +size 94103 diff --git a/Plugins/LibAmasson/Content/Blueprints/StandaloneTests_ThirdPersonCharacter.uasset b/Plugins/LibAmasson/Content/Blueprints/StandaloneTests_ThirdPersonCharacter.uasset new file mode 100644 index 0000000..295386c --- /dev/null +++ b/Plugins/LibAmasson/Content/Blueprints/StandaloneTests_ThirdPersonCharacter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c84678b8a5c543a3e5770c66849c8ec8b557831fb2ab926af847a7720b5a03ae +size 199542 diff --git a/Plugins/LibAmasson/Content/Materials/Functions/MF_CircleMask.uasset b/Plugins/LibAmasson/Content/Materials/Functions/MF_CircleMask.uasset new file mode 100644 index 0000000..c8a8072 --- /dev/null +++ b/Plugins/LibAmasson/Content/Materials/Functions/MF_CircleMask.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c529ae44e1fe52173068569edb916b79b6a10bacae83dd8f47939789afc5948e +size 13731 diff --git a/Plugins/LibAmasson/Content/Materials/Functions/MF_Juliabrot.uasset b/Plugins/LibAmasson/Content/Materials/Functions/MF_Juliabrot.uasset new file mode 100644 index 0000000..100b006 --- /dev/null +++ b/Plugins/LibAmasson/Content/Materials/Functions/MF_Juliabrot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8549c84d27adc19c47e49b2904cb38eceb9fe9db47a2777f368f727455a02e0 +size 13234 diff --git a/Plugins/LibAmasson/Content/Materials/Functions/MF_RadialMask.uasset b/Plugins/LibAmasson/Content/Materials/Functions/MF_RadialMask.uasset new file mode 100644 index 0000000..24bd057 --- /dev/null +++ b/Plugins/LibAmasson/Content/Materials/Functions/MF_RadialMask.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d01ae4e5e76e838f31def45609e13dbe2ed6e2fd9040c96a92e8c5c3c8f88ffa +size 23892 diff --git a/Plugins/LibAmasson/Content/Materials/Masters/MI_WidgetMask_Circle.uasset b/Plugins/LibAmasson/Content/Materials/Masters/MI_WidgetMask_Circle.uasset new file mode 100644 index 0000000..67635ac --- /dev/null +++ b/Plugins/LibAmasson/Content/Materials/Masters/MI_WidgetMask_Circle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b6442a33f8b5927d807425b1282928e433dc63a2b8f058b99b07ed48e322fd2 +size 7771 diff --git a/Plugins/LibAmasson/Content/Materials/Masters/M_CircleRadialProgress.uasset b/Plugins/LibAmasson/Content/Materials/Masters/M_CircleRadialProgress.uasset new file mode 100644 index 0000000..26ef96a --- /dev/null +++ b/Plugins/LibAmasson/Content/Materials/Masters/M_CircleRadialProgress.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0568f727ab4cd43a2c8a17728f9d0fd1a542fee0ea122144d330f387b7f8baec +size 13979 diff --git a/Plugins/LibAmasson/Content/Materials/Masters/M_WidgetCircleMask.uasset b/Plugins/LibAmasson/Content/Materials/Masters/M_WidgetCircleMask.uasset new file mode 100644 index 0000000..cc6062f --- /dev/null +++ b/Plugins/LibAmasson/Content/Materials/Masters/M_WidgetCircleMask.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:325153db33594e2e39b55a7a27b3b5ed20d6d34b1ae96db328567de970133b93 +size 11518 diff --git a/Plugins/LibAmasson/Content/Materials/Masters/M_WidgetTextureMask.uasset b/Plugins/LibAmasson/Content/Materials/Masters/M_WidgetTextureMask.uasset new file mode 100644 index 0000000..6058272 --- /dev/null +++ b/Plugins/LibAmasson/Content/Materials/Masters/M_WidgetTextureMask.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76548a9b4cbda65d6bf57370ff90b0870c2b8b06ede02920c6e9ee2a79d76e19 +size 10715 diff --git a/Plugins/LibAmasson/Content/Tests/TestMap_LibAmasson.umap b/Plugins/LibAmasson/Content/Tests/TestMap_LibAmasson.umap new file mode 100644 index 0000000..4887781 --- /dev/null +++ b/Plugins/LibAmasson/Content/Tests/TestMap_LibAmasson.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5c82984aaa0282ea52bea9dc13bd2de19d97f2655ba1ff70a6ab668674242b0 +size 240313 diff --git a/Plugins/LibAmasson/Content/Tests/TestMap_LibAmasson_GameMode.uasset b/Plugins/LibAmasson/Content/Tests/TestMap_LibAmasson_GameMode.uasset new file mode 100644 index 0000000..ad36d02 --- /dev/null +++ b/Plugins/LibAmasson/Content/Tests/TestMap_LibAmasson_GameMode.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00edf022f4c0d61d6a63c45d85715b71a5a5d1a2084911a43330cdf6af1651fc +size 19289 diff --git a/Plugins/LibAmasson/Content/Tests/UnitTests/Actor/TestMap_LibAmasson_ActorDistanceList.uasset b/Plugins/LibAmasson/Content/Tests/UnitTests/Actor/TestMap_LibAmasson_ActorDistanceList.uasset new file mode 100644 index 0000000..40a309f --- /dev/null +++ b/Plugins/LibAmasson/Content/Tests/UnitTests/Actor/TestMap_LibAmasson_ActorDistanceList.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5d16923af33f7f84007e4f76e49716f9179b21b356174257239c9571bdbad7f +size 90607 diff --git a/Plugins/LibAmasson/Content/Tests/UnitTests/FunctionalTest_SortingArrayPredicate.uasset b/Plugins/LibAmasson/Content/Tests/UnitTests/FunctionalTest_SortingArrayPredicate.uasset new file mode 100644 index 0000000..74eb51b --- /dev/null +++ b/Plugins/LibAmasson/Content/Tests/UnitTests/FunctionalTest_SortingArrayPredicate.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1bce3c1b78853dfc57120769cd5a13d2b8b70c8469dbeee6325630704001558 +size 70551 diff --git a/Plugins/LibAmasson/Content/Tests/WidgetController/TestMap_LibAmasson_CharMovementObserver.uasset b/Plugins/LibAmasson/Content/Tests/WidgetController/TestMap_LibAmasson_CharMovementObserver.uasset new file mode 100644 index 0000000..975fee8 --- /dev/null +++ b/Plugins/LibAmasson/Content/Tests/WidgetController/TestMap_LibAmasson_CharMovementObserver.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69e16cd6e126e2694c781dd1895bd13e479b80a53c9650490211904369da4868 +size 48354 diff --git a/Plugins/LibAmasson/Content/Tests/WidgetController/TestMap_LibAmasson_CharacterWidget.uasset b/Plugins/LibAmasson/Content/Tests/WidgetController/TestMap_LibAmasson_CharacterWidget.uasset new file mode 100644 index 0000000..ead78d8 --- /dev/null +++ b/Plugins/LibAmasson/Content/Tests/WidgetController/TestMap_LibAmasson_CharacterWidget.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50aabc885c51b0ecf1cd8f8dc6dc31745c8895bae2b4dca6f5cbd01ae73f6d15 +size 98515 diff --git a/Plugins/LibAmasson/Content/Tests/WidgetController/TestMap_LibAmasson_WidgetController_Char.uasset b/Plugins/LibAmasson/Content/Tests/WidgetController/TestMap_LibAmasson_WidgetController_Char.uasset new file mode 100644 index 0000000..af4b53d --- /dev/null +++ b/Plugins/LibAmasson/Content/Tests/WidgetController/TestMap_LibAmasson_WidgetController_Char.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcd3d432f94622ad444931981e80d9d5a1b09c36f6fba63336963c1a3fbb4406 +size 33989 diff --git a/Plugins/LibAmasson/Content/Widgets/SegmentPicker/S_SegmentPickerElement.uasset b/Plugins/LibAmasson/Content/Widgets/SegmentPicker/S_SegmentPickerElement.uasset new file mode 100644 index 0000000..0c71cf5 --- /dev/null +++ b/Plugins/LibAmasson/Content/Widgets/SegmentPicker/S_SegmentPickerElement.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d470cde657b85f300b7ba93f71932daf4f8da32eafd8aeac52ad1db97557e343 +size 7918 diff --git a/Plugins/LibAmasson/Content/Widgets/SegmentPicker/Widget_SegmentButton.uasset b/Plugins/LibAmasson/Content/Widgets/SegmentPicker/Widget_SegmentButton.uasset new file mode 100644 index 0000000..d0486d8 --- /dev/null +++ b/Plugins/LibAmasson/Content/Widgets/SegmentPicker/Widget_SegmentButton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7e466f09aed964efe30cd7760222211be16cf7007d864ae75b73e35a7edecb2 +size 97682 diff --git a/Plugins/LibAmasson/Content/Widgets/SegmentPicker/Widget_SegmentPicker.uasset b/Plugins/LibAmasson/Content/Widgets/SegmentPicker/Widget_SegmentPicker.uasset new file mode 100644 index 0000000..fd295ca --- /dev/null +++ b/Plugins/LibAmasson/Content/Widgets/SegmentPicker/Widget_SegmentPicker.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdf830d8461e849cde6defd538f4dcc86ea79c47fc9d42ab700f55c67ca98fb6 +size 232493 diff --git a/Plugins/LibAmasson/Content/Widgets/Widget_CircularRadialProgress.uasset b/Plugins/LibAmasson/Content/Widgets/Widget_CircularRadialProgress.uasset new file mode 100644 index 0000000..82725f9 --- /dev/null +++ b/Plugins/LibAmasson/Content/Widgets/Widget_CircularRadialProgress.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09fefb4a69d8d194078a5df653c0fa2fd52be4219ca741ff7dcd10696884abc7 +size 52435 diff --git a/Plugins/LibAmasson/Content/Widgets/Widget_DraggableButton.uasset b/Plugins/LibAmasson/Content/Widgets/Widget_DraggableButton.uasset new file mode 100644 index 0000000..bf447e5 --- /dev/null +++ b/Plugins/LibAmasson/Content/Widgets/Widget_DraggableButton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e83fc185335caea378d07c80467b8c50338ca225c05f256fe24a7597d7e975dc +size 328222 diff --git a/Plugins/LibAmasson/Content/Widgets/Widget_Image.uasset b/Plugins/LibAmasson/Content/Widgets/Widget_Image.uasset new file mode 100644 index 0000000..288231c --- /dev/null +++ b/Plugins/LibAmasson/Content/Widgets/Widget_Image.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc0c05fe9b05eee48d5250354c178588ba12118a084214e30810c02657616a7c +size 30284 diff --git a/Plugins/LibAmasson/Content/Widgets/Widget_Spacer.uasset b/Plugins/LibAmasson/Content/Widgets/Widget_Spacer.uasset new file mode 100644 index 0000000..d04c147 --- /dev/null +++ b/Plugins/LibAmasson/Content/Widgets/Widget_Spacer.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87c1dc8f6503df8b7f31874db7878ae64ab0cb6d04d1e8def3d6e0f8ee3113e9 +size 45421 diff --git a/Plugins/LibAmasson/Content/Widgets/Widget_Text.uasset b/Plugins/LibAmasson/Content/Widgets/Widget_Text.uasset new file mode 100644 index 0000000..92b1e0e --- /dev/null +++ b/Plugins/LibAmasson/Content/Widgets/Widget_Text.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe66ffde8ed6f4161b18d84175f254233797c447eaa9bd54fdb7df5886ca48f2 +size 25966 diff --git a/Plugins/LibAmasson/LibAmasson.uplugin b/Plugins/LibAmasson/LibAmasson.uplugin new file mode 100644 index 0000000..036270b --- /dev/null +++ b/Plugins/LibAmasson/LibAmasson.uplugin @@ -0,0 +1,30 @@ +{ + "FileVersion": 3, + "Version": 1, + "VersionName": "1.0", + "FriendlyName": "LibAmasson", + "Description": "My plugin of frequently implemented functions", + "Category": "Blueprints", + "CreatedBy": "Amasson", + "CreatedByURL": "", + "DocsURL": "", + "MarketplaceURL": "", + "SupportURL": "", + "CanContainContent": true, + "IsBetaVersion": false, + "IsExperimentalVersion": false, + "Installed": false, + "Modules": [ + { + "Name": "LibAmasson", + "Type": "Runtime", + "LoadingPhase": "Default" + } + ], + "Plugins": [ + { + "Name": "OnlineSubsystemUtils", + "Enabled": true + } + ] +} \ No newline at end of file diff --git a/Plugins/LibAmasson/Resources/Icon128.png b/Plugins/LibAmasson/Resources/Icon128.png new file mode 100644 index 0000000..26245f6 --- /dev/null +++ b/Plugins/LibAmasson/Resources/Icon128.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7239efaeefbd82de33ebe18518e50de075ea4188a468a9e4991396433d2275f +size 12699 diff --git a/Plugins/LibAmasson/Source/LibAmasson/LibAmasson.Build.cs b/Plugins/LibAmasson/Source/LibAmasson/LibAmasson.Build.cs new file mode 100644 index 0000000..514c3fb --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/LibAmasson.Build.cs @@ -0,0 +1,55 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using UnrealBuildTool; + +public class LibAmasson : ModuleRules +{ + public LibAmasson(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicIncludePaths.AddRange( + new string[] { + // ... add public include paths required here ... + } + ); + + + PrivateIncludePaths.AddRange( + new string[] { + // ... add other private include paths required here ... + } + ); + + + PublicDependencyModuleNames.AddRange( + new string[] + { + "Core", + // ... add other public dependencies that you statically link with here ... + } + ); + + + PrivateDependencyModuleNames.AddRange( + new string[] + { + "CoreUObject", + "Engine", + "Slate", + "SlateCore", + "UMG", + "OnlineSubsystemUtils", + // ... add private dependencies that you statically link with here ... + } + ); + + + DynamicallyLoadedModuleNames.AddRange( + new string[] + { + // ... add any modules that your module loads dynamically here ... + } + ); + } +} diff --git a/Plugins/LibAmasson/Source/LibAmasson/Private/Animation/CharacterMovementAnimInstance.cpp b/Plugins/LibAmasson/Source/LibAmasson/Private/Animation/CharacterMovementAnimInstance.cpp new file mode 100644 index 0000000..be17189 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Private/Animation/CharacterMovementAnimInstance.cpp @@ -0,0 +1,55 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Animation/CharacterMovementAnimInstance.h" +#include "Kismet/KismetMathLibrary.h" +#include "GameFramework/CharacterMovementComponent.h" + +void UCharacterMovementAnimInstance::NativeInitializeAnimation() +{ + Super::NativeInitializeAnimation(); + + if (APawn* Owner = TryGetPawnOwner()) { + CharacterMovementComponent = Owner->GetComponentByClass(); + _PreviousYaw = Owner->GetActorRotation().Yaw; + } +} + +void UCharacterMovementAnimInstance::NativeUpdateAnimation(float DeltaTime) +{ + Super::NativeUpdateAnimation(DeltaTime); + + if (APawn* Owner = TryGetPawnOwner()) + { + FRotator Rotation = Owner->GetActorRotation(); + TurnVelocity = (Rotation.Yaw - _PreviousYaw) / DeltaTime; + + if (CharacterMovementComponent) + { + bFalling = CharacterMovementComponent->IsFalling(); + bCrouching = CharacterMovementComponent->IsCrouching(); + bSwimming = CharacterMovementComponent->IsSwimming(); + + LocalVelocity = Rotation.UnrotateVector(CharacterMovementComponent->Velocity); + LocalVelocityAngle = LocalVelocity.IsNearlyZero() ? 0 : FMath::RadiansToDegrees(FMath::Atan2(LocalVelocity.Y, LocalVelocity.X)); + + } + + _PreviousYaw = Rotation.Yaw; + } +} + +bool UCharacterMovementAnimInstance::IsPawnMoving() const +{ + return LocalVelocity.SquaredLength() > 10; +} + +bool UCharacterMovementAnimInstance::IsJumpingUp() const +{ + return LocalVelocity.Z > 0 && bFalling; +} + +bool UCharacterMovementAnimInstance::IsFallingDown() const +{ + return LocalVelocity.Z <= 0 && bFalling; +} diff --git a/Plugins/LibAmasson/Source/LibAmasson/Private/Components/NetInterpToMovementComponent.cpp b/Plugins/LibAmasson/Source/LibAmasson/Private/Components/NetInterpToMovementComponent.cpp new file mode 100644 index 0000000..8c8b413 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Private/Components/NetInterpToMovementComponent.cpp @@ -0,0 +1,54 @@ +// Amasson + + +#include "Components/NetInterpToMovementComponent.h" + + +UNetInterpToMovementComponent::UNetInterpToMovementComponent() +{ + SetIsReplicatedByDefault(true); +} + +UNetInterpToMovementComponent::~UNetInterpToMovementComponent() +{ + if (GetOwner() && GetOwner()->GetWorld()) + GetOwner()->GetWorldTimerManager().ClearTimer(TimerHandle_BroadcastMovement); +} + +void UNetInterpToMovementComponent::BeginPlay() +{ + Super::BeginPlay(); + + if (AActor* Owner = GetOwner()) + { + if (Owner->HasAuthority()) + { + if (Owner->GetWorld()) + { + Owner->GetWorldTimerManager().SetTimer(TimerHandle_BroadcastMovement, this, &ThisClass::BroadcastMovement, 5.0f, true); + } + } + } +} + +void UNetInterpToMovementComponent::BroadcastMovement() +{ + if (GetOwner()) + NetMulticast_UpdateMovement(GetOwner()->GetActorLocation(), CurrentTime, CurrentDirection, bIsWaiting, bStopped); +} + +void UNetInterpToMovementComponent::NetMulticast_UpdateMovement_Implementation(const FVector& Location, float InCurrentTime, float InCurrentDirection, bool bInIsWaiting, bool bInStopped) +{ + FVector Diff = GetOwner()->GetActorLocation() - Location; + UE_LOG(LogTemp, Warning, TEXT("Location Difference: %s"), *Diff.ToString()); + + if (!Diff.IsNearlyZero()) + UE_LOG(LogTemp, Warning, TEXT("Location Difference: %s"), *Diff.ToString()); + + if (GetOwner()) + GetOwner()->SetActorLocation(Location); + CurrentTime = InCurrentTime; + CurrentDirection = InCurrentDirection; + bIsWaiting = bInIsWaiting; + bStopped = bInStopped; +} diff --git a/Plugins/LibAmasson/Source/LibAmasson/Private/LibAmasson.cpp b/Plugins/LibAmasson/Source/LibAmasson/Private/LibAmasson.cpp new file mode 100644 index 0000000..87e3a4b --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Private/LibAmasson.cpp @@ -0,0 +1,20 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#include "LibAmasson.h" + +#define LOCTEXT_NAMESPACE "FLibAmassonModule" + +void FLibAmassonModule::StartupModule() +{ + // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module +} + +void FLibAmassonModule::ShutdownModule() +{ + // This function may be called during shutdown to clean up your module. For modules that support dynamic reloading, + // we call this function before unloading the module. +} + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(FLibAmassonModule, LibAmasson) \ No newline at end of file diff --git a/Plugins/LibAmasson/Source/LibAmasson/Private/MathLibrary.cpp b/Plugins/LibAmasson/Source/LibAmasson/Private/MathLibrary.cpp new file mode 100644 index 0000000..613a41d --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Private/MathLibrary.cpp @@ -0,0 +1,105 @@ +// Amasson + + +#include "MathLibrary.h" +#include "Kismet/KismetMathLibrary.h" + + +void UMathLibrary::GetTraceForward(USceneComponent* Component, double Distance, FVector& StartPoint, FVector& EndPoint) +{ + FVector Location = Component->GetComponentLocation(); + FVector Forward = Component->GetForwardVector(); + + StartPoint = Location; + EndPoint = Location + Forward * Distance; +} + +void UMathLibrary::TraceClampDistance(const FVector& StartPoint, const FVector& EndPoint, + double MinDistance, double MaxDistance, + FVector& NewStartPoint, FVector& NewEndPoint) +{ + FVector StartToEnd = EndPoint - StartPoint; + StartToEnd = UKismetMathLibrary::ClampVectorSize(StartToEnd, MinDistance, MaxDistance); + NewStartPoint = StartPoint; + NewEndPoint = StartPoint + StartToEnd; +} + +FVector UMathLibrary::AddLengthToVector(FVector Vector, double Length) +{ + FVector NewVector = Vector; + NewVector.Normalize(); + return Vector + NewVector * Length; +} + +FVector UMathLibrary::SetLengthToVector(FVector Vector, double Length) +{ + FVector NewVector = Vector; + NewVector.Normalize(); + return NewVector * Length; +} + +TArray UMathLibrary::TransformPoints(const TArray& Points, const FTransform& Transform) +{ + TArray NewPoints = Points; + for (FVector& NewPoint : NewPoints) + { + NewPoint = Transform.TransformPosition(NewPoint); + } + return NewPoints; +} + +TArray UMathLibrary::TransformTransforms(const TArray& Transforms, const FTransform& Transform) +{ + TArray NewTransforms = Transforms; + for (FTransform& NewTransform : NewTransforms) + { + NewTransform = NewTransform * Transform; + } + return NewTransforms; +} + +void UMathLibrary::ArcPoints(float ArcAngle, int32 Count, float Distance, TArray& Points) +{ + if (Count <= 0) + return; + + const float StepAngle = ArcAngle / (Count - 1); + FVector Direction = Count == 1 ? + FVector(1, 0, 0) : + FVector(1, 0, 0).RotateAngleAxis(-ArcAngle / 2.0f, FVector::UpVector); + + for (int32 i = 0; i < Count; i++) + { + const FVector Location = Direction * Distance; + + Points.Add(Location); + + Direction = Direction.RotateAngleAxis(StepAngle, FVector::UpVector); + } +} + +void UMathLibrary::ArcTransforms(float ArcAngle, int32 Count, float Distance, TArray& Transforms) +{ + if (Count <= 0) + return; + + if (Count == 1) + { + Transforms.Add(FTransform(FVector(Distance, 0.0f, 0.0f))); + return; + } + + float StepAngle = ArcAngle / static_cast(Count - 1); + FRotator DirectionRotator; + + for (int32 i = 0; i < Count; i++) + { + const FRotator Rotation(0.0f, -(ArcAngle / 2.0f) + i * StepAngle, 0.0f); + const FQuat QuatRotation = Rotation.Quaternion(); + + const FVector Location = QuatRotation.GetForwardVector() * Distance; + + const FTransform Transform = FTransform(QuatRotation, Location); + Transforms.Add(Transform); + } +} diff --git a/Plugins/LibAmasson/Source/LibAmasson/Private/Sorting/ObjectSortPredicate.cpp b/Plugins/LibAmasson/Source/LibAmasson/Private/Sorting/ObjectSortPredicate.cpp new file mode 100644 index 0000000..4fe3129 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Private/Sorting/ObjectSortPredicate.cpp @@ -0,0 +1,34 @@ +// Amasson + + +#include "Sorting/ObjectSortPredicate.h" + + +bool UObjectSortPredicate::Compare(UObject* Left, UObject* Right) const +{ + if (CanScorify()) + return ScorifyElement(Left) < ScorifyElement(Right); + + return BP_Compare(Left, Right); +} + +float UObjectSortPredicate::ScorifyElement(UObject* Element) const +{ + return BP_ScorifyElement(Element); +} + +TArray> UObjectSortPredicate::ScorifyArray(const TArray& Array) const +{ + checkf(CanScorify(), TEXT("ScorifyArray used on predicate that cannot scorify")); + + TArray> ScorifiedElements; + + for (UObject* Element : Array) + { + TPair ScorifiedElement; + ScorifiedElement.Key = Element; + ScorifiedElement.Value = ScorifyElement(Element); + ScorifiedElements.Add(ScorifiedElement); + } + return ScorifiedElements; +} diff --git a/Plugins/LibAmasson/Source/LibAmasson/Private/Sorting/Predicates/DistanceSortPredicate.cpp b/Plugins/LibAmasson/Source/LibAmasson/Private/Sorting/Predicates/DistanceSortPredicate.cpp new file mode 100644 index 0000000..20163d4 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Private/Sorting/Predicates/DistanceSortPredicate.cpp @@ -0,0 +1,27 @@ +// Amasson + + +#include "Sorting/Predicates/DistanceSortPredicate.h" + + +UDistanceSortPredicate::UDistanceSortPredicate() +{ + bCanScorify = true; +} + +float UDistanceSortPredicate::ScorifyElement(UObject* Element) const +{ + FVector Location; + + if (IsValid(Element)) + { + if (AActor* AsActor = Cast(Element)) + Location = AsActor->GetActorLocation(); + else if (USceneComponent* AsSceneComponent = Cast(Element)) + Location = AsSceneComponent->GetComponentLocation(); + } + else + Location = FVector::ZeroVector; + + return (Location - ComparisonPoint).SquaredLength(); +} diff --git a/Plugins/LibAmasson/Source/LibAmasson/Private/Sorting/Predicates/NameSortPredicate.cpp b/Plugins/LibAmasson/Source/LibAmasson/Private/Sorting/Predicates/NameSortPredicate.cpp new file mode 100644 index 0000000..4045d7a --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Private/Sorting/Predicates/NameSortPredicate.cpp @@ -0,0 +1,19 @@ +// Amasson + + +#include "Sorting/Predicates/NameSortPredicate.h" +#include "Kismet/KismetSystemLibrary.h" + + +UNameSortPredicate::UNameSortPredicate() +{ + bCanScorify = false; +} + +bool UNameSortPredicate::Compare(UObject* Left, UObject* Right) const +{ + const FString LeftName = UKismetSystemLibrary::GetDisplayName(Left); + const FString RightName = UKismetSystemLibrary::GetDisplayName(Right); + + return LeftName <= RightName; +} diff --git a/Plugins/LibAmasson/Source/LibAmasson/Private/Sorting/SortingFunctionLibrary.cpp b/Plugins/LibAmasson/Source/LibAmasson/Private/Sorting/SortingFunctionLibrary.cpp new file mode 100644 index 0000000..55d0255 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Private/Sorting/SortingFunctionLibrary.cpp @@ -0,0 +1,148 @@ +// Amasson + + +#include "Sorting/SortingFunctionLibrary.h" + +void USortingFunctionLibrary::SortInPlace(TArray& Array, TSubclassOf PredicateClass) +{ + if (!IsValid(PredicateClass)) + return; + + UObjectSortPredicate *Predicate = NewObject(GetTransientPackage(), PredicateClass); + SortInPlaceUsingPredicate(Array, Predicate); +} + +void USortingFunctionLibrary::SortInPlaceUsingPredicate(TArray& Array, UObjectSortPredicate* Predicate) +{ + if (!IsValid(Predicate)) + return; + + const bool bAscending = Predicate->bSortAscending; + if (Predicate->CanScorify()) + { + TArray> ScorifiedArray = Predicate->ScorifyArray(Array); + + ScorifiedArray.Sort([bAscending](TPair Left, TPair Right) { + return bAscending ? Left.Value <= Right.Value : Right.Value <= Left.Value; + }); + + for (int i = 0; i < ScorifiedArray.Num(); i++) + { + Array[i] = ScorifiedArray[i].Key; + } + } + else + { + Array.Sort([Predicate, bAscending](UObject& Left, UObject& Right) { + return bAscending ? Predicate->Compare(&Left, &Right) : Predicate->Compare(&Right, &Left); + }); + } +} + +bool USortingFunctionLibrary::IsArraySorted(const TArray& Array, TSubclassOf PredicateClass) +{ + UObjectSortPredicate *Predicate = NewObject(GetTransientPackage(), PredicateClass); + return IsArraySortedUsingPredicate(Array, Predicate); +} + +bool USortingFunctionLibrary::IsArraySortedUsingPredicate(const TArray& Array, UObjectSortPredicate* Predicate) +{ + // Array of 0 or 1 element is always sorted + if (Array.Num() <= 1) + return true; + + if (Predicate->CanScorify()) + { + float PreviousElementScore = Predicate->ScorifyElement(Array[0]); + for (int32 i = 1; i < Array.Num(); i++) + { + const float ElementScore = Predicate->ScorifyElement(Array[i]); + + const bool bSorted = Predicate->bSortAscending ? + PreviousElementScore <= ElementScore : + ElementScore <= PreviousElementScore; + + if (!bSorted) + return false; + + PreviousElementScore = ElementScore; + } + return true; + } + else + { + for (int32 i = 1; i < Array.Num(); i++) + { + const bool bSorted = Predicate->bSortAscending ? + Predicate->Compare(Array[i - 1], Array[i]) : + Predicate->Compare(Array[i], Array[i - 1]); + + if (!bSorted) + return false; + } + return true; + } +} + + +/** Sort range */ + +TArray USortingFunctionLibrary::GetNMin(const TArray& Array, int32 N, TSubclassOf PredicateClass) +{ + UObjectSortPredicate *Predicate = NewObject(GetTransientPackage(), PredicateClass); + + return GetNMinUsingPredicate(Array, N, Predicate); +} + +TArray USortingFunctionLibrary::GetNMinUsingPredicate(const TArray& Array, int32 N, UObjectSortPredicate* Predicate) +{ + TArray SortedArray(Array); + + SortInPlaceUsingPredicate(SortedArray, Predicate); + + if (SortedArray.Num() > N) + SortedArray.SetNum(N, true); + + return SortedArray; +} + +TArray USortingFunctionLibrary::GetNMax(const TArray& Array, int32 N, TSubclassOf PredicateClass) +{ + UObjectSortPredicate *Predicate = NewObject(GetTransientPackage(), PredicateClass); + + return GetNMaxUsingPredicate(Array, N, Predicate); +} + +TArray USortingFunctionLibrary::GetNMaxUsingPredicate(const TArray& Array, int32 N, UObjectSortPredicate* Predicate) +{ + TArray SortedArray(Array); + + SortInPlaceUsingPredicate(SortedArray, Predicate); + + for (int32 i = 0; N + i - 1 < SortedArray.Num(); i++) + { + SortedArray[i] = SortedArray[N + i - 1]; + } + + if (SortedArray.Num() > N) + SortedArray.SetNum(N, true); + + return SortedArray; +} + + +/** Cast */ + +TArray& USortingFunctionLibrary::CastArray(TArray& ObjectArray, TSubclassOf NewClass, bool bSafe) +{ + if (!bSafe) + return ObjectArray; + + for (UObject*& ElementPtr : ObjectArray) + { + if (IsValid(ElementPtr) && !ElementPtr->IsA(NewClass)) + ElementPtr = nullptr; + } + + return ObjectArray; +} diff --git a/Plugins/LibAmasson/Source/LibAmasson/Private/UI/ControllableUserWidget.cpp b/Plugins/LibAmasson/Source/LibAmasson/Private/UI/ControllableUserWidget.cpp new file mode 100644 index 0000000..99409c6 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Private/UI/ControllableUserWidget.cpp @@ -0,0 +1,82 @@ +// Amasson + + +#include "UI/ControllableUserWidget.h" +#include "Blueprint/WidgetTree.h" +#include "UI/WidgetControllerComponent.h" +#include "UI/WidgetController.h" + + +UWidgetControllerComponent* UControllableUserWidget::GetComponentFromControllerByClass(TSubclassOf ComponentClass) const +{ + if (!WidgetController) return nullptr; + + return WidgetController->GetComponentByClass(ComponentClass); +} + +void UControllableUserWidget::SetWidgetController(UWidgetController* NewWidgetController) +{ + WidgetController = NewWidgetController; + WidgetControllerSet(WidgetController); + + PropagateWidgetController(this); +} + +bool UControllableUserWidget::AcceptWidgetController(UWidgetController* InWidgetController) const +{ + // We accept invalid objects as widget controllers + if (!InWidgetController || !InWidgetController->GetClass()) + return true; + + // If we have no required class, we accept any of them + if (AcceptedControllerClasses.IsEmpty()) + return true; + + if (AcceptedControllerClasses.Contains(InWidgetController->GetClass())) + return true; + + for (TSubclassOf AcceptedControllerClass : AcceptedControllerClasses) + { + if (InWidgetController->GetClass()->IsChildOf(AcceptedControllerClass)) + return true; + } + + return false; +} + +void UControllableUserWidget::PropagateWidgetController(UWidget* Parent) +{ + TArray AllWidgets; + WidgetTree->GetAllWidgets(AllWidgets); + for (UWidget* Widget : AllWidgets) + { + if (!IsValid(Widget)) continue; + + if (UControllableUserWidget* ControlledWidget = Cast(Widget)) + { + if (ControlledWidget->TakeControllerFromParent && ControlledWidget->AcceptWidgetController(WidgetController)) + { + ControlledWidget->SetWidgetController(WidgetController); + } + } + } + + // TArray ChildWidgets; + // UWidgetTree::GetChildWidgets(Parent, ChildWidgets); + + // for (UWidget* ChildWidget : ChildWidgets) + // { + // if (UControllableUserWidget* ControlledWidget = Cast(ChildWidget)) + // { + // if (ControlledWidget->TakeControllerFromParent) + // { + // ControlledWidget->SetWidgetController(WidgetController); + // PropagateWidgetController(ChildWidget); + // } + // } + // else + // { + // PropagateWidgetController(ChildWidget); + // } + // } +} diff --git a/Plugins/LibAmasson/Source/LibAmasson/Private/UI/WidgetController.cpp b/Plugins/LibAmasson/Source/LibAmasson/Private/UI/WidgetController.cpp new file mode 100644 index 0000000..b619f33 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Private/UI/WidgetController.cpp @@ -0,0 +1,174 @@ +// Amasson + + +#include "UI/WidgetController.h" +#include "GameFramework/PlayerController.h" +#include "GameFramework/PlayerState.h" +#include "GameFramework/Pawn.h" +#include "GameFramework/Character.h" +#include "UI/WidgetControllerComponent.h" + + +UWidgetController::UWidgetController() +{ + +} + +UWidgetController* UWidgetController::MakeWidgetController(UObject* Outer, TSubclassOf WidgetControllerClass, AActor* ObservedActor) +{ + if (!IsValid(WidgetControllerClass)) + return nullptr; + + UWidgetController* NewWidgetController = NewObject(Outer, WidgetControllerClass); + + if (!IsValid(NewWidgetController)) + return nullptr; + + NewWidgetController->Construct(); + NewWidgetController->BP_Construct(); + + if (IsValid(ObservedActor)) + NewWidgetController->SetObservedActor(ObservedActor, true); + + return NewWidgetController; +} + +void UWidgetController::SetObservedController(AController* InController) +{ + if (!IsValid(InController)) return; + + Controller = InController; + if (APlayerController* AsPC = Cast(InController)) + PlayerState = AsPC->GetPlayerState(); + else + PlayerState = nullptr; + Pawn = InController->GetPawn(); + Actor = InController; + + FinishSetObserved(); +} + +void UWidgetController::SetObservedPlayerState(APlayerState* InPlayerState) +{ + if (!IsValid(InPlayerState)) return; + + Controller = InPlayerState->GetPlayerController(); + PlayerState = InPlayerState; + Pawn = InPlayerState->GetPawn(); + Actor = InPlayerState; + + FinishSetObserved(); +} + +void UWidgetController::SetObservedPawn(APawn* InPawn) +{ + if (!IsValid(InPawn)) return; + + Controller = InPawn->GetController(); + if (APlayerController* AsPC = Cast(Controller)) + PlayerState = AsPC->GetPlayerState(); + else + PlayerState = nullptr; + Pawn = InPawn; + Actor = InPawn; + + FinishSetObserved(); +} + +void UWidgetController::SetObservedActor(AActor* InActor, bool bTryCast) +{ + if (!IsValid(InActor)) return; + + if (bTryCast) + { + if (AController* AsPC = Cast(InActor)) + { + return SetObservedController(AsPC); + } + else if (APlayerState* AsPS = Cast(InActor)) + { + return SetObservedPlayerState(AsPS); + } + else if (APawn* AsPawn = Cast(InActor)) + { + return SetObservedPawn(AsPawn); + } + } + + Controller = nullptr; + PlayerState = nullptr; + Pawn = nullptr; + Actor = InActor; + + FinishSetObserved(); +} + +void UWidgetController::BroadcastValues() +{ + for (UWidgetControllerComponent* Component : Components) + { + Component->BroadcastValues(); + } + BP_BroadcastValues(); +} + +void UWidgetController::BindCallbacksToDependencies() +{ + for (UWidgetControllerComponent* Component : Components) + { + Component->BindCallbacksToDependencies(); + } +} + +UWidgetControllerComponent* UWidgetController::GetComponentByClass(TSubclassOf ComponentClass) const +{ + for (UWidgetControllerComponent* Component : Components) + { + if (Component->IsA(ComponentClass)) + { + return Component; + } + } + return nullptr; +} + +UWidgetControllerComponent* UWidgetController::GetComponentByClassAndName(TSubclassOf ComponentClass, FName ComponentName) const +{ + for (UWidgetControllerComponent* Component : Components) + { + if (Component->IsA(ComponentClass) && Component->GetFName() == ComponentName) + { + return Component; + } + } + return nullptr; +} + +TArray UWidgetController::GetComponentsByClass(TSubclassOf ComponentClass) const +{ + TArray ComponentsList; + for (UWidgetControllerComponent* Component : Components) + { + if (Component->IsA(ComponentClass)) + { + ComponentsList.Add(Component); + } + } + return ComponentsList; +} + +UWidgetControllerComponent* UWidgetController::AddComponentByClass(TSubclassOf ComponentClass, FName ComponentName) +{ + UWidgetControllerComponent* NewComponent = NewObject(this, ComponentClass, ComponentName); + Components.Add(NewComponent); + return NewComponent; +} + +void UWidgetController::FinishSetObserved() +{ + ObservedActorSet(); + BP_ObservedActorSet(); + + BindCallbacksToDependencies(); + BP_BindCallbacksToDependencies(); +} diff --git a/Plugins/LibAmasson/Source/LibAmasson/Private/UI/WidgetControllerComponent.cpp b/Plugins/LibAmasson/Source/LibAmasson/Private/UI/WidgetControllerComponent.cpp new file mode 100644 index 0000000..64faeeb --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Private/UI/WidgetControllerComponent.cpp @@ -0,0 +1,14 @@ +// Amasson + + +#include "UI/WidgetControllerComponent.h" + +void UWidgetControllerComponent::BroadcastValues() +{ + BP_BroadcastValues(); +} + +void UWidgetControllerComponent::BindCallbacksToDependencies() +{ + BP_BindCallbacksToDependencies(); +} diff --git a/Plugins/LibAmasson/Source/LibAmasson/Private/UI/WidgetControllerComponents/GameManagementWcc.cpp b/Plugins/LibAmasson/Source/LibAmasson/Private/UI/WidgetControllerComponents/GameManagementWcc.cpp new file mode 100644 index 0000000..f848019 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Private/UI/WidgetControllerComponents/GameManagementWcc.cpp @@ -0,0 +1,24 @@ +// Amasson + + +#include "UI/WidgetControllerComponents/GameManagementWcc.h" +#include "Kismet/GameplayStatics.h" + + +void UGameManagementWcc::Initialize(UObject* InWorldContextObject) +{ + WorldContextObject = InWorldContextObject; +} + + +/** GameplayStatics */ + +void UGameManagementWcc::OpenLevel(FName LevelName, bool bAbsolute, FString Options) +{ + UGameplayStatics::OpenLevel(WorldContextObject, LevelName, bAbsolute, Options); +} + +void UGameManagementWcc::OpenLevelBySoftObjectPtr(const TSoftObjectPtr Level, bool bAbsolute, FString Options) +{ + UGameplayStatics::OpenLevelBySoftObjectPtr(WorldContextObject, Level, bAbsolute, Options); +} diff --git a/Plugins/LibAmasson/Source/LibAmasson/Public/Animation/CharacterMovementAnimInstance.h b/Plugins/LibAmasson/Source/LibAmasson/Public/Animation/CharacterMovementAnimInstance.h new file mode 100644 index 0000000..ce431f3 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Public/Animation/CharacterMovementAnimInstance.h @@ -0,0 +1,55 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Animation/AnimInstance.h" +#include "CharacterMovementAnimInstance.generated.h" + +/** + * + */ +UCLASS() +class LIBAMASSON_API UCharacterMovementAnimInstance : public UAnimInstance +{ + GENERATED_BODY() + +public: + + virtual void NativeInitializeAnimation() override; + virtual void NativeUpdateAnimation(float DeltaTime) override; + + UPROPERTY(BlueprintReadOnly, Category = Movement) + class UCharacterMovementComponent* CharacterMovementComponent; + + UPROPERTY(BlueprintReadWrite, Category = Movement) + FVector LocalVelocity; + + UFUNCTION(BlueprintCallable, meta = (BlueprintThreadSafe), Category = Movement) + bool IsPawnMoving() const; + + UPROPERTY(BlueprintReadWrite, Category = Movement) + float LocalVelocityAngle = 0; + + UPROPERTY(BlueprintReadWrite, Category = Movement) + float TurnVelocity = 0; + + UPROPERTY(BlueprintReadWrite, Category = Movement) + bool bFalling = false; + + UFUNCTION(BlueprintCallable, meta = (BlueprintThreadSafe), Category = Movement) + bool IsJumpingUp() const; + + UFUNCTION(BlueprintCallable, meta = (BlueprintThreadSafe), Category = Movement) + bool IsFallingDown() const; + + UPROPERTY(BlueprintReadWrite, Category = Movement) + bool bCrouching = false; + + UPROPERTY(BlueprintReadWrite, Category = Movement) + bool bSwimming = false; + + +private: + float _PreviousYaw = 0; +}; diff --git a/Plugins/LibAmasson/Source/LibAmasson/Public/Components/NetInterpToMovementComponent.h b/Plugins/LibAmasson/Source/LibAmasson/Public/Components/NetInterpToMovementComponent.h new file mode 100644 index 0000000..5f69ce0 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Public/Components/NetInterpToMovementComponent.h @@ -0,0 +1,39 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Components/InterpToMovementComponent.h" +#include "NetInterpToMovementComponent.generated.h" + +/** + * + */ +UCLASS(ClassGroup=Movement, meta=(BlueprintSpawnableComponent),HideCategories=Velocity) +class LIBAMASSON_API UNetInterpToMovementComponent : public UInterpToMovementComponent +{ + GENERATED_BODY() + +public: + + UNetInterpToMovementComponent(); + virtual ~UNetInterpToMovementComponent(); + + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Network") + float MovementUpdatePeriod = 5.0f; + + +protected: + + virtual void BeginPlay(); + + UPROPERTY() + FTimerHandle TimerHandle_BroadcastMovement; + + UFUNCTION() + void BroadcastMovement(); + + UFUNCTION(NetMulticast, Reliable, Category = "Network") + void NetMulticast_UpdateMovement(const FVector& Location, float InCurrentTime, float InCurrentDirection, bool bInIsWaiting, bool bInStopped); + +}; diff --git a/Plugins/LibAmasson/Source/LibAmasson/Public/LibAmasson.h b/Plugins/LibAmasson/Source/LibAmasson/Public/LibAmasson.h new file mode 100644 index 0000000..adced75 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Public/LibAmasson.h @@ -0,0 +1,15 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "Modules/ModuleManager.h" + +class FLibAmassonModule : public IModuleInterface +{ +public: + + /** IModuleInterface implementation */ + virtual void StartupModule() override; + virtual void ShutdownModule() override; +}; diff --git a/Plugins/LibAmasson/Source/LibAmasson/Public/MathLibrary.h b/Plugins/LibAmasson/Source/LibAmasson/Public/MathLibrary.h new file mode 100644 index 0000000..0050a81 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Public/MathLibrary.h @@ -0,0 +1,43 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Kismet/BlueprintFunctionLibrary.h" +#include "MathLibrary.generated.h" + +/** + * + */ +UCLASS() +class LIBAMASSON_API UMathLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, BlueprintPure, Category="Math|Trace") + static void GetTraceForward(USceneComponent* Component, double Distance, FVector& StartPoint, FVector& EndPoint); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category="Math|Trace") + static void TraceClampDistance(const FVector& StartPoint, const FVector& EndPoint, double MinDistance, double MaxDistance, FVector& NewStartPoint, FVector& NewEndPoint); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category="Math|Vector") + static FVector AddLengthToVector(FVector Vector, double Length); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category="Math|Vector") + static FVector SetLengthToVector(FVector Vector, double Length); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category="Math|Vector") + static TArray TransformPoints(const TArray& Points, const FTransform& Transform); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category="Math|Vector") + static TArray TransformTransforms(const TArray& Transforms, const FTransform& Transform); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category="Math|Vector") + static void ArcPoints(float ArcAngle, int32 Count, float Distance, TArray& Points); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category="Math|Vector") + static void ArcTransforms(float ArcAngle, int32 Count, float Distance, TArray& Transforms); + +}; diff --git a/Plugins/LibAmasson/Source/LibAmasson/Public/Sorting/ObjectSortPredicate.h b/Plugins/LibAmasson/Source/LibAmasson/Public/Sorting/ObjectSortPredicate.h new file mode 100644 index 0000000..8f9c822 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Public/Sorting/ObjectSortPredicate.h @@ -0,0 +1,51 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UObject/NoExportTypes.h" +#include "ObjectSortPredicate.generated.h" + +/** + * + */ +UCLASS(Abstract, Blueprintable, BlueprintType) +class LIBAMASSON_API UObjectSortPredicate : public UObject +{ + GENERATED_BODY() + +public: + + virtual bool Compare(UObject* Left, UObject* Right) const; + + UFUNCTION(BlueprintImplementableEvent, DisplayName = "Compare", Category = "Sorting") + bool BP_Compare(UObject* Left, UObject* Right) const; + + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Sort", meta = (ExposeOnSpawn = true)) + bool bSortAscending = true; + + /** Scorify */ + + FORCEINLINE float CanScorify() const { return bCanScorify; } + + virtual float ScorifyElement(UObject* Element) const; + + /** CanScorify must be activated for this function to be used */ + UFUNCTION(BlueprintImplementableEvent, DisplayName = "ScorifyElement", Category = "Score") + float BP_ScorifyElement(UObject* Element) const; + + TArray> ScorifyArray(const TArray& Array) const; + +protected: + + /** When activated, the sort algorithm will not use the Compare function, + * but Instead, will attribute a float value to each elements using the + * ScorifyElement function and sort them with this value. + * Allowing us to do performance intensive calculations only once per + * elements like calculating a distance from a point. + */ + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Score") + bool bCanScorify = false; + +}; diff --git a/Plugins/LibAmasson/Source/LibAmasson/Public/Sorting/Predicates/DistanceSortPredicate.h b/Plugins/LibAmasson/Source/LibAmasson/Public/Sorting/Predicates/DistanceSortPredicate.h new file mode 100644 index 0000000..605a363 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Public/Sorting/Predicates/DistanceSortPredicate.h @@ -0,0 +1,26 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Sorting/ObjectSortPredicate.h" +#include "DistanceSortPredicate.generated.h" + +/** + * + */ +UCLASS(BlueprintType) +class LIBAMASSON_API UDistanceSortPredicate : public UObjectSortPredicate +{ + GENERATED_BODY() + +public: + + UDistanceSortPredicate(); + + virtual float ScorifyElement(UObject* Element) const override; + + UPROPERTY(BlueprintReadWrite, Category = "Distance", meta = (ExposeOnSpawn = true)) + FVector ComparisonPoint; + +}; diff --git a/Plugins/LibAmasson/Source/LibAmasson/Public/Sorting/Predicates/NameSortPredicate.h b/Plugins/LibAmasson/Source/LibAmasson/Public/Sorting/Predicates/NameSortPredicate.h new file mode 100644 index 0000000..6d89907 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Public/Sorting/Predicates/NameSortPredicate.h @@ -0,0 +1,23 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Sorting/ObjectSortPredicate.h" +#include "NameSortPredicate.generated.h" + +/** + * + */ +UCLASS(BlueprintType) +class LIBAMASSON_API UNameSortPredicate : public UObjectSortPredicate +{ + GENERATED_BODY() + +public: + + UNameSortPredicate(); + + virtual bool Compare(UObject* Left, UObject* Right) const override; + +}; diff --git a/Plugins/LibAmasson/Source/LibAmasson/Public/Sorting/SortingFunctionLibrary.h b/Plugins/LibAmasson/Source/LibAmasson/Public/Sorting/SortingFunctionLibrary.h new file mode 100644 index 0000000..5d2f32a --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Public/Sorting/SortingFunctionLibrary.h @@ -0,0 +1,53 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Kismet/BlueprintFunctionLibrary.h" +#include "Sorting/ObjectSortPredicate.h" +#include "SortingFunctionLibrary.generated.h" + +/** + * + */ +UCLASS() +class LIBAMASSON_API USortingFunctionLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, Category = "Sort") + static void SortInPlace(UPARAM(Ref) TArray& Array, TSubclassOf PredicateClass); + + UFUNCTION(BlueprintCallable, Category = "Sort") + static void SortInPlaceUsingPredicate(UPARAM(Ref) TArray& Array, UObjectSortPredicate* Predicate); + + UFUNCTION(BlueprintCallable, Category = "Sort") + static bool IsArraySorted(const TArray& Array, TSubclassOf PredicateClass); + + UFUNCTION(BlueprintCallable, Category = "Sort") + static bool IsArraySortedUsingPredicate(const TArray& Array, UObjectSortPredicate* Predicate); + + + /** Sort range */ + + UFUNCTION(BlueprintCallable, Category = "Sort") + static TArray GetNMin(const TArray& Array, int32 N, TSubclassOf PredicateClass); + + UFUNCTION(BlueprintCallable, Category = "Sort") + static TArray GetNMinUsingPredicate(const TArray& Array, int32 N, UObjectSortPredicate* Predicate); + + UFUNCTION(BlueprintCallable, Category = "Sort") + static TArray GetNMax(const TArray& Array, int32 N, TSubclassOf PredicateClass); + + UFUNCTION(BlueprintCallable, Category = "Sort") + static TArray GetNMaxUsingPredicate(const TArray& Array, int32 N, UObjectSortPredicate* Predicate); + + + /** Cast */ + + UFUNCTION(BlueprintCallable, Category = "Array", meta = (DeterminesOutputType = "NewClass")) + static TArray& CastArray(UPARAM(Ref) TArray& ObjectArray, TSubclassOf NewClass, bool bSafe = false); + +}; diff --git a/Plugins/LibAmasson/Source/LibAmasson/Public/UI/ControllableUserWidget.h b/Plugins/LibAmasson/Source/LibAmasson/Public/UI/ControllableUserWidget.h new file mode 100644 index 0000000..368d88d --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Public/UI/ControllableUserWidget.h @@ -0,0 +1,52 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "ControllableUserWidget.generated.h" + +class UWidgetController; +class UWidgetControllerComponent; + +/** + * + */ +UCLASS() +class LIBAMASSON_API UControllableUserWidget : public UUserWidget +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, BlueprintPure = false, Category = "Controller|Component", meta = (DeterminesOutputType = "ComponentClass")) + UWidgetControllerComponent* GetComponentFromControllerByClass(TSubclassOf ComponentClass) const; + + UFUNCTION(BlueprintCallable, Category = "Controller") + void SetWidgetController(UWidgetController* NewWidgetController); + +protected: + + UFUNCTION(BlueprintImplementableEvent, Category = "Controller") + void WidgetControllerSet(UWidgetController* NewWidgetController); + + UFUNCTION(Category = "Controller|Propagation") + virtual bool AcceptWidgetController(UWidgetController* InWidgetController) const; + +private: + + UFUNCTION() + void PropagateWidgetController(UWidget* Parent); + +protected: + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Controller", meta = (AllowPrivateAccess = true)) + TObjectPtr WidgetController; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Controller|Propagation") + bool TakeControllerFromParent = true; + + UPROPERTY(EditDefaultsOnly, Category = "Controller|Propagation") + TSet> AcceptedControllerClasses; + +}; diff --git a/Plugins/LibAmasson/Source/LibAmasson/Public/UI/WidgetController.h b/Plugins/LibAmasson/Source/LibAmasson/Public/UI/WidgetController.h new file mode 100644 index 0000000..b99ec45 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Public/UI/WidgetController.h @@ -0,0 +1,139 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UObject/NoExportTypes.h" +#include "UI/WidgetControllerComponent.h" +#include "WidgetController.generated.h" + + +class AController; +class APlayerState; +class APawn; +class ACharacter; + +/** + * + */ +UCLASS(BlueprintType, Blueprintable) +class LIBAMASSON_API UWidgetController : public UObject +{ + GENERATED_BODY() + +public: + + UWidgetController(); + + /** Make and construct a widget controller from the specific class. + * If there is an observed actor given, it will cast it to the correct type and + * call SetObserved_X with it. + */ + UFUNCTION(BlueprintCallable, Category = "WidgetController|Construct", meta = (HidePin = "Outer", DefaultToSelf = "Outer"), meta = (DeterminesOutputType = "WidgetControllerClass")) + static UWidgetController* MakeWidgetController(UObject* Outer, TSubclassOf WidgetControllerClass, AActor* ObservedActor); + + UFUNCTION(BlueprintCallable, Category = "Observed") + virtual void SetObservedController(AController* InController); + + UFUNCTION(BlueprintCallable, Category = "Observed") + virtual void SetObservedPlayerState(APlayerState* InPlayerState); + + UFUNCTION(BlueprintCallable, Category = "Observed") + virtual void SetObservedPawn(APawn* InPawn); + + UFUNCTION(BlueprintCallable, Category = "Observed") + virtual void SetObservedActor(AActor* InActor, bool bTryCast = false); + + UFUNCTION(BlueprintCallable, Category = "Broadcast") + virtual void BroadcastValues(); + + UFUNCTION(BlueprintCallable, Category = "Observed") + FORCEINLINE AController* GetController() const { return Controller; } + UFUNCTION(BlueprintCallable, Category = "Observed") + FORCEINLINE APlayerState* GetPlayerState() const { return PlayerState; } + UFUNCTION(BlueprintCallable, Category = "Observed") + FORCEINLINE APawn* GetPawn() const { return Pawn; } + UFUNCTION(BlueprintCallable, Category = "Observed") + AActor* GetObservedActor() const { return Actor; } + + template + TComponentType* GetComponent() + { + static_assert(std::is_base_of::value, "TComponentType must be a subclass of UWidgetControllerComponent."); + + for (UWidgetControllerComponent* Component : Components) + { + if (TComponentType* CastComponent = Cast(Component)) + { + return CastComponent; + } + } + return nullptr; + } + + UFUNCTION(BlueprintCallable, Category = "Component", meta = (DeterminesOutputType = "ComponentClass")) + UWidgetControllerComponent* GetComponentByClass(TSubclassOf ComponentClass) const; + + UFUNCTION(BlueprintCallable, Category = "Component", meta = (DeterminesOutputType = "ComponentClass")) + UWidgetControllerComponent* GetComponentByClassAndName(TSubclassOf ComponentClass, FName ComponentName) const; + + UFUNCTION(BlueprintCallable, Category = "Component", meta = (DeterminesOutputType = "ComponentClass")) + TArray GetComponentsByClass(TSubclassOf ComponentClass) const; + + template + TComponentType* AddComponent(FName ComponentName) + { + static_assert(std::is_base_of::value, "TComponentType must be a subclass of UWidgetControllerComponent."); + + TComponentType* NewComponent = NewObject(this, TComponentType::StaticClass(), ComponentName); + Components.Add(NewComponent); + return NewComponent; + } + + UFUNCTION(BlueprintCallable, Category = "Component", meta = (DeterminesOutputType = "ComponentClass")) + UWidgetControllerComponent* AddComponentByClass(TSubclassOf ComponentClass, FName ComponentName); + + +protected: + + UFUNCTION() + virtual void Construct() {} + + UFUNCTION(BlueprintImplementableEvent, Category = "Construction", DisplayName = "Construct") + void BP_Construct(); + + UFUNCTION() + virtual void ObservedActorSet() {} + + UFUNCTION(BlueprintImplementableEvent, Category = "Observed", DisplayName = "ObservedActorSet") + void BP_ObservedActorSet(); + + UFUNCTION() + virtual void BindCallbacksToDependencies(); + + UFUNCTION(BlueprintImplementableEvent, Category = "Broadcast", DisplayName = "BindCallbacksToDependencies") + void BP_BindCallbacksToDependencies(); + + /** Called at the end of controller SetObserved_X */ + UFUNCTION(BlueprintCallable, Category = "Observed") + void FinishSetObserved(); + + UFUNCTION(BlueprintImplementableEvent, Category = "Broadcast", DisplayName = "BroadcastValues") + void BP_BroadcastValues(); + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "WidgetController") + TObjectPtr Controller; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "WidgetController") + TObjectPtr PlayerState; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "WidgetController") + TObjectPtr Pawn; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "WidgetController") + TObjectPtr Actor; + + UPROPERTY() + TArray> Components; + +}; diff --git a/Plugins/LibAmasson/Source/LibAmasson/Public/UI/WidgetControllerComponent.h b/Plugins/LibAmasson/Source/LibAmasson/Public/UI/WidgetControllerComponent.h new file mode 100644 index 0000000..8d76a86 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Public/UI/WidgetControllerComponent.h @@ -0,0 +1,36 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UObject/NoExportTypes.h" +#include "WidgetControllerComponent.generated.h" + +/** + * + */ +UCLASS(Abstract, Blueprintable) +class LIBAMASSON_API UWidgetControllerComponent : public UObject +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, Category = "Broadcast") + virtual void BroadcastValues(); + + UFUNCTION(BlueprintImplementableEvent, Category = "Broadcast", DisplayName = "BroadcastValues") + void BP_BroadcastValues(); + + +protected: + + UFUNCTION() + virtual void BindCallbacksToDependencies(); + + UFUNCTION(BlueprintImplementableEvent, Category = "Bind", DisplayName = "BindCallbacksToDependencies") + void BP_BindCallbacksToDependencies(); + + friend class UWidgetController; + +}; diff --git a/Plugins/LibAmasson/Source/LibAmasson/Public/UI/WidgetControllerComponents/GameManagementWcc.h b/Plugins/LibAmasson/Source/LibAmasson/Public/UI/WidgetControllerComponents/GameManagementWcc.h new file mode 100644 index 0000000..e282432 --- /dev/null +++ b/Plugins/LibAmasson/Source/LibAmasson/Public/UI/WidgetControllerComponents/GameManagementWcc.h @@ -0,0 +1,40 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UI/WidgetControllerComponent.h" +#include "GameManagementWcc.generated.h" + + +class APlayerController; + +/** + * + */ +UCLASS() +class LIBAMASSON_API UGameManagementWcc : public UWidgetControllerComponent +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, Category = "Initialize") + void Initialize(UObject* WorldContextObject); + + + /** GameplayStatics */ + + UFUNCTION(BlueprintCallable, meta=(AdvancedDisplay = "2", DisplayName = "Open Level (by Name)"), Category="Game") + void OpenLevel(FName LevelName, bool bAbsolute = true, FString Options = FString(TEXT(""))); + + UFUNCTION(BlueprintCallable, meta=(AdvancedDisplay = "2", DisplayName = "Open Level (by Object Reference)"), Category="Game") + void OpenLevelBySoftObjectPtr(const TSoftObjectPtr Level, bool bAbsolute = true, FString Options = FString(TEXT(""))); + + +protected: + + UPROPERTY() + TObjectPtr WorldContextObject; + +}; diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem.umap b/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem.umap new file mode 100644 index 0000000..074affb --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:979c61bf07e3fa78c96e955db427b829e35acb1a1a999a5ec735ee666ac309e1 +size 43217 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_GameMode.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_GameMode.uasset new file mode 100644 index 0000000..ee8559c --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_GameMode.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a0893c575648808be4652d9850abffde354179aca7e02d7902a976fd502103d +size 47678 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_HUD.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_HUD.uasset new file mode 100644 index 0000000..8d2a36e --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_HUD.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7847d5512b457e46108a011187555fcb549cd7021662bea329677482e7bedd2 +size 52488 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_PlayerController.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_PlayerController.uasset new file mode 100644 index 0000000..41439b7 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_PlayerController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e03003b35b5c2063609cdbc9d240de1fa1f8b51783b958c120f534305fea52e5 +size 106911 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_PlayerState.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_PlayerState.uasset new file mode 100644 index 0000000..888542b --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_PlayerState.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c5e2c4c5874768853e83f3d25ff081e5baa1308b24c8da1fd7bac37e69038f0 +size 57641 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_WidgetInventoryPresenter.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_WidgetInventoryPresenter.uasset new file mode 100644 index 0000000..302bd1e --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_WidgetInventoryPresenter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e09648207e03e766805753e2fbaea6a5b97ecd0e4f99a633904c72f918a55c79 +size 141511 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_WidgetOverlay.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_WidgetOverlay.uasset new file mode 100644 index 0000000..ab95de5 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/TestMap_InventorySystem_WidgetOverlay.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a785cc4b50b1b943e8094000ec4cb33e4218d867d3175fa9691ee885bb0847f +size 106986 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem.uasset new file mode 100644 index 0000000..f391817 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f52b314648e43b50693aa41f9354bca2538ddd5588558227d1497b05482ae8d +size 239183 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_ContentCapacity.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_ContentCapacity.uasset new file mode 100644 index 0000000..9017016 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_ContentCapacity.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ace6e406e0f8dfc5c73269f9a0b018746ed5f3894c5da2ffe3a4712e80bc3ac +size 82248 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_ContentModifications.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_ContentModifications.uasset new file mode 100644 index 0000000..5597e9e --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_ContentModifications.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42f70e0feb8eab1d6738fea8c7ced6429d6d0191f56398ba928110068d200e25 +size 279989 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_ContentModificationsNoOverflow.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_ContentModificationsNoOverflow.uasset new file mode 100644 index 0000000..83c7c85 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_ContentModificationsNoOverflow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1d57d73a4868e8e1240ff03db97561d6358f904f4b0ab949bbc2a9274006ed1 +size 189950 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_DropSlot.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_DropSlot.uasset new file mode 100644 index 0000000..3d01f3c --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_DropSlot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35fc1a2ea3f59e2576bb6abb261ab018901e3e1907a7e4f58c97793630a336c0 +size 344092 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_DropSlotAtIndex.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_DropSlotAtIndex.uasset new file mode 100644 index 0000000..90146ac --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_DropSlotAtIndex.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb1e3c975db13bc19b1e28578df106699a3419416483688a324b88a940f45aba +size 341939 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_RegroupStacks.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_RegroupStacks.uasset new file mode 100644 index 0000000..97050f1 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_RegroupStacks.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f758fbd953f6c0f319194bad65b87044214e077cef505cf83a034f98af9dee46 +size 141582 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_SlotCountModification.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_SlotCountModification.uasset new file mode 100644 index 0000000..6686fe2 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_SlotCountModification.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38b9c09bdb762cae717535fbb09af1294f5d846df22d95bd0bec4eb5e040367c +size 168824 diff --git a/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_ValueModifications.uasset b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_ValueModifications.uasset new file mode 100644 index 0000000..44157e6 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/Tests/UnitTests/UnitTest_InventorySystem_ValueModifications.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cd8dafceb8ab8d079c850287dde83dc6ec5e50147f995076267f0c9020af823 +size 119907 diff --git a/Plugins/SlotBasedInventorySystem/Content/UI/BPI_InventorySlotWidget.uasset b/Plugins/SlotBasedInventorySystem/Content/UI/BPI_InventorySlotWidget.uasset new file mode 100644 index 0000000..6ee32aa --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/UI/BPI_InventorySlotWidget.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:748a8d2939d72bdfd90cf9df24d5e610a6873383b6c5a535330f3c078748168d +size 23671 diff --git a/Plugins/SlotBasedInventorySystem/Content/UI/DD_InventorySlotDragged.uasset b/Plugins/SlotBasedInventorySystem/Content/UI/DD_InventorySlotDragged.uasset new file mode 100644 index 0000000..e6df7dd --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/UI/DD_InventorySlotDragged.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df5073af4265972f5ff7e23299d53c64a4bb3ac81edab86777aec2537536fdff +size 27933 diff --git a/Plugins/SlotBasedInventorySystem/Content/UI/WBP_SlotInventory_BaseSlot.uasset b/Plugins/SlotBasedInventorySystem/Content/UI/WBP_SlotInventory_BaseSlot.uasset new file mode 100644 index 0000000..cb225d4 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/UI/WBP_SlotInventory_BaseSlot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:519226d1cdcaf9c8e830012f93334ff13c9cf887c6cf67129acc627a0a7febf5 +size 298990 diff --git a/Plugins/SlotBasedInventorySystem/Content/UI/WBP_SlotInventory_DragVisual.uasset b/Plugins/SlotBasedInventorySystem/Content/UI/WBP_SlotInventory_DragVisual.uasset new file mode 100644 index 0000000..a6c538b --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/UI/WBP_SlotInventory_DragVisual.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17e64d479eb198a0e894a92707b95ca148501d771296ad31cea458560e91621a +size 59178 diff --git a/Plugins/SlotBasedInventorySystem/Content/UI/WBP_SlotInventory_Grid.uasset b/Plugins/SlotBasedInventorySystem/Content/UI/WBP_SlotInventory_Grid.uasset new file mode 100644 index 0000000..bdfe6d4 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Content/UI/WBP_SlotInventory_Grid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:842e8f4bb1556f7f5f66c4e5faf6ea651d9609a2f487e2392f9c091a17bae4ad +size 159669 diff --git a/Plugins/SlotBasedInventorySystem/Resources/Icon128.png b/Plugins/SlotBasedInventorySystem/Resources/Icon128.png new file mode 100644 index 0000000..26245f6 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Resources/Icon128.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7239efaeefbd82de33ebe18518e50de075ea4188a468a9e4991396433d2275f +size 12699 diff --git a/Plugins/SlotBasedInventorySystem/SlotBasedInventorySystem.uplugin b/Plugins/SlotBasedInventorySystem/SlotBasedInventorySystem.uplugin new file mode 100644 index 0000000..fd54e55 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/SlotBasedInventorySystem.uplugin @@ -0,0 +1,30 @@ +{ + "FileVersion": 3, + "Version": 1, + "VersionName": "0.1", + "FriendlyName": "SlotBasedInventorySystem", + "Description": "Inventory system with slots", + "Category": "Gameplay", + "CreatedBy": "Amasson", + "CreatedByURL": "", + "DocsURL": "", + "MarketplaceURL": "", + "SupportURL": "", + "CanContainContent": true, + "IsBetaVersion": true, + "IsExperimentalVersion": false, + "Installed": false, + "Modules": [ + { + "Name": "SlotBasedInventorySystem", + "Type": "Runtime", + "LoadingPhase": "Default" + } + ], + "Plugins": [ + { + "Name": "LibAmasson", + "Enabled": true + } + ] +} \ No newline at end of file diff --git a/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/Components/SlotInventoryComponent.cpp b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/Components/SlotInventoryComponent.cpp new file mode 100644 index 0000000..02986b0 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/Components/SlotInventoryComponent.cpp @@ -0,0 +1,321 @@ +// Amasson + + +#include "Components/SlotInventoryComponent.h" +#include "GameFramework/Pawn.h" +#include "GameFramework/PlayerController.h" +#include "GameFramework/PlayerState.h" + +USlotInventoryComponent::USlotInventoryComponent() +{ + PrimaryComponentTick.bCanEverTick = true; + + SetComponentTickEnabled(false); +} + + +/** Public Content Management */ + +const FInventoryContent& USlotInventoryComponent::GetContent() const +{ + return Content; +} + +int32 USlotInventoryComponent::GetContentCapacity() const +{ + return Content.Slots.Num(); +} + +void USlotInventoryComponent::SetContentCapacity(int32 NewCapacity) +{ + if (NewCapacity < 0) + NewCapacity = 0; + + const int32 OldCapacity = GetContentCapacity(); + + Content.Slots.SetNum(NewCapacity, true); + + if (NewCapacity > OldCapacity) + { + for (int32 NewSlotIndex = OldCapacity; NewSlotIndex < NewCapacity; NewSlotIndex++) + { + ClearSlotAtIndex(NewSlotIndex); + } + } + OnInventoryCapacityChanged.Broadcast(this, NewCapacity); +} + + +/** Public Slot Management */ + +bool USlotInventoryComponent::GetSlotValueAtIndex(int32 Index, FInventorySlot& SlotValue) const +{ + if (const FInventorySlot* SlotPtr = Content.GetSlotConstPtrAtIndex(Index)) + { + SlotValue = *SlotPtr; + return true; + } + + return false; +} + +bool USlotInventoryComponent::SetSlotValueAtIndex(int32 Index, const FInventorySlot& NewSlotValue) +{ + if (FInventorySlot* SlotPtr = Content.GetSlotPtrAtIndex(Index)) + { + *SlotPtr = NewSlotValue; + MarkDirtySlot(Index); + return true; + } + + return false; +} + +bool USlotInventoryComponent::IsEmptySlotAtIndex(int32 Index) const +{ + if (const FInventorySlot* SlotPtr = Content.GetSlotConstPtrAtIndex(Index)) + return SlotPtr->IsEmpty(); + + return false; +} + +bool USlotInventoryComponent::ClearSlotAtIndex(int32 Index) +{ + if (FInventorySlot* SlotPtr = Content.GetSlotPtrAtIndex(Index)) + { + bool bIsEmpty = SlotPtr->IsEmpty(); + SlotPtr->Reset(); + if (!bIsEmpty) + { + MarkDirtySlot(Index); + return true; + } + } + + return false; +} + +int32 USlotInventoryComponent::GetEmptySlotCounts() const +{ + int32 Total = 0; + + for (const FInventorySlot& Slot : Content.Slots) + { + if (Slot.IsEmpty()) + ++Total; + } + return Total; +} + +bool USlotInventoryComponent::ContainsOnlyEmptySlots() const +{ + for (const FInventorySlot& Slot : Content.Slots) + { + if (!Slot.IsEmpty()) + return false; + } + return true; +} + +void USlotInventoryComponent::ModifySlotCountAtIndex(int32 Index, int32 ModifyAmount, bool bAllOrNothing, int32& Overflow) +{ + FInventorySlot* SlotPtr = Content.GetSlotPtrAtIndex(Index); + + if (!SlotPtr || SlotPtr->IsEmpty()) + { + Overflow = ModifyAmount; + return; + } + + const uint8 MaxStackSize = GetMaxStackSizeForID(SlotPtr->ID); + + if (bAllOrNothing) + { + bool bModified = SlotPtr->TryModifyCountByExact(ModifyAmount, MaxStackSize); + if (bModified) + { + Overflow = 0; + MarkDirtySlot(Index); + } + else + Overflow = ModifyAmount; + } + else + { + SlotPtr->ModifyCountWithOverflow(ModifyAmount, Overflow, MaxStackSize); + if (Overflow != ModifyAmount) + MarkDirtySlot(Index); + } +} + +uint8 USlotInventoryComponent::GetMaxStackSizeForID(const FName& ID) const +{ + return 255; +} + +void USlotInventoryComponent::GetMaxStackSizeForIds(const TSet& Ids, TMap& MaxStackSizes) const +{ + for (const FName& Id : Ids) + { + const uint8 MaxStackSize = GetMaxStackSizeForID(Id); + MaxStackSizes.Add(Id, MaxStackSize); + } +} + + +/** Content Management */ + +int32 USlotInventoryComponent::GetContentIdCount(FName Id) const +{ + int32 Total = 0; + + for (const FInventorySlot& Slot : Content.Slots) + { + if (Slot.IsEmpty()) continue; + + if (Slot.ID == Id) + Total += Slot.Count; + } + return Total; +} + +bool USlotInventoryComponent::ModifyContentWithOverflow(const TMap& IdsAndCounts, TMap& Overflows) +{ + const TMap& MaxStackSizes = GetMaxStackSizesFromIds(IdsAndCounts); + + TSet ModifiedSlots; + FInventoryContent::FContentModificationResult ModificationResult(&ModifiedSlots, &Overflows); + Content.ModifyContentWithValues(IdsAndCounts, MaxStackSizes, ModificationResult); + + for (int32 ModifiedSlotIndex : ModifiedSlots) + { + MarkDirtySlot(ModifiedSlotIndex); + } + + return true; +} + +bool USlotInventoryComponent::TryModifyContentWithoutOverflow(const TMap& IdsAndCounts) +{ + const TMap& MaxStackSizes = GetMaxStackSizesFromIds(IdsAndCounts); + + TSet ModifiedSlots; + + FInventoryContent TmpContent = Content; + + TMap TmpOverflows; + FInventoryContent::FContentModificationResult ModificationResult(&ModifiedSlots, &TmpOverflows); + + TmpContent.ModifyContentWithValues(IdsAndCounts, MaxStackSizes, ModificationResult); + + if (!TmpOverflows.IsEmpty()) + return false; + + Content = TmpContent; + + for (int32 ModifiedSlotIndex : ModifiedSlots) + MarkDirtySlot(ModifiedSlotIndex); + + return true; +} + +bool USlotInventoryComponent::DropSlotTowardOtherInventoryAtIndex(int32 SourceIndex, USlotInventoryComponent* DestinationInventory, int32 DestinationIndex, uint8 MaxAmount) +{ + if (!IsValid(DestinationInventory)) return false; + + FInventorySlot* SourceSlot = Content.GetSlotPtrAtIndex(SourceIndex); + if (!SourceSlot) + return false; + + const uint8 MaxStackSize = DestinationInventory->GetMaxStackSizeForID(SourceSlot->ID); + + if (DestinationInventory->Content.ReceiveSlotAtIndex(*SourceSlot, DestinationIndex, MaxStackSize, MaxAmount)) + { + MarkDirtySlot(SourceIndex); + DestinationInventory->MarkDirtySlot(DestinationIndex); + return true; + } + + return false; +} + +bool USlotInventoryComponent::DropSlotTowardOtherInventory(int32 SourceIndex, USlotInventoryComponent* Destination) +{ + if (!IsValid(Destination)) return false; + + FInventorySlot SourceSlot; + if (!GetSlotValueAtIndex(SourceIndex, SourceSlot)) + return false; + + if (SourceSlot.IsEmpty()) + return false; + + TMap Modifications; + Modifications.Add(SourceSlot.ID, SourceSlot.Count); + + TMap Overflows; + if (!Destination->ModifyContentWithOverflow(Modifications, Overflows)) + return false; + + if (Overflows.IsEmpty()) + { + ClearSlotAtIndex(SourceIndex); + return true; + } + + checkf(Overflows.Contains(SourceSlot.ID), TEXT("Overflow is not empty but does not contains SourceSlot.ID")); + const int32 NewCount = Overflows[SourceSlot.ID]; + + if (SourceSlot.Count == NewCount) + return false; + + SourceSlot.Count = NewCount; + return SetSlotValueAtIndex(SourceIndex, SourceSlot); +} + +void USlotInventoryComponent::RegroupSlotAtIndexWithSimilarIds(int32 Index) +{ + TSet ModifiedSlots; + FInventoryContent::FContentModificationResult ModificationResult(&ModifiedSlots, nullptr); + + FInventorySlot* Slot = Content.GetSlotPtrAtIndex(Index); + if (!Slot) return; + + const uint8 MaxStackSize = GetMaxStackSizeForID(Slot->ID); + + Content.RegroupSlotsWithSimilarIdsAtIndex(Index, ModificationResult, MaxStackSize, Slot); + + for (const int32 ModifiedSlotIndex : ModifiedSlots) + MarkDirtySlot(ModifiedSlotIndex); +} + + +/** Private Content Management */ + +const TMap USlotInventoryComponent::GetMaxStackSizesFromIds(const TMap& IdsAndCounts) const +{ + TSet Ids; + IdsAndCounts.GetKeys(Ids); + TMap MaxStackSizes; + GetMaxStackSizeForIds(Ids, MaxStackSizes); + return MaxStackSizes; +} + +/** Slot Updating */ + +void USlotInventoryComponent::BroadcastContentUpdate() +{ + OnInventoryContentChanged.Broadcast(this, DirtySlots.Array()); + DirtySlots.Reset(); +} + +void USlotInventoryComponent::MarkDirtySlot(int32 SlotIndex) +{ + DirtySlots.Add(SlotIndex); + MarkSlotsHaveBeenModified(); +} + +void USlotInventoryComponent::MarkSlotsHaveBeenModified() +{ + SetComponentTickEnabled(true); +} \ No newline at end of file diff --git a/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/Components/SlotInventoryComponent_Networked.cpp b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/Components/SlotInventoryComponent_Networked.cpp new file mode 100644 index 0000000..5a33ce8 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/Components/SlotInventoryComponent_Networked.cpp @@ -0,0 +1,214 @@ +// Amasson + + +#include "Components/SlotInventoryComponent_Networked.h" +#include "Net/UnrealNetwork.h" + + +USlotInventoryComponent_Networked::USlotInventoryComponent_Networked() +{ + SetIsReplicatedByDefault(true); + bHasAuthority = GetOwner() ? GetOwner()->HasAuthority() : false; +} + +void USlotInventoryComponent_Networked::BeginPlay() +{ + Super::BeginPlay(); + + if (bHasAuthority) + { + OnInventoryCapacityChanged.AddDynamic(this, &ThisClass::OnCapacityChanged); + } +} + +void USlotInventoryComponent_Networked::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const +{ + Super::GetLifetimeReplicatedProps(OutLifetimeProps); + + +} + +void USlotInventoryComponent_Networked::Server_BroadcastFullInventory_Implementation(bool bOwnerOnly) +{ + TArray AllIndices; + AllIndices.Reserve(GetContentCapacity() + 1); // Reserve space for N+1 elements + for (int32 i = 0; i <= GetContentCapacity(); i++) + AllIndices.Add(i); + + if (bOwnerOnly) + Client_UpdateSlotsValues_Implementation(AllIndices, Content.Slots); + else + NetMulticast_UpdateSlotsValues_Implementation(AllIndices, Content.Slots); +} + + +/** Client Request */ + +void USlotInventoryComponent_Networked::Server_RequestSetContentCapacity_Implementation(int32 NewCapacity) +{ + SetContentCapacity(NewCapacity); +} + +void USlotInventoryComponent_Networked::Server_RequestSetSlotValueAtIndex_Implementation(int32 Index, const FInventorySlot& NewSlotValue) +{ + SetSlotValueAtIndex(Index, NewSlotValue); +} + +void USlotInventoryComponent_Networked::Server_RequestClearSlotAtIndex_Implementation(int32 Index) +{ + ClearSlotAtIndex(Index); +} + +void USlotInventoryComponent_Networked::Server_RequestDropSlotTowardOtherInventoryAtIndex_Implementation(int32 SourceIndex, USlotInventoryComponent* DestinationInventory, int32 DestinationIndex, uint8 MaxAmount) +{ + DropSlotTowardOtherInventoryAtIndex(SourceIndex, DestinationInventory, DestinationIndex, MaxAmount); +} + +void USlotInventoryComponent_Networked::Server_RequestDropSlotTowardOtherInventory_Implementation(int32 SourceIndex, USlotInventoryComponent* DestinationInventory) +{ + DropSlotTowardOtherInventory(SourceIndex, DestinationInventory); +} + +void USlotInventoryComponent_Networked::Server_RequestDropSlotFromOtherInventoryAtIndex_Implementation(int32 DestinationIndex, USlotInventoryComponent* SourceInventory, int32 SourceIndex, uint8 MaxAmount) +{ + if (IsValid(SourceInventory)) + { + SourceInventory->DropSlotTowardOtherInventoryAtIndex(SourceIndex, this, DestinationIndex, MaxAmount); + } +} + +void USlotInventoryComponent_Networked::Server_RequestDropSlotFromOtherInventory_Implementation(USlotInventoryComponent* SourceInventory, int32 SourceIndex) +{ + if (IsValid(SourceInventory)) + { + SourceInventory->DropSlotTowardOtherInventory(SourceIndex, this); + } +} + +static AActor* GetLastValidOwner(AActor* Actor) +{ + if (IsValid(Actor)) + { + AActor* Owner = Actor->GetOwner(); + AActor* ValidOwner = GetLastValidOwner(Owner); + return IsValid(ValidOwner) ? ValidOwner : Actor; + } + return nullptr; +} + +static bool IsValidAndCanCallRPC(UActorComponent* Component) +{ + if (IsValid(Component)) + { + AActor* LastOwner = GetLastValidOwner(Component->GetOwner()); + if (IsValid(LastOwner)) + { + ENetRole NetRole = LastOwner->GetLocalRole(); + bool bCanCallRPC = NetRole >= ENetRole::ROLE_AutonomousProxy; + return bCanCallRPC; + } + } + return false; +} + +void USlotInventoryComponent_Networked::DropInventorySlotFromSourceToDestinationAtIndex(USlotInventoryComponent_Networked* SourceInventory, int32 SourceIndex, USlotInventoryComponent_Networked* DestinationInventory, int32 DestinationIndex, uint8 MaxAmount) +{ + if (IsValidAndCanCallRPC(SourceInventory)) + { + SourceInventory->Server_RequestDropSlotTowardOtherInventoryAtIndex(SourceIndex, DestinationInventory, DestinationIndex, MaxAmount); + } + else if (IsValidAndCanCallRPC(DestinationInventory)) + { + DestinationInventory->Server_RequestDropSlotFromOtherInventoryAtIndex(DestinationIndex, SourceInventory, SourceIndex, MaxAmount); + } +} + +void USlotInventoryComponent_Networked::DropInventorySlotFromSourceToDestination(USlotInventoryComponent_Networked* SourceInventory, int32 SourceIndex, USlotInventoryComponent_Networked* DestinationInventory) +{ + if (IsValidAndCanCallRPC(SourceInventory)) + { + SourceInventory->Server_RequestDropSlotTowardOtherInventory(SourceIndex, DestinationInventory); + } + else if (IsValidAndCanCallRPC(DestinationInventory)) + { + DestinationInventory->Server_RequestDropSlotFromOtherInventory(SourceInventory, SourceIndex); + } +} + +void USlotInventoryComponent_Networked::Server_RequestRegroupSlotAtIndexWithSimilarIds_Implementation(int32 Index) +{ + RegroupSlotAtIndexWithSimilarIds(Index); +} + + +/** Slot Update */ + +void USlotInventoryComponent_Networked::NetMulticast_UpdateSlotsValues_Implementation(const TArray& Indices, const TArray& Values) +{ + ReceievedUpdateSlotsValues(Indices, Values); +} + +void USlotInventoryComponent_Networked::Client_UpdateSlotsValues_Implementation(const TArray& Indices, const TArray& Values) +{ + ReceievedUpdateSlotsValues(Indices, Values); +} + +void USlotInventoryComponent_Networked::ReceievedUpdateSlotsValues(const TArray& Indices, const TArray& Values) +{ + checkf(Indices.Num() == Values.Num(), TEXT("SlotInventoryComponent_Networked::ReceievedUpdateSlotsValues: Received miss matching arrays")); + + if (bHasAuthority) + return; + + for (int32 i = 0; i < Indices.Num(); i++) + { + SetSlotValueAtIndex(Indices[i], Values[i]); + } +} + + +/** Capacity Update */ + +void USlotInventoryComponent_Networked::OnCapacityChanged(USlotInventoryComponent* SlotInventoryComponent, int32 NewCapacity) +{ + if (SlotInventoryComponent == this) + { + NetMulticast_UpdateCapacity(NewCapacity); + } +} + +void USlotInventoryComponent_Networked::NetMulticast_UpdateCapacity_Implementation(int32 NewCapacity) +{ + if (bHasAuthority) + return; + + SetContentCapacity(NewCapacity); +} + + +/** Content Update */ + +void USlotInventoryComponent_Networked::BroadcastContentUpdate() +{ + if (bHasAuthority) + BroadcastModifiedSlotsToClients(); + + Super::BroadcastContentUpdate(); +} + +void USlotInventoryComponent_Networked::BroadcastModifiedSlotsToClients() +{ + TArray Indices; + TArray Values; + + for (int32 DirtySlotIndex : DirtySlots) + { + FInventorySlot SlotValue; + if (GetSlotValueAtIndex(DirtySlotIndex, SlotValue)) + { + Indices.Add(DirtySlotIndex); + Values.Add(SlotValue); + } + } + NetMulticast_UpdateSlotsValues(Indices, Values); +} diff --git a/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/SlotBasedInventorySystem.cpp b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/SlotBasedInventorySystem.cpp new file mode 100644 index 0000000..e2a2d85 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/SlotBasedInventorySystem.cpp @@ -0,0 +1,20 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#include "SlotBasedInventorySystem.h" + +#define LOCTEXT_NAMESPACE "FSlotBasedInventorySystemModule" + +void FSlotBasedInventorySystemModule::StartupModule() +{ + // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module +} + +void FSlotBasedInventorySystemModule::ShutdownModule() +{ + // This function may be called during shutdown to clean up your module. For modules that support dynamic reloading, + // we call this function before unloading the module. +} + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(FSlotBasedInventorySystemModule, SlotBasedInventorySystem) \ No newline at end of file diff --git a/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/SlotInventoryBlueprintLibrary.cpp b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/SlotInventoryBlueprintLibrary.cpp new file mode 100644 index 0000000..7f004fd --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/SlotInventoryBlueprintLibrary.cpp @@ -0,0 +1,15 @@ +// Amasson + + +#include "SlotInventoryBlueprintLibrary.h" + + +bool USlotInventoryBlueprintLibrary::IsValidIndex(const FInventoryContent& Content, int32 Index) +{ + return Content.IsValidIndex(Index); +} + +bool USlotInventoryBlueprintLibrary::IsEmptySlot(const FInventorySlot& Slot) +{ + return Slot.IsEmpty(); +} diff --git a/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/Structures/SlotInventorySystemStructs.cpp b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/Structures/SlotInventorySystemStructs.cpp new file mode 100644 index 0000000..45c816b --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Private/Structures/SlotInventorySystemStructs.cpp @@ -0,0 +1,258 @@ +// Amasson + + +#include "Structures/SlotInventorySystemStructs.h" +#include "Math/UnrealMathUtility.h" +#include "Templates/UnrealTemplate.h" + + +bool FInventorySlot::IsEmpty() const +{ + return ID == NAME_None || Count == 0; +} + +void FInventorySlot::Reset() +{ + ID = NAME_None; + Count = 0; +} + +void FInventorySlot::ModifyCountWithOverflow(int32 ModifyAmount, int32& Overflow, uint8 MaxStackSize) +{ + int32 NewCount = Count + ModifyAmount; + + if (NewCount < 0) + { + Overflow = Count + ModifyAmount; + Count = 0; + } + else if (NewCount > MaxStackSize) + { + Overflow = Count + ModifyAmount - MaxStackSize; + Count = MaxStackSize; + } + else + { + Overflow = 0; + Count = NewCount; + } +} + +bool FInventorySlot::TryModifyCountByExact(int32 ModifyAmount, uint8 MaxStackSize) +{ + int32 NewCount = Count + ModifyAmount; + + if (NewCount < 0 || NewCount > MaxStackSize) + return false; + + Count = NewCount; + return true; +} + +bool FInventorySlot::AddIdAndCount(const FName& SlotId, int32 ModifyAmount, int32& Overflow, uint8 MaxStackSize) +{ + if (IsEmpty()) + { + if (ModifyAmount < 0) + { + Overflow = ModifyAmount; + return false; + } + ID = SlotId; + Count = FMath::Min(ModifyAmount, int32(MaxStackSize)); + Overflow = ModifyAmount - Count; + return Overflow != ModifyAmount; + } + + if (ID != SlotId) + { + Overflow = ModifyAmount; + return false; + } + + ModifyCountWithOverflow(ModifyAmount, Overflow, MaxStackSize); + return Overflow != ModifyAmount; +} + + +/** Inventory Content */ + + +bool FInventoryContent::IsValidIndex(int32 Index) const +{ + return Index >= 0 && Index < Slots.Num(); +} + +FInventorySlot* FInventoryContent::GetSlotPtrAtIndex(int32 Index) +{ + if (!IsValidIndex(Index)) + return nullptr; + + return &(Slots[Index]); +} + +const FInventorySlot* FInventoryContent::GetSlotConstPtrAtIndex(int32 Index) const +{ + if (!IsValidIndex(Index)) + return nullptr; + + return &(Slots[Index]); +} + +FInventoryContent::FContentModificationResult::FContentModificationResult(TSet* InModifiedSlots, TMap* InOverflows) +: bModifiedSomething(false), bCreatedEmptySlot(false), + ModifiedSlots(InModifiedSlots), Overflows(InOverflows) +{} + +void FInventoryContent::ModifyContentWithValues(const TMap& IdsAndCounts, const TMap& MaxStackSizes, FContentModificationResult& ModificationResult) +{ + bool bModified = false; + bool bHasPositiveOverflow = false; + bool bHasNewEmptySlots = false; + + for (const TPair& IdAndCount : IdsAndCounts) + { + const FName& SlotId = IdAndCount.Key; + int32 ModifyAmount = IdAndCount.Value; + const uint8 MaxStackSize = MaxStackSizes[SlotId]; + + FContentModificationResult Result(ModificationResult.ModifiedSlots, nullptr); + ReceiveSlotOverflow(SlotId, ModifyAmount, MaxStackSize, false, Result); + ReceiveSlotOverflow(SlotId, ModifyAmount, MaxStackSize, true, Result); + bModified = Result.bModifiedSomething; + bHasNewEmptySlots = Result.bCreatedEmptySlot; + + if (ModifyAmount != 0) + { + if (ModificationResult.Overflows) + ModificationResult.Overflows->Add(SlotId, ModifyAmount); + if (ModifyAmount > 0) + bHasPositiveOverflow = true; + } + } + + if (bModified && bHasPositiveOverflow && bHasNewEmptySlots && ModificationResult.Overflows) + { + if (ModificationResult.Overflows) + { + const TMap NewModifications = *ModificationResult.Overflows; + ModificationResult.Overflows->Reset(); + ModifyContentWithValues(NewModifications, MaxStackSizes, ModificationResult); + } + } +} + +void FInventoryContent::ReceiveSlotOverflow(const FName& SlotId, int32& InoutOverflow, uint8 MaxStackSize, bool bTargetEmptySlots, FContentModificationResult& ModificationResult) +{ + for (int32 i = 0; i < Slots.Num() && InoutOverflow != 0; i++) + { + FInventorySlot& Slot(Slots[i]); + + if (Slot.IsEmpty() != bTargetEmptySlots) + continue; + + if (Slot.AddIdAndCount(SlotId, InoutOverflow, InoutOverflow, MaxStackSize)) + { + ModificationResult.bModifiedSomething = true; + if (Slot.IsEmpty()) + ModificationResult.bCreatedEmptySlot = true; + if (ModificationResult.ModifiedSlots) + ModificationResult.ModifiedSlots->Add(i); + } + } +} + +bool FInventoryContent::ReceiveSlotAtIndex(FInventorySlot& InoutSlot, int32 Index, uint8 MaxStackSize, uint8 MaxTransferAmount) +{ + FInventorySlot* LocalSlot = GetSlotPtrAtIndex(Index); + if (!LocalSlot) + return false; + + if (LocalSlot->IsEmpty()) + { + if (InoutSlot.IsEmpty()) + return false; + + LocalSlot->ID = InoutSlot.ID; + LocalSlot->Count = 0; + } + + if (LocalSlot->ID == InoutSlot.ID) + { + return MergeSlotsWithSimilarIds(*LocalSlot, InoutSlot, MaxStackSize, MaxTransferAmount); + } + else + { + bool bCanReceiveSlot = InoutSlot.Count <= MaxTransferAmount && InoutSlot.Count <= MaxStackSize; + if (!bCanReceiveSlot) + return false; + + SwapSlots(InoutSlot, *LocalSlot); + } + + return true; +} + +void FInventoryContent::RegroupSlotsWithSimilarIdsAtIndex(int32 Index, FContentModificationResult& ModificationResult, uint8 MaxStackSize, FInventorySlot* CachedSlotPtr) +{ + FInventorySlot* TargetSlot = CachedSlotPtr ? CachedSlotPtr : GetSlotPtrAtIndex(Index); + + if (!TargetSlot) + return; + + if (TargetSlot->IsEmpty()) + return; + + for (int32 SlotIndex = 0; SlotIndex < Slots.Num() && TargetSlot->Count < MaxStackSize; SlotIndex++) + { + if (TargetSlot->Count >= MaxStackSize) + break; + + if (SlotIndex == Index) + continue; + + FInventorySlot& Slot = Slots[SlotIndex]; + + if (!Slot.IsEmpty() && Slot.ID == TargetSlot->ID) + { + bool bMerged = MergeSlotsWithSimilarIds(*TargetSlot, Slot, MaxStackSize); + if (bMerged) + { + ModificationResult.bModifiedSomething = true; + if (ModificationResult.ModifiedSlots) + ModificationResult.ModifiedSlots->Add(SlotIndex); + if (Slot.IsEmpty()) + ModificationResult.bCreatedEmptySlot = true; + } + } + } + if (ModificationResult.bModifiedSomething) + if (ModificationResult.ModifiedSlots) + ModificationResult.ModifiedSlots->Add(Index); +} + +bool FInventoryContent::MergeSlotsWithSimilarIds(FInventorySlot& DestinationSlot, FInventorySlot& SourceSlot, uint8 MaxStackSize, uint8 MaxTransferAmount) +{ + checkf(SourceSlot.ID == DestinationSlot.ID, TEXT("Tried to merge slots with different Ids (%s!=%s)"), *SourceSlot.ID.ToString(), *DestinationSlot.ID.ToString()); + + const int32 LocalCount = DestinationSlot.Count; + const int32 ReceiveCount = SourceSlot.Count; + + const int32 TotalCount = LocalCount + ReceiveCount; + const int32 StackCount = FMath::Min(TotalCount, int32(MaxStackSize)); + + const int32 TotalTransferAmount = StackCount - LocalCount; + const int32 TransferAmount = FMath::Min(TotalTransferAmount, int32(MaxTransferAmount)); + + if (TransferAmount == 0) + return false; + + SourceSlot.Count -= TransferAmount; + DestinationSlot.Count += TransferAmount; + return true; +} + +void FInventoryContent::SwapSlots(FInventorySlot& FirstSlot, FInventorySlot& SecondSlot) +{ + Swap(FirstSlot, SecondSlot); +} diff --git a/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/Components/SlotInventoryComponent.h b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/Components/SlotInventoryComponent.h new file mode 100644 index 0000000..5bbae28 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/Components/SlotInventoryComponent.h @@ -0,0 +1,131 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Components/ActorComponent.h" +#include "Structures/SlotInventorySystemStructs.h" +#include "SlotInventoryComponent.generated.h" + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnInventoryCapacityChangedSignature, USlotInventoryComponent*, SlotInventoryComponent, int32, NewCapacity); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnInventoryContentChangedSignature, USlotInventoryComponent*, SlotInventoryComponent, const TArray&, ChangedSlots); + +UCLASS( Blueprintable, ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) +class SLOTBASEDINVENTORYSYSTEM_API USlotInventoryComponent : public UActorComponent +{ + GENERATED_BODY() + +public: + + USlotInventoryComponent(); + + UPROPERTY(BlueprintAssignable) + FOnInventoryCapacityChangedSignature OnInventoryCapacityChanged; + + UPROPERTY(BlueprintAssignable) + FOnInventoryContentChangedSignature OnInventoryContentChanged; + + + /** Content Management */ + + UFUNCTION(BlueprintCallable, Category = "Content") + const FInventoryContent& GetContent() const; + + UFUNCTION(BlueprintCallable, Category = "Content|Capacity") + int32 GetContentCapacity() const; + + UFUNCTION(BlueprintCallable, Category = "Content|Capacity") + void SetContentCapacity(int32 NewCapacity); + + + /** Slot Management */ + + UFUNCTION(BlueprintCallable, Category = "Content|Slot") + bool GetSlotValueAtIndex(int32 Index, FInventorySlot& SlotValue) const; + + UFUNCTION(BlueprintCallable, Category = "Content|Slot") + bool SetSlotValueAtIndex(int32 Index, const FInventorySlot& NewSlotValue); + + UFUNCTION(BlueprintCallable, Category = "Content|Slot|Count") + bool IsEmptySlotAtIndex(int32 Index) const; + + UFUNCTION(BlueprintCallable, Category = "Content|Slot|Count") + bool ClearSlotAtIndex(int32 Index); + + UFUNCTION(BlueprintCallable, Category = "Content|Slot|Count") + int32 GetEmptySlotCounts() const; + + UFUNCTION(BlueprintCallable, Category = "Content|Slot|Count") + bool ContainsOnlyEmptySlots() const; + + UFUNCTION(BlueprintCallable, Category = "Content|Slot|Count") + void ModifySlotCountAtIndex(int32 Index, int32 ModifyAmount, bool bAllOrNothing, int32& Overflow); + + UFUNCTION(BlueprintCallable, Category = "Content|Slot|Count") + virtual uint8 GetMaxStackSizeForID(const FName& ID) const; + + UFUNCTION(BlueprintCallable, Category = "Content|Slot|Count") + void GetMaxStackSizeForIds(const TSet& Ids, TMap& MaxStackSizes) const; + + + /** Content Management */ + + UFUNCTION(BlueprintCallable, Category = "Content|Count") + int32 GetContentIdCount(FName Id) const; + + UFUNCTION(BlueprintCallable, Category = "Content|Modify") + bool ModifyContentWithOverflow(const TMap& IdsAndCounts, TMap& Overflows); + + UFUNCTION(BlueprintCallable, Category = "Content|Modify") + bool TryModifyContentWithoutOverflow(const TMap& IdsAndCounts); + + UFUNCTION(BlueprintCallable, Category = "Content|Action") + bool DropSlotTowardOtherInventoryAtIndex(int32 SourceIndex, USlotInventoryComponent* Destination, int32 DestinationIndex, uint8 MaxAmount = 255); + + UFUNCTION(BlueprintCallable, Category = "Content|Action") + bool DropSlotTowardOtherInventory(int32 SourceIndex, USlotInventoryComponent* Destination); + + UFUNCTION(BlueprintCallable, Category = "Content|Action") + void RegroupSlotAtIndexWithSimilarIds(int32 Index); + + +protected: + + /** Content Management */ + + const TMap GetMaxStackSizesFromIds(const TMap& IdsAndCounts) const; + + + /** Slot Updating */ + + virtual void BroadcastContentUpdate(); + + void MarkDirtySlot(int32 SlotIndex); + + void MarkSlotsHaveBeenModified(); + + +public: + + /** + * The purpose of the tick function is to trigger an update broadcast only once. + * We can use mark modified content multiple times in a same tick but they will + * be cached and only broadcast in the next tick all at once. + */ + virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override + { + Super::TickComponent(DeltaTime, TickType, ThisTickFunction); + + SetComponentTickEnabled(false); + BroadcastContentUpdate(); + } + + +protected: + + UPROPERTY(EditAnywhere, Category = "Content", meta = (AllowPrivateAccess = true)) + FInventoryContent Content; + + TSet DirtySlots; + +}; diff --git a/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/Components/SlotInventoryComponent_Networked.h b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/Components/SlotInventoryComponent_Networked.h new file mode 100644 index 0000000..b9e61fc --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/Components/SlotInventoryComponent_Networked.h @@ -0,0 +1,93 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Components/SlotInventoryComponent.h" +#include "SlotInventoryComponent_Networked.generated.h" + +/** + * + */ +UCLASS( Blueprintable, ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) +class SLOTBASEDINVENTORYSYSTEM_API USlotInventoryComponent_Networked : public USlotInventoryComponent +{ + GENERATED_BODY() + +public: + + USlotInventoryComponent_Networked(); + + virtual void BeginPlay() override; + virtual void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override; + + + UFUNCTION(Server, Reliable, BlueprintCallable, Category = "ClientRequest|Update") + void Server_BroadcastFullInventory(bool bOwnerOnly = true); + + + /** Client Request */ + + UFUNCTION(Server, Reliable, BlueprintCallable, Category = "ClientRequest|Content|Capacity") + void Server_RequestSetContentCapacity(int32 NewCapacity); + + UFUNCTION(Server, Reliable, BlueprintCallable, Category = "ClientRequest|Content|Slot") + void Server_RequestSetSlotValueAtIndex(int32 Index, const FInventorySlot& NewSlotValue); + + UFUNCTION(Server, Reliable, BlueprintCallable, Category = "ClientRequest|Content|Slot") + void Server_RequestClearSlotAtIndex(int32 Index); + + UFUNCTION(Server, Reliable, BlueprintCallable, Category = "ClientRequest|Action|Drop") + void Server_RequestDropSlotTowardOtherInventoryAtIndex(int32 SourceIndex, USlotInventoryComponent* DestinationInventory, int32 DestinationIndex, uint8 MaxAmount = 255); + + UFUNCTION(Server, Reliable, BlueprintCallable, Category = "ClientRequest|Action|Drop") + void Server_RequestDropSlotTowardOtherInventory(int32 SourceIndex, USlotInventoryComponent* DestinationInventory); + + UFUNCTION(Server, Reliable, BlueprintCallable, Category = "ClientRequest|Action|Drop") + void Server_RequestDropSlotFromOtherInventoryAtIndex(int32 DestinationIndex, USlotInventoryComponent* SourceInventory, int32 SourceIndex, uint8 MaxAmount = 255); + + UFUNCTION(Server, Reliable, BlueprintCallable, Category = "ClientRequest|Action|Drop") + void Server_RequestDropSlotFromOtherInventory(USlotInventoryComponent* SourceInventory, int32 SourceIndex); + + UFUNCTION(BlueprintCallable, Category = "ClientRequest|Action|Drop") + static void DropInventorySlotFromSourceToDestinationAtIndex(USlotInventoryComponent_Networked* SourceInventory, int32 SourceIndex, USlotInventoryComponent_Networked* DestinationInventory, int32 DestinationIndex, uint8 MaxAmount = 255); + + UFUNCTION(BlueprintCallable, Category = "ClientRequest|Action|Drop") + static void DropInventorySlotFromSourceToDestination(USlotInventoryComponent_Networked* SourceInventory, int32 SourceIndex, USlotInventoryComponent_Networked* DestinationInventory); + + UFUNCTION(Server, Reliable, BlueprintCallable, Category = "ClientRequest|Action") + void Server_RequestRegroupSlotAtIndexWithSimilarIds(int32 Index); + + +protected: + + + /** Slot Update */ + + UFUNCTION(NetMulticast, Reliable) + void NetMulticast_UpdateSlotsValues(const TArray& Indices, const TArray& Values); + + UFUNCTION(Client, Reliable) + void Client_UpdateSlotsValues(const TArray& Indices, const TArray& Values); + + void ReceievedUpdateSlotsValues(const TArray& Indices, const TArray& Values); + + + /** Capacity Update */ + + UFUNCTION() + void OnCapacityChanged(USlotInventoryComponent* SlotInventoryComponent, int32 NewCapacity); + + UFUNCTION(NetMulticast, Reliable) + void NetMulticast_UpdateCapacity(int32 NewCapacity); + + + /** Content Update */ + + virtual void BroadcastContentUpdate() override; + + void BroadcastModifiedSlotsToClients(); + + bool bHasAuthority; + +}; diff --git a/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/SlotBasedInventorySystem.h b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/SlotBasedInventorySystem.h new file mode 100644 index 0000000..8e6fe68 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/SlotBasedInventorySystem.h @@ -0,0 +1,15 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "Modules/ModuleManager.h" + +class FSlotBasedInventorySystemModule : public IModuleInterface +{ +public: + + /** IModuleInterface implementation */ + virtual void StartupModule() override; + virtual void ShutdownModule() override; +}; diff --git a/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/SlotInventoryBlueprintLibrary.h b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/SlotInventoryBlueprintLibrary.h new file mode 100644 index 0000000..f95bbae --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/SlotInventoryBlueprintLibrary.h @@ -0,0 +1,27 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Kismet/BlueprintFunctionLibrary.h" +#include "Structures/SlotInventorySystemStructs.h" +#include "SlotInventoryBlueprintLibrary.generated.h" + +/** + * + */ +UCLASS() +class SLOTBASEDINVENTORYSYSTEM_API USlotInventoryBlueprintLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + + /** Inventory Content */ + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "SlotInventory|Content") + static bool IsValidIndex(const FInventoryContent& Content, int32 Index); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "SlotInventory|Slot") + static bool IsEmptySlot(const FInventorySlot& Slot); + +}; diff --git a/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/Structures/SlotInventorySystemStructs.h b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/Structures/SlotInventorySystemStructs.h new file mode 100644 index 0000000..9c4cea8 --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/Public/Structures/SlotInventorySystemStructs.h @@ -0,0 +1,68 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Engine/DataTable.h" +#include "SlotInventorySystemStructs.generated.h" + + +USTRUCT(BlueprintType) +struct FInventorySlot +{ + GENERATED_USTRUCT_BODY() + + + UPROPERTY(BlueprintReadWrite, EditAnywhere, SaveGame) + FName ID; + + UPROPERTY(BlueprintReadWrite, EditAnywhere, SaveGame) + uint8 Count = 0; + + + bool IsEmpty() const; + void Reset(); + void ModifyCountWithOverflow(int32 ModifyAmount, int32& Overflow, uint8 MaxStackSize = 255); + bool TryModifyCountByExact(int32 ModifyAmount, uint8 MaxStackSize = 255); + bool AddIdAndCount(const FName& SlotId, int32 ModifyAmount, int32& Overflow, uint8 MaxStackSize = 255); + +}; + + +USTRUCT(BlueprintType) +struct SLOTBASEDINVENTORYSYSTEM_API FInventoryContent +{ + GENERATED_USTRUCT_BODY() + + + UPROPERTY(BlueprintReadWrite, EditAnywhere, SaveGame) + TArray Slots; + + + bool IsValidIndex(int32 Index) const; + + FInventorySlot* GetSlotPtrAtIndex(int32 Index); + const FInventorySlot* GetSlotConstPtrAtIndex(int32 Index) const; + + struct FContentModificationResult + { + bool bModifiedSomething; + bool bCreatedEmptySlot; + TSet* ModifiedSlots; + TMap* Overflows; + + FContentModificationResult(TSet* InModifiedSlots, TMap* Overflows); + }; + + void ModifyContentWithValues(const TMap& IdsAndCounts, const TMap& MaxStackSizes, FContentModificationResult& ModificationResult); + + void ReceiveSlotOverflow(const FName& SlotId, int32& InoutOverflow, uint8 MaxStackSize, bool bTargetEmptySlots, FContentModificationResult& ModificationResult); + bool ReceiveSlotAtIndex(FInventorySlot& InoutSlot, int32 Index, uint8 MaxStackSize = 255, uint8 MaxTransferAmount = 255); + + void RegroupSlotsWithSimilarIdsAtIndex(int32 Index, FContentModificationResult& ModificationResult, uint8 MaxStackSize = 255, FInventorySlot* CachedSlotPtr = nullptr); + + static bool MergeSlotsWithSimilarIds(FInventorySlot& DestinationSlot, FInventorySlot& SourceSlot, uint8 MaxStackSize = 255, uint8 MaxTransferAmount = 255); + + static void SwapSlots(FInventorySlot& FirstSlot, FInventorySlot& SecondSlot); + +}; diff --git a/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/SlotBasedInventorySystem.Build.cs b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/SlotBasedInventorySystem.Build.cs new file mode 100644 index 0000000..766722b --- /dev/null +++ b/Plugins/SlotBasedInventorySystem/Source/SlotBasedInventorySystem/SlotBasedInventorySystem.Build.cs @@ -0,0 +1,53 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using UnrealBuildTool; + +public class SlotBasedInventorySystem : ModuleRules +{ + public SlotBasedInventorySystem(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicIncludePaths.AddRange( + new string[] { + // ... add public include paths required here ... + } + ); + + + PrivateIncludePaths.AddRange( + new string[] { + // ... add other private include paths required here ... + } + ); + + + PublicDependencyModuleNames.AddRange( + new string[] + { + "Core", + // ... add other public dependencies that you statically link with here ... + } + ); + + + PrivateDependencyModuleNames.AddRange( + new string[] + { + "CoreUObject", + "Engine", + "Slate", + "SlateCore", + // ... add private dependencies that you statically link with here ... + } + ); + + + DynamicallyLoadedModuleNames.AddRange( + new string[] + { + // ... add any modules that your module loads dynamically here ... + } + ); + } +} diff --git a/Source/Aura.Target.cs b/Source/Aura.Target.cs new file mode 100644 index 0000000..8538179 --- /dev/null +++ b/Source/Aura.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 AuraTarget : TargetRules +{ + public AuraTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Game; + DefaultBuildSettings = BuildSettingsVersion.V2; + + ExtraModuleNames.AddRange( new string[] { "Aura" } ); + } +} diff --git a/Source/Aura/Aura.Build.cs b/Source/Aura/Aura.Build.cs new file mode 100644 index 0000000..b127375 --- /dev/null +++ b/Source/Aura/Aura.Build.cs @@ -0,0 +1,36 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; + +public class Aura : ModuleRules +{ + public Aura(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicDependencyModuleNames.AddRange(new string[] { + "Core", + "CoreUObject", + "Engine", + "InputCore", + "EnhancedInput", + "GameplayAbilities", + // "NetCore" + }); + + PrivateDependencyModuleNames.AddRange(new string[] { + "GameplayTags", + "GameplayTasks", + "NavigationSystem", + "AIModule" + }); + + // 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/Source/Aura/Aura.cpp b/Source/Aura/Aura.cpp new file mode 100644 index 0000000..5c0034a --- /dev/null +++ b/Source/Aura/Aura.cpp @@ -0,0 +1,6 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "Aura.h" +#include "Modules/ModuleManager.h" + +IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, Aura, "Aura" ); diff --git a/Source/Aura/Aura.h b/Source/Aura/Aura.h new file mode 100644 index 0000000..468afeb --- /dev/null +++ b/Source/Aura/Aura.h @@ -0,0 +1,12 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" + +#define PRINT_DEBUG(text) if(GEngine) GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Yellow, TEXT(text)); +// if(GEngine) +// GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Yellow, FString::Printf(TEXT("Message %f"), value)); + +#define ECC_Projectile ECollisionChannel::ECC_GameTraceChannel1 +#define ECC_CursorHit ECollisionChannel::ECC_GameTraceChannel2 diff --git a/Source/Aura/Private/AI/AuraAIController.cpp b/Source/Aura/Private/AI/AuraAIController.cpp new file mode 100644 index 0000000..6c69457 --- /dev/null +++ b/Source/Aura/Private/AI/AuraAIController.cpp @@ -0,0 +1,22 @@ +// Amasson + +#include "AI/AuraAIController.h" + +AAuraAIController::AAuraAIController() +{ + +} + +void AAuraAIController::BeginPlay() +{ + Super::BeginPlay(); + +} + +void AAuraAIController::OnPossess(APawn* PossessedPawn) +{ + Super::OnPossess(PossessedPawn); + + if (BehaviorTree) + RunBehaviorTree(BehaviorTree); +} diff --git a/Source/Aura/Private/AI/Services/BTService_FindNearestPlayer.cpp b/Source/Aura/Private/AI/Services/BTService_FindNearestPlayer.cpp new file mode 100644 index 0000000..a00a204 --- /dev/null +++ b/Source/Aura/Private/AI/Services/BTService_FindNearestPlayer.cpp @@ -0,0 +1,45 @@ +// Amasson + + +#include "AI/Services/BTService_FindNearestPlayer.h" +#include "AIController.h" +#include "Kismet/GameplayStatics.h" +#include "BehaviorTree/BTFunctionLibrary.h" +#include "DrawDebugHelpers.h" + +void UBTService_FindNearestPlayer::TickNode(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, float DeltaSeconds) +{ + Super::TickNode(OwnerComp, NodeMemory, DeltaSeconds); + + APawn* OwningPawn = AIOwner->GetPawn(); + + if (!OwningPawn) + return; + + const FName TargetTag = OwningPawn->ActorHasTag(FName("Enemy")) ? FName("Player") : FName("Enemy"); + + TArray ActorsWithTag; + UGameplayStatics::GetAllActorsWithTag(OwningPawn, TargetTag, ActorsWithTag); + + float ClosestRange = MaxRange; + AActor* ClosestActor = nullptr; + for (AActor* ActorWithTag : ActorsWithTag) + { + if (IsValid(ActorWithTag) && IsValid(OwningPawn)) + { + float Distance = OwningPawn->GetDistanceTo(ActorWithTag); + if (Distance < ClosestRange) + { + ClosestRange = Distance; + ClosestActor = ActorWithTag; + } + } + } + + // if (ClosestActor) + // DrawDebugLine(GetWorld(), OwningPawn->GetActorLocation(), ClosestActor->GetActorLocation(), + // FColor::Red, false, 0.5f); + + UBTFunctionLibrary::SetBlackboardValueAsObject(this, TargetToFollowSelector, ClosestActor); + UBTFunctionLibrary::SetBlackboardValueAsFloat(this, DistanceToTargetSelector, ClosestRange); +} diff --git a/Source/Aura/Private/AI/Tasks/BTTask_Attack.cpp b/Source/Aura/Private/AI/Tasks/BTTask_Attack.cpp new file mode 100644 index 0000000..c5b6d0f --- /dev/null +++ b/Source/Aura/Private/AI/Tasks/BTTask_Attack.cpp @@ -0,0 +1,11 @@ +// Amasson + + +#include "AI/Tasks/BTTask_Attack.h" + +EBTNodeResult::Type UBTTask_Attack::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) +{ + return Super::ExecuteTask(OwnerComp, NodeMemory); + + +} diff --git a/Source/Aura/Private/AbilitySystem/Abilities/AuraDamageGameplayAbility.cpp b/Source/Aura/Private/AbilitySystem/Abilities/AuraDamageGameplayAbility.cpp new file mode 100644 index 0000000..2957266 --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/Abilities/AuraDamageGameplayAbility.cpp @@ -0,0 +1,47 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "AbilitySystem/Abilities/AuraDamageGameplayAbility.h" +#include "AbilitySystemBlueprintLibrary.h" + +FGameplayEffectSpecHandle& UAuraDamageGameplayAbility::AssignAbilityLevelDamagesSetByCallerMagnitude(FGameplayEffectSpecHandle& EffectSpecHandle, float Factor) const +{ + for (const TPair& Damage : Damages) + { + UAbilitySystemBlueprintLibrary::AssignTagSetByCallerMagnitude(EffectSpecHandle, Damage.Key, Damage.Value.GetValueAtLevel(GetAbilityLevel()) * Factor); + } + return EffectSpecHandle; +} + +void UAuraDamageGameplayAbility::GetScaledDamages(TMap& ScaledDamages, float Level) const +{ + const float TargetLevel = Level < 0 ? GetAbilityLevel() : Level; + + for (const TPair& Damage : Damages) + { + const float ScaledValue = Damage.Value.GetValueAtLevel(TargetLevel); + ScaledDamages.Add(Damage.Key, ScaledValue); + } +} + +TMap UAuraDamageGameplayAbility::MultiplyDamagesByFloat(const TMap& InDamages, float Factor) +{ + TMap NewDamages = InDamages; + for (TPair& ScaledDamage : NewDamages) + { + ScaledDamage.Value *= Factor; + } + return NewDamages; +} + +TMap UAuraDamageGameplayAbility::MultiplyDamageTypesByFloats(const TMap& InDamages, const TMap& Factors) +{ + TMap NewDamages = InDamages; + for (const TPair& Factor : Factors) + { + float *TargetValue = NewDamages.Find(Factor.Key); + if (TargetValue) + *TargetValue *= Factor.Value; + } + return NewDamages; +} diff --git a/Source/Aura/Private/AbilitySystem/Abilities/AuraGameplayAbility.cpp b/Source/Aura/Private/AbilitySystem/Abilities/AuraGameplayAbility.cpp new file mode 100644 index 0000000..c13696e --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/Abilities/AuraGameplayAbility.cpp @@ -0,0 +1,27 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "AbilitySystem/Abilities/AuraGameplayAbility.h" +#include "Interaction/CombatInterface.h" + + +FTransform UAuraGameplayAbility::MakeProjectileSpawnTransform(FGameplayTag SocketTagName, const FVector& TargetLocation, float Pitch) const +{ + FTransform SpawnTransform; + + AActor* Avatar = GetAvatarActorFromActorInfo(); + + if (!IsValid(Avatar)) + return SpawnTransform; + + if (Avatar->Implements()) + SpawnTransform.SetLocation(ICombatInterface::Execute_GetCombatSocketLocation(Avatar, SocketTagName)); + else + SpawnTransform.SetLocation(Avatar->GetActorLocation()); + + FRotator Rotation = (TargetLocation - SpawnTransform.GetLocation()).Rotation(); + Rotation.Pitch = Pitch; + SpawnTransform.SetRotation(Rotation.Quaternion()); + + return SpawnTransform; +} diff --git a/Source/Aura/Private/AbilitySystem/Abilities/AuraSummonAbility.cpp b/Source/Aura/Private/AbilitySystem/Abilities/AuraSummonAbility.cpp new file mode 100644 index 0000000..795ae24 --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/Abilities/AuraSummonAbility.cpp @@ -0,0 +1,108 @@ +// Amasson + + +#include "AbilitySystem/Abilities/AuraSummonAbility.h" +#include "NavigationSystem.h" +#include "Kismet/KismetMathLibrary.h" +#include "GameFramework/Character.h" + +UAuraSummonAbility::UAuraSummonAbility() +{ + InstancingPolicy = EGameplayAbilityInstancingPolicy::InstancedPerActor; +} + +ACharacter* UAuraSummonAbility::SummonCharacter(TSubclassOf Class, const FVector& Location, float YawOffset) +{ + if (!GetAvatarActorFromActorInfo()->HasAuthority()) + return nullptr; + + AActor* Owner = GetOwningActorFromActorInfo(); + AActor* Avatar = GetAvatarActorFromActorInfo(); + + FTransform SpawnTransform; + + SpawnTransform.SetLocation(Location); + + FVector SpawnDirection = Location - Avatar->GetActorLocation(); + SpawnDirection.Z = 0.0f; + FRotator Rotation = UKismetMathLibrary::MakeRotFromX(SpawnDirection); + Rotation.Yaw += YawOffset; + + SpawnTransform.SetRotation(Rotation.Quaternion()); + + FActorSpawnParameters SpawnParameters; + SpawnParameters.Owner = Owner; + SpawnParameters.Instigator = Cast(Avatar); + SpawnParameters.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn; + + ACharacter* Character = GetWorld()->SpawnActor(Class, SpawnTransform, SpawnParameters); + + if (!Character) + return nullptr; + + SpawnedCharacters.Add(Character); + + Character->OnDestroyed.AddDynamic(this, &UAuraSummonAbility::SummonDestroyed); + + OnSpawnedCharactersChange.Broadcast(this); + + return Character; +} + +void UAuraSummonAbility::SummonDestroyed(AActor* DestroyedActor) +{ + bool bRemovedOne = false; + + if (DestroyedActor) + { + if (ACharacter* DestroyedCharacter = Cast(DestroyedActor)) + { + if (SpawnedCharacters.RemoveSingle(DestroyedCharacter)) + { + bRemovedOne = true; + } + } + } + for (int32 i = SpawnedCharacters.Num() - 1; i >= 0; --i) + { + if (!IsValid(SpawnedCharacters[i])) + { + SpawnedCharacters.RemoveAt(i); + bRemovedOne = true; + } + } + if (bRemovedOne) + OnSpawnedCharactersChange.Broadcast(this); +} + +TArray UAuraSummonAbility::GetSpawnLocations() +{ + TArray Locations; + + AActor* Avatar = GetAvatarActorFromActorInfo(); + + FVector AvatarLocation = Avatar->GetActorLocation(); + FVector AvatarForward = Avatar->GetActorForwardVector(); + + float StepAngle = SpawnSpreadAngle / (SpawnCount - 1); + FVector Direction = SpawnCount == 1 ? + AvatarForward : + AvatarForward.RotateAngleAxis(-SpawnSpreadAngle / 2.0f, FVector::UpVector); + + for (int32 i = 0; i < SpawnCount; i++) + { + FVector Location = AvatarLocation + Direction * FMath::FRandRange(SpawnMinDistance, SpawnMaxDistance); + Direction = Direction.RotateAngleAxis(StepAngle, FVector::UpVector); + + FNavLocation NavLoc; + UNavigationSystemV1* NavSystem = UNavigationSystemV1::GetCurrent(GetWorld()); + if (!NavSystem->ProjectPointToNavigation(Location, NavLoc)) + continue; + + Location = NavLoc.Location; + + Locations.Add(Location); + } + + return Locations; +} diff --git a/Source/Aura/Private/AbilitySystem/AbilitySystemTypes.cpp b/Source/Aura/Private/AbilitySystem/AbilitySystemTypes.cpp new file mode 100644 index 0000000..f2560d4 --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/AbilitySystemTypes.cpp @@ -0,0 +1,140 @@ + +#include "AbilitySystem/AbilitySystemTypes.h" + +FGameplayEffectContext* FAuraGameplayEffectContext::Duplicate() const +{ + FGameplayEffectContext* NewContext = new FGameplayEffectContext(); + *NewContext = *this; + if (GetHitResult()) + { + // Does a deep copy of the hit result + NewContext->AddHitResult(*GetHitResult(), true); + } + return NewContext; +} + +bool FAuraGameplayEffectContext::NetSerialize(FArchive& Ar, UPackageMap* Map, bool& bOutSuccess) +{ + uint32 RepBits = 0; + if (Ar.IsSaving()) + { + if (bReplicateInstigator && Instigator.IsValid()) + { + RepBits |= 1 << 0; + } + if (bReplicateEffectCauser && EffectCauser.IsValid() ) + { + RepBits |= 1 << 1; + } + if (AbilityCDO.IsValid()) + { + RepBits |= 1 << 2; + } + if (bReplicateSourceObject && SourceObject.IsValid()) + { + RepBits |= 1 << 3; + } + if (Actors.Num() > 0) + { + RepBits |= 1 << 4; + } + if (HitResult.IsValid()) + { + RepBits |= 1 << 5; + } + if (bHasWorldOrigin) + { + RepBits |= 1 << 6; + } + if (bIsBlockedHit) + { + RepBits |= 1 << 7; + } + if (bIsCriticalHit) + { + RepBits |= 1 << 8; + } + if (!HitImpulse.IsZero()) + { + RepBits |= 1 << 9; + } + } + + Ar.SerializeBits(&RepBits, 10); + + if (RepBits & (1 << 0)) + { + Ar << Instigator; + } + if (RepBits & (1 << 1)) + { + Ar << EffectCauser; + } + if (RepBits & (1 << 2)) + { + Ar << AbilityCDO; + } + if (RepBits & (1 << 3)) + { + Ar << SourceObject; + } + if (RepBits & (1 << 4)) + { + SafeNetSerializeTArray_Default<31>(Ar, Actors); + } + if (RepBits & (1 << 5)) + { + if (Ar.IsLoading()) + { + if (!HitResult.IsValid()) + { + HitResult = TSharedPtr(new FHitResult()); + } + } + HitResult->NetSerialize(Ar, Map, bOutSuccess); + } + if (RepBits & (1 << 6)) + { + Ar << WorldOrigin; + bHasWorldOrigin = true; + } + else + { + bHasWorldOrigin = false; + } + if (RepBits & (1 << 7)) + { + Ar << bIsBlockedHit; + } + if (RepBits & (1 << 8)) + { + Ar << bIsCriticalHit; + } + if (RepBits & (1 << 9)) + { + HitImpulse.NetSerialize(Ar, Map, bOutSuccess); + } + + if (Ar.IsLoading()) + { + AddInstigator(Instigator.Get(), EffectCauser.Get()); // Just to initialize InstigatorAbilitySystemComponent + } + + bOutSuccess = true; + return true; +} + +// bool FAuraGameplayEffectContext::NetSerialize(FArchive& Ar, class UPackageMap* Map, bool& bOutSuccess) +// { +// if (!Super::NetSerialize(Ar, Map, bOutSuccess)) +// { +// bOutSuccess = false; +// return false; +// } + +// Ar << bIsBlockedHit; +// Ar << bIsCriticalHit; + +// bOutSuccess = true; +// return true; +// } diff --git a/Source/Aura/Private/AbilitySystem/AuraAbilitySystemComponent.cpp b/Source/Aura/Private/AbilitySystem/AuraAbilitySystemComponent.cpp new file mode 100644 index 0000000..7d2d9ac --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/AuraAbilitySystemComponent.cpp @@ -0,0 +1,474 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "AbilitySystem/Abilities/AuraGameplayAbility.h" +#include "GameplayEffect.h" +#include "AuraGameplayTags.h" +#include "AbilitySystemBlueprintLibrary.h" +#include "AbilitySystem/AuraAbilitySystemLibrary.h" +#include "AbilitySystem/Components/GameplayEffectInterceptor.h" + +void UAuraAbilitySystemComponent::AbilitySystemInitDone() +{ + OnGameplayEffectAppliedDelegateToSelf.AddUObject(this, &UAuraAbilitySystemComponent::ClientOnEffectApplied); +} + +void UAuraAbilitySystemComponent::GrantAbility(const FGameplayAbilityGrant& Grant) +{ + FGameplayAbilitySpec AbilitySpec(Grant.Class, Grant.Level); + if (Grant.InputTag.IsValid()) + AbilitySpec.DynamicAbilityTags.AddTag(Grant.InputTag); + if (Grant.ActiveOnGranted) + GiveAbilityAndActivateOnce(AbilitySpec); + else + GiveAbility(AbilitySpec); +} + +void UAuraAbilitySystemComponent::GrantStartupAbilities(const TArray& Abilities) +{ + for (const FGameplayAbilityGrant& Ability : Abilities) + { + GrantAbility(Ability); + } + bStartupAbilitiesGiven = true; + + ForEachAbilityLambda([this](FGameplayAbilitySpec& AbilitySpec) { + OnAbilitySpecChange.Broadcast(this, AbilitySpec); + }); +} + +void UAuraAbilitySystemComponent::AbilityInputTagPressed(const FGameplayTag& InputTag) +{ + if (!InputTag.IsValid()) + return; + + for (FGameplayAbilitySpec& AbilitySpec : GetActivatableAbilities()) + { + if (AbilitySpec.DynamicAbilityTags.HasTagExact(InputTag)) + { + AbilitySpecInputPressed(AbilitySpec); + if (AbilitySpec.IsActive()) + { + InvokeReplicatedEvent(EAbilityGenericReplicatedEvent::InputPressed, AbilitySpec.Handle, AbilitySpec.ActivationInfo.GetActivationPredictionKey()); + } + } + } +} + +void UAuraAbilitySystemComponent::AbilityInputTagHeld(const FGameplayTag& InputTag) +{ + if (!InputTag.IsValid()) + return; + + if (HasMatchingGameplayTag(FAuraGameplayTags::Get().Player_Block_AbilityInput)) + return; + + for (FGameplayAbilitySpec& AbilitySpec : GetActivatableAbilities()) + { + if (AbilitySpec.DynamicAbilityTags.HasTagExact(InputTag)) + { + if (!AbilitySpec.IsActive()) + { + AbilitySpecInputPressed(AbilitySpec); + TryActivateAbility(AbilitySpec.Handle); + } + } + } +} + +void UAuraAbilitySystemComponent::AbilityInputTagReleased(const FGameplayTag& InputTag) +{ + if (!InputTag.IsValid()) + return; + + for (FGameplayAbilitySpec& AbilitySpec : GetActivatableAbilities()) + { + if (AbilitySpec.DynamicAbilityTags.HasTagExact(InputTag)) + { + AbilitySpecInputReleased(AbilitySpec); + if (AbilitySpec.IsActive()) + { + InvokeReplicatedEvent(EAbilityGenericReplicatedEvent::InputReleased, AbilitySpec.Handle, AbilitySpec.ActivationInfo.GetActivationPredictionKey()); + } + } + } +} + +void UAuraAbilitySystemComponent::ForEachAbilityDelegate(const FForEachAbilityDelegate& Delegate) +{ + FScopedAbilityListLock ActiveScopeLock(*this); + for (const FGameplayAbilitySpec& AbilitySpec : GetActivatableAbilities()) + { + Delegate.ExecuteIfBound(AbilitySpec); + } +} + +void UAuraAbilitySystemComponent::ForEachAbilityLambda(std::function Func) +{ + FScopedAbilityListLock ActiveScopeLock(*this); + for (FGameplayAbilitySpec& AbilitySpec : GetActivatableAbilities()) + { + Func(AbilitySpec); + } +} + +/** Receiving Effect Interception */ +FActiveGameplayEffectHandle UAuraAbilitySystemComponent::ApplyGameplayEffectSpecToSelf(const FGameplayEffectSpec& GameplayEffect, FPredictionKey PredictionKey) +{ + for (int32 Index = EffectInterceptors.Num() - 1; Index >= 0; --Index) + { + if (!IsValid(EffectInterceptors[Index]) || !EffectInterceptors[Index]->Implements()) + EffectInterceptors.RemoveAt(Index); + } + + for (UObject* Interceptor : EffectInterceptors) + { + bool bIntercepted = false; + + IGameplayEffectInterceptor::Execute_WillApplyGameplayEffectSpec(Interceptor, GameplayEffect, bIntercepted); + + if (bIntercepted) + return FActiveGameplayEffectHandle(); + } + + return Super::ApplyGameplayEffectSpecToSelf(GameplayEffect, PredictionKey); +} + +void UAuraAbilitySystemComponent::AddGameplayEffectInterceptor(UObject* Interceptor) +{ + if (!IsValid(Interceptor) || !Interceptor->Implements()) + return; + + EffectInterceptors.Add(Interceptor); +} + +void UAuraAbilitySystemComponent::RemoveGameplayEffectInterceptor(UObject* Interceptor) +{ + EffectInterceptors.Remove(Interceptor); +} + + +/** Ability Tags */ + +bool UAuraAbilitySystemComponent::AbilityHasIDTag(const UGameplayAbility* Ability) +{ + if (Ability) + return Ability->AbilityTags.HasTag(FAuraGameplayTags::Get().Ability_ID); + return false; +} + +FGameplayTag UAuraAbilitySystemComponent::GetAbilityIDTagFromAbility(const UGameplayAbility* Ability) +{ + if (Ability) + { + for (FGameplayTag Tag : Ability->AbilityTags) + { + if (Tag.MatchesTag(FAuraGameplayTags::Get().Ability_ID)) + { + return Tag; + } + } + } + return FGameplayTag::EmptyTag; +} + +bool UAuraAbilitySystemComponent::AbilitySpecHasInputTag(const FGameplayAbilitySpec& AbilitySpec) +{ + return AbilitySpec.DynamicAbilityTags.HasTag(FAuraGameplayTags::Get().InputTag); +} + +FGameplayTag UAuraAbilitySystemComponent::GetInputTagFromAbilitySpec(const FGameplayAbilitySpec& AbilitySpec) +{ + for (FGameplayTag Tag : AbilitySpec.DynamicAbilityTags) + { + if (Tag.MatchesTag(FAuraGameplayTags::Get().InputTag)) + { + return Tag; + } + } + return FGameplayTag::EmptyTag; +} + +bool UAuraAbilitySystemComponent::AbilityHasCooldownTag(const UGameplayAbility* Ability) +{ + if (Ability) + return Ability->AbilityTags.HasTag(FAuraGameplayTags::Get().Ability_Cooldown); + return false; +} + +FGameplayTag UAuraAbilitySystemComponent::GetCooldownTagFromAbility(const UGameplayAbility* Ability) +{ + if (Ability) + { + if (const FGameplayTagContainer* CooldownTags = Ability->GetCooldownTags()) + { + for (FGameplayTag Tag : *CooldownTags) + { + if (Tag.MatchesTag(FAuraGameplayTags::Get().Ability_Cooldown)) + { + return Tag; + } + } + } + } + return FGameplayTag::EmptyTag; +} + +bool UAuraAbilitySystemComponent::AbilitySpecHasStatusTag(const FGameplayAbilitySpec& AbilitySpec) +{ + return AbilitySpec.DynamicAbilityTags.HasTag(FAuraGameplayTags::Get().Ability_Status); +} + +FGameplayTag UAuraAbilitySystemComponent::GetStatusTagFromAbilitySpec(const FGameplayAbilitySpec& AbilitySpec) +{ + for (FGameplayTag Tag : AbilitySpec.DynamicAbilityTags) + { + if (Tag.MatchesTag(FAuraGameplayTags::Get().Ability_Status)) + { + return Tag; + } + } + return FGameplayTag::EmptyTag; +} + +bool UAuraAbilitySystemComponent::AbilityHasTypeTag(const UGameplayAbility* Ability) +{ + if (Ability) + return Ability->AbilityTags.HasTag(FAuraGameplayTags::Get().Ability_Type); + return false; +} + +FGameplayTag UAuraAbilitySystemComponent::GetTypeTagFromAbility(const UGameplayAbility* Ability) +{ + if (Ability) + { + for (FGameplayTag Tag : Ability->AbilityTags) + { + if (Tag.MatchesTag(FAuraGameplayTags::Get().Ability_Type)) + { + return Tag; + } + } + } + return FGameplayTag::EmptyTag; +} + + +/** End Ability Tags */ + + +/** Attributes Modifications */ + +void UAuraAbilitySystemComponent::AddAttributePoints(float Count, const FGameplayTag& AttributeTag) +{ + FGameplayEventData Payload; + Payload.EventTag = AttributeTag; + Payload.EventMagnitude = Count; + UAbilitySystemBlueprintLibrary::SendGameplayEventToActor(GetAvatarActor(), AttributeTag, Payload); +} + + +/** Ability Level */ + +void UAuraAbilitySystemComponent::SetLevelForAbilitySpec(FGameplayAbilitySpec& AbilitySpec, int32 NewLevel) +{ + if (AbilitySpec.Level != NewLevel) + { + AbilitySpec.Level = NewLevel; + UpdateStatusTagForAbilitySpec(AbilitySpec); + + ActivateAbilityIfEquippedPassive(AbilitySpec); + } +} + +void UAuraAbilitySystemComponent::AddLevelForAbilitySpec(FGameplayAbilitySpec& AbilitySpec, int32 AddLevel) +{ + SetLevelForAbilitySpec(AbilitySpec, AbilitySpec.Level + AddLevel); +} + + +/** Managing Tags */ + +FGameplayAbilitySpec* UAuraAbilitySystemComponent::GetAbilitySpecForAbilityIDTag(const FGameplayTag& AbilityIDTag) +{ + FScopedAbilityListLock ActiveScopeLock(*this); + for (FGameplayAbilitySpec& AbilitySpec : GetActivatableAbilities()) + { + if (UAuraAbilitySystemComponent::GetAbilityIDTagFromAbility(AbilitySpec.Ability).MatchesTag(AbilityIDTag)) + { + return &AbilitySpec; + } + } + return nullptr; +} + +void UAuraAbilitySystemComponent::GetAbilitySpecsForInputTag(const FGameplayTag& InputTag, TArray& AbilitySpecs) +{ + FScopedAbilityListLock ActiveScopeLock(*this); + for (FGameplayAbilitySpec& AbilitySpec : GetActivatableAbilities()) + { + if (AbilitySpec.DynamicAbilityTags.HasTag(InputTag)) + { + AbilitySpecs.Add(&AbilitySpec); + } + } +} + + +/** Manage Status Tags */ + +bool UAuraAbilitySystemComponent::GetStatusTagForAbilityIDTag(const FGameplayTag AbilityIDTag, FGameplayTag& StatusTag) +{ + if (FGameplayAbilitySpec* AbilitySpec = GetAbilitySpecForAbilityIDTag(AbilityIDTag)) + { + FGameplayTag SpecStatusTag = GetStatusTagFromAbilitySpec(*AbilitySpec); + if (SpecStatusTag.IsValid()) + { + StatusTag = SpecStatusTag; + return true; + } + } + return false; +} + + +/** Manage Input Tags */ + +void UAuraAbilitySystemComponent::RemoveInputTagFromAbilitySpec(FGameplayAbilitySpec& AbilitySpec, bool bBroadcastUpdate) +{ + if (UAuraAbilitySystemLibrary::RemoveMatchingTagsFromTagContainer(AbilitySpec.DynamicAbilityTags, FAuraGameplayTags::Get().InputTag)) + { + if (AbilitySpec.IsActive()) + CancelAbilityHandle(AbilitySpec.Handle); + + UpdateStatusTagForAbilitySpec(AbilitySpec, bBroadcastUpdate); + } +} + +void UAuraAbilitySystemComponent::ClearAbilitiesFromInputTag(const FGameplayTag& InputTag) +{ + TArray AbilitySpecs; + GetAbilitySpecsForInputTag(InputTag, AbilitySpecs); + + for (FGameplayAbilitySpec* AbilitySpec : AbilitySpecs) + { + RemoveInputTagFromAbilitySpec(*AbilitySpec); + } +} + +void UAuraAbilitySystemComponent::AssignInputTagToAbilitySpec(const FGameplayTag& InputTag, FGameplayAbilitySpec& AbilitySpec) +{ + RemoveInputTagFromAbilitySpec(AbilitySpec, false); + + ClearAbilitiesFromInputTag(InputTag); + + AbilitySpec.DynamicAbilityTags.AddTag(InputTag); + + UpdateStatusTagForAbilitySpec(AbilitySpec, true); + + ActivateAbilityIfEquippedPassive(AbilitySpec); +} + + +/** + * Protected +*/ + +void UAuraAbilitySystemComponent::UpdateStatusTagForAbilitySpec(FGameplayAbilitySpec& AbilitySpec, bool bBroadcastUpdate) +{ + FGameplayTag StatusTag; + if (AbilitySpec.DynamicAbilityTags.HasTag(FAuraGameplayTags::Get().InputTag)) + StatusTag = FAuraGameplayTags::Get().Ability_Status_Equipped; + else if (AbilitySpec.Level > 0) + StatusTag = FAuraGameplayTags::Get().Ability_Status_Unlocked; + else + StatusTag = FAuraGameplayTags::Get().Ability_Status_Eligible; + + SetStatusTagForAbilitySpec(AbilitySpec, StatusTag, bBroadcastUpdate); + + if (bBroadcastUpdate) + { + const FGameplayTag& AbilityID = GetAbilityIDTagFromAbility(AbilitySpec.Ability); + Client_UpdateAbilityStatus(AbilityID, StatusTag, AbilitySpec.Level); + } +} + +void UAuraAbilitySystemComponent::SetStatusTagForAbilitySpec(FGameplayAbilitySpec& AbilitySpec, const FGameplayTag& StatusTag, bool bBroadcastUpdate) +{ + UAuraAbilitySystemLibrary::RemoveMatchingTagsFromTagContainer(AbilitySpec.DynamicAbilityTags, FAuraGameplayTags::Get().Ability_Status); + AbilitySpec.DynamicAbilityTags.AddTag(StatusTag); + MarkAbilitySpecDirty(AbilitySpec); + + if (bBroadcastUpdate && bStartupAbilitiesGiven) + OnAbilitySpecChange.Broadcast(this, AbilitySpec); +} + +void UAuraAbilitySystemComponent::ActivateAbilityIfEquippedPassive(FGameplayAbilitySpec& AbilitySpec) +{ + bool bIsEquipped = GetStatusTagFromAbilitySpec(AbilitySpec).MatchesTagExact(FAuraGameplayTags::Get().Ability_Status_Equipped); + if (!bIsEquipped) return; + + const FGameplayTag AbilityType = GetTypeTagFromAbility(AbilitySpec.Ability); + const bool bIsPassiveAbility = AbilityType.MatchesTagExact(FAuraGameplayTags::Get().Ability_Type_Passive); + if (!bIsPassiveAbility) return; + + TryActivateAbility(AbilitySpec.Handle); +} + +void UAuraAbilitySystemComponent::OnRep_ActivateAbilities() +{ + Super::OnRep_ActivateAbilities(); + + if (!bStartupAbilitiesGiven) + { + bStartupAbilitiesGiven = true; + ForEachAbilityLambda([this](FGameplayAbilitySpec& AbilitySpec) { + OnAbilitySpecChange.Broadcast(this, AbilitySpec); + }); + } +} + +void UAuraAbilitySystemComponent::OnGiveAbility(FGameplayAbilitySpec& Spec) +{ + Super::OnGiveAbility(Spec); + + UE_LOG(LogTemp, Warning, TEXT("OnGiveAbility(%s) [%s]"), + *GetAbilityIDTagFromAbility(Spec.Ability).ToString(), + *GetInputTagFromAbilitySpec(Spec).ToString() + ); + + UpdateStatusTagForAbilitySpec(Spec); +} + +void UAuraAbilitySystemComponent::OnRemoveAbility(FGameplayAbilitySpec& Spec) +{ + Super::OnRemoveAbility(Spec); + + UE_LOG(LogTemp, Warning, TEXT("OnRemoveAbility(%s) [%s]"), + *GetAbilityIDTagFromAbility(Spec.Ability).ToString(), + *GetInputTagFromAbilitySpec(Spec).ToString() + ); + + if (bStartupAbilitiesGiven) + { + OnAbilitySpecRemoving.Broadcast(this, Spec); + } +} + +void UAuraAbilitySystemComponent::ClientOnEffectApplied_Implementation(UAbilitySystemComponent* ASC, const FGameplayEffectSpec& EffectSpec, FActiveGameplayEffectHandle EffectHandle) +{ + FGameplayTagContainer TagContainer; + EffectSpec.GetAllAssetTags(TagContainer); + + OnEffectAssetTags.Broadcast(TagContainer); +} + +void UAuraAbilitySystemComponent::Client_UpdateAbilityStatus_Implementation(const FGameplayTag& AbilityID, const FGameplayTag& Status, int32 Level) +{ + FGameplayAbilitySpec* AbilitySpec = GetAbilitySpecForAbilityIDTag(AbilityID); + if (!AbilitySpec) return; + + AbilitySpec->Level = Level; + SetStatusTagForAbilitySpec(*AbilitySpec, Status); +} diff --git a/Source/Aura/Private/AbilitySystem/AuraAbilitySystemGlobals.cpp b/Source/Aura/Private/AbilitySystem/AuraAbilitySystemGlobals.cpp new file mode 100644 index 0000000..ed722c6 --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/AuraAbilitySystemGlobals.cpp @@ -0,0 +1,10 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "AbilitySystem/AuraAbilitySystemGlobals.h" +#include "AbilitySystem/AbilitySystemTypes.h" + +FGameplayEffectContext* UAuraAbilitySystemGlobals::AllocGameplayEffectContext() const +{ + return new FAuraGameplayEffectContext(); +} diff --git a/Source/Aura/Private/AbilitySystem/AuraAbilitySystemLibrary.cpp b/Source/Aura/Private/AbilitySystem/AuraAbilitySystemLibrary.cpp new file mode 100644 index 0000000..662840c --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/AuraAbilitySystemLibrary.cpp @@ -0,0 +1,295 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "AbilitySystem/AuraAbilitySystemLibrary.h" +#include "AbilitySystem/Abilities/AuraDamageGameplayAbility.h" +#include "AuraGameplayTags.h" +#include "GameplayEffect.h" +#include "Kismet/GameplayStatics.h" +#include "GameFramework/Character.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "AbilitySystem/AuraAttributeSet.h" +#include "Player/AuraPlayerController.h" +#include "Player/AuraPlayerState.h" +#include "AbilitySystemBlueprintLibrary.h" + +const TArray& UAuraAbilitySystemLibrary::GetAllDamageTags() +{ + return FAuraGameplayTags::Get().DamageTypes; +} + +void UAuraAbilitySystemLibrary::GetResistanceTagForDamageTag(FGameplayTag DamageTag, FGameplayTag& ResistanceTag, bool& bFound) +{ + if (const FGameplayTag* Ptr = FAuraGameplayTags::Get().DamageResistanceMap.Find(DamageTag)) + { + ResistanceTag = *Ptr; + bFound = true; + } + else + { + bFound = false; + } +} + +bool UAuraAbilitySystemLibrary::IsBlockedHit(const FGameplayEffectContextHandle& EffectContextHandle) +{ + if (const FAuraGameplayEffectContext* AuraEffectContext = static_cast(EffectContextHandle.Get())) + { + return AuraEffectContext->bIsBlockedHit; + } + return false; +} + +void UAuraAbilitySystemLibrary::SetIsBlockedHit(FGameplayEffectContextHandle& EffectContextHandle, bool bNewIsBlockedHit) +{ + if (FAuraGameplayEffectContext* AuraEffectContext = static_cast(EffectContextHandle.Get())) + { + AuraEffectContext->bIsBlockedHit = bNewIsBlockedHit; + } +} + +bool UAuraAbilitySystemLibrary::IsCriticalHit(const FGameplayEffectContextHandle& EffectContextHandle) +{ + if (const FAuraGameplayEffectContext* AuraEffectContext = static_cast(EffectContextHandle.Get())) + { + return AuraEffectContext->bIsCriticalHit; + } + return false; +} + +void UAuraAbilitySystemLibrary::SetIsCriticalHit(FGameplayEffectContextHandle& EffectContextHandle, bool bNewIsCriticalHit) +{ + if (FAuraGameplayEffectContext* AuraEffectContext = static_cast(EffectContextHandle.Get())) + { + AuraEffectContext->bIsCriticalHit = bNewIsCriticalHit; + } +} + +FVector UAuraAbilitySystemLibrary::GetHitImpulse(const FGameplayEffectContextHandle& EffectContextHandle) +{ + if (const FAuraGameplayEffectContext* AuraEffectContext = static_cast(EffectContextHandle.Get())) + { + return AuraEffectContext->HitImpulse; + } + return FVector::ZeroVector; +} + +void UAuraAbilitySystemLibrary::SetHitImpulse(FGameplayEffectContextHandle& EffectContextHandle, FVector NewHitImpulse) +{ + if (FAuraGameplayEffectContext* AuraEffectContext = static_cast(EffectContextHandle.Get())) + { + AuraEffectContext->HitImpulse = NewHitImpulse; + } +} + + +/** Attributes */ + + +#define TagDoFunction(AttributeName, CategoryName) \ + Function.ExecuteIfBound(FAuraGameplayTags::Get().Attributes_##CategoryName##_##AttributeName); + +void UAuraAbilitySystemLibrary::ForEachVitalAttributes(FGameplayTagDelegate Function) +{ + FOREACH_ATTRIBUTE_Vital(TagDoFunction); +} + +void UAuraAbilitySystemLibrary::ForEachPrimaryAttributes(FGameplayTagDelegate Function) +{ + FOREACH_ATTRIBUTE_Primary(TagDoFunction); +} + +void UAuraAbilitySystemLibrary::ForEachSecondaryAttributes(FGameplayTagDelegate Function) +{ + FOREACH_ATTRIBUTE_Secondary(TagDoFunction); +} + +void UAuraAbilitySystemLibrary::ForEachMagicalResistanceAttributes(FGameplayTagDelegate Function) +{ + FOREACH_ATTRIBUTE_MagicalResistance(TagDoFunction); +} + +void UAuraAbilitySystemLibrary::ForEachResistanceAttributes(FGameplayTagDelegate Function) +{ + FOREACH_ATTRIBUTE_Resistance(TagDoFunction); +} + +void UAuraAbilitySystemLibrary::ForEachMetaAttributes(FGameplayTagDelegate Function) +{ + FOREACH_ATTRIBUTE_Meta(TagDoFunction); +} + +void UAuraAbilitySystemLibrary::ForEachReplicatedAttributes(FGameplayTagDelegate Function) +{ + FOREACH_ATTRIBUTE_Replicated(TagDoFunction); +} + +void UAuraAbilitySystemLibrary::ForEachStatsAttributes(FGameplayTagDelegate Function) +{ + FOREACH_ATTRIBUTE_Stats(TagDoFunction); +} + +void UAuraAbilitySystemLibrary::ForEachAttributes(FGameplayTagDelegate Function) +{ + FOREACH_ATTRIBUTE_All(TagDoFunction); +} + + +bool UAuraAbilitySystemLibrary::RemoveMatchingTagsFromTagContainer(FGameplayTagContainer& TagContainer, FGameplayTag MatchingTag) +{ + TArray ToRemoveTags; + + for (FGameplayTag Tag : TagContainer) + { + if (Tag.MatchesTag(MatchingTag)) + { + ToRemoveTags.Add(Tag); + } + } + for (const FGameplayTag& ToRemoveTag : ToRemoveTags) + { + TagContainer.RemoveTag(ToRemoveTag); + } + return !ToRemoveTags.IsEmpty(); +} + +FGameplayTag UAuraAbilitySystemLibrary::GetAbilityIdFromAbilityClass(TSubclassOf AbilityClass) +{ + return UAuraAbilitySystemComponent::GetAbilityIDTagFromAbility(AbilityClass.GetDefaultObject()); +} + +FGameplayTag UAuraAbilitySystemLibrary::GetTypeTagFromAbilityClass(TSubclassOf AbilityClass) +{ + return UAuraAbilitySystemComponent::GetTypeTagFromAbility(AbilityClass.GetDefaultObject()); +} + +FGameplayTag UAuraAbilitySystemLibrary::GetCooldownTagFromAbilityClass(TSubclassOf AbilityClass) +{ + return UAuraAbilitySystemComponent::GetCooldownTagFromAbility(AbilityClass.GetDefaultObject()); +} + +void UAuraAbilitySystemLibrary::GetAbilityDamagesAtLevel(TSubclassOf DamageAbilityClass, float Level, TMap& Damages) +{ + if (DamageAbilityClass) + { + UAuraDamageGameplayAbility* DefaultObject = DamageAbilityClass.GetDefaultObject(); + + DefaultObject->GetScaledDamages(Damages, Level); + } +} + +void UAuraAbilitySystemLibrary::GetAbilityCostAtLevel(TSubclassOf AbilityClass, float Level, TMap& Costs) +{ + if (IsValid(AbilityClass)) + { + UGameplayAbility* DefaultObject = AbilityClass.GetDefaultObject(); + if (!IsValid(DefaultObject)) return; + + UGameplayEffect* CostEffect = DefaultObject->GetCostGameplayEffect(); + if (!IsValid(CostEffect)) return; + + for (const FGameplayModifierInfo& Modifier : CostEffect->Modifiers) + { + float CostMagnitude; + Modifier.ModifierMagnitude.GetStaticMagnitudeIfPossible(Level, CostMagnitude); + CostMagnitude *= -1; + + FString CostName = Modifier.Attribute.GetName(); + + if (float* PreviousValue = Costs.Find(CostName)) + Costs.Add(CostName, *PreviousValue + CostMagnitude); + else + Costs.Add(CostName, CostMagnitude); + } + } +} + +float UAuraAbilitySystemLibrary::GetAbilityCooldownTimeAtLevel(TSubclassOf AbilityClass, float Level) +{ + if (IsValid(AbilityClass)) + { + UGameplayAbility* DefaultObject = AbilityClass.GetDefaultObject(); + if (!IsValid(DefaultObject)) return 0.0f; + + UGameplayEffect* CooldownEffect = DefaultObject->GetCooldownGameplayEffect(); + if (!IsValid(CooldownEffect)) return 0.0f; + + float CooldownMagnitude; + CooldownEffect->DurationMagnitude.GetStaticMagnitudeIfPossible(Level, CooldownMagnitude); + return CooldownMagnitude; + } + return 0.0f; +} + + +/** Extract Infos From Effect Class */ + + +bool UAuraAbilitySystemLibrary::CheckGameplayEffectSpecHasTag(const FGameplayEffectSpec& EffectSpec, FGameplayTag Tag) +{ + FGameplayTagContainer TagContainer; + EffectSpec.GetAllAssetTags(TagContainer); + return TagContainer.HasTag(Tag); +} + + +void UAuraAbilitySystemLibrary::GetContextFromGameplayEffectSpec(const FGameplayEffectSpec& EffectSpec, FGameplayEffectContextHandle& Context) +{ + Context = EffectSpec.GetContext(); +} + +void UAuraAbilitySystemLibrary::ExtractPropertiesFromGameplayEffectContextHandle(const FGameplayEffectContextHandle& Context, FEffectProperties& Props) +{ + Props.EffectContextHandle = Context; + Props.SourceASC = Props.EffectContextHandle.GetOriginalInstigatorAbilitySystemComponent(); + + if (IsValid(Props.SourceASC) && Props.SourceASC->AbilityActorInfo.IsValid() && Props.SourceASC->AbilityActorInfo->AvatarActor.IsValid()) + { + Props.SourceAvatarActor = Props.SourceASC->AbilityActorInfo->AvatarActor.Get(); + Props.SourceController = Props.SourceASC->AbilityActorInfo->PlayerController.Get(); + if (Props.SourceController == nullptr && Props.SourceAvatarActor != nullptr) + { + if (const APawn* Pawn = Cast(Props.SourceAvatarActor)) + { + Props.SourceController = Pawn->GetController(); + } + } + if (Props.SourceController) + { + Props.SourceCharacter = Cast(Props.SourceController->GetPawn()); + } + } +} + +FActiveGameplayEffectHandle UAuraAbilitySystemLibrary::ApplyGameplayEffectWithParameters(const FGameplayEffectParameters& EffectParams, UAbilitySystemComponent* SourceASC, UAbilitySystemComponent* TargetASC) +{ + if (!IsValid(EffectParams.Class)) + return FActiveGameplayEffectHandle(); + + if (!IsValid(SourceASC)) + SourceASC = TargetASC; + + if (!IsValid(TargetASC)) + return FActiveGameplayEffectHandle(); + + FGameplayEffectContextHandle EffectContext = SourceASC->MakeEffectContext(); + EffectContext.AddSourceObject(SourceASC->GetAvatarActor()); + + if (!EffectParams.HitCollision.ImpactPoint.IsZero()) + EffectContext.AddHitResult(EffectParams.HitCollision); + + if (!EffectParams.HitImpulse.IsZero()) + SetHitImpulse(EffectContext, EffectParams.HitImpulse); + + if (IsValid(EffectParams.SourceAbility)) + EffectContext.SetAbility(EffectParams.SourceAbility); + + const FGameplayEffectSpecHandle SpecHandle = SourceASC->MakeOutgoingSpec(EffectParams.Class, EffectParams.Level, EffectContext); + + for (const TPair& SetByCallerMagnitude : EffectParams.SetByCallerMagnitudes) + { + UAbilitySystemBlueprintLibrary::AssignTagSetByCallerMagnitude(SpecHandle, SetByCallerMagnitude.Key, SetByCallerMagnitude.Value); + } + + return SourceASC->ApplyGameplayEffectSpecToTarget(*SpecHandle.Data, TargetASC); +} diff --git a/Source/Aura/Private/AbilitySystem/AuraAttributeSet.cpp b/Source/Aura/Private/AbilitySystem/AuraAttributeSet.cpp new file mode 100644 index 0000000..233e5c1 --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/AuraAttributeSet.cpp @@ -0,0 +1,180 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "AbilitySystem/AuraAttributeSet.h" +#include "AbilitySystemBlueprintLibrary.h" +#include "GameFramework/Character.h" +#include "GameplayEffectExtension.h" +#include "Net/UnrealNetwork.h" +#include "AuraGameplayTags.h" +#include "Interaction/CombatInterface.h" +#include "Interaction/PlayerInterface.h" +#include "Player/AuraPlayerController.h" +#include "AbilitySystem/AuraAttributeList.h" +#include "AbilitySystem/AuraAbilitySystemLibrary.h" +#include "AbilitySystem/Components/LevelingExperienceComponent.h" + +UAuraAttributeSet::UAuraAttributeSet() +{ + +} + +void UAuraAttributeSet::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const +{ + Super::GetLifetimeReplicatedProps(OutLifetimeProps); + +#define DeclareAttributeReplication(AttributeName, CategoryName) \ + DOREPLIFETIME_CONDITION_NOTIFY(UAuraAttributeSet, AttributeName, COND_None, REPNOTIFY_Always); + + FOREACH_ATTRIBUTE_Replicated(DeclareAttributeReplication); +} + +#define ImplementAttribute_OnRep(AttributeName, CategoryName) \ +void UAuraAttributeSet::OnRep_##AttributeName(const FGameplayAttributeData& Old##AttributeName) const \ +{ \ + GAMEPLAYATTRIBUTE_REPNOTIFY(UAuraAttributeSet, AttributeName, Old##AttributeName); \ +} + +FOREACH_ATTRIBUTE_Replicated(ImplementAttribute_OnRep) + +void UAuraAttributeSet::PreAttributeChange(const FGameplayAttribute& Attribute, float& NewValue) +{ + Super::PreAttributeChange(Attribute, NewValue); +} + +void UAuraAttributeSet::PostAttributeChange(const FGameplayAttribute& Attribute, float OldValue, float NewValue) +{ + Super::PostAttributeChange(Attribute, OldValue, NewValue); + + if (Attribute == GetMaxHealthAttribute()) + { + float HealthPercent = GetHealth() / OldValue; + SetHealth(HealthPercent * NewValue); + } + if (Attribute == GetMaxManaAttribute()) + { + float ManaPercent = GetMana() / OldValue; + SetMana(ManaPercent * NewValue); + } +} + +void UAuraAttributeSet::PostGameplayEffectExecute(const FGameplayEffectModCallbackData& Data) +{ + Super::PostGameplayEffectExecute(Data); + + if (Data.EvaluatedData.Attribute == GetHealthAttribute()) + { + SetHealth(FMath::Clamp(GetHealth(), 0.0f, GetMaxHealth())); + } + if (Data.EvaluatedData.Attribute == GetManaAttribute()) + { + SetMana(FMath::Clamp(GetMana(), 0.0f, GetMaxMana())); + } + if (Data.EvaluatedData.Attribute == GetIncomingDamageAttribute()) + { + HandleModificationData_IncomingDamage(Data); + } + if (Data.EvaluatedData.Attribute == GetIncomingXPAttribute()) + { + HandleModificationData_IncomingXP(Data); + } +} + +void UAuraAttributeSet::HandleModificationData_IncomingDamage(const FGameplayEffectModCallbackData& Data) +{ + FEffectProperties Props; + ExtractEffectModProperties(Data, Props); + + const float LocalIncomingDamage = GetIncomingDamage(); + SetIncomingDamage(0.0f); + + if (LocalIncomingDamage > 0.0f) + { + const bool Alive = GetHealth() > 0.0f; + const float NewHealth = GetHealth() - LocalIncomingDamage; + SetHealth(FMath::Clamp(NewHealth, 0, GetMaxHealth())); + + bool bFatal = NewHealth <= 0.0f; + + if (Alive && bFatal) + { + if (ICombatInterface* CombatInterface = Cast(Props.TargetAvatarActor)) + { + SendXPEvent(Props, ICombatInterface::Execute_GetDeathExperience(Props.TargetAvatarActor)); + ICombatInterface::Execute_Die(Props.TargetAvatarActor, Data.EffectSpec); + CombatInterface->GetOnDeathDelegate().Broadcast(Props.TargetAvatarActor, Data.EffectSpec); + } + } + AAuraPlayerController* SourcePC = IsValid(Props.SourceController) ? Cast(Props.SourceController) : nullptr; + AAuraPlayerController* TargetPC = IsValid(Props.TargetController) ? Cast(Props.TargetController) : nullptr; + if (SourcePC || TargetPC) + { + FFloatingDamage FloatingDamage; + FloatingDamage.Target = Props.TargetCharacter; + FloatingDamage.Damages = LocalIncomingDamage; + FloatingDamage.bIsBlockedHit = UAuraAbilitySystemLibrary::IsBlockedHit(Props.EffectContextHandle); + FloatingDamage.bIsCriticalHit = UAuraAbilitySystemLibrary::IsCriticalHit(Props.EffectContextHandle); + if (SourcePC) + SourcePC->Client_ShowFloatingDamages(FloatingDamage); + if (TargetPC) + TargetPC->Client_ShowReceivedDamages(FloatingDamage); + } + + FGameplayEventData Payload; + Payload.EventTag = FAuraGameplayTags::Get().Event_AbilitySystem_DamageApplied; + Payload.Instigator = Props.SourceAvatarActor; + Payload.Target = Props.TargetAvatarActor; + Payload.OptionalObject = Data.EffectSpec.GetContext().GetAbility(); + Payload.ContextHandle = Props.EffectContextHandle; + Payload.EventMagnitude = LocalIncomingDamage; + UAbilitySystemBlueprintLibrary::SendGameplayEventToActor( + Props.SourceAvatarActor, + FAuraGameplayTags::Get().Event_AbilitySystem_DamageApplied, + Payload + ); + } + +} + +void UAuraAttributeSet::HandleModificationData_IncomingXP(const FGameplayEffectModCallbackData& Data) +{ + FEffectProperties Props; + ExtractEffectModProperties(Data, Props); + + const float LocalIncomingXP = GetIncomingXP(); + SetIncomingXP(0.0f); + + if (Props.TargetAvatarActor->Implements()) + { + if (ULevelingExperienceComponent* LevelingExperience = IPlayerInterface::Execute_GetLevelingExperienceComponent(Props.TargetAvatarActor)) + { + LevelingExperience->AddToExperience(LocalIncomingXP); + } + } +} + +void UAuraAttributeSet::SendXPEvent(const FEffectProperties& Props, int32 DeathXp) +{ + FGameplayEventData Payload; + + Payload.EventTag = FAuraGameplayTags::Get().Attributes_Meta_IncomingXP; + Payload.EventMagnitude = DeathXp; + + UAbilitySystemBlueprintLibrary::SendGameplayEventToActor( + Props.SourceAvatarActor, + FAuraGameplayTags::Get().Attributes_Meta_IncomingXP, + Payload); +} + +void UAuraAttributeSet::ExtractEffectModProperties(const FGameplayEffectModCallbackData& Data, FEffectProperties& Props) const +{ + UAuraAbilitySystemLibrary::ExtractPropertiesFromGameplayEffectContextHandle(Data.EffectSpec.GetContext(), Props); + + if (Data.Target.AbilityActorInfo.IsValid() && Data.Target.AbilityActorInfo->AvatarActor.IsValid()) + { + Props.TargetAvatarActor = Data.Target.AbilityActorInfo->AvatarActor.Get(); + Props.TargetController = Data.Target.AbilityActorInfo->PlayerController.Get(); + Props.TargetCharacter = Cast(Props.TargetAvatarActor); + Props.TargetASC = UAbilitySystemBlueprintLibrary::GetAbilitySystemComponent(Props.TargetAvatarActor); + } +} \ No newline at end of file diff --git a/Source/Aura/Private/AbilitySystem/Components/GameplayEffectInterceptor.cpp b/Source/Aura/Private/AbilitySystem/Components/GameplayEffectInterceptor.cpp new file mode 100644 index 0000000..7c78a3c --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/Components/GameplayEffectInterceptor.cpp @@ -0,0 +1,6 @@ +// Amasson + + +#include "AbilitySystem/Components/GameplayEffectInterceptor.h" + +// Add default functionality here for any IGameplayEffectInterceptor functions that are not pure virtual. diff --git a/Source/Aura/Private/AbilitySystem/Components/LevelingExperienceComponent.cpp b/Source/Aura/Private/AbilitySystem/Components/LevelingExperienceComponent.cpp new file mode 100644 index 0000000..65191e5 --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/Components/LevelingExperienceComponent.cpp @@ -0,0 +1,127 @@ +// Amasson + + +#include "AbilitySystem/Components/LevelingExperienceComponent.h" +#include "Net/UnrealNetwork.h" +#include "AbilitySystem/Data/LevelingInfo.h" + +ULevelingExperienceComponent::ULevelingExperienceComponent() +{ + PrimaryComponentTick.bCanEverTick = false; + SetIsReplicatedByDefault(true); +} + +void ULevelingExperienceComponent::BeginPlay() +{ + Super::BeginPlay(); + + UpdateLevel(false); +} + +void ULevelingExperienceComponent::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const +{ + Super::GetLifetimeReplicatedProps(OutLifetimeProps); + + DOREPLIFETIME_CONDITION_NOTIFY(ULevelingExperienceComponent, Level, COND_None, REPNOTIFY_Always) + DOREPLIFETIME_CONDITION_NOTIFY(ULevelingExperienceComponent, Experience, COND_None, REPNOTIFY_Always); +} + +void ULevelingExperienceComponent::AddToLevel(int32 AddLevel, bool KeepProgressPercent) +{ + SetLevel(Level + AddLevel, KeepProgressPercent); +} + +void ULevelingExperienceComponent::SetLevel(int32 NewLevel, bool KeepProgressPercent) +{ + if (LevelingInfo) + { + int32 MinExperience, MaxExperience; + LevelingInfo->GetExperienceBoundsAtLevel(FMath::Min(NewLevel, LevelingInfo->MaxLevel), MinExperience, MaxExperience); + + int32 TargetXP = KeepProgressPercent ? + MinExperience + GetExperienceProgress() * (MaxExperience - MinExperience) : + FMath::Clamp(Experience, MinExperience, MaxExperience - 1); + + SetExperience(TargetXP); + } + else + { + Level = NewLevel; + OnLevelChanged.Broadcast(Level); + } +} + +void ULevelingExperienceComponent::AddToExperience(int32 AddExperience) +{ + SetExperience(Experience + AddExperience); +} + +void ULevelingExperienceComponent::SetExperience(int32 NewExperience) +{ + if (NewExperience != Experience) + { + bool IsForward = NewExperience > Experience; + Experience = NewExperience; + UpdateLevel(IsForward); + OnExperienceChanged.Broadcast(Experience, GetExperienceProgress()); + } +} + +float ULevelingExperienceComponent::GetExperienceProgress() const +{ + if (LevelingInfo) + { + int32 MinExperience, MaxExperience; + if (CachedLevel == Level) + { + MinExperience = CachedMinExperience; + MaxExperience = CachedMaxExperience; + } + else + LevelingInfo->GetExperienceBoundsAtLevel(Level, MinExperience, MaxExperience); + + return float(Experience - MinExperience) / float(MaxExperience - MinExperience); + } + return 0.0f; +} + +void ULevelingExperienceComponent::UpdateLevel(bool ForwardOnly) +{ + if (LevelingInfo) + { + bool NeedToCheckNewLevel = true; + if (Level == CachedLevel && ForwardOnly && Experience < CachedMaxExperience) + NeedToCheckNewLevel = false; + + if (NeedToCheckNewLevel) + { + int32 NewLevel = LevelingInfo->FindLevelForXP(Experience, ForwardOnly ? Level : 0); + if (Level != NewLevel) + { + Level = NewLevel; + UpdateCacheLevel(); + OnLevelChanged.Broadcast(Level); + } + } + } +} + +void ULevelingExperienceComponent::OnRep_Level(int32 OldLevel) const +{ + if (Level != OldLevel) + OnLevelChanged.Broadcast(Level); +} + +void ULevelingExperienceComponent::OnRep_Experience(int32 OldExperience) const +{ + OnExperienceChanged.Broadcast(Experience, GetExperienceProgress()); +} + +void ULevelingExperienceComponent::UpdateCacheLevel() +{ + if (LevelingInfo) + { + CachedLevel = Level; + LevelingInfo->GetExperienceBoundsAtLevel(CachedLevel, CachedMinExperience, CachedMaxExperience); + } +} diff --git a/Source/Aura/Private/AbilitySystem/Components/PerkPointsComponent.cpp b/Source/Aura/Private/AbilitySystem/Components/PerkPointsComponent.cpp new file mode 100644 index 0000000..52872fe --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/Components/PerkPointsComponent.cpp @@ -0,0 +1,85 @@ +// Amasson + + +#include "AbilitySystem/Components/PerkPointsComponent.h" +#include "Net/UnrealNetwork.h" + +UPerkPointsComponent::UPerkPointsComponent() +{ + PrimaryComponentTick.bCanEverTick = false; + SetIsReplicatedByDefault(true); +} + +void UPerkPointsComponent::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const +{ + Super::GetLifetimeReplicatedProps(OutLifetimeProps); + + DOREPLIFETIME_CONDITION_NOTIFY(UPerkPointsComponent, AttributePoints, COND_OwnerOnly, REPNOTIFY_OnChanged) + DOREPLIFETIME_CONDITION_NOTIFY(UPerkPointsComponent, AbilityPoints, COND_OwnerOnly, REPNOTIFY_OnChanged) +} + + +/** Attribute Points */ + +void UPerkPointsComponent::AddToAttributePoints(int32 AddingPoints) +{ + SetAttributePoints(AttributePoints + AddingPoints); +} + +int32 UPerkPointsComponent::SpendAttributePoints(int32 Count) +{ + int32 SpentCount = FMath::Min(Count, AttributePoints); + + if (SpentCount) + { + AddToAttributePoints(-SpentCount); + } + return SpentCount; +} + +void UPerkPointsComponent::SetAttributePoints(int32 NewPoints) +{ + if (AttributePoints != NewPoints) + { + AttributePoints = NewPoints; + OnAttributePointsChangedDelegate.Broadcast(AttributePoints); + } +} + +void UPerkPointsComponent::OnRep_AttributePoints(int32 OldAttributePoints) const +{ + OnAttributePointsChangedDelegate.Broadcast(AttributePoints); +} + + +/** Skill Points */ + +void UPerkPointsComponent::AddToAbilityPoints(int32 AddingPoints) +{ + SetAbilityPoints(AbilityPoints + AddingPoints); +} + +int32 UPerkPointsComponent::SpendAbilityPoints(int32 Count) +{ + int32 SpentCount = FMath::Min(Count, AbilityPoints); + + if (SpentCount) + { + AddToAbilityPoints(-SpentCount); + } + return SpentCount; +} + +void UPerkPointsComponent::SetAbilityPoints(int32 NewPoints) +{ + if (AbilityPoints != NewPoints) + { + AbilityPoints = NewPoints; + OnAbilityPointsChangedDelegate.Broadcast(AbilityPoints); + } +} + +void UPerkPointsComponent::OnRep_AbilityPoints(int32 OldAbilityPoints) const +{ + OnAbilityPointsChangedDelegate.Broadcast(AbilityPoints); +} diff --git a/Source/Aura/Private/AbilitySystem/Data/AbilityBook.cpp b/Source/Aura/Private/AbilitySystem/Data/AbilityBook.cpp new file mode 100644 index 0000000..c99deb4 --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/Data/AbilityBook.cpp @@ -0,0 +1,36 @@ +// Amasson + + +#include "AbilitySystem/Data/AbilityBook.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" + +const TMap& UAbilityBook::GetAbilities() +{ + if (!DictionaryInitialized) + { + for (FAuraAbilityInfo& AbilityInfo : AllAbilities) + { + FGameplayTag AbilityID = UAuraAbilitySystemComponent::GetAbilityIDTagFromAbility(AbilityInfo.Ability.GetDefaultObject()); + Abilities.Add(AbilityID, AbilityInfo); + } + DictionaryInitialized = true; + } + return Abilities; +} + +const FAuraAbilityRequirement* UAbilityBook::GetRequirementsForAbilityLevel(FGameplayTag AbilityID, int32 Level) +{ + // Level 1 = RequirementsForLevels[0] + // Level 2 = RequirementsForLevels[1] + if (const FAuraAbilityInfo* AbilityInfo = GetAbilities().Find(AbilityID)) + { + int32 LevelIndex = Level - 1; + if (LevelIndex >= 0 && LevelIndex < AbilityInfo->RequirementsForLevels.Num()) + { + const FAuraAbilityRequirement* RequirementPtr = &(AbilityInfo->RequirementsForLevels[LevelIndex]); + + return RequirementPtr; + } + } + return nullptr; +} diff --git a/Source/Aura/Private/AbilitySystem/Data/AttributeInfo.cpp b/Source/Aura/Private/AbilitySystem/Data/AttributeInfo.cpp new file mode 100644 index 0000000..b16c58c --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/Data/AttributeInfo.cpp @@ -0,0 +1,20 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "AbilitySystem/Data/AttributeInfo.h" + +FAuraAttributeInfo UAttributeInfo::FindAttributeInfoForTag(const FGameplayTag& AttributeTag, bool bLogNotFound) const +{ + for (const FAuraAttributeInfo& Info : AttributeInformation) + { + if (Info.AttributeTag.MatchesTagExact(AttributeTag)) + return Info; + } + + if (bLogNotFound) + { + UE_LOG(LogTemp, Error, TEXT("Can't find attribute info for tag [%s]"), *AttributeTag.ToString()); + } + + return FAuraAttributeInfo(); +} diff --git a/Source/Aura/Private/AbilitySystem/Data/CharacterClassInfo.cpp b/Source/Aura/Private/AbilitySystem/Data/CharacterClassInfo.cpp new file mode 100644 index 0000000..1f1c688 --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/Data/CharacterClassInfo.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "AbilitySystem/Data/CharacterClassInfo.h" + diff --git a/Source/Aura/Private/AbilitySystem/Data/EffectInfo.cpp b/Source/Aura/Private/AbilitySystem/Data/EffectInfo.cpp new file mode 100644 index 0000000..67b194a --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/Data/EffectInfo.cpp @@ -0,0 +1,5 @@ +// Amasson + + +#include "AbilitySystem/Data/EffectInfo.h" + diff --git a/Source/Aura/Private/AbilitySystem/Data/LevelingInfo.cpp b/Source/Aura/Private/AbilitySystem/Data/LevelingInfo.cpp new file mode 100644 index 0000000..e839c43 --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/Data/LevelingInfo.cpp @@ -0,0 +1,34 @@ +// Amasson + + +#include "AbilitySystem/Data/LevelingInfo.h" + +int32 ULevelingInfo::FindLevelForXP(int32 ExperiencePoints, int32 MinLevel) const +{ + int32 Level = MinLevel; + + while (Level < MaxLevel) + { + int32 RequiredExperience = static_cast(ExperienceCurve.GetValueAtLevel(Level + 1)); + if (ExperiencePoints < RequiredExperience) + { + break; + } + ++Level; + } + return Level; +} + +void ULevelingInfo::GetExperienceBoundsAtLevel(int32 Level, int32& MinExperience, int32& MaxExperience) const +{ + if (Level >= MaxLevel) + { + MinExperience = static_cast(ExperienceCurve.GetValueAtLevel(MaxLevel)); + MaxExperience = MinExperience + 1; + } + else + { + MinExperience = static_cast(ExperienceCurve.GetValueAtLevel(Level)); + MaxExperience = static_cast(ExperienceCurve.GetValueAtLevel(Level + 1)); + } +} diff --git a/Source/Aura/Private/AbilitySystem/EffectCalculation/ExecCalc_AttributeBased.cpp b/Source/Aura/Private/AbilitySystem/EffectCalculation/ExecCalc_AttributeBased.cpp new file mode 100644 index 0000000..30e7146 --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/EffectCalculation/ExecCalc_AttributeBased.cpp @@ -0,0 +1,61 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "AbilitySystem/EffectCalculation/ExecCalc_AttributeBased.h" +#include "AbilitySystemComponent.h" +#include "AbilitySystem/AuraAttributeSet.h" + +void UExecCalc_AttributeBased::GetCapturedAttributesMagnitudes(const FGameplayEffectCustomExecutionParameters& ExecutionParams, TArray& Attributes) const +{ + const FGameplayEffectSpec& EffectSpec = ExecutionParams.GetOwningSpec(); + + const FGameplayTagContainer* SourceTag = EffectSpec.CapturedSourceTags.GetAggregatedTags(); + const FGameplayTagContainer* TargetTag = EffectSpec.CapturedTargetTags.GetAggregatedTags(); + + FAggregatorEvaluateParameters EvaluationParameters; + EvaluationParameters.SourceTags = SourceTag; + EvaluationParameters.TargetTags = TargetTag; + + for (FGameplayEffectAttributeCaptureDefinition AttributeCaptureDefinition : RelevantAttributesToCapture) + { + float AttributeValue = 0.0f; + ExecutionParams.AttemptCalculateCapturedAttributeMagnitude(AttributeCaptureDefinition, EvaluationParameters, AttributeValue); + Attributes.Add(AttributeValue); + } +} + +void UExecCalc_AttributeBased::AddExecutionOutputs(const TArray& EvaluatedDatas, FGameplayEffectCustomExecutionOutput& OutExecutionOutput) const +{ + for (const FGameplayModifierEvaluatedData& EvaluatedData : EvaluatedDatas) + { + OutExecutionOutput.AddOutputModifier(EvaluatedData); + } +} + +void UExecCalc_AttributeBased::GetContext(const FGameplayEffectCustomExecutionParameters& ExecutionParams, FGameplayEffectContextHandle& Context) const +{ + Context = ExecutionParams.GetOwningSpec().GetContext(); +} + +float UExecCalc_AttributeBased::GetSetByCallerTagMagnitude(const FGameplayEffectCustomExecutionParameters& ExecutionParams, FGameplayTag DataTag, bool WarnIfNotFound, float Default) const +{ + return ExecutionParams.GetOwningSpec().GetSetByCallerMagnitude(DataTag, WarnIfNotFound, Default); +} + +const TMap& UExecCalc_AttributeBased::GetSetByCallerTagMagnitudes(const FGameplayEffectCustomExecutionParameters& ExecutionParams) const +{ + return ExecutionParams.GetOwningSpec().SetByCallerTagMagnitudes; +} + +FGameplayModifierEvaluatedData UExecCalc_AttributeBased::MakeModifierEvaluatedData_IncomingDamage(EGameplayModOp::Type Operation, float Value) const +{ + return FGameplayModifierEvaluatedData(UAuraAttributeSet::GetIncomingDamageAttribute(), Operation, Value); +} + +// #define MakeModifierImpl(AttributeName, CategoryName) \ +// FGameplayModifierEvaluatedData UExecCalc_AttributeBased::MakeModifierEvaluatedData_##AttributeName(EGameplayModOp::Type Operation, float Value) const \ +// { \ +// return FGameplayModifierEvaluatedData(UAuraAttributeSet::Get##AttributeName##Attribute(), Operation, Value); \ +// } \ + +// FOREACH_ATTRIBUTE_All(MakeModifierImpl) diff --git a/Source/Aura/Private/AbilitySystem/EffectCalculation/MMC_AttributeBased.cpp b/Source/Aura/Private/AbilitySystem/EffectCalculation/MMC_AttributeBased.cpp new file mode 100644 index 0000000..6bd1fba --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/EffectCalculation/MMC_AttributeBased.cpp @@ -0,0 +1,27 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "AbilitySystem/EffectCalculation/MMC_AttributeBased.h" + + +void UMMC_AttributeBased::GetCapturedAttributesMagnitudes(const FGameplayEffectSpec& EffectSpec, TArray& Attributes) const +{ + const FGameplayTagContainer* SourceTag = EffectSpec.CapturedSourceTags.GetAggregatedTags(); + const FGameplayTagContainer* TargetTag = EffectSpec.CapturedTargetTags.GetAggregatedTags(); + + FAggregatorEvaluateParameters EvaluationParameters; + EvaluationParameters.SourceTags = SourceTag; + EvaluationParameters.TargetTags = TargetTag; + + for (FGameplayEffectAttributeCaptureDefinition AttributeCaptureDefinition : RelevantAttributesToCapture) + { + float AttributeValue = 0.0f; + GetCapturedAttributeMagnitude(AttributeCaptureDefinition, EffectSpec, EvaluationParameters, AttributeValue); + Attributes.Add(AttributeValue); + } +} + +void UMMC_AttributeBased::GetContext(const FGameplayEffectSpec& EffectSpec, FGameplayEffectContextHandle& Context) const +{ + Context = EffectSpec.GetContext(); +} diff --git a/Source/Aura/Private/AbilitySystem/Tasks/TargetDataUnderMouse.cpp b/Source/Aura/Private/AbilitySystem/Tasks/TargetDataUnderMouse.cpp new file mode 100644 index 0000000..7fd5e89 --- /dev/null +++ b/Source/Aura/Private/AbilitySystem/Tasks/TargetDataUnderMouse.cpp @@ -0,0 +1,76 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "AbilitySystem/Tasks/TargetDataUnderMouse.h" +#include "Player/AuraPlayerController.h" +#include "AbilitySystemComponent.h" + +UTargetDataUnderMouse* UTargetDataUnderMouse::CreateTargetDataUnderMouse(UGameplayAbility* OwningAbility) +{ + UTargetDataUnderMouse* MyObj = NewAbilityTask(OwningAbility); + + return MyObj; +} + +void UTargetDataUnderMouse::Activate() +{ + const bool bIsLocallyControlled = Ability->GetCurrentActorInfo()->IsLocallyControlled(); + + if (bIsLocallyControlled) + { + SendMouseCursorData(); + } + else + { + FGameplayAbilitySpecHandle SpecHandle = GetAbilitySpecHandle(); + FPredictionKey ActivationKey = GetActivationPredictionKey(); + UAbilitySystemComponent *ASC = AbilitySystemComponent.Get(); + ASC->AbilityTargetDataSetDelegate(SpecHandle, ActivationKey).AddLambda([this, SpecHandle, ActivationKey](const FGameplayAbilityTargetDataHandle& DataHandle, FGameplayTag ActivationTag) { + AbilitySystemComponent->ConsumeAllReplicatedData(SpecHandle, ActivationKey); + if (ShouldBroadcastAbilityTaskDelegates()) + { + ValidData.Broadcast(DataHandle); + } + }); + if (!ASC->CallReplicatedTargetDataDelegatesIfSet(SpecHandle, ActivationKey)) + { + SetWaitingOnRemotePlayerData(); + } + } +} + +void UTargetDataUnderMouse::SendMouseCursorData() +{ + FScopedPredictionWindow ScopedPrediction(AbilitySystemComponent.Get()); + + APlayerController* PC = Ability->GetCurrentActorInfo()->PlayerController.Get(); + + if (!PC) + { + if (ShouldBroadcastAbilityTaskDelegates()) + NoData.Broadcast(); + return; + } + + FHitResult Hit; + if (AAuraPlayerController* AuraPC = Cast(PC)) + Hit = AuraPC->GetCursorHit(); + else + PC->GetHitResultUnderCursor(ECC_Visibility, false, Hit); + + FGameplayAbilityTargetDataHandle DataHandle; + FGameplayAbilityTargetData_SingleTargetHit* Data = new FGameplayAbilityTargetData_SingleTargetHit(); + Data->HitResult = Hit; + + DataHandle.Add(Data); + AbilitySystemComponent->ServerSetReplicatedTargetData( + GetAbilitySpecHandle(), + GetActivationPredictionKey(), + DataHandle, + FGameplayTag(), + AbilitySystemComponent->ScopedPredictionKey + ); + + if (ShouldBroadcastAbilityTaskDelegates()) + ValidData.Broadcast(DataHandle); +} diff --git a/Source/Aura/Private/Actor/AuraEffectActor.cpp b/Source/Aura/Private/Actor/AuraEffectActor.cpp new file mode 100644 index 0000000..5c3c33c --- /dev/null +++ b/Source/Aura/Private/Actor/AuraEffectActor.cpp @@ -0,0 +1,89 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Actor/AuraEffectActor.h" +#include "AbilitySystemComponent.h" +#include "AbilitySystemInterface.h" +#include "AbilitySystemBlueprintLibrary.h" +#include "AbilitySystem/AuraAbilitySystemLibrary.h" + +AAuraEffectActor::AAuraEffectActor() +{ + PrimaryActorTick.bCanEverTick = false; + + +} + +void AAuraEffectActor::BeginPlay() +{ + Super::BeginPlay(); + +} + +bool AAuraEffectActor::ApplyEffectToActor(AActor* Actor) +{ + UAbilitySystemComponent* ASC = UAbilitySystemBlueprintLibrary::GetAbilitySystemComponent(Actor); + + return ApplyEffectToAbilitySystemComponent(ASC); +} + +bool AAuraEffectActor::ApplyEffectToAbilitySystemComponent(UAbilitySystemComponent* ASC) +{ + if (!IsValid(ASC)) + return false; + + bool bEffectApplied = false; + + for (FGameplayEffectParameters Effect : Effects) + { + if (!IsValid(Effect.Class)) + continue; + + FActiveGameplayEffectHandle ActiveEffectHandle = UAuraAbilitySystemLibrary::ApplyGameplayEffectWithParameters(Effect, nullptr, ASC); + + bool bIsInstant = Effect.Class->GetDefaultObject()->DurationPolicy == EGameplayEffectDurationType::Instant; + + if (!bIsInstant) + { + if (ActiveEffectHandles.Contains(ASC)) + { + ActiveEffectHandles[ASC].Handles.Add(ActiveEffectHandle); + } + else + { + FEffectHandleArray HandleArray; + HandleArray.Handles.Add(ActiveEffectHandle); + ActiveEffectHandles.Add(ASC, HandleArray); + } + } + bEffectApplied = true; + } + + return bEffectApplied; +} + +bool AAuraEffectActor::RemoveEffectFromActor(AActor* Actor) +{ + UAbilitySystemComponent* ASC = UAbilitySystemBlueprintLibrary::GetAbilitySystemComponent(Actor); + + return RemoveEffectFromAbilitySystemComponent(ASC); +} + +bool AAuraEffectActor::RemoveEffectFromAbilitySystemComponent(UAbilitySystemComponent* ASC) +{ + if (!IsValid(ASC)) + return false; + + bool bRemovedEffect = false; + + FEffectHandleArray ActiveHandles; + if (ActiveEffectHandles.RemoveAndCopyValue(ASC, ActiveHandles)) + { + for (FActiveGameplayEffectHandle Handle : ActiveHandles.Handles) + { + bRemovedEffect |= ASC->RemoveActiveGameplayEffect(Handle, 1); + } + } + + return bRemovedEffect; +} diff --git a/Source/Aura/Private/Actor/AuraProjectile.cpp b/Source/Aura/Private/Actor/AuraProjectile.cpp new file mode 100644 index 0000000..c6e38d6 --- /dev/null +++ b/Source/Aura/Private/Actor/AuraProjectile.cpp @@ -0,0 +1,104 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Actor/AuraProjectile.h" +#include "Components/SphereComponent.h" +#include "GameFramework/ProjectileMovementComponent.h" +#include "Components/ArrowComponent.h" +#include "Aura/Aura.h" +#include "AbilitySystemComponent.h" +#include "AbilitySystemBlueprintLibrary.h" +#include "AuraBlueprintFunctionLibrary.h" +#include "AbilitySystem/AuraAbilitySystemLibrary.h" + +AAuraProjectile::AAuraProjectile() +{ + PrimaryActorTick.bCanEverTick = true; + bReplicates = true; + + InitialLifeSpan = 5.0f; + + Sphere = CreateDefaultSubobject("Sphere"); + SetRootComponent(Sphere); + + Sphere->SetCollisionEnabled(ECollisionEnabled::QueryOnly); + Sphere->SetCollisionObjectType(ECC_Projectile); + Sphere->SetCollisionResponseToAllChannels(ECR_Ignore); + Sphere->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap); + Sphere->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap); + Sphere->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap); + + ProjectileMovement = CreateDefaultSubobject("ProjectileMovement"); + ProjectileMovement->InitialSpeed = 550.0f; + ProjectileMovement->MaxSpeed = 550.0f; + ProjectileMovement->ProjectileGravityScale = 0.0f; + + ArrowComponent = CreateDefaultSubobject("Arrow"); + ArrowComponent->SetupAttachment(GetRootComponent()); +} + +void AAuraProjectile::BeginPlay() +{ + Super::BeginPlay(); + + if (HasAuthority()) + Sphere->OnComponentBeginOverlap.AddDynamic(this, &AAuraProjectile::OnSphereOverlap); +} + +bool AAuraProjectile::ShouldImpact_Implementation(const FHitResult& HitResult) +{ + if (IsValid(HitResult.GetActor()) && IsValid(GetInstigator())) + { + return UAuraBlueprintFunctionLibrary::AreActorsEnemies(HitResult.GetActor(), GetInstigator()); + } + return false; +} + +void AAuraProjectile::Impact_Implementation(const FHitResult& HitResult) +{ + +} + +void AAuraProjectile::Overlapped_Implementation(const FHitResult& HitResult) +{ + +} + +void AAuraProjectile::OnSphereOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComponent, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& HitResult) +{ + AActor* HitActor = HitResult.GetActor(); + if (ShouldImpact(HitResult)) + { + if (HitActor && HitActor->GetClass()->ImplementsInterface(UProjectileReactionInterface::StaticClass())) + IProjectileReactionInterface::Execute_ImpactedByProjectile(HitResult.GetActor(), this, HitResult); + OnImpact.Broadcast(this, HitResult); + Impact(HitResult); + } + else + { + if (HitActor && HitActor->GetClass()->ImplementsInterface(UProjectileReactionInterface::StaticClass())) + IProjectileReactionInterface::Execute_OverlappedByProjectile(HitResult.GetActor(), this, HitResult); + Overlapped(HitResult); + } +} + +TArray AAuraProjectile::ApplyEffects(UAbilitySystemComponent* TargetASC, const FHitResult& Collision) const +{ + TArray EffectHandles; + + if (!(HasAuthority() && IsValid(TargetASC))) + return EffectHandles; + + UAbilitySystemComponent* SourceASC = UAbilitySystemBlueprintLibrary::GetAbilitySystemComponent(GetInstigator()); + + for (const FGameplayEffectParameters& Effect : AppliedEffects) + { + FGameplayEffectParameters CollidingEffect = Effect; + CollidingEffect.HitImpulse = GetVelocity(); + CollidingEffect.HitCollision = Collision; + CollidingEffect.SourceAbility = InstigatorAbility; + EffectHandles.Add(UAuraAbilitySystemLibrary::ApplyGameplayEffectWithParameters(CollidingEffect, SourceASC, TargetASC)); + } + + return EffectHandles; +} diff --git a/Source/Aura/Private/AsyncTask/InspectCooldownTask.cpp b/Source/Aura/Private/AsyncTask/InspectCooldownTask.cpp new file mode 100644 index 0000000..2d4675a --- /dev/null +++ b/Source/Aura/Private/AsyncTask/InspectCooldownTask.cpp @@ -0,0 +1,90 @@ +// Amasson + + +#include "AsyncTask/InspectCooldownTask.h" +#include "AbilitySystemComponent.h" + +UInspectCooldownTask* UInspectCooldownTask::InspectCooldown(UAbilitySystemComponent* AbilitySystemComponent, FGameplayTag InCooldownTag) +{ + UInspectCooldownTask *NewTask = NewObject(); + NewTask->ASC = AbilitySystemComponent; + NewTask->CooldownTag = InCooldownTag; + + if (!IsValid(AbilitySystemComponent) || !InCooldownTag.IsValid()) + { + NewTask->EndTask(); + return nullptr; + } + + AbilitySystemComponent->RegisterGameplayTagEvent(InCooldownTag, EGameplayTagEventType::NewOrRemoved) + .AddUObject(NewTask, &UInspectCooldownTask::CooldownTagChanged); + + AbilitySystemComponent->OnActiveGameplayEffectAddedDelegateToSelf + .AddUObject(NewTask, &UInspectCooldownTask::OnActiveEffectAdded); + + return NewTask; +} + +void UInspectCooldownTask::EndTask() +{ + if (!IsValid(ASC)) return; + + ASC->RegisterGameplayTagEvent(CooldownTag, EGameplayTagEventType::NewOrRemoved) + .RemoveAll(this); + + SetReadyToDestroy(); + MarkAsGarbage(); +} + +void UInspectCooldownTask::CooldownTagChanged(const FGameplayTag ChangedTag, int32 NewCount) +{ + if (NewCount == 0) + { + CooldownEnd.Broadcast(0.0f, 1.0f); + } +} + +void UInspectCooldownTask::OnActiveEffectAdded(UAbilitySystemComponent* TargetASC, const FGameplayEffectSpec& SpecApplied, FActiveGameplayEffectHandle ActiveEffectHandle) +{ + if (EffectHasCooldownTag(SpecApplied)) + { + BroadcastEffectCooldownTime(); + } +} + +bool UInspectCooldownTask::EffectHasCooldownTag(const FGameplayEffectSpec& EffectSpec) +{ + FGameplayTagContainer GrantedTags; + EffectSpec.GetAllGrantedTags(GrantedTags); + + if (GrantedTags.HasTagExact(CooldownTag)) + return true; + + FGameplayTagContainer AssetTags; + EffectSpec.GetAllAssetTags(AssetTags); + + if (AssetTags.HasTagExact(CooldownTag)) + return true; + + return false; +} + +void UInspectCooldownTask::BroadcastEffectCooldownTime() +{ + FGameplayEffectQuery GameplayEffectQuery = FGameplayEffectQuery::MakeQuery_MatchAnyOwningTags(CooldownTag.GetSingleTagContainer()); + TArray> TimesRemaining = ASC->GetActiveEffectsTimeRemainingAndDuration(GameplayEffectQuery); + + if (TimesRemaining.Num() > 0) + { + TPair MaxTimeRemaining(0, 0); + for (TPair TimeRemaining : TimesRemaining) + { + if (TimeRemaining.Key > MaxTimeRemaining.Key) + { + MaxTimeRemaining = TimeRemaining; + } + } + + CooldownStart.Broadcast(MaxTimeRemaining.Key, MaxTimeRemaining.Value); + } +} \ No newline at end of file diff --git a/Source/Aura/Private/AuraAssetManager.cpp b/Source/Aura/Private/AuraAssetManager.cpp new file mode 100644 index 0000000..ae3bc47 --- /dev/null +++ b/Source/Aura/Private/AuraAssetManager.cpp @@ -0,0 +1,20 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "AuraAssetManager.h" +#include "AuraGameplayTags.h" +#include "AbilitySystemGlobals.h" + +UAuraAssetManager& UAuraAssetManager::Get() +{ + check(GEngine); + return *Cast(GEngine->AssetManager); +} + +void UAuraAssetManager::StartInitialLoading() +{ + Super::StartInitialLoading(); + + FAuraGameplayTags::InitializeNativeGameplayTags(); + UAbilitySystemGlobals::Get().InitGlobalData(); +} diff --git a/Source/Aura/Private/AuraBlueprintFunctionLibrary.cpp b/Source/Aura/Private/AuraBlueprintFunctionLibrary.cpp new file mode 100644 index 0000000..0899b8c --- /dev/null +++ b/Source/Aura/Private/AuraBlueprintFunctionLibrary.cpp @@ -0,0 +1,64 @@ +// Amasson + + +#include "AuraBlueprintFunctionLibrary.h" +#include "Interaction/CombatInterface.h" + +void UAuraBlueprintFunctionLibrary::RegisterComponent(UActorComponent* Component) +{ + if (Component) + { + Component->RegisterComponent(); + } +} + +void UAuraBlueprintFunctionLibrary::UnregisterComponent(UActorComponent* Component) +{ + if (Component) + { + Component->UnregisterComponent(); + Component->DestroyComponent(); + } +} + +bool UAuraBlueprintFunctionLibrary::AreActorsEnemies(AActor* FirstActor, AActor* SecondActor) +{ + if (!IsValid(FirstActor) || !IsValid(SecondActor)) + return false; + + if (FirstActor->ActorHasTag("Player")) + { + return SecondActor->ActorHasTag("Enemy"); + } + else if (SecondActor->ActorHasTag("Player")) + { + return FirstActor->ActorHasTag("Enemy"); + } + return false; +} + +void UAuraBlueprintFunctionLibrary::AddOnDeathCallback(UObject* CombatInterfaceObject, FOnDeathDelegateSignature Callback) +{ + if (IsValid(CombatInterfaceObject)) + { + if (ICombatInterface* CI = Cast(CombatInterfaceObject)) + { + FOnDeathBroadcastSignature& OnDeath = CI->GetOnDeathDelegate(); + + OnDeath.Add(Callback); + } + } +} + +void UAuraBlueprintFunctionLibrary::RemoveOnDeathCallback(UObject* CombatInterfaceObject, FOnDeathDelegateSignature Callback) +{ + if (IsValid(CombatInterfaceObject)) + { + if (ICombatInterface* CI = Cast(CombatInterfaceObject)) + { + FOnDeathBroadcastSignature& OnDeath = CI->GetOnDeathDelegate(); + + OnDeath.Remove(Callback); + } + } +} diff --git a/Source/Aura/Private/AuraGameplayTags.cpp b/Source/Aura/Private/AuraGameplayTags.cpp new file mode 100644 index 0000000..f211b82 --- /dev/null +++ b/Source/Aura/Private/AuraGameplayTags.cpp @@ -0,0 +1,305 @@ + +#include "AuraGameplayTags.h" +#include "GameplayTagsManager.h" +#include + +FAuraGameplayTags FAuraGameplayTags::GameplayTags; + + +void FAuraGameplayTags::InitializeNativeGameplayTags() +{ + UGameplayTagsManager& Manager(UGameplayTagsManager::Get()); + + // MARK: Attributes + +#define INITIALIZE_ATTRIBUTE_TAG(AttributeName, CategoryName) \ + GameplayTags.Attributes_##CategoryName##_##AttributeName = Manager.AddNativeGameplayTag( \ + FName(FString::Printf(TEXT("Attributes.%s.%s"), TEXT(#CategoryName), TEXT(#AttributeName))), \ + FString("Attribute identifier tag") \ + ); + + FOREACH_ATTRIBUTE_All(INITIALIZE_ATTRIBUTE_TAG); + + // MARK: Inputs + + GameplayTags.InputTag = Manager.AddNativeGameplayTag( + FName("InputTag"), + FString("Root Input Tag") + ); + + GameplayTags.InputTag_LMB = Manager.AddNativeGameplayTag( + FName("InputTag.LMB"), + FString("Input Tag for ability LMB") + ); + GameplayTags.InputTags.Add(GameplayTags.InputTag_LMB); + + GameplayTags.InputTag_RMB = Manager.AddNativeGameplayTag( + FName("InputTag.RMB"), + FString("Input Tag for ability RMB") + ); + GameplayTags.InputTags.Add(GameplayTags.InputTag_RMB); + + GameplayTags.InputTag_1 = Manager.AddNativeGameplayTag( + FName("InputTag.1"), + FString("Input Tag for ability 1") + ); + GameplayTags.InputTags.Add(GameplayTags.InputTag_1); + + GameplayTags.InputTag_2 = Manager.AddNativeGameplayTag( + FName("InputTag.2"), + FString("Input Tag for ability 2") + ); + GameplayTags.InputTags.Add(GameplayTags.InputTag_2); + + GameplayTags.InputTag_3 = Manager.AddNativeGameplayTag( + FName("InputTag.3"), + FString("Input Tag for ability 3") + ); + GameplayTags.InputTags.Add(GameplayTags.InputTag_3); + + GameplayTags.InputTag_4 = Manager.AddNativeGameplayTag( + FName("InputTag.4"), + FString("Input Tag for ability 4") + ); + GameplayTags.InputTags.Add(GameplayTags.InputTag_4); + + GameplayTags.InputTag_Q = Manager.AddNativeGameplayTag( + FName("InputTag.Q"), + FString("Input Tag for ability Q") + ); + GameplayTags.InputTags.Add(GameplayTags.InputTag_Q); + + GameplayTags.InputTag_E = Manager.AddNativeGameplayTag( + FName("InputTag.E"), + FString("Input Tag for ability E") + ); + GameplayTags.InputTags.Add(GameplayTags.InputTag_E); + + GameplayTags.InputTag_R = Manager.AddNativeGameplayTag( + FName("InputTag.R"), + FString("Input Tag for ability R") + ); + GameplayTags.InputTags.Add(GameplayTags.InputTag_R); + + GameplayTags.InputTag_F = Manager.AddNativeGameplayTag( + FName("InputTag.F"), + FString("Input Tag for ability F") + ); + GameplayTags.InputTags.Add(GameplayTags.InputTag_F); + + GameplayTags.InputTag_Space = Manager.AddNativeGameplayTag( + FName("InputTag.Space"), + FString("Input Tag for ability Space") + ); + GameplayTags.InputTags.Add(GameplayTags.InputTag_Space); + + GameplayTags.InputTag_Passive_1 = Manager.AddNativeGameplayTag( + FName("InputTag.Passive.1"), + FString("Key tag for passive 1") + ); + GameplayTags.InputTags.Add(GameplayTags.InputTag_Passive_1); + + GameplayTags.InputTag_Passive_2 = Manager.AddNativeGameplayTag( + FName("InputTag.Passive.2"), + FString("Key tag for passive 2") + ); + GameplayTags.InputTags.Add(GameplayTags.InputTag_Passive_2); + + GameplayTags.InputTag_Passive_3 = Manager.AddNativeGameplayTag( + FName("InputTag.Passive.3"), + FString("Key tag for passive 3") + ); + GameplayTags.InputTags.Add(GameplayTags.InputTag_Passive_3); + + + // MARK: Event + + GameplayTags.Event = Manager.AddNativeGameplayTag( + FName("Event"), + FString("Root tag for event to send to an actor") + ); + + GameplayTags.Event_AbilitySystem_DamageApplied = Manager.AddNativeGameplayTag( + FName("Event.AbilitySystem.DamageApplied"), + FString("Event that the actor has applied damages") + ); + + + // MARK: Damages + + GameplayTags.Damage = Manager.AddNativeGameplayTag( + FName("Damage"), + FString("Brut damages identifier") + ); + GameplayTags.DamageTypes.Add(GameplayTags.Damage); + + GameplayTags.Damage_Physical = Manager.AddNativeGameplayTag( + FName("Damage.Physical"), + FString("Physical damages identifier") + ); + GameplayTags.DamageTypes.Add(GameplayTags.Damage_Physical); + + GameplayTags.Damage_Magical = Manager.AddNativeGameplayTag( + FName("Damage.Magical"), + FString("Magical damages identifier") + ); + GameplayTags.DamageTypes.Add(GameplayTags.Damage_Magical); + + GameplayTags.Damage_Magical_Fire = Manager.AddNativeGameplayTag( + FName("Damage.Magical.Fire"), + FString("Fire damages identifier") + ); + GameplayTags.DamageTypes.Add(GameplayTags.Damage_Magical_Fire); + + GameplayTags.Damage_Magical_Ice = Manager.AddNativeGameplayTag( + FName("Damage.Magical.Ice"), + FString("Ice damages identifier") + ); + GameplayTags.DamageTypes.Add(GameplayTags.Damage_Magical_Ice); + + GameplayTags.Damage_Magical_Shock = Manager.AddNativeGameplayTag( + FName("Damage.Magical.Shock"), + FString("Shock damages identifier") + ); + GameplayTags.DamageTypes.Add(GameplayTags.Damage_Magical_Shock); + + GameplayTags.Damage_Magical_Shadow = Manager.AddNativeGameplayTag( + FName("Damage.Magical.Shadow"), + FString("Shadow damages identifier") + ); + GameplayTags.DamageTypes.Add(GameplayTags.Damage_Magical_Shadow); + + GameplayTags.Damage_Magical_Arcane = Manager.AddNativeGameplayTag( + FName("Damage.Magical.Arcane"), + FString("Arcane damages identifier") + ); + GameplayTags.DamageTypes.Add(GameplayTags.Damage_Magical_Arcane); + + GameplayTags.DamageResistanceMap.Add(GameplayTags.Damage_Physical, GameplayTags.Attributes_Resistance_PhysicalRes); + GameplayTags.DamageResistanceMap.Add(GameplayTags.Damage_Magical, GameplayTags.Attributes_Resistance_MagicalRes); + GameplayTags.DamageResistanceMap.Add(GameplayTags.Damage_Magical_Fire, GameplayTags.Attributes_Resistance_FireRes); + GameplayTags.DamageResistanceMap.Add(GameplayTags.Damage_Magical_Ice, GameplayTags.Attributes_Resistance_IceRes); + GameplayTags.DamageResistanceMap.Add(GameplayTags.Damage_Magical_Shock, GameplayTags.Attributes_Resistance_ShockRes); + GameplayTags.DamageResistanceMap.Add(GameplayTags.Damage_Magical_Arcane, GameplayTags.Attributes_Resistance_ArcaneRes); + GameplayTags.DamageResistanceMap.Add(GameplayTags.Damage_Magical_Shadow, GameplayTags.Attributes_Resistance_ShadowRes); + + // MARK: Effects + + GameplayTags.Effects_HitReact = Manager.AddNativeGameplayTag( + FName("Effects.HitReact"), + FString("Reacting to an incoming hit") + ); + + GameplayTags.Debuff = Manager.AddNativeGameplayTag( + FName("Debuff"), + FString("Effect is a debuff") + ); + + GameplayTags.Debuff_Stun = Manager.AddNativeGameplayTag( + FName("Debuff.Stun"), + FString("Effect is a debuff that keep us stunned") + ); + + GameplayTags.Debuff_Slow = Manager.AddNativeGameplayTag( + FName("Debuff.Slow"), + FString("Effect is a debuff that keep us slowed") + ); + + GameplayTags.Debuff_Dot = Manager.AddNativeGameplayTag( + FName("Debuff.Dot"), + FString("Effect is a debuff deals damages over time. Should have another tag child of `Damage.`") + ); + + GameplayTags.Debuff_Attributes = Manager.AddNativeGameplayTag( + FName("Debuff.Attributes"), + FString("Effect is a debuff that modifies attributes. Should have another tag child of `Attributes.`") + ); + + + // MARK: Ability + + GameplayTags.Ability_ID = Manager.AddNativeGameplayTag( + FName("Ability.ID"), + FString("Root ability identifier tag") + ); + + GameplayTags.Ability_Cooldown = Manager.AddNativeGameplayTag( + FName("Ability.Cooldown"), + FString("Root ability cooldown tag") + ); + + GameplayTags.Ability_Status = Manager.AddNativeGameplayTag( + FName("Ability.Status"), + FString("Root ability status") + ); + + GameplayTags.Ability_Status_Locked = Manager.AddNativeGameplayTag( + FName("Ability.Status.Locked"), + FString("Ability not available yet") + ); + + GameplayTags.Ability_Status_Eligible = Manager.AddNativeGameplayTag( + FName("Ability.Status.Eligible"), + FString("Ability can be learn") + ); + + GameplayTags.Ability_Status_Unlocked = Manager.AddNativeGameplayTag( + FName("Ability.Status.Unlocked"), + FString("Ability can be put in action bar") + ); + + GameplayTags.Ability_Status_Equipped = Manager.AddNativeGameplayTag( + FName("Ability.Status.Equipped"), + FString("Ability is set in action bar") + ); + + GameplayTags.Ability_Type = Manager.AddNativeGameplayTag( + FName("Ability.Type"), + FString("Root ability type") + ); + + GameplayTags.Ability_Type_Activable = Manager.AddNativeGameplayTag( + FName("Ability.Type.Activable"), + FString("Ability must be equipped and activated") + ); + + GameplayTags.Ability_Type_Passive = Manager.AddNativeGameplayTag( + FName("Ability.Type.Passive"), + FString("Ability is permanently activated when equipped") + ); + + GameplayTags.Ability_Type_Utility = Manager.AddNativeGameplayTag( + FName("Ability.Type.Utility"), + FString("Ability permanently available as part of the game mechanics") + ); + + GameplayTags.Ability_Interruptible = Manager.AddNativeGameplayTag( + FName("Ability.Interruptible"), + FString("Ability that can be interrupted") + ); + GameplayTags.Ability_Interruptible_HitReact = Manager.AddNativeGameplayTag( + FName("Ability.Interruptible.HitReact"), + FString("Ability interrupted with Hit React") + ); + + GameplayTags.Ability_AI_BasicAttack = Manager.AddNativeGameplayTag( + FName("Ability.AI.BasicAttack"), + FString("Ability to use when AI tries to basic attack") + ); + + GameplayTags.Player_Hide_Cursor = Manager.AddNativeGameplayTag( + FName("Player.Hide.Cursor"), + FString("Hide player cursor") + ); + + GameplayTags.Player_Block_AbilityInput = Manager.AddNativeGameplayTag( + FName("Player.Block.AbilityInput"), + FString("Prevent player from using ability with inputs") + ); + + GameplayTags.Player_Block_CursorTrace = Manager.AddNativeGameplayTag( + FName("Player.Block.CursorTrace"), + FString("Prevent player from cursor tracing in different interaction systems") + ); + +} diff --git a/Source/Aura/Private/Character/AuraCharacterBase.cpp b/Source/Aura/Private/Character/AuraCharacterBase.cpp new file mode 100644 index 0000000..3c69ff4 --- /dev/null +++ b/Source/Aura/Private/Character/AuraCharacterBase.cpp @@ -0,0 +1,190 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Character/AuraCharacterBase.h" +#include "AbilitySystem/AuraAbilitySystemLibrary.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "Components/CapsuleComponent.h" +#include "AbilitySystem/AuraAttributeSet.h" +#include "AbilitySystem/Data/CharacterClassInfo.h" +#include "GameFramework/CharacterMovementComponent.h" +#include "Player/AuraPlayerController.h" +#include "Aura/Aura.h" + +AAuraCharacterBase::AAuraCharacterBase() +{ + PrimaryActorTick.bCanEverTick = true; + + bUseControllerRotationPitch = false; + bUseControllerRotationRoll = false; + bUseControllerRotationYaw = false; + GetCharacterMovement()->bUseControllerDesiredRotation = true; + + GetCapsuleComponent()->SetCollisionResponseToChannel(ECC_Camera, ECR_Ignore); + GetCapsuleComponent()->SetGenerateOverlapEvents(false); + GetMesh()->SetCollisionResponseToChannel(ECC_Camera, ECR_Ignore); + GetMesh()->SetCollisionResponseToChannel(ECC_Projectile, ECR_Overlap); + GetMesh()->SetGenerateOverlapEvents(true); + + Weapon = CreateDefaultSubobject("Weapon"); + Weapon->SetupAttachment(GetMesh(), FName("WeaponHandSocket")); + Weapon->SetCollisionEnabled(ECollisionEnabled::NoCollision); + +} + +void AAuraCharacterBase::BeginPlay() +{ + Super::BeginPlay(); + + checkf(ClassInfo, TEXT("ClassInfo not set for %s"), *GetNameSafe(this)); +} + +void AAuraCharacterBase::Restart() +{ + Super::Restart(); + + AAuraPlayerController* AuraPC = GetController(); + if (IsValid(AuraPC)) + { + AuraPC->PawnRestart(this); + } +} + +UAbilitySystemComponent* AAuraCharacterBase::GetAbilitySystemComponent() const +{ + return AbilitySystemComponent; +} + + +void AAuraCharacterBase::SetHighlighted_Implementation(bool bNewHighlighted) +{ + bHighlighted = bNewHighlighted; +} + +void AAuraCharacterBase::GetWorldHoverableInfos_Implementation(FWorldHoverableInfos& Infos) +{ + Infos.Location = FVector(0.5, 0.1, 0.0); + Infos.Text = GetClassInfo()->Name; + Infos.bScreenSpace = true; +} + +bool AAuraCharacterBase::CanBeHovered_Implementation(AController* Controller, const FHitResult& TraceHit) +{ + return true; +} + +void AAuraCharacterBase::HoveredBegin_Implementation(AController* Controller, const FHitResult& TraceHit) +{ + SetHighlighted(true); +} + +void AAuraCharacterBase::HoveredEnd_Implementation(AController* Controller) +{ + SetHighlighted(false); +} + + +void AAuraCharacterBase::InitAbilitySystem() +{ + if (UAuraAbilitySystemComponent* ASC = Cast(AbilitySystemComponent)) + { + ASC->AbilitySystemInitDone(); + } + AbilitySystemInitialized(AbilitySystemComponent); + OnASCRegistered.Broadcast(AbilitySystemComponent); + + // AbilitySystemComponent->OnGameplayEffectAppliedDelegateToSelf.AddUObject(this, &AAuraCharacterBase::OnEffectApplied); + AddCharacterBaseEffects(); + AddCharacterAbilities(); + ApplyBeginEffects(); +} + +void AAuraCharacterBase::AbilitySystemInitialized_Implementation(UAbilitySystemComponent* ASC) +{ + +} + +// void AAuraCharacterBase::OnEffectApplied_Implementation(UAbilitySystemComponent* ASC, const FGameplayEffectSpec& EffectSpec, FActiveGameplayEffectHandle EffectHandle) +// { + +// } + +void AAuraCharacterBase::RegisterGameplayTagEvent(FGameplayTag EventTag, EGameplayTagEventType::Type TagEventType, FTagCountChangeSignature OnTagCountChanged) +{ + if (AbilitySystemComponent) + { + AbilitySystemComponent->RegisterGameplayTagEvent(EventTag, TagEventType) + .AddLambda([OnTagCountChanged](const FGameplayTag& CallbackTag, int32 NewCount) { + OnTagCountChanged.ExecuteIfBound(CallbackTag, NewCount); + }); + } +} + +void AAuraCharacterBase::AddCharacterBaseEffects() +{ + const float PlayerLevel = static_cast(ICombatInterface::Execute_GetPlayerLevel(this)); + + UAuraAbilitySystemComponent* AuraASC = Cast(AbilitySystemComponent); + for(const TSubclassOf& EffectClass : ClassInfo->BaseEffects) + { + if (IsValid(EffectClass)) + { + FGameplayEffectContextHandle EffectContext = AbilitySystemComponent->MakeEffectContext(); + EffectContext.AddSourceObject(AbilitySystemComponent->GetAvatarActor()); + FActiveGameplayEffectHandle EffectHandle = AbilitySystemComponent->ApplyGameplayEffectSpecToSelf(*AbilitySystemComponent->MakeOutgoingSpec(EffectClass, PlayerLevel, EffectContext).Data.Get()); + if (AuraASC) + AuraASC->BaseEffectsHandles.Add(EffectHandle); + } + } +} + +void AAuraCharacterBase::AddCharacterAbilities() +{ + if (!HasAuthority()) return; + + if (UAuraAbilitySystemComponent* ASC = Cast(GetAbilitySystemComponent())) + { + ASC->GrantStartupAbilities(ClassInfo->StartupAbilities); + } +} + +void AAuraCharacterBase::ApplyBeginEffects() +{ + for(const FGameplayEffectParameters& Effect : ClassInfo->OnBeginEffects) + { + UAuraAbilitySystemLibrary::ApplyGameplayEffectWithParameters(Effect, nullptr, AbilitySystemComponent); + } +} + +int32 AAuraCharacterBase::GetDeathExperience_Implementation() const +{ + return ClassInfo->DeathExperience.GetValueAtLevel(ICombatInterface::Execute_GetPlayerLevel(this)); +} + +FVector AAuraCharacterBase::GetCombatSocketLocation_Implementation(FGameplayTag SocketTagName) const +{ + return GetActorLocation(); +} + +bool AAuraCharacterBase::IsDead_Implementation() const +{ + if (!IsValid(AttributeSet)) + return false; + + if (UAuraAttributeSet* AS = Cast(AttributeSet)) + { + return AS->GetHealth() <= 0.0f; + } + + return false; +} + +FOnASCRegisteredDelegate& AAuraCharacterBase::GetOnASCRegisteredDelegate() +{ + return OnASCRegistered; +} + +FOnDeathBroadcastSignature& AAuraCharacterBase::GetOnDeathDelegate() +{ + return OnDeath; +} diff --git a/Source/Aura/Private/Character/AuraEnemy.cpp b/Source/Aura/Private/Character/AuraEnemy.cpp new file mode 100644 index 0000000..53921a4 --- /dev/null +++ b/Source/Aura/Private/Character/AuraEnemy.cpp @@ -0,0 +1,30 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Character/AuraEnemy.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "AbilitySystem/AuraAttributeSet.h" + +AAuraEnemy::AAuraEnemy() +{ + AbilitySystemComponent = CreateDefaultSubobject("AbilitySystemComponent"); + AbilitySystemComponent->SetIsReplicated(true); + AbilitySystemComponent->SetReplicationMode(EGameplayEffectReplicationMode::Minimal); + AttributeSet = CreateDefaultSubobject("AttributeSet"); + + Tags.Add(FName("Enemy")); +} + +void AAuraEnemy::BeginPlay() +{ + Super::BeginPlay(); + + InitAbilitySystem(); +} + +void AAuraEnemy::InitAbilitySystem() +{ + AbilitySystemComponent->InitAbilityActorInfo(this, this); + + Super::InitAbilitySystem(); +} \ No newline at end of file diff --git a/Source/Aura/Private/Character/AuraPlayerCharacter.cpp b/Source/Aura/Private/Character/AuraPlayerCharacter.cpp new file mode 100644 index 0000000..5c8b794 --- /dev/null +++ b/Source/Aura/Private/Character/AuraPlayerCharacter.cpp @@ -0,0 +1,78 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Character/AuraPlayerCharacter.h" +#include "Player/AuraPlayerState.h" +#include "AbilitySystem/AuraAttributeSet.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "Camera/CameraComponent.h" +#include "GameFramework/SpringArmComponent.h" +#include "GameFramework/CharacterMovementComponent.h" +#include "Player/AuraPlayerController.h" +#include "UI/HUD/AuraHUD.h" + +AAuraPlayerCharacter::AAuraPlayerCharacter() +{ + CameraBoom = CreateDefaultSubobject("CameraBoom"); + CameraBoom->SetRelativeRotation(FRotator(-60.0f, 0.0f, 0.0f)); + CameraBoom->SetupAttachment(RootComponent); + CameraBoom->bInheritPitch = false; + CameraBoom->bInheritRoll = false; + CameraBoom->bInheritYaw = false; + + FollowCamera = CreateDefaultSubobject("FollowCamera"); + FollowCamera->SetupAttachment(CameraBoom, USpringArmComponent::SocketName); + + if (UCharacterMovementComponent* MovementComponent = GetCharacterMovement()) + { + MovementComponent->bOrientRotationToMovement = true; + MovementComponent->bConstrainToPlane = true; + MovementComponent->bSnapToPlaneAtStart = true; + } + + Tags.Add(FName("Player")); +} + +void AAuraPlayerCharacter::PossessedBy(AController* NewController) +{ + Super::PossessedBy(NewController); + + InitAbilitySystem(); +} + +void AAuraPlayerCharacter::OnRep_PlayerState() +{ + Super::OnRep_PlayerState(); + + InitAbilitySystem(); +} + +int32 AAuraPlayerCharacter::GetPlayerLevel_Implementation() const +{ + if (AAuraPlayerState* PS = GetPlayerState()) + { + return PS->GetPlayerLevel(); + } + return 0; +} + +ULevelingExperienceComponent* AAuraPlayerCharacter::GetLevelingExperienceComponent_Implementation() const +{ + if (AAuraPlayerState* PS = GetPlayerState()) + { + return PS->GetLevelingExperience(); + } + return nullptr; +} + +void AAuraPlayerCharacter::InitAbilitySystem() +{ + if (AAuraPlayerState* AuraPlayerState = GetPlayerState()) + { + AbilitySystemComponent = AuraPlayerState->GetAbilitySystemComponent(); + AbilitySystemComponent->InitAbilityActorInfo(AuraPlayerState, this); + AttributeSet = AuraPlayerState->GetAttributeSet(); + } + + Super::InitAbilitySystem(); +} diff --git a/Source/Aura/Private/Game/AuraGameModeBase.cpp b/Source/Aura/Private/Game/AuraGameModeBase.cpp new file mode 100644 index 0000000..9142175 --- /dev/null +++ b/Source/Aura/Private/Game/AuraGameModeBase.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Game/AuraGameModeBase.h" + diff --git a/Source/Aura/Private/Game/AuraGameState.cpp b/Source/Aura/Private/Game/AuraGameState.cpp new file mode 100644 index 0000000..c5dccb3 --- /dev/null +++ b/Source/Aura/Private/Game/AuraGameState.cpp @@ -0,0 +1,5 @@ +// Amasson + + +#include "Game/AuraGameState.h" + diff --git a/Source/Aura/Private/Input/AuraInputComponent.cpp b/Source/Aura/Private/Input/AuraInputComponent.cpp new file mode 100644 index 0000000..605e683 --- /dev/null +++ b/Source/Aura/Private/Input/AuraInputComponent.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Input/AuraInputComponent.h" + diff --git a/Source/Aura/Private/Input/AuraInputConfig.cpp b/Source/Aura/Private/Input/AuraInputConfig.cpp new file mode 100644 index 0000000..88091d4 --- /dev/null +++ b/Source/Aura/Private/Input/AuraInputConfig.cpp @@ -0,0 +1,21 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Input/AuraInputConfig.h" + +const UInputAction* UAuraInputConfig::FindAbilityInputActionForTag(const FGameplayTag& InputTag, bool bLogNotFound) const +{ + for (const FAuraInputAction& AbilityInputAction : AbilityInputActions) + { + if (AbilityInputAction.InputTag.MatchesTagExact(InputTag)) + { + return AbilityInputAction.InputAction; + } + } + + if (bLogNotFound) + { + UE_LOG(LogTemp, Error, TEXT("Can't find ability input tag [%s]"), *InputTag.ToString()); + } + return nullptr; +} diff --git a/Source/Aura/Private/Interaction/CombatInterface.cpp b/Source/Aura/Private/Interaction/CombatInterface.cpp new file mode 100644 index 0000000..444e199 --- /dev/null +++ b/Source/Aura/Private/Interaction/CombatInterface.cpp @@ -0,0 +1,6 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Interaction/CombatInterface.h" + +// Add default functionality here for any ICombatInterface functions that are not pure virtual. diff --git a/Source/Aura/Private/Interaction/PlayerInterface.cpp b/Source/Aura/Private/Interaction/PlayerInterface.cpp new file mode 100644 index 0000000..55ae919 --- /dev/null +++ b/Source/Aura/Private/Interaction/PlayerInterface.cpp @@ -0,0 +1,6 @@ +// Amasson + + +#include "Interaction/PlayerInterface.h" + +// Add default functionality here for any IPlayerInterface functions that are not pure virtual. diff --git a/Source/Aura/Private/Inventory/AuraInventoryComponent.cpp b/Source/Aura/Private/Inventory/AuraInventoryComponent.cpp new file mode 100644 index 0000000..ea42cc0 --- /dev/null +++ b/Source/Aura/Private/Inventory/AuraInventoryComponent.cpp @@ -0,0 +1,34 @@ +// Amasson + + +#include "Inventory/AuraInventoryComponent.h" +#include "Kismet/GameplayStatics.h" +#include "Game/AuraGameState.h" +#include "Game/AuraGameModeBase.h" +#include "Inventory/AuraInventoryDataSource.h" + + +uint8 UAuraInventoryComponent::GetMaxStackSizeForID(const FName& ID) const +{ + FInventoryItemData Data; + FetchSlotData(ID, Data); + return Data.MaxStackSize; +} + +bool UAuraInventoryComponent::FetchSlotData(const FName& SlotId, FInventoryItemData& Data) const +{ + if (DataSource) + { + return DataSource->GetDataForItemId(SlotId, Data); + } + return false; +} + +FLinearColor UAuraInventoryComponent::GetColorFromQuality(EInventoryItemQuality Quality) const +{ + if (DataSource) + { + return DataSource->GetColorFromQuality(Quality); + } + return FLinearColor(); +} diff --git a/Source/Aura/Private/Inventory/AuraInventoryDataSource.cpp b/Source/Aura/Private/Inventory/AuraInventoryDataSource.cpp new file mode 100644 index 0000000..05ff579 --- /dev/null +++ b/Source/Aura/Private/Inventory/AuraInventoryDataSource.cpp @@ -0,0 +1,24 @@ +// Amasson + + +#include "Inventory/AuraInventoryDataSource.h" + + +bool UAuraInventoryDataSource::GetDataForItemId(const FName& ItemId, FInventoryItemData& Data) const +{ + if (IsValid(ItemDataTable)) + { + FInventoryItemData* DataRow = ItemDataTable->FindRow(ItemId, "Fetch Item Data"); + if (DataRow) + { + Data = *DataRow; + return true; + } + } + return false; +} + +FLinearColor UAuraInventoryDataSource::GetColorFromQuality(EInventoryItemQuality Quality) const +{ + return QualityColors[Quality]; +} diff --git a/Source/Aura/Private/Player/AuraPlayerController.cpp b/Source/Aura/Private/Player/AuraPlayerController.cpp new file mode 100644 index 0000000..9c719de --- /dev/null +++ b/Source/Aura/Private/Player/AuraPlayerController.cpp @@ -0,0 +1,209 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Player/AuraPlayerController.h" +#include "EnhancedInputSubsystems.h" +#include "Input/AuraInputComponent.h" +#include "Components/InteractionControllerComponent.h" +#include "AbilitySystemInterface.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "Character/AuraEnemy.h" +#include "AuraGameplayTags.h" +#include "Player/Components/AutoRunComponent.h" +#include "Components/SplineComponent.h" +#include "AbilitySystemBlueprintLibrary.h" +#include "UI/HUD/AuraHUD.h" + +AAuraPlayerController::AAuraPlayerController() +{ + bReplicates = true; + + InteractionController = CreateDefaultSubobject("InteractionController"); + AutoRunComponent = CreateDefaultSubobject("AutoRun"); +} + +void AAuraPlayerController::BeginPlay() +{ + Super::BeginPlay(); + + if (UEnhancedInputLocalPlayerSubsystem* InputSubsystem = ULocalPlayer::GetSubsystem(GetLocalPlayer())) + { + checkf(AuraContext, TEXT("BP_AuraPlayerController: Invalid Input Context")); + InputSubsystem->AddMappingContext(AuraContext, 0); + } + + bShowMouseCursor = true; + DefaultMouseCursor = EMouseCursor::Default; + + FInputModeGameAndUI InputModeData; + InputModeData.SetLockMouseToViewportBehavior(EMouseLockMode::DoNotLock); + InputModeData.SetHideCursorDuringCapture(false); + SetInputMode(InputModeData); +} + +void AAuraPlayerController::SetupInputComponent() +{ + Super::SetupInputComponent(); + + UAuraInputComponent* AuraInputComponent = CastChecked(InputComponent); + + AuraInputComponent->BindAction(MoveAction, ETriggerEvent::Triggered, this, &ThisClass::Move); + AuraInputComponent->BindAbilityActions(AbilityInputConfig, this, &ThisClass::AbilityTagPressed, &ThisClass::AbilityTagReleased, &ThisClass::AbilityTagHeld); + AuraInputComponent->BindAction(HoldPositionAction, ETriggerEvent::Triggered, this, &ThisClass::HoldPositionPressed); + AuraInputComponent->BindAction(HoldPositionAction, ETriggerEvent::Completed, this, &ThisClass::HoldPositionReleased); + +} + + +void AAuraPlayerController::PawnRestart(APawn* aPawn) +{ + BP_PawnRestart(aPawn); + + AutoRunComponent->SetControlledPawn(aPawn); + + UAbilitySystemComponent* ASC = UAbilitySystemBlueprintLibrary::GetAbilitySystemComponent(aPawn); + if (IsValid(ASC)) + { + if (IsLocalPlayerController()) + { + ASC->RegisterGameplayTagEvent(FAuraGameplayTags::Get().Player_Hide_Cursor, EGameplayTagEventType::NewOrRemoved) + .AddLambda([this](const FGameplayTag& CallbackTag, int32 NewCount) { + SetShowMouseCursor(NewCount == 0); + }); + + ASC->RegisterGameplayTagEvent(FAuraGameplayTags::Get().Player_Block_CursorTrace, EGameplayTagEventType::NewOrRemoved) + .AddLambda([this](const FGameplayTag& CallbackTag, int32 NewCount) { + if (NewCount > 0) + this->InteractionController->Deactivate(); + else + this->InteractionController->Activate(); + }); + } + } + + if (AAuraHUD* HUD = GetHUD()) + { + HUD->InitOverlay(); + } +} + + +void AAuraPlayerController::HoldPositionPressed() +{ + AutoRunComponent->HoldPositionPressed(); +} + +void AAuraPlayerController::HoldPositionReleased() +{ + AutoRunComponent->HoldPositionReleased(); +} + +const FHitResult& AAuraPlayerController::GetCursorHit() const { + return InteractionController->GetCursorHit(); +} + +AAuraEnemy* AAuraPlayerController::GetHoveredEnemy() const { + AActor* HoveredActor = InteractionController->GetHoveredActor(); + if (IsValid(HoveredActor)) + return Cast(HoveredActor); + return nullptr; +} + +void AAuraPlayerController::Client_ShowFloatingDamages_Implementation(const FFloatingDamage& FloatingDamage) +{ + ShowFloatingDamages(FloatingDamage); +} + +void AAuraPlayerController::ShowFloatingDamages_Implementation(const FFloatingDamage& FloatingDamage) +{ + +} + +void AAuraPlayerController::Client_ShowReceivedDamages_Implementation(const FFloatingDamage& ReceivedDamage) +{ + ShowReceivedDamages(ReceivedDamage); +} + +void AAuraPlayerController::ShowReceivedDamages_Implementation(const FFloatingDamage& ReceivedDamage) +{ + +} + +void AAuraPlayerController::Move(const struct FInputActionValue& InputActionValue) +{ + const FVector2D InputAxisVector = InputActionValue.Get(); + + if (InputAxisVector.IsNearlyZero()) + return; + + AutoRunComponent->StopAutoRun(); + const FRotator Rotation = GetControlRotation(); + const FRotator YawRotation(0.0f, Rotation.Yaw, 0.0f); + const FRotationMatrix RotationMatrix(YawRotation); + + const FVector ForwardVector = RotationMatrix.GetUnitAxis(EAxis::X); + const FVector RightVector = RotationMatrix.GetUnitAxis(EAxis::Y); + + if (APawn* ControlledPawn = GetPawn()) + { + ControlledPawn->AddMovementInput(ForwardVector, InputAxisVector.Y); + ControlledPawn->AddMovementInput(RightVector, InputAxisVector.X); + } +} + +void AAuraPlayerController::AbilityTagPressed(FGameplayTag InputTag) +{ + if (InputTag.MatchesTagExact(FAuraGameplayTags::Get().InputTag_LMB)) + { + AutoRunComponent->AutoRunKeyPressed(IsValid(GetHoveredEnemy())); + } + if (UAuraAbilitySystemComponent* ASC = GetASC()) + { + ASC->AbilityInputTagPressed(InputTag); + } +} + +void AAuraPlayerController::AbilityTagReleased(FGameplayTag InputTag) +{ + if (InputTag.MatchesTagExact(FAuraGameplayTags::Get().InputTag_LMB)) + { + if (AutoRunComponent->ShouldAutoRun()) + { + AutoRunComponent->AutoRunKeyReleased(); + return; + } + } + if (UAuraAbilitySystemComponent* ASC = GetASC()) + { + ASC->AbilityInputTagReleased(InputTag); + } +} + +void AAuraPlayerController::AbilityTagHeld(FGameplayTag InputTag) +{ + if (InputTag.MatchesTagExact(FAuraGameplayTags::Get().InputTag_LMB)) + { + if (AutoRunComponent->ShouldAutoRun()) + { + AutoRunComponent->AutoRunKeyHold(GetWorld()->GetDeltaSeconds(), GetCursorHit()); + return; + } + } + if (UAuraAbilitySystemComponent* ASC = GetASC()) + { + ASC->AbilityInputTagHeld(InputTag); + } +} + + +UAuraAbilitySystemComponent* AAuraPlayerController::GetASC() +{ + if (!AbilitySystemComponent) + { + if (IAbilitySystemInterface* IASC = Cast(GetPawn())) + { + AbilitySystemComponent = Cast(IASC->GetAbilitySystemComponent()); + } + } + return AbilitySystemComponent; +} diff --git a/Source/Aura/Private/Player/AuraPlayerState.cpp b/Source/Aura/Private/Player/AuraPlayerState.cpp new file mode 100644 index 0000000..a29a2d0 --- /dev/null +++ b/Source/Aura/Private/Player/AuraPlayerState.cpp @@ -0,0 +1,275 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "Player/AuraPlayerState.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "AbilitySystem/AuraAttributeSet.h" +#include "AbilitySystem/Components/LevelingExperienceComponent.h" +#include "AbilitySystem/Components/PerkPointsComponent.h" +#include "AbilitySystem/Data/LevelingInfo.h" +#include "AbilitySystem/Data/AbilityBook.h" +#include "AbilitySystem/Data/CharacterClassInfo.h" +#include "Character/AuraCharacterBase.h" +#include "AbilitySystemBlueprintLibrary.h" + +AAuraPlayerState::AAuraPlayerState() +{ + NetUpdateFrequency = 100.0f; + + AbilitySystemComponent = CreateDefaultSubobject("AbilitySystemComponent"); + AbilitySystemComponent->SetIsReplicated(true); + AbilitySystemComponent->SetReplicationMode(EGameplayEffectReplicationMode::Mixed); + AttributeSet = CreateDefaultSubobject("AttributeSet"); + + LevelingExperience = CreateDefaultSubobject("LevelingExperience"); + PerkPoints = CreateDefaultSubobject("PerkPoints"); +} + +void AAuraPlayerState::BeginPlay() +{ + Super::BeginPlay(); + + if (LevelingExperience) + { + LevelingExperience->OnLevelChanged.AddDynamic(this, &AAuraPlayerState::OnLevelChanged); + } + UpdateAbilityTree(); +} + +UAbilitySystemComponent* AAuraPlayerState::GetAbilitySystemComponent() const +{ + return AbilitySystemComponent; +} + +int32 AAuraPlayerState::GetPlayerLevel() const { + if (LevelingExperience) + return LevelingExperience->GetPlayerLevel(); + return 0; +} + +void AAuraPlayerState::GrantLevelingReward_Implementation(const FLevelingRewardInfo& Reward) +{ + if (IsValid(PerkPoints)) + { + PerkPoints->AddToAttributePoints(Reward.AttributePointsAward); + PerkPoints->AddToAbilityPoints(Reward.AbilityPointAward); + } +} + +void AAuraPlayerState::NetMulticast_PlayLevelUpEffect_Implementation(int32 NewLevel) +{ + PlayLevelUpEffect(NewLevel); +} + +void AAuraPlayerState::PlayLevelUpEffect_Implementation(int32 NewLevel) +{ + +} + +void AAuraPlayerState::Server_SpendAttributesPoint_Implementation(int32 PointsCount, FGameplayTag AttributeTag) +{ + if (!IsValid(PerkPoints)) return; + + int32 SpentPoints = PerkPoints->SpendAttributePoints(PointsCount); + if (SpentPoints) + { + if (UAuraAbilitySystemComponent* AuraASC = Cast(AbilitySystemComponent)) + { + AuraASC->AddAttributePoints(static_cast(SpentPoints), AttributeTag); + } + } +} + +void AAuraPlayerState::OnLevelChanged(int32 NewLevel) +{ + if (HasAuthority()) + { + if (LastLevelReward < NewLevel) + NetMulticast_PlayLevelUpEffect(NewLevel); + if (LevelingExperience && LevelingExperience->LevelingInfo) + { + TArray& LevelRewards(LevelingExperience->LevelingInfo->LevelRewards); + while (LastLevelReward < NewLevel) + { + ++LastLevelReward; + if (LastLevelReward < LevelRewards.Num()) + { + FLevelingRewardInfo Reward = LevelRewards[LastLevelReward]; + GrantLevelingReward(Reward); + } + } + } + UpdateAbilityTree(); + } + if (UAuraAbilitySystemComponent* AuraASC = Cast(AbilitySystemComponent)) + { + for (FActiveGameplayEffectHandle& EffectHandle : AuraASC->BaseEffectsHandles) + { + AuraASC->SetActiveGameplayEffectLevel(EffectHandle, NewLevel); + // AuraASC->SetActiveGameplayEffectLevelUsingQuery() + } + } +} + + +/** Ability Management */ + +static UAbilityBook* GetAbilityBook(APawn* Pawn) +{ + if (AAuraCharacterBase* AuraCharacter = Cast(Pawn)) + { + if (AuraCharacter->GetClassInfo()) + return AuraCharacter->GetClassInfo()->AbilitiesBook; + } + return nullptr; +} + +bool AAuraPlayerState::MeetAbilityRequirement(const FAuraAbilityRequirement& Requirement) const +{ + if (GetPlayerLevel() < Requirement.MiminalPlayerLevel) + return false; + + for (const FGameplayAbilityGrant& RequiredAbility : Requirement.RequiredAbilities) + { + FGameplayTag AbilityID = UAuraAbilitySystemComponent::GetAbilityIDTagFromAbility(RequiredAbility.Class.GetDefaultObject()); + if (FGameplayAbilitySpec* AbilitySpec = AbilitySystemComponent->GetAbilitySpecForAbilityIDTag(AbilityID)) + { + if (AbilitySpec->Level < RequiredAbility.Level) + return false; + } + else + return false; + } + + return true; +} + +FString AAuraPlayerState::AbilityRequirementRichText(const FAuraAbilityRequirement& Requirement, const FString& ValidBalise, const FString& WrongBalise) const +{ + UAbilityBook* AbilityBook = GetAbilityBook(GetPawn()); + FString Result; + + Result += FString::Printf(TEXT("<%s>Level %d\n"), + *(GetPlayerLevel() >= Requirement.MiminalPlayerLevel ? ValidBalise : WrongBalise), + Requirement.MiminalPlayerLevel); + + for (const FGameplayAbilityGrant& RequiredAbility : Requirement.RequiredAbilities) + { + bool bAbilityValid = true; + FGameplayTag AbilityID = UAuraAbilitySystemComponent::GetAbilityIDTagFromAbility(RequiredAbility.Class.GetDefaultObject()); + if (FGameplayAbilitySpec* AbilitySpec = AbilitySystemComponent->GetAbilitySpecForAbilityIDTag(AbilityID)) + { + if (AbilitySpec->Level < RequiredAbility.Level) + bAbilityValid = false; + } + else + bAbilityValid = false; + + FString AbilityName; + if (const FAuraAbilityInfo* AbilityInfo = AbilityBook->GetAbilities().Find(AbilityID)) + AbilityName = AbilityInfo->Name.ToString(); + else + AbilityName = AbilityID.ToString(); + + Result += FString::Printf(TEXT("<%s>%s Level %d\n"), + *(bAbilityValid ? ValidBalise : WrongBalise), + *AbilityName, + RequiredAbility.Level + ); + } + + return Result; +} + +bool AAuraPlayerState::CanUpgradeAbility(FGameplayTag AbilityID) const +{ + if (UAbilityBook *AbilityBook = GetAbilityBook(GetPawn())) + { + if (FGameplayAbilitySpec* AbilitySpec = AbilitySystemComponent->GetAbilitySpecForAbilityIDTag(AbilityID)) + { + const int32 AbilityNextLevel = AbilitySpec->Level + 1; + if (const FAuraAbilityRequirement* Requirement = AbilityBook->GetRequirementsForAbilityLevel(AbilityID, AbilityNextLevel)) + { + return MeetAbilityRequirement(*Requirement); + } + // else requirement not found (Level does not exist) + } + // else no spec + } + // else no ability book + return false; +} + +void AAuraPlayerState::Server_UpgradeAbility_Implementation(FGameplayTag AbilityID) +{ + if (!IsValid(PerkPoints)) return; + if (!CanUpgradeAbility(AbilityID)) return; + + UAbilityBook *AbilityBook = GetAbilityBook(GetPawn()); + + if (FGameplayAbilitySpec* AbilitySpec = AbilitySystemComponent->GetAbilitySpecForAbilityIDTag(AbilityID)) + { + int32 SpentPoints = PerkPoints->SpendAbilityPoints(1); + if (SpentPoints >= 1) + { + AbilitySystemComponent->AddLevelForAbilitySpec(*AbilitySpec, 1); + UpdateAbilityTree(); + } + } +} + +bool AAuraPlayerState::CanEquipAbility(FGameplayTag AbilityID) const +{ + if (FGameplayAbilitySpec* AbilitySpec = AbilitySystemComponent->GetAbilitySpecForAbilityIDTag(AbilityID)) + { + return AbilitySpec->Level > 0; + } + return false; +} + +void AAuraPlayerState::EquipAbility(FGameplayTag AbilityID, FGameplayTag InputTag) +{ + if (FGameplayAbilitySpec* AbilitySpec = AbilitySystemComponent->GetAbilitySpecForAbilityIDTag(AbilityID)) + { + AbilitySystemComponent->AssignInputTagToAbilitySpec(InputTag, *AbilitySpec); + } +} + +void AAuraPlayerState::UpdateAbilityTree() +{ + if (!HasAuthority() || !AbilitySystemComponent) return; + + // 1. Get all abilities infos + UAbilityBook *AbilityBook = GetAbilityBook(GetPawn()); + if (!AbilityBook) return; + TMap LockedAbilities = AbilityBook->GetAbilities(); + + // 2. Remove already existings ones + AbilitySystemComponent->ForEachAbilityLambda([this, &LockedAbilities](FGameplayAbilitySpec& AbilitySpec) { + FGameplayTag AbilityID = UAuraAbilitySystemComponent::GetAbilityIDTagFromAbility(AbilitySpec.Ability); + if (AbilityID.IsValid()) + { + LockedAbilities.Remove(AbilityID); + } + }); + + // 3. Check for requirements of remaining abilities to add them + for (const TPair& LockedAbility : LockedAbilities) + { + const FAuraAbilityInfo& AbilityInfo(LockedAbility.Value); + + bool bIsAbilityEligible = false; + if (AbilityInfo.RequirementsForLevels.IsEmpty()) + bIsAbilityEligible = true; + else + bIsAbilityEligible = MeetAbilityRequirement(AbilityInfo.RequirementsForLevels[0]); + + if (bIsAbilityEligible) + { + FGameplayAbilityGrant Grant; + Grant.Class = AbilityInfo.Ability; + Grant.Level = 0; + + AbilitySystemComponent->GrantAbility(Grant); + } + } +} diff --git a/Source/Aura/Private/Player/Components/AutoRunComponent.cpp b/Source/Aura/Private/Player/Components/AutoRunComponent.cpp new file mode 100644 index 0000000..f683698 --- /dev/null +++ b/Source/Aura/Private/Player/Components/AutoRunComponent.cpp @@ -0,0 +1,107 @@ +// Amasson + + +#include "Player/Components/AutoRunComponent.h" +#include "Components/SplineComponent.h" +#include "NavigationSystem.h" +#include "NavigationPath.h" + + +UAutoRunComponent::UAutoRunComponent() +{ + PrimaryComponentTick.bCanEverTick = true; + + PathSpline = CreateDefaultSubobject("PathSpline"); +} + +void UAutoRunComponent::SetControlledPawn(APawn* Pawn) +{ + ControlledPawn = Pawn; +} + +void UAutoRunComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) +{ + Super::TickComponent(DeltaTime, TickType, ThisTickFunction); + + if (bAutoRunning) + if (IsValid(ControlledPawn) && IsValid(PathSpline)) + { + const FVector PawnLocation = ControlledPawn->GetActorLocation(); + const float ClosePointKey = PathSpline->FindInputKeyClosestToWorldLocation(PawnLocation); + const FVector LocationOnSpline = PathSpline->GetLocationAtSplineInputKey(ClosePointKey, ESplineCoordinateSpace::World); + const FVector SplineDirection = PathSpline->GetDirectionAtSplineInputKey(ClosePointKey, ESplineCoordinateSpace::World); + const FVector NextTargetPoint = PathSpline->GetLocationAtSplineInputKey(FMath::CeilToFloat(ClosePointKey + 0.5), ESplineCoordinateSpace::World); + FVector DirectionToNextTargetPoint = NextTargetPoint - PawnLocation; + + DirectionToNextTargetPoint.Normalize(); + + ControlledPawn->AddMovementInput((SplineDirection + DirectionToNextTargetPoint) / 2); + + if (ClosePointKey >= static_cast(PathSpline->GetNumberOfSplinePoints()) - 1.1) + bAutoRunning = false; + + } +} + +void UAutoRunComponent::StopAutoRun() +{ + bAutoRunning = false; +} + +void UAutoRunComponent::AutoRunKeyPressed(bool bTargetingSomething) +{ + bTargeting = bTargetingSomething; + FollowTime = 0; + bAutoRunning = false; +} + +void UAutoRunComponent::AutoRunKeyReleased() +{ + if (!IsValid(ControlledPawn)) + return; + + if (FollowTime < ShortPressThreshold) + { + if (UNavigationPath* NavPath = UNavigationSystemV1::FindPathToLocationSynchronously(this, ControlledPawn->GetActorLocation(), CachedDestination)) + { + if (IsValid(PathSpline)) + { + PathSpline->ClearSplinePoints(); + for (const FVector& PointLoc : NavPath->PathPoints) + { + PathSpline->AddSplinePoint(PointLoc, ESplineCoordinateSpace::World); + } + } + if (!NavPath->PathPoints.IsEmpty()) + CachedDestination = NavPath->PathPoints[NavPath->PathPoints.Num() - 1]; + OnAutoWalkBegin.Broadcast(this, CachedDestination); + bAutoRunning = true; + } + } +} + +void UAutoRunComponent::AutoRunKeyHold(float DeltaTime, const FHitResult& CursorHit) +{ + FollowTime += DeltaTime; + + if (CursorHit.bBlockingHit) + { + CachedDestination = CursorHit.ImpactPoint; + if (IsValid(ControlledPawn)) + { + const FVector WorldDirection = (CachedDestination - ControlledPawn->GetActorLocation()).GetSafeNormal(); + ControlledPawn->AddMovementInput(WorldDirection); + } + } +} + +bool UAutoRunComponent::IsAtDestination() const +{ + if (!IsValid(ControlledPawn)) + return false; + + const float SquaredDistanceToDestination = (ControlledPawn->GetActorLocation() - CachedDestination).SquaredLength(); + const float SquaredAcceptanceRadius = AutoRunAcceptanceRadius * AutoRunAcceptanceRadius; + + return SquaredDistanceToDestination <= SquaredAcceptanceRadius; +} diff --git a/Source/Aura/Private/UI/AuraUIBlueprintFunctionLibrary.cpp b/Source/Aura/Private/UI/AuraUIBlueprintFunctionLibrary.cpp new file mode 100644 index 0000000..4bc669d --- /dev/null +++ b/Source/Aura/Private/UI/AuraUIBlueprintFunctionLibrary.cpp @@ -0,0 +1,47 @@ +// Amasson + +#include "UI/AuraUIBlueprintFunctionLibrary.h" +#include "Kismet/GameplayStatics.h" +#include "UI/HUD/AuraHUD.h" +#include "UI/WidgetController/AuraWidgetControllerBase.h" +#include "Player/AuraPlayerController.h" +#include "Player/AuraPlayerState.h" + + +UOverlayController* UAuraUIBlueprintFunctionLibrary::GetOverlayController(const UObject* WorldContextObject) +{ + if (APlayerController *PC = UGameplayStatics::GetPlayerController(WorldContextObject, 0)) + { + if (AAuraHUD* Hud = Cast(PC->GetHUD())) + { + return Hud->GetOverlayController(); + } + } + return nullptr; +} + +UAttributeMenuController* UAuraUIBlueprintFunctionLibrary::GetAttributeMenuController(const UObject* WorldContextObject) +{ + if (APlayerController *PC = UGameplayStatics::GetPlayerController(WorldContextObject, 0)) + { + if (AAuraHUD* Hud = Cast(PC->GetHUD())) + { + return Hud->GetAttributeMenuController(); + } + } + return nullptr; +} + +UAbilityMenuController* UAuraUIBlueprintFunctionLibrary::GetAbilityMenuController(const UObject* WorldContextObject) +{ + if (APlayerController *PC = UGameplayStatics::GetPlayerController(WorldContextObject, 0)) + { + if (AAuraHUD* Hud = Cast(PC->GetHUD())) + { + return Hud->GetAbilityMenuController(); + } + } + return nullptr; +} + +/** End Widget Controllers */ diff --git a/Source/Aura/Private/UI/HUD/AuraHUD.cpp b/Source/Aura/Private/UI/HUD/AuraHUD.cpp new file mode 100644 index 0000000..cb98230 --- /dev/null +++ b/Source/Aura/Private/UI/HUD/AuraHUD.cpp @@ -0,0 +1,96 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "UI/HUD/AuraHUD.h" +#include "Player/AuraPlayerController.h" +#include "Player/AuraPlayerState.h" +#include "UI/ControllableUserWidget.h" +#include "UI/WidgetController/OverlayController.h" +#include "UI/WidgetController/AttributeMenuController.h" +#include "UI/WidgetController/AbilityMenuController.h" + +UOverlayController* AAuraHUD::GetOverlayController() +{ + if (!OverlayController) + { + UWidgetController* NewWidgetController = UWidgetController::MakeWidgetController( + this, + OverlayControllerClass, + GetActorToObserve() + ); + + OverlayController = Cast(NewWidgetController); + } + return OverlayController; +} + +UAttributeMenuController* AAuraHUD::GetAttributeMenuController() +{ + if (!AttributeMenuController) + { + UWidgetController* NewWidgetController = UWidgetController::MakeWidgetController( + this, + AttributeMenuControllerClass, + GetActorToObserve() + ); + + AttributeMenuController = Cast(NewWidgetController); + } + return AttributeMenuController; +} + +UAbilityMenuController* AAuraHUD::GetAbilityMenuController() +{ + if (!AbilityMenuController) + { + UWidgetController* NewWidgetController = UWidgetController::MakeWidgetController( + this, + AbilityMenuControllerClass, + GetActorToObserve() + ); + + AbilityMenuController = Cast(NewWidgetController); + } + return AbilityMenuController; +} + +void AAuraHUD::InitOverlay() +{ + checkf(OverlayWidgetClass, TEXT("BP_AuraHUD: Invalid class for OverlayWidgetClass")); + checkf(OverlayControllerClass, TEXT("BP_AuraHUD: Invalid class for OverlayControllerClass")); + + ClearOverlay(); + + UOverlayController* WidgetController = GetOverlayController(); + + OverlayWidget = CreateWidget(GetWorld(), OverlayWidgetClass); + + OverlayWidget->SetWidgetController(WidgetController); + WidgetController->BroadcastValues(); + + OverlayWidget->AddToViewport(); +} + + +void AAuraHUD::ClearOverlay() +{ + if (IsValid(OverlayWidget)) + OverlayWidget->RemoveFromParent(); + + OverlayController = nullptr; + OverlayWidget = nullptr; +} + +AActor* AAuraHUD::GetActorToObserve() const +{ + AActor* ObservedActor = nullptr; + + APlayerController* PC = GetOwningPlayerController(); + if (IsValid(PC)) + { + // Type is actor to make ternary operator understand + AActor* PS = PC->GetPlayerState(); + ObservedActor = IsValid(PS) ? PS : PC; + } + + return ObservedActor; +} diff --git a/Source/Aura/Private/UI/WidgetController/AbilityMenuController.cpp b/Source/Aura/Private/UI/WidgetController/AbilityMenuController.cpp new file mode 100644 index 0000000..b2f0f1c --- /dev/null +++ b/Source/Aura/Private/UI/WidgetController/AbilityMenuController.cpp @@ -0,0 +1,84 @@ +// Amasson + + +#include "UI/WidgetController/AbilityMenuController.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "AbilitySystem/Data/AbilityBook.h" +#include "AbilitySystem/Data/CharacterClassInfo.h" +#include "AbilitySystem/Components/LevelingExperienceComponent.h" +#include "AbilitySystem/Components/PerkPointsComponent.h" +#include "Player/AuraPlayerState.h" +#include "Character/AuraCharacterBase.h" + +#include "UI/WidgetController/Components/AbilitiesStatusWCComponent.h" +#include "UI/WidgetController/Components/PerkPointsWCComponent.h" + + +void UAbilityMenuController::Construct() +{ + Super::Construct(); + + AbilitiesStatusWcc = AddComponent("AbilitiesStatus"); + PerkPointsWcc = AddComponent("PerkPoints"); +} + +void UAbilityMenuController::ObservedActorSet() +{ + Super::ObservedActorSet(); + + AbilityBook = RetrieveAbilityBook(); + + UPerkPointsComponent* PerkPoints = IsValid(AuraPlayerState) ? AuraPlayerState->GetPerkPoints() : nullptr; + + if (IsValid(AbilitiesStatusWcc)) + AbilitiesStatusWcc->Initialize(AuraAbilitySystemComponent, AbilityBook); + + if (IsValid(PerkPointsWcc)) + PerkPointsWcc->Initialize(PerkPoints); + +} + +bool UAbilityMenuController::CanUpgradeAbility(FGameplayTag AbilityID) const +{ + if (IsValid(AuraPlayerState)) + { + return AuraPlayerState->CanUpgradeAbility(AbilityID); + } + return false; +} + +bool UAbilityMenuController::CanEquipAbility(FGameplayTag AbilityID) const +{ + if (IsValid(AuraPlayerState)) + { + return AuraPlayerState->CanEquipAbility(AbilityID); + } + return false; +} + +void UAbilityMenuController::UpgradeAbility(FGameplayTag AbilityID) +{ + if (AuraPlayerState) + { + AuraPlayerState->Server_UpgradeAbility(AbilityID); + } +} + +void UAbilityMenuController::EquipAbility(FGameplayTag AbilityID, FGameplayTag InputTag) +{ + if (AuraPlayerState) + { + AuraPlayerState->EquipAbility(AbilityID, InputTag); + } +} + +FString UAbilityMenuController::GetRequirementRichTextForAbility(FGameplayTag AbilityID, int32 Level, FString ValidBalise, FString WrongBalise) const +{ + if (!IsValid(AuraPlayerState) || !IsValid(AbilityBook)) return FString(); + + if (const FAuraAbilityRequirement* Requirement = AbilityBook->GetRequirementsForAbilityLevel(AbilityID, Level)) + { + return AuraPlayerState->AbilityRequirementRichText(*Requirement, ValidBalise, WrongBalise); + } + return FString(); +} diff --git a/Source/Aura/Private/UI/WidgetController/AttributeMenuController.cpp b/Source/Aura/Private/UI/WidgetController/AttributeMenuController.cpp new file mode 100644 index 0000000..89d9104 --- /dev/null +++ b/Source/Aura/Private/UI/WidgetController/AttributeMenuController.cpp @@ -0,0 +1,41 @@ +// Amasson + + +#include "UI/WidgetController/AttributeMenuController.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "AbilitySystem/AuraAttributeSet.h" +#include "AbilitySystem/Data/AttributeInfo.h" +#include "AbilitySystem/Components/PerkPointsComponent.h" +#include "Player/AuraPlayerState.h" + +#include "UI/WidgetController/Components/AttributeSetWCComponent.h" +#include "UI/WidgetController/Components/PerkPointsWCComponent.h" + +void UAttributeMenuController::Construct() +{ + Super::Construct(); + + AttributeSetWcc = AddComponent("AttributeSet"); + PerkPointsWcc = AddComponent("PerkPoints"); +} + +void UAttributeMenuController::ObservedActorSet() +{ + Super::ObservedActorSet(); + + UPerkPointsComponent* PerkPoints = IsValid(AuraPlayerState) ? AuraPlayerState->GetPerkPoints() : nullptr; + + if (IsValid(AttributeSetWcc)) + AttributeSetWcc->Initialize(AuraAbilitySystemComponent, AuraAttributeSet, AttributeInfo); + + if (IsValid(PerkPointsWcc)) + PerkPointsWcc->Initialize(PerkPoints); +} + +void UAttributeMenuController::UpgradeAttribute(FGameplayTag AttributeTag) +{ + if (IsValid(AuraPlayerState)) + { + AuraPlayerState->Server_SpendAttributesPoint(1, AttributeTag); + } +} diff --git a/Source/Aura/Private/UI/WidgetController/AuraWidgetControllerBase.cpp b/Source/Aura/Private/UI/WidgetController/AuraWidgetControllerBase.cpp new file mode 100644 index 0000000..ce2f44b --- /dev/null +++ b/Source/Aura/Private/UI/WidgetController/AuraWidgetControllerBase.cpp @@ -0,0 +1,50 @@ +// Amasson + + +#include "UI/WidgetController/AuraWidgetControllerBase.h" +#include "Character/AuraCharacterBase.h" +#include "Player/AuraPlayerState.h" +#include "AbilitySystemBlueprintLibrary.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "AbilitySystem/AuraAttributeSet.h" +#include "AbilitySystem/Data/CharacterClassInfo.h" + + +void UAuraWidgetControllerBase::ObservedActorSet() +{ + Super::ObservedActorSet(); + + if (IsValid(Pawn)) + AuraCharacter = Cast(Pawn); + + if (IsValid(PlayerState)) + AuraPlayerState = Cast(PlayerState); + + if (IsValid(AuraCharacter)) + { + if (UAbilitySystemComponent* ASC = AuraCharacter->GetAbilitySystemComponent()) + AuraAbilitySystemComponent = Cast(ASC); + if (UAttributeSet* AS = AuraCharacter->GetAttributeSet()) + AuraAttributeSet = Cast(AS); + } + else if (IsValid(AuraPlayerState)) + { + if (UAbilitySystemComponent* ASC = AuraPlayerState->GetAbilitySystemComponent()) + AuraAbilitySystemComponent = Cast(ASC); + AuraAttributeSet = AuraPlayerState->GetAttributeSet(); + } + else if (IsValid(Actor)) + { + AuraAbilitySystemComponent = Actor->GetComponentByClass(); + AuraAttributeSet = nullptr; + } +} + + +UAbilityBook* UAuraWidgetControllerBase::RetrieveAbilityBook() const +{ + if (!IsValid(AuraCharacter) || !IsValid(AuraCharacter->GetClassInfo())) + return nullptr; + + return AuraCharacter->GetClassInfo()->AbilitiesBook; +} diff --git a/Source/Aura/Private/UI/WidgetController/Components/AbilitiesInputWCComponent.cpp b/Source/Aura/Private/UI/WidgetController/Components/AbilitiesInputWCComponent.cpp new file mode 100644 index 0000000..2a3d406 --- /dev/null +++ b/Source/Aura/Private/UI/WidgetController/Components/AbilitiesInputWCComponent.cpp @@ -0,0 +1,80 @@ +// Amasson + + +#include "UI/WidgetController/Components/AbilitiesInputWCComponent.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "AbilitySystem/Data/AbilityBook.h" + + +void UAbilitiesInputWCComponent::Initialize(UAuraAbilitySystemComponent* ASC, UAbilityBook* AB) +{ + AbilitySystemComponent = ASC; + AbilityBook = AB; +} + +void UAbilitiesInputWCComponent::BroadcastValues() +{ + if (IsValid(AbilitySystemComponent)) + { + OnAbilitySpecChange(AbilitySystemComponent, FGameplayAbilitySpec()); + } +} + +void UAbilitiesInputWCComponent::BindCallbacksToDependencies() +{ + if (IsValid(AbilitySystemComponent)) + { + AbilitySystemComponent->OnAbilitySpecChange.AddUObject(this, &ThisClass::OnAbilitySpecChange); + AbilitySystemComponent->OnAbilitySpecRemoving.AddUObject(this, &ThisClass::OnAbilitySpecRemoving); + } +} + +void UAbilitiesInputWCComponent::OnAbilitySpecChange(UAuraAbilitySystemComponent* AuraASC, const FGameplayAbilitySpec& AbilitySpec) +{ + TSet NewAbilitiesInputTags; + + // FForEachAbilityDelegate BroadcastDelegate; + // BroadcastDelegate.BindLambda([this, AuraASC, &NewAbilitiesInputTags](FGameplayAbilitySpec& AbilitySpec) + // { + // // ... + // }); + // AuraASC->ForEachAbilityDelegate(BroadcastDelegate); + + AuraASC->ForEachAbilityLambda([this, AuraASC, &NewAbilitiesInputTags](FGameplayAbilitySpec& AbilitySpec) + { + FGameplayTag AbilityTag = AuraASC->GetAbilityIDTagFromAbility(AbilitySpec.Ability); + FAuraAbilityInfo Info; + if (AbilityBook && AbilityTag.IsValid()) + { + const FAuraAbilityInfo* FoundInfo = AbilityBook->GetAbilities().Find(AbilityTag); + if (FoundInfo) + { + Info = *FoundInfo; + } + } + FGameplayTag InputTag = AuraASC->GetInputTagFromAbilitySpec(AbilitySpec); + NewAbilitiesInputTags.Add(InputTag); + if (InputTag.IsValid()) + { + OnAbilityInputInfoChange.Broadcast(InputTag, Info); + } + }); + + for (const FGameplayTag& InputTag : AbilitiesInputTags) + { + if (!NewAbilitiesInputTags.Contains(InputTag)) + { + OnAbilityInputRemoved.Broadcast(InputTag); + } + } + AbilitiesInputTags = NewAbilitiesInputTags; +} + +void UAbilitiesInputWCComponent::OnAbilitySpecRemoving(UAuraAbilitySystemComponent* AuraASC, const FGameplayAbilitySpec& AbilitySpec) +{ + FGameplayTag InputTag = AuraASC->GetInputTagFromAbilitySpec(AbilitySpec); + if (InputTag.IsValid()) + { + OnAbilityInputRemoved.Broadcast(InputTag); + } +} diff --git a/Source/Aura/Private/UI/WidgetController/Components/AbilitiesStatusWCComponent.cpp b/Source/Aura/Private/UI/WidgetController/Components/AbilitiesStatusWCComponent.cpp new file mode 100644 index 0000000..9197cb8 --- /dev/null +++ b/Source/Aura/Private/UI/WidgetController/Components/AbilitiesStatusWCComponent.cpp @@ -0,0 +1,76 @@ +// Amasson + + +#include "UI/WidgetController/Components/AbilitiesStatusWCComponent.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "AbilitySystem/Data/AbilityBook.h" + + +void UAbilitiesStatusWCComponent::Initialize(UAuraAbilitySystemComponent* ASC, UAbilityBook* AB) +{ + AbilitySystemComponent = ASC; + AbilitiesBook = AB; +} + +void UAbilitiesStatusWCComponent::BroadcastValues() +{ + if (AbilitySystemComponent) + { + AbilitySystemComponent->ForEachAbilityLambda([this](FGameplayAbilitySpec& AbilitySpec) + { + OnAbilitySpecChange(AbilitySystemComponent, AbilitySpec); + }); + } +} + +void UAbilitiesStatusWCComponent::BindCallbacksToDependencies() +{ + if (AbilitySystemComponent) + { + AbilitySystemComponent->OnAbilitySpecChange.AddUObject(this, &ThisClass::OnAbilitySpecChange); + AbilitySystemComponent->OnAbilitySpecRemoving.AddUObject(this, &ThisClass::OnAbilitySpecRemoving); + } +} + +void UAbilitiesStatusWCComponent::GetAbilityBookCategories(TSet& Names) const +{ + if (AbilitiesBook) + { + for (const TPair& BookLine : AbilitiesBook->GetAbilities()) + { + Names.Add(BookLine.Value.TreeName); + } + } +} + +void UAbilitiesStatusWCComponent::GetAllAbilitiesInformations(TArray& AbilityBook) const +{ + if (AbilitiesBook) + { + for (const TPair& BookLine : AbilitiesBook->GetAbilities()) + { + FAuraAbilityInfo AbilityInfo = BookLine.Value; + AbilityBook.Add(AbilityInfo); + } + } +} + +void UAbilitiesStatusWCComponent::OnAbilitySpecChange(UAuraAbilitySystemComponent* AuraASC, const FGameplayAbilitySpec& AbilitySpec) +{ + const FGameplayTag AbilityID = AuraASC->GetAbilityIDTagFromAbility(AbilitySpec.Ability); + if (AbilityID.IsValid()) + { + const FGameplayTag StatusTag = AuraASC->GetStatusTagFromAbilitySpec(AbilitySpec); + int32 Level = AbilitySpec.Level; + OnAbilityStatusUpdated.Broadcast(AbilityID, StatusTag, Level); + } +} + +void UAbilitiesStatusWCComponent::OnAbilitySpecRemoving(UAuraAbilitySystemComponent* AuraASC, const FGameplayAbilitySpec& AbilitySpec) +{ + const FGameplayTag AbilityID = AuraASC->GetAbilityIDTagFromAbility(AbilitySpec.Ability); + if (AbilityID.IsValid()) + { + OnAbilityStatusRemoved.Broadcast(AbilityID); + } +} diff --git a/Source/Aura/Private/UI/WidgetController/Components/AttributeSetWCComponent.cpp b/Source/Aura/Private/UI/WidgetController/Components/AttributeSetWCComponent.cpp new file mode 100644 index 0000000..411043e --- /dev/null +++ b/Source/Aura/Private/UI/WidgetController/Components/AttributeSetWCComponent.cpp @@ -0,0 +1,53 @@ +// Amasson + + +#include "UI/WidgetController/Components/AttributeSetWCComponent.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "AbilitySystem/AuraAttributeSet.h" +#include "AbilitySystem/AuraAttributeList.h" +#include "AbilitySystem/Data/AttributeInfo.h" +#include "GameplayTagContainer.h" +#include "AuraGameplayTags.h" + + +void UAttributeSetWCComponent::Initialize(UAuraAbilitySystemComponent* ASC, UAuraAttributeSet* AS, UAttributeInfo* AI) +{ + AbilitySystemComponent = ASC; + AttributeSet = AS; + AttributeInfo = AI; +} + +void UAttributeSetWCComponent::BroadcastValues() +{ + if (AttributeSet && AttributeInfo) + { +#define INITIAL_VALUE_BROADCAST(AttributeName, CategoryName) \ + FAuraAttributeInfo AttributeName##Info = AttributeInfo->FindAttributeInfoForTag(FAuraGameplayTags::Get().Attributes_##CategoryName##_##AttributeName, true); \ + AttributeName##Info.AttributeValue = AttributeSet->Get##AttributeName(); \ + OnAttributeInfoChange.Broadcast(AttributeName##Info); + + FOREACH_ATTRIBUTE_Stats(INITIAL_VALUE_BROADCAST) + + } +} + +void UAttributeSetWCComponent::BindCallbacksToDependencies() +{ + if (AbilitySystemComponent && AttributeSet && AttributeInfo) + { + +#define BIND_CALLBACK_ATTRIBUTE(AttributeName, CategoryName) \ + FAuraAttributeInfo Info##AttributeName = AttributeInfo->FindAttributeInfoForTag(FAuraGameplayTags::Get().Attributes_##CategoryName##_##AttributeName, true); \ + AbilitySystemComponent->GetGameplayAttributeValueChangeDelegate(AttributeSet->Get##AttributeName##Attribute()) \ + .AddLambda([this, Info##AttributeName](const FOnAttributeChangeData& Data) { \ + FAuraAttributeInfo NewInfo = Info##AttributeName; \ + NewInfo.AttributeValue = Data.NewValue; \ + OnAttributeInfoChange.Broadcast(NewInfo); \ + }); + + + FOREACH_ATTRIBUTE_Stats(BIND_CALLBACK_ATTRIBUTE); + + } + +} diff --git a/Source/Aura/Private/UI/WidgetController/Components/ExperienceWCComponent.cpp b/Source/Aura/Private/UI/WidgetController/Components/ExperienceWCComponent.cpp new file mode 100644 index 0000000..36b5c1b --- /dev/null +++ b/Source/Aura/Private/UI/WidgetController/Components/ExperienceWCComponent.cpp @@ -0,0 +1,39 @@ +// Amasson + + +#include "UI/WidgetController/Components/ExperienceWCComponent.h" +#include "AbilitySystem/Components/LevelingExperienceComponent.h" + + +void UExperienceWCComponent::Initialize(ULevelingExperienceComponent* LE) +{ + LevelingExperience = LE; +} + +void UExperienceWCComponent::BroadcastValues() +{ + if (LevelingExperience) + { + OnPlayerLevelUpdate.Broadcast(LevelingExperience->GetPlayerLevel()); + OnPlayerExperienceUpdate.Broadcast(LevelingExperience->GetExperience(), LevelingExperience->GetExperienceProgress()); + } +} + +void UExperienceWCComponent::BindCallbacksToDependencies() +{ + if (LevelingExperience) + { + LevelingExperience->OnLevelChanged.AddDynamic(this, &ThisClass::OnLevelUpdate); + LevelingExperience->OnExperienceChanged.AddDynamic(this, &ThisClass::OnExperienceUpdate); + } +} + +void UExperienceWCComponent::OnLevelUpdate(int32 NewLevel) +{ + OnPlayerLevelUpdate.Broadcast(NewLevel); +} + +void UExperienceWCComponent::OnExperienceUpdate(int32 NewExperience, float NewProgress) +{ + OnPlayerExperienceUpdate.Broadcast(NewExperience, NewProgress); +} diff --git a/Source/Aura/Private/UI/WidgetController/Components/PerkPointsWCComponent.cpp b/Source/Aura/Private/UI/WidgetController/Components/PerkPointsWCComponent.cpp new file mode 100644 index 0000000..94f16ee --- /dev/null +++ b/Source/Aura/Private/UI/WidgetController/Components/PerkPointsWCComponent.cpp @@ -0,0 +1,40 @@ +// Amasson + + +#include "UI/WidgetController/Components/PerkPointsWCComponent.h" +#include "AbilitySystem/Components/PerkPointsComponent.h" + + +void UPerkPointsWCComponent::Initialize(UPerkPointsComponent* PP) +{ + PerkPoints = PP; +} + +void UPerkPointsWCComponent::BroadcastValues() +{ + if (PerkPoints) + { + OnAttributePointsChange.Broadcast(PerkPoints->GetAttributePoints()); + OnAbilityPointsChange.Broadcast(PerkPoints->GetAbilityPoints()); + } +} + +void UPerkPointsWCComponent::BindCallbacksToDependencies() +{ + if (PerkPoints) + { + PerkPoints->OnAttributePointsChangedDelegate.AddDynamic(this, &ThisClass::OnAttributePointsChanged); + PerkPoints->OnAbilityPointsChangedDelegate.AddDynamic(this, &ThisClass::OnAbilityPointsChanged); + } + +} + +void UPerkPointsWCComponent::OnAttributePointsChanged(int32 NewValue) +{ + OnAttributePointsChange.Broadcast(NewValue); +} + +void UPerkPointsWCComponent::OnAbilityPointsChanged(int32 NewValue) +{ + OnAbilityPointsChange.Broadcast(NewValue); +} \ No newline at end of file diff --git a/Source/Aura/Private/UI/WidgetController/Components/ReceivingEffectWCComponent.cpp b/Source/Aura/Private/UI/WidgetController/Components/ReceivingEffectWCComponent.cpp new file mode 100644 index 0000000..c7cd586 --- /dev/null +++ b/Source/Aura/Private/UI/WidgetController/Components/ReceivingEffectWCComponent.cpp @@ -0,0 +1,38 @@ +// Amasson + + +#include "UI/WidgetController/Components/ReceivingEffectWCComponent.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "AbilitySystem/Data/EffectInfo.h" + +void UReceivingEffectWCComponent::Initialize(UAuraAbilitySystemComponent* ASC, UEffectInfo* EI) +{ + AbilitySystemComponent = ASC; + EffectsInformations = EI; +} + +void UReceivingEffectWCComponent::BroadcastValues() +{ + +} + +void UReceivingEffectWCComponent::BindCallbacksToDependencies() +{ + if (AbilitySystemComponent) + { + AbilitySystemComponent->OnEffectAssetTags.AddLambda([this](const FGameplayTagContainer& AssetTags) { + if (EffectsInformations) + { + for (const FGameplayTag& AssetTag : AssetTags) + { + FAuraEffectInfo* Info = EffectsInformations->EffectsInformations.Find(AssetTag); + if (Info) + { + Info->MessageTag = AssetTag; + OnNewEffectInfo.Broadcast(*Info); + } + } + } + }); + } +} diff --git a/Source/Aura/Private/UI/WidgetController/Components/VitalAttributesWCComponent.cpp b/Source/Aura/Private/UI/WidgetController/Components/VitalAttributesWCComponent.cpp new file mode 100644 index 0000000..d452d82 --- /dev/null +++ b/Source/Aura/Private/UI/WidgetController/Components/VitalAttributesWCComponent.cpp @@ -0,0 +1,56 @@ +// Amasson + + +#include "UI/WidgetController/Components/VitalAttributesWCComponent.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "AbilitySystem/AuraAttributeSet.h" + + +void UVitalAttributesWCComponent::Initialize(UAuraAbilitySystemComponent* ASC, UAuraAttributeSet* AS) +{ + AbilitySystemComponent = ASC; + AttributeSet = AS; +} + +void UVitalAttributesWCComponent::BroadcastValues() +{ + if (AttributeSet) + { + OnHealthChanged.Broadcast(AttributeSet->GetHealth()); + OnMaxHealthChanged.Broadcast(AttributeSet->GetMaxHealth()); + OnManaChanged.Broadcast(AttributeSet->GetMana()); + OnMaxManaChanged.Broadcast(AttributeSet->GetMaxMana()); + } +} + +void UVitalAttributesWCComponent::BindCallbacksToDependencies() +{ + if (AttributeSet && AbilitySystemComponent) + { + AbilitySystemComponent->GetGameplayAttributeValueChangeDelegate(AttributeSet->GetHealthAttribute()) + .AddLambda([this](const FOnAttributeChangeData& Data) { + OnHealthChanged.Broadcast(Data.NewValue); + }); + AbilitySystemComponent->GetGameplayAttributeValueChangeDelegate(AttributeSet->GetMaxHealthAttribute()) + .AddLambda([this](const FOnAttributeChangeData& Data) { + OnMaxHealthChanged.Broadcast(Data.NewValue); + }); + AbilitySystemComponent->GetGameplayAttributeValueChangeDelegate(AttributeSet->GetManaAttribute()) + .AddLambda([this](const FOnAttributeChangeData& Data) { + OnManaChanged.Broadcast(Data.NewValue); + }); + AbilitySystemComponent->GetGameplayAttributeValueChangeDelegate(AttributeSet->GetMaxManaAttribute()) + .AddLambda([this](const FOnAttributeChangeData& Data) { + OnMaxManaChanged.Broadcast(Data.NewValue); + }); + } + +} + +bool UVitalAttributesWCComponent::IsManaRelevant() const +{ + if (!IsValid(AttributeSet)) + return false; + + return AttributeSet->GetMaxMana() > 0.0f; +} diff --git a/Source/Aura/Private/UI/WidgetController/OverlayController.cpp b/Source/Aura/Private/UI/WidgetController/OverlayController.cpp new file mode 100644 index 0000000..cea8b61 --- /dev/null +++ b/Source/Aura/Private/UI/WidgetController/OverlayController.cpp @@ -0,0 +1,46 @@ +// Amasson + + +#include "UI/WidgetController/OverlayController.h" +#include "AbilitySystem/AuraAbilitySystemComponent.h" +#include "AbilitySystem/AuraAttributeSet.h" +#include "AbilitySystem/Data/AbilityBook.h" +#include "AbilitySystem/Data/CharacterClassInfo.h" +#include "Player/AuraPlayerState.h" +#include "AbilitySystem/Components/LevelingExperienceComponent.h" +#include "Character/AuraCharacterBase.h" + +#include "UI/WidgetController/Components/VitalAttributesWCComponent.h" +#include "UI/WidgetController/Components/ReceivingEffectWCComponent.h" +#include "UI/WidgetController/Components/AbilitiesInputWCComponent.h" +#include "UI/WidgetController/Components/ExperienceWCComponent.h" + +void UOverlayController::Construct() +{ + Super::Construct(); + + VitalAttributesWcc = AddComponent("VitalAttributes"); + ReceivingEffectWcc = AddComponent("ReceivingEffect"); + AbilitiesInputWcc = AddComponent("AbilitiesInput"); + ExperienceWcc = AddComponent("Experience"); +} + +void UOverlayController::ObservedActorSet() +{ + Super::ObservedActorSet(); + + AbilityBook = RetrieveAbilityBook(); + + if (IsValid(VitalAttributesWcc)) + VitalAttributesWcc->Initialize(AuraAbilitySystemComponent, AuraAttributeSet); + + if (IsValid(ReceivingEffectWcc)) + ReceivingEffectWcc->Initialize(AuraAbilitySystemComponent, EffectsInformations); + + if (IsValid(AbilitiesInputWcc)) + AbilitiesInputWcc->Initialize(AuraAbilitySystemComponent, AbilityBook); + + ULevelingExperienceComponent* LevelingExperience = IsValid(AuraPlayerState) ? AuraPlayerState->GetLevelingExperience() : nullptr; + if (IsValid(ExperienceWcc)) + ExperienceWcc->Initialize(LevelingExperience); +} diff --git a/Source/Aura/Public/AI/AuraAIController.h b/Source/Aura/Public/AI/AuraAIController.h new file mode 100644 index 0000000..89448e4 --- /dev/null +++ b/Source/Aura/Public/AI/AuraAIController.h @@ -0,0 +1,34 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "AIController.h" +// #include "DetourCrowdAIController.h" +#include "AuraAIController.generated.h" + +class UBehaviorTreeComponent; +class UBehaviorTree; + +/** + * + */ +UCLASS() +class AURA_API AAuraAIController : public AAIController //public ADetourCrowdAIController +{ + GENERATED_BODY() + +public: + + AAuraAIController(); + +protected: + + virtual void BeginPlay() override; + + virtual void OnPossess(APawn* PossessedPawn) override; + + UPROPERTY(EditAnywhere, Category = "Behavior") + TObjectPtr BehaviorTree; + +}; diff --git a/Source/Aura/Public/AI/Services/BTService_FindNearestPlayer.h b/Source/Aura/Public/AI/Services/BTService_FindNearestPlayer.h new file mode 100644 index 0000000..28a36f9 --- /dev/null +++ b/Source/Aura/Public/AI/Services/BTService_FindNearestPlayer.h @@ -0,0 +1,39 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "BehaviorTree/Services/BTService_BlueprintBase.h" +#include "BTService_FindNearestPlayer.generated.h" + +/** + * + */ +UCLASS() +class AURA_API UBTService_FindNearestPlayer : public UBTService_BlueprintBase +{ + GENERATED_BODY() + +protected: + + virtual void TickNode(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, float DeltaSeconds); + + UPROPERTY(BlueprintReadOnly, EditAnywhere) + FBlackboardKeySelector TargetToFollowSelector; + + UPROPERTY(BlueprintReadOnly, EditAnywhere) + FBlackboardKeySelector DistanceToTargetSelector; + + UPROPERTY(BlueprintReadOnly, EditAnywhere) + float MaxRange = 2000.0f; + + virtual void OnNodeCreated() { + TargetToFollowSelector.AddObjectFilter(this, + GET_MEMBER_NAME_CHECKED(UBTService_FindNearestPlayer, TargetToFollowSelector), + AActor::StaticClass()); + + DistanceToTargetSelector.AddFloatFilter(this, + GET_MEMBER_NAME_CHECKED(UBTService_FindNearestPlayer, DistanceToTargetSelector)); + } + +}; diff --git a/Source/Aura/Public/AI/Tasks/BTTask_Attack.h b/Source/Aura/Public/AI/Tasks/BTTask_Attack.h new file mode 100644 index 0000000..e55f0ac --- /dev/null +++ b/Source/Aura/Public/AI/Tasks/BTTask_Attack.h @@ -0,0 +1,19 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "BehaviorTree/Tasks/BTTask_BlueprintBase.h" +#include "BTTask_Attack.generated.h" + +/** + * + */ +UCLASS() +class AURA_API UBTTask_Attack : public UBTTask_BlueprintBase +{ + GENERATED_BODY() + + virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory); + +}; diff --git a/Source/Aura/Public/AbilitySystem/Abilities/AuraDamageGameplayAbility.h b/Source/Aura/Public/AbilitySystem/Abilities/AuraDamageGameplayAbility.h new file mode 100644 index 0000000..5aa3622 --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/Abilities/AuraDamageGameplayAbility.h @@ -0,0 +1,37 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Abilities/GameplayAbility.h" +#include "AbilitySystem/Abilities/AuraGameplayAbility.h" +#include "AuraDamageGameplayAbility.generated.h" + +/** + * + */ +UCLASS() +class AURA_API UAuraDamageGameplayAbility : public UAuraGameplayAbility +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, Category = "Damage Ability") + FGameplayEffectSpecHandle& AssignAbilityLevelDamagesSetByCallerMagnitude(UPARAM(Ref) FGameplayEffectSpecHandle& EffectSpecHandle, float Factor = 1.0f) const; + + UFUNCTION(BlueprintCallable, Category = "Damage Ability") + void GetScaledDamages(TMap& ScaledDamages, float Level = -1.0f) const; + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Damage Ability") + static TMap MultiplyDamagesByFloat(const TMap& InDamages, float Factor = 1.0f); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Damage Ability") + static TMap MultiplyDamageTypesByFloats(const TMap& InDamages, const TMap& Factors); + +protected: + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Damage") + TMap Damages; + +}; diff --git a/Source/Aura/Public/AbilitySystem/Abilities/AuraGameplayAbility.h b/Source/Aura/Public/AbilitySystem/Abilities/AuraGameplayAbility.h new file mode 100644 index 0000000..20bb7d8 --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/Abilities/AuraGameplayAbility.h @@ -0,0 +1,24 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Abilities/GameplayAbility.h" +#include "AuraGameplayAbility.generated.h" + +/** + * + */ +UCLASS() +class AURA_API UAuraGameplayAbility : public UGameplayAbility +{ + GENERATED_BODY() + +public: + + // virtual void ActivateAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, const FGameplayEventData* TriggerEventData); + + UFUNCTION(BlueprintCallable, Category = "Projectile") + FTransform MakeProjectileSpawnTransform(FGameplayTag SocketTagName, const FVector& TargetLocation, float Pitch = 0.0f) const; + +}; diff --git a/Source/Aura/Public/AbilitySystem/Abilities/AuraSummonAbility.h b/Source/Aura/Public/AbilitySystem/Abilities/AuraSummonAbility.h new file mode 100644 index 0000000..2be32eb --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/Abilities/AuraSummonAbility.h @@ -0,0 +1,54 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "AbilitySystem/Abilities/AuraGameplayAbility.h" +#include "AuraSummonAbility.generated.h" + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FSpawnedCharactersChangeSignature, UAuraSummonAbility*, SummonAbility); + +/** + * + */ +UCLASS() +class AURA_API UAuraSummonAbility : public UAuraGameplayAbility +{ + GENERATED_BODY() + +public: + + UAuraSummonAbility(); + + UFUNCTION(BlueprintCallable, Category = "Summon") + ACharacter* SummonCharacter(TSubclassOf Class, const FVector& Location, float YawOffset = 0); + + UFUNCTION() + void SummonDestroyed(AActor* DestroyedActor); + + /* Spawn Locations */ + + UFUNCTION(BlueprintCallable) + TArray GetSpawnLocations(); + + UPROPERTY(EditDefaultsOnly, Category = "SummonLocation") + int32 SpawnCount = 3; + + UPROPERTY(EditDefaultsOnly, Category = "SummonLocation") + float SpawnMinDistance = 100.0f; + + UPROPERTY(EditDefaultsOnly, Category = "SummonLocation") + float SpawnMaxDistance = 200.0f; + + UPROPERTY(EditDefaultsOnly, Category = "SummonLocation") + float SpawnSpreadAngle = 80.0f; + + /* Spawned Characters */ + + UPROPERTY(BlueprintReadOnly, Category = "State") + TArray> SpawnedCharacters; + + UPROPERTY(BlueprintAssignable) + FSpawnedCharactersChangeSignature OnSpawnedCharactersChange; + +}; diff --git a/Source/Aura/Public/AbilitySystem/AbilitySystemTypes.h b/Source/Aura/Public/AbilitySystem/AbilitySystemTypes.h new file mode 100644 index 0000000..5c73212 --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/AbilitySystemTypes.h @@ -0,0 +1,152 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameplayEffectTypes.h" +#include "GameplayTagContainer.h" +#include "AbilitySystemTypes.generated.h" + +class UAbilitySystemComponent; +class UGameplayEffect; + +USTRUCT(BlueprintType, Blueprintable) +struct AURA_API FGameplayEffectParameters +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TSubclassOf Class = nullptr; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float Level = 1; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TMap SetByCallerMagnitudes; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FVector HitImpulse = FVector::ZeroVector; + + UPROPERTY(BlueprintReadWrite) + FHitResult HitCollision; + + UPROPERTY(BlueprintReadWrite) + TObjectPtr SourceAbility; + +}; + +USTRUCT(BlueprintType, Blueprintable) +struct AURA_API FGameplayAbilityGrant +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TSubclassOf Class = nullptr; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + int32 Level = 1; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FGameplayTag InputTag = FGameplayTag::EmptyTag; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + bool ActiveOnGranted = false; + +}; + +USTRUCT(BlueprintType, Blueprintable) +struct FEffectProperties +{ + GENERATED_BODY() + + +public: + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FGameplayEffectContextHandle EffectContextHandle; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TObjectPtr SourceASC = nullptr; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TObjectPtr SourceAvatarActor = nullptr; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TObjectPtr SourceController = nullptr; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TObjectPtr SourceCharacter = nullptr; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TObjectPtr TargetASC = nullptr; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TObjectPtr TargetAvatarActor = nullptr; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TObjectPtr TargetController = nullptr; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TObjectPtr TargetCharacter = nullptr; +}; + +USTRUCT(BlueprintType) +struct FAuraGameplayEffectContext : public FGameplayEffectContext +{ + GENERATED_BODY() + +public: + + /** Returns the actual struct used for serialization, subclasses must override this! */ + virtual UScriptStruct* GetScriptStruct() const + { + return FGameplayEffectContext::StaticStruct(); + } + + /** Creates a copy of this context, used to duplicate for later modifications */ + virtual FGameplayEffectContext* Duplicate() const; + + /** Custom serialization, subclasses must override this */ + virtual bool NetSerialize(FArchive& Ar, class UPackageMap* Map, bool& bOutSuccess); + + UPROPERTY(VisibleAnywhere, BlueprintReadWrite) + bool bIsBlockedHit = false; + + UPROPERTY(VisibleAnywhere, BlueprintReadWrite) + bool bIsCriticalHit = false; + + UPROPERTY(VisibleAnywhere, BlueprintReadWrite) + FVector HitImpulse = FVector::ZeroVector; + +}; + +template<> +struct TStructOpsTypeTraits< FAuraGameplayEffectContext > : public TStructOpsTypeTraitsBase2< FAuraGameplayEffectContext > +{ + enum + { + WithNetSerializer = true, + WithCopy = true // Necessary so that TSharedPtr Data is copied around + }; +}; + +USTRUCT(BlueprintType) +struct FFloatingDamage +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TWeakObjectPtr Target; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + bool bIsBlockedHit = false; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + bool bIsCriticalHit = false; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float Damages = 0.0f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FGameplayTagContainer Tags; +}; diff --git a/Source/Aura/Public/AbilitySystem/AuraAbilitySystemComponent.h b/Source/Aura/Public/AbilitySystem/AuraAbilitySystemComponent.h new file mode 100644 index 0000000..ae4c48e --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/AuraAbilitySystemComponent.h @@ -0,0 +1,111 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "AbilitySystemComponent.h" +#include "AbilitySystem/AbilitySystemTypes.h" +#include "AuraAbilitySystemComponent.generated.h" + +DECLARE_MULTICAST_DELEGATE_OneParam(FEffectAssetTagsSignature, const FGameplayTagContainer&); +DECLARE_MULTICAST_DELEGATE_TwoParams(FAbilitySpecChangeSignature, UAuraAbilitySystemComponent*, const FGameplayAbilitySpec&); +DECLARE_MULTICAST_DELEGATE_TwoParams(FAbilitySpecRemovingSignature, UAuraAbilitySystemComponent*, const FGameplayAbilitySpec&); +DECLARE_DELEGATE_OneParam(FForEachAbilityDelegate, const FGameplayAbilitySpec&) + +/** + * + */ +UCLASS() +class AURA_API UAuraAbilitySystemComponent : public UAbilitySystemComponent +{ + GENERATED_BODY() + +public: + + FEffectAssetTagsSignature OnEffectAssetTags; + FAbilitySpecChangeSignature OnAbilitySpecChange; + FAbilitySpecRemovingSignature OnAbilitySpecRemoving; + + /* AbilityActorInfoSet */ + UFUNCTION() + void AbilitySystemInitDone(); + + bool bStartupAbilitiesGiven = false; + + void GrantAbility(const FGameplayAbilityGrant& Ability); + void GrantStartupAbilities(const TArray& Abilities); + + void AbilityInputTagPressed(const FGameplayTag& InputTag); + void AbilityInputTagHeld(const FGameplayTag& InputTag); + void AbilityInputTagReleased(const FGameplayTag& InputTag); + void ForEachAbilityDelegate(const FForEachAbilityDelegate& Delegate); + void ForEachAbilityLambda(std::function Func); + + /** Receiving Effect Interception */ + virtual FActiveGameplayEffectHandle ApplyGameplayEffectSpecToSelf(const FGameplayEffectSpec& GameplayEffect, FPredictionKey PredictionKey = FPredictionKey()) override; + + UFUNCTION(BlueprintCallable, Category = "Interceptor") + void AddGameplayEffectInterceptor(UObject* Interceptor); + + UFUNCTION(BlueprintCallable, Category = "Interceptor") + void RemoveGameplayEffectInterceptor(UObject* Interceptor); + + /** Ability Tags */ + static bool AbilityHasIDTag(const UGameplayAbility* Ability); + static FGameplayTag GetAbilityIDTagFromAbility(const UGameplayAbility* Ability); + static bool AbilitySpecHasInputTag(const FGameplayAbilitySpec& AbilitySpec); + static FGameplayTag GetInputTagFromAbilitySpec(const FGameplayAbilitySpec& AbilitySpec); + static bool AbilityHasCooldownTag(const UGameplayAbility* Ability); + static FGameplayTag GetCooldownTagFromAbility(const UGameplayAbility* Ability); + static bool AbilitySpecHasStatusTag(const FGameplayAbilitySpec& AbilitySpec); + static FGameplayTag GetStatusTagFromAbilitySpec(const FGameplayAbilitySpec& AbilitySpec); + static bool AbilityHasTypeTag(const UGameplayAbility* Ability); + static FGameplayTag GetTypeTagFromAbility(const UGameplayAbility* Ability); + /** End Ability Tags */ + + UPROPERTY(BlueprintReadOnly, Category = "Character Class") + TArray BaseEffectsHandles; + + /** Attributes Modifications */ + void AddAttributePoints(float Count, const FGameplayTag& AttributeTag); + + /** Ability Level */ + void SetLevelForAbilitySpec(FGameplayAbilitySpec& AbilitySpec, int32 NewLevel); + void AddLevelForAbilitySpec(FGameplayAbilitySpec& AbilitySpec, int32 AddLevel); + + /** Managing Tags */ + FGameplayAbilitySpec* GetAbilitySpecForAbilityIDTag(const FGameplayTag& AbilityIDTag); + void GetAbilitySpecsForInputTag(const FGameplayTag& InputTag, TArray& AbilitySpecs); + + /** Manage Status Tags */ + bool GetStatusTagForAbilityIDTag(const FGameplayTag AbilityIDTag, FGameplayTag& StatusTag); + + /** Manage Input Tags */ + void RemoveInputTagFromAbilitySpec(FGameplayAbilitySpec& AbilitySpec, bool bBroadcastUpdate = true); + void ClearAbilitiesFromInputTag(const FGameplayTag& InputTag); + void AssignInputTagToAbilitySpec(const FGameplayTag& InputTag, FGameplayAbilitySpec& AbilitySpec); + +protected: + + void UpdateStatusTagForAbilitySpec(FGameplayAbilitySpec& AbilitySpec, bool bBroadcastUpdate = true); + + void SetStatusTagForAbilitySpec(FGameplayAbilitySpec& AbilitySpec, const FGameplayTag& StatusTag, bool bBroadcastUpdate = true); + + void ActivateAbilityIfEquippedPassive(FGameplayAbilitySpec& AbilitySpec); + + virtual void OnRep_ActivateAbilities() override; + virtual void OnGiveAbility(FGameplayAbilitySpec& Spec) override; + virtual void OnRemoveAbility(FGameplayAbilitySpec& Spec) override; + + UFUNCTION(Client, Reliable) + void ClientOnEffectApplied(UAbilitySystemComponent* AbilitySystemComponent, const FGameplayEffectSpec& EffectSpec, FActiveGameplayEffectHandle EffectHandle); + + UFUNCTION(Client, Reliable) + void Client_UpdateAbilityStatus(const FGameplayTag& AbilityID, const FGameplayTag& Status, int32 Level); + +private: + + UPROPERTY() + TArray> EffectInterceptors; + +}; diff --git a/Source/Aura/Public/AbilitySystem/AuraAbilitySystemGlobals.h b/Source/Aura/Public/AbilitySystem/AuraAbilitySystemGlobals.h new file mode 100644 index 0000000..4edd46c --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/AuraAbilitySystemGlobals.h @@ -0,0 +1,18 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "AbilitySystemGlobals.h" +#include "AuraAbilitySystemGlobals.generated.h" + +/** + * + */ +UCLASS() +class AURA_API UAuraAbilitySystemGlobals : public UAbilitySystemGlobals +{ + GENERATED_BODY() + + virtual FGameplayEffectContext* AllocGameplayEffectContext() const override; +}; diff --git a/Source/Aura/Public/AbilitySystem/AuraAbilitySystemLibrary.h b/Source/Aura/Public/AbilitySystem/AuraAbilitySystemLibrary.h new file mode 100644 index 0000000..2bb79dc --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/AuraAbilitySystemLibrary.h @@ -0,0 +1,119 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Kismet/BlueprintFunctionLibrary.h" +#include "AbilitySystemTypes.h" +#include "AuraAbilitySystemLibrary.generated.h" + +DECLARE_DYNAMIC_DELEGATE_OneParam(FGameplayTagDelegate, const FGameplayTag&, Tag); + +/** + * + */ +UCLASS() +class AURA_API UAuraAbilitySystemLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintPure, Category = "Aura Gameplay Tag|Damage") + static const TArray& GetAllDamageTags(); + + UFUNCTION(BlueprintPure, Category = "Aura Gameplay Tag|Damage") + static void GetResistanceTagForDamageTag(FGameplayTag DamageTag, FGameplayTag& ResistanceTag, bool& bFound); + + UFUNCTION(BlueprintPure, Category = "AuraAbilitySystemLibrary|Effect Context") + static bool IsBlockedHit(const FGameplayEffectContextHandle& EffectContextHandle); + + UFUNCTION(BlueprintCallable, Category = "AuraAbilitySystemLibrary|Effect Context") + static void SetIsBlockedHit(UPARAM(Ref) FGameplayEffectContextHandle& EffectContextHandle, bool bNewIsBlockedHit); + + UFUNCTION(BlueprintPure, Category = "AuraAbilitySystemLibrary|Effect Context") + static bool IsCriticalHit(const FGameplayEffectContextHandle& EffectContextHandle); + + UFUNCTION(BlueprintCallable, Category = "AuraAbilitySystemLibrary|Effect Context") + static void SetIsCriticalHit(UPARAM(Ref) FGameplayEffectContextHandle& EffectContextHandle, bool bNewIsCriticalHit); + + UFUNCTION(BlueprintPure, Category = "AuraAbilitySystemLibrary|Effect Context") + static FVector GetHitImpulse(const FGameplayEffectContextHandle& EffectContextHandle); + + UFUNCTION(BlueprintCallable, Category = "AuraAbilitySystemLibrary|Effect Context") + static void SetHitImpulse(UPARAM(Ref) FGameplayEffectContextHandle& EffectContextHandle, FVector NewHitImpulse); + + + /** For Each Attributes */ + + UFUNCTION(BlueprintCallable, Category = "AuraAbilitySystemLibrary|Attributes") + static void ForEachVitalAttributes(FGameplayTagDelegate Function); + + UFUNCTION(BlueprintCallable, Category = "AuraAbilitySystemLibrary|Attributes") + static void ForEachPrimaryAttributes(FGameplayTagDelegate Function); + + UFUNCTION(BlueprintCallable, Category = "AuraAbilitySystemLibrary|Attributes") + static void ForEachSecondaryAttributes(FGameplayTagDelegate Function); + + UFUNCTION(BlueprintCallable, Category = "AuraAbilitySystemLibrary|Attributes") + static void ForEachMagicalResistanceAttributes(FGameplayTagDelegate Function); + + UFUNCTION(BlueprintCallable, Category = "AuraAbilitySystemLibrary|Attributes") + static void ForEachResistanceAttributes(FGameplayTagDelegate Function); + + UFUNCTION(BlueprintCallable, Category = "AuraAbilitySystemLibrary|Attributes") + static void ForEachMetaAttributes(FGameplayTagDelegate Function); + + UFUNCTION(BlueprintCallable, Category = "AuraAbilitySystemLibrary|Attributes") + static void ForEachReplicatedAttributes(FGameplayTagDelegate Function); + + UFUNCTION(BlueprintCallable, Category = "AuraAbilitySystemLibrary|Attributes") + static void ForEachStatsAttributes(FGameplayTagDelegate Function); + + UFUNCTION(BlueprintCallable, Category = "AuraAbilitySystemLibrary|Attributes") + static void ForEachAttributes(FGameplayTagDelegate Function); + + /** End For Each Attributes */ + + UFUNCTION(BlueprintCallable, Category = "AuraAbilitySystemLibrary|GameplayTags") + static bool RemoveMatchingTagsFromTagContainer(FGameplayTagContainer& TagContainer, FGameplayTag MatchTag); + + + /** Extract Infos From Ability Class */ + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "AuraAbilitySystemLibrary|Abilities") + static FGameplayTag GetAbilityIdFromAbilityClass(TSubclassOf AbilityClass); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "AuraAbilitySystemLibrary|Abilities") + static FGameplayTag GetTypeTagFromAbilityClass(TSubclassOf AbilityClass); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "AuraAbilitySystemLibrary|Abilities") + static FGameplayTag GetCooldownTagFromAbilityClass(TSubclassOf AbilityClass); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "AuraAbilitySystemLibrary|Abilities") + static void GetAbilityDamagesAtLevel(TSubclassOf DamageAbilityClass, float Level, TMap& Damages); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "AuraAbilitySystemLibrary|Abilities") + static void GetAbilityCostAtLevel(TSubclassOf AbilityClass, float Level, TMap& Costs); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "AuraAbilitySystemLibrary|Abilities") + static float GetAbilityCooldownTimeAtLevel(TSubclassOf AbilityClass, float Level); + + + /** Extract Infos From Effect Class */ + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "AuraAbilitySystemLibrary|Effects") + static bool CheckGameplayEffectSpecHasTag(const FGameplayEffectSpec& EffectSpec, FGameplayTag Tag); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "AuraAbilitySystemLibrary|Effects") + static void GetContextFromGameplayEffectSpec(const FGameplayEffectSpec& EffectSpec, FGameplayEffectContextHandle& Context); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "AuraAbilitySystemLibrary|Effects") + static void ExtractPropertiesFromGameplayEffectContextHandle(const FGameplayEffectContextHandle& Context, FEffectProperties& Properties); + + /** Effects */ + + UFUNCTION(BlueprintCallable, Category = "AuraAbilitySystemLibrary|Effects") + static FActiveGameplayEffectHandle ApplyGameplayEffectWithParameters(const FGameplayEffectParameters& EffectParams, UAbilitySystemComponent* SourceASC, UAbilitySystemComponent* TargetASC); + +}; diff --git a/Source/Aura/Public/AbilitySystem/AuraAttributeList.h b/Source/Aura/Public/AbilitySystem/AuraAttributeList.h new file mode 100644 index 0000000..4c286ac --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/AuraAttributeList.h @@ -0,0 +1,82 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +/** + * How to use: + * To define an expression that should execute on all attribute + * + * 1. Create a macro that takes two parameters + * #define MyDefinition(AttributeName, CategoryName) \ + * std::cout << "I love my " << #AttributeName << " that belongs to " << #CategoryName << std::endl; \ + * + * 2. Use the correct FOREACH call + * FOREACH_ATTRIBUTE_All(MyDefinition) + * + * 3. Attributes list are All, Vital, Primary, Secondary, MagicalResistance, Resistance, Meta, Replicated, Stats + * +*/ + +/** + * Files using attribute set list boilerplate : + * - Public/AbilitySystem/AuraAttributeSet.h + * - Public/AbilitySystem/EffectCalculation/ExecCalc_AttributeBased.h + * - Private/AbilitySystem/EffectCalculation/ExecCalc_AttributeBased.cpp +*/ + +#define FOREACH_ATTRIBUTE_Vital(FunctionExpression) \ + FunctionExpression(Health, Vital) \ + FunctionExpression(Mana, Vital) \ + +#define FOREACH_ATTRIBUTE_Primary(FunctionExpression) \ + FunctionExpression(Strength, Primary) \ + FunctionExpression(Intelligence, Primary) \ + FunctionExpression(Resilience, Primary) \ + FunctionExpression(Vigor, Primary) \ + +#define FOREACH_ATTRIBUTE_Secondary(FunctionExpression) \ + FunctionExpression(Armor, Secondary) \ + FunctionExpression(ArmorPenetration, Secondary) \ + FunctionExpression(BlockChance, Secondary) \ + FunctionExpression(CriticalHitChance, Secondary) \ + FunctionExpression(CriticalHitDamage, Secondary) \ + FunctionExpression(CriticalHitResistance, Secondary) \ + FunctionExpression(HealthRegeneration, Secondary) \ + FunctionExpression(ManaRegeneration, Secondary) \ + FunctionExpression(MaxHealth, Secondary) \ + FunctionExpression(MaxMana, Secondary) \ + +#define FOREACH_ATTRIBUTE_MagicalResistance(FunctionExpression) \ + FunctionExpression(FireRes, Resistance) \ + FunctionExpression(IceRes, Resistance) \ + FunctionExpression(ShockRes, Resistance) \ + FunctionExpression(ShadowRes, Resistance) \ + FunctionExpression(ArcaneRes, Resistance) \ + +#define FOREACH_ATTRIBUTE_Resistance(FunctionExpression) \ + FunctionExpression(PhysicalRes, Resistance) \ + FunctionExpression(MagicalRes, Resistance) \ + FOREACH_ATTRIBUTE_MagicalResistance(FunctionExpression) \ + +#define FOREACH_ATTRIBUTE_Meta(FunctionExpression) \ + FunctionExpression(IncomingDamage, Meta) \ + FunctionExpression(IncomingXP, Meta) \ + +#define FOREACH_ATTRIBUTE_Replicated(FunctionExpression) \ + FOREACH_ATTRIBUTE_Vital(FunctionExpression) \ + FOREACH_ATTRIBUTE_Primary(FunctionExpression) \ + FOREACH_ATTRIBUTE_Secondary(FunctionExpression) \ + FOREACH_ATTRIBUTE_Resistance(FunctionExpression) \ + +#define FOREACH_ATTRIBUTE_Stats(FunctionExpression) \ + FOREACH_ATTRIBUTE_Primary(FunctionExpression) \ + FOREACH_ATTRIBUTE_Secondary(FunctionExpression) \ + FOREACH_ATTRIBUTE_Resistance(FunctionExpression) \ + +#define FOREACH_ATTRIBUTE_All(FunctionExpression) \ + FOREACH_ATTRIBUTE_Vital(FunctionExpression) \ + FOREACH_ATTRIBUTE_Primary(FunctionExpression) \ + FOREACH_ATTRIBUTE_Secondary(FunctionExpression) \ + FOREACH_ATTRIBUTE_Resistance(FunctionExpression) \ + FOREACH_ATTRIBUTE_Meta(FunctionExpression) \ + diff --git a/Source/Aura/Public/AbilitySystem/AuraAttributeSet.h b/Source/Aura/Public/AbilitySystem/AuraAttributeSet.h new file mode 100644 index 0000000..cf231e9 --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/AuraAttributeSet.h @@ -0,0 +1,177 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "AttributeSet.h" +#include "AbilitySystemComponent.h" +#include "AbilitySystem/AbilitySystemTypes.h" +#include "AuraAttributeSet.generated.h" + +#define ATTRIBUTE_ACCESSORS(ClassName, PropertyName) \ + GAMEPLAYATTRIBUTE_PROPERTY_GETTER(ClassName, PropertyName) \ + GAMEPLAYATTRIBUTE_VALUE_GETTER(PropertyName) \ + GAMEPLAYATTRIBUTE_VALUE_SETTER(PropertyName) \ + GAMEPLAYATTRIBUTE_VALUE_INITTER(PropertyName) + +/** + * + */ +UCLASS() +class AURA_API UAuraAttributeSet : public UAttributeSet +{ + GENERATED_BODY() + +public: + + UAuraAttributeSet(); + + virtual void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override; + + virtual void PreAttributeChange(const FGameplayAttribute& Attribute, float& NewValue) override; + virtual void PostAttributeChange(const FGameplayAttribute& Attribute, float OldValue, float NewValue) override; + + virtual void PostGameplayEffectExecute(const FGameplayEffectModCallbackData& Data) override; + + /** Vital Attributes */ + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_Health, Category = "Vital Attributes") + FGameplayAttributeData Health; + UFUNCTION() void OnRep_Health(const FGameplayAttributeData& OldHealth) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, Health); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_Mana, Category = "Vital Attributes") + FGameplayAttributeData Mana; + UFUNCTION() void OnRep_Mana(const FGameplayAttributeData& OldMana) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, Mana); + + /** Primary Attributes */ + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_Strength, Category = "Primary Attributes") + FGameplayAttributeData Strength; + UFUNCTION() void OnRep_Strength(const FGameplayAttributeData& OldStrength) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, Strength); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_Intelligence, Category = "Primary Attributes") + FGameplayAttributeData Intelligence; + UFUNCTION() void OnRep_Intelligence(const FGameplayAttributeData& OldIntelligence) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, Intelligence); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_Resilience, Category = "Primary Attributes") + FGameplayAttributeData Resilience; + UFUNCTION() void OnRep_Resilience(const FGameplayAttributeData& OldResilience) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, Resilience); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_Vigor, Category = "Primary Attributes") + FGameplayAttributeData Vigor; + UFUNCTION() void OnRep_Vigor(const FGameplayAttributeData& OldVigor) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, Vigor); + + /** Secondary Attributes */ + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_Armor, Category = "Secondary Attributes") + FGameplayAttributeData Armor; + UFUNCTION() void OnRep_Armor(const FGameplayAttributeData& OldArmor) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, Armor); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_ArmorPenetration, Category = "Secondary Attributes") + FGameplayAttributeData ArmorPenetration; + UFUNCTION() void OnRep_ArmorPenetration(const FGameplayAttributeData& OldArmorPenetration) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, ArmorPenetration); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_BlockChance, Category = "Secondary Attributes") + FGameplayAttributeData BlockChance; + UFUNCTION() void OnRep_BlockChance(const FGameplayAttributeData& OldBlockChance) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, BlockChance); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_CriticalHitChance, Category = "Secondary Attributes") + FGameplayAttributeData CriticalHitChance; + UFUNCTION() void OnRep_CriticalHitChance(const FGameplayAttributeData& OldCriticalHitChance) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, CriticalHitChance); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_CriticalHitDamage, Category = "Secondary Attributes") + FGameplayAttributeData CriticalHitDamage; + UFUNCTION() void OnRep_CriticalHitDamage(const FGameplayAttributeData& OldCriticalHitDamage) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, CriticalHitDamage); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_CriticalHitResistance, Category = "Secondary Attributes") + FGameplayAttributeData CriticalHitResistance; + UFUNCTION() void OnRep_CriticalHitResistance(const FGameplayAttributeData& OldCriticalHitResistance) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, CriticalHitResistance); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_HealthRegeneration, Category = "Secondary Attributes") + FGameplayAttributeData HealthRegeneration; + UFUNCTION() void OnRep_HealthRegeneration(const FGameplayAttributeData& OldHealthRegeneration) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, HealthRegeneration); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_ManaRegeneration, Category = "Secondary Attributes") + FGameplayAttributeData ManaRegeneration; + UFUNCTION() void OnRep_ManaRegeneration(const FGameplayAttributeData& OldManaRegeneration) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, ManaRegeneration); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_MaxHealth, Category = "Secondary Attributes") + FGameplayAttributeData MaxHealth; + UFUNCTION() void OnRep_MaxHealth(const FGameplayAttributeData& OldMaxHealth) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, MaxHealth); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_MaxMana, Category = "Secondary Attributes") + FGameplayAttributeData MaxMana; + UFUNCTION() void OnRep_MaxMana(const FGameplayAttributeData& OldMaxMana) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, MaxMana); + + /** Resistance Attributes */ + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_PhysicalRes, Category = "Resistance Attributes") + FGameplayAttributeData PhysicalRes; + UFUNCTION() void OnRep_PhysicalRes(const FGameplayAttributeData& OldPhysicalRes) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, PhysicalRes); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_MagicalRes, Category = "Resistance Attributes") + FGameplayAttributeData MagicalRes; + UFUNCTION() void OnRep_MagicalRes(const FGameplayAttributeData& OldMagicalRes) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, MagicalRes); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_FireRes, Category = "Resistance Attributes") + FGameplayAttributeData FireRes; + UFUNCTION() void OnRep_FireRes(const FGameplayAttributeData& OldFireRes) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, FireRes); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_IceRes, Category = "Resistance Attributes") + FGameplayAttributeData IceRes; + UFUNCTION() void OnRep_IceRes(const FGameplayAttributeData& OldIceRes) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, IceRes); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_ShockRes, Category = "Resistance Attributes") + FGameplayAttributeData ShockRes; + UFUNCTION() void OnRep_ShockRes(const FGameplayAttributeData& OldShockRes) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, ShockRes); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_ShadowRes, Category = "Resistance Attributes") + FGameplayAttributeData ShadowRes; + UFUNCTION() void OnRep_ShadowRes(const FGameplayAttributeData& OldShadowRes) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, ShadowRes); + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_ArcaneRes, Category = "Resistance Attributes") + FGameplayAttributeData ArcaneRes; + UFUNCTION() void OnRep_ArcaneRes(const FGameplayAttributeData& OldArcaneRes) const; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, ArcaneRes); + + /** Meta Attributes */ + + UPROPERTY(BlueprintReadOnly, Category = "Meta Attributes") + FGameplayAttributeData IncomingDamage; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, IncomingDamage); + + UPROPERTY(BlueprintReadOnly, Category = "Meta Attributes") + FGameplayAttributeData IncomingXP; + ATTRIBUTE_ACCESSORS(UAuraAttributeSet, IncomingXP); + +private: + + void HandleModificationData_IncomingDamage(const FGameplayEffectModCallbackData& Data); + void HandleModificationData_IncomingXP(const FGameplayEffectModCallbackData& Data); + + void SendXPEvent(const FEffectProperties& Props, int32 DeathXp); + void ExtractEffectModProperties(const FGameplayEffectModCallbackData& Data, FEffectProperties& Props) const; + +}; diff --git a/Source/Aura/Public/AbilitySystem/Components/GameplayEffectInterceptor.h b/Source/Aura/Public/AbilitySystem/Components/GameplayEffectInterceptor.h new file mode 100644 index 0000000..ed7a04c --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/Components/GameplayEffectInterceptor.h @@ -0,0 +1,29 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UObject/Interface.h" +#include "GameplayEffectInterceptor.generated.h" + +// This class does not need to be modified. +UINTERFACE(MinimalAPI) +class UGameplayEffectInterceptor : public UInterface +{ + GENERATED_BODY() +}; + +/** + * + */ +class AURA_API IGameplayEffectInterceptor +{ + GENERATED_BODY() + + // Add interface functions to this class. This is the class that will be inherited to implement this interface. +public: + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Effect Interceptor") + void WillApplyGameplayEffectSpec(const FGameplayEffectSpec& GameplayEffect, bool& bIntercepted); + +}; diff --git a/Source/Aura/Public/AbilitySystem/Components/LevelingExperienceComponent.h b/Source/Aura/Public/AbilitySystem/Components/LevelingExperienceComponent.h new file mode 100644 index 0000000..f8b46ba --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/Components/LevelingExperienceComponent.h @@ -0,0 +1,77 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Components/ActorComponent.h" +#include "LevelingExperienceComponent.generated.h" + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnLevelChangedSignature, int32, NewLevel); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnExperienceChangedSignature, int32, TotalExperience, float, Progress); + + +UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) +class AURA_API ULevelingExperienceComponent : public UActorComponent +{ + GENERATED_BODY() + +protected: + + virtual void BeginPlay() override; + +public: + + ULevelingExperienceComponent(); + + virtual void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override; + + /* Level */ + FORCEINLINE int32 GetPlayerLevel() const { return Level; } + + UFUNCTION(BlueprintCallable, Category = "Level") + void AddToLevel(int32 AddLevel, bool KeepProgressPercent = true); + UFUNCTION(BlueprintCallable, Category = "Level") + void SetLevel(int32 NewLevel, bool KeepProgressPercent = true); + + UPROPERTY(BlueprintAssignable, Category = "Level") + FOnLevelChangedSignature OnLevelChanged; + + /* Experience */ + FORCEINLINE int32 GetExperience() const { return Experience; } + + UFUNCTION(BlueprintCallable, Category = "Experience") + void AddToExperience(int32 AddExperience); + UFUNCTION(BlueprintCallable, Category = "Experience") + void SetExperience(int32 NewExperience); + + UFUNCTION(BlueprintCallable, Category = "Experience") + float GetExperienceProgress() const; + + UPROPERTY(BlueprintAssignable, Category = "Experience") + FOnExperienceChangedSignature OnExperienceChanged; + + /* Leveling Infos */ + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Data") + TObjectPtr LevelingInfo; + +private: + + void UpdateLevel(bool ForwardOnly); + + /* Level */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing = OnRep_Level, Category = "Level", meta = (AllowPrivateAccess = true)) + int32 Level = 1; + UFUNCTION() void OnRep_Level(int32 OldLevel) const; + + /* Experience */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, ReplicatedUsing = OnRep_Experience, Category = "Experience", meta = (AllowPrivateAccess = true)) + int32 Experience = 0; + UFUNCTION() void OnRep_Experience(int32 OldExperience) const; + + /* Cached Experiences */ + int32 CachedLevel = -1; + int32 CachedMinExperience; + int32 CachedMaxExperience; + + void UpdateCacheLevel(); +}; diff --git a/Source/Aura/Public/AbilitySystem/Components/PerkPointsComponent.h b/Source/Aura/Public/AbilitySystem/Components/PerkPointsComponent.h new file mode 100644 index 0000000..d3fa682 --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/Components/PerkPointsComponent.h @@ -0,0 +1,62 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Components/ActorComponent.h" +#include "PerkPointsComponent.generated.h" + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnPointChangedSignature, int32, NewPoints); + +UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) +class AURA_API UPerkPointsComponent : public UActorComponent +{ + GENERATED_BODY() + +public: + // Sets default values for this component's properties + UPerkPointsComponent(); + + virtual void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override; + + /** Attribute Points */ + + FORCEINLINE int32 GetAttributePoints() const { return AttributePoints; } + UFUNCTION(BlueprintCallable, Category = "Attributes") + void AddToAttributePoints(int32 AddingPoints); + UFUNCTION(BlueprintCallable, Category = "Attributes") + int32 SpendAttributePoints(int32 Count); + UFUNCTION(BlueprintCallable, Category = "Attributes") + void SetAttributePoints(int32 NewPoints); + + UPROPERTY(BlueprintAssignable, Category = "Attributes") + FOnPointChangedSignature OnAttributePointsChangedDelegate; + + /** Ability Points */ + + FORCEINLINE int32 GetAbilityPoints() const { return AbilityPoints; } + UFUNCTION(BlueprintCallable, Category = "Abilities") + void AddToAbilityPoints(int32 AddingPoints); + UFUNCTION(BlueprintCallable, Category = "Abilities") + int32 SpendAbilityPoints(int32 Count); + UFUNCTION(BlueprintCallable, Category = "Abilities") + void SetAbilityPoints(int32 NewPoints); + + UPROPERTY(BlueprintAssignable, Category = "Abilities") + FOnPointChangedSignature OnAbilityPointsChangedDelegate; + +protected: + + /** Attribute Points */ + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_AttributePoints, Category = "Attributes") + int32 AttributePoints = 0; + UFUNCTION() void OnRep_AttributePoints(int32 OldAttributePoints) const; + + /** Ability Points */ + + UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_AbilityPoints, Category = "Abilitys") + int32 AbilityPoints = 0; + UFUNCTION() void OnRep_AbilityPoints(int32 OldAbilityPoints) const; + +}; diff --git a/Source/Aura/Public/AbilitySystem/Data/AbilityBook.h b/Source/Aura/Public/AbilitySystem/Data/AbilityBook.h new file mode 100644 index 0000000..e857839 --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/Data/AbilityBook.h @@ -0,0 +1,79 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Engine/DataAsset.h" +#include "AbilitySystem/AbilitySystemTypes.h" +#include "AuraGameplayTags.h" +#include "AbilityBook.generated.h" + +USTRUCT(BlueprintType) +struct FAuraAbilityRequirement +{ + GENERATED_BODY() + + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Player Level") + int32 MiminalPlayerLevel = 1; + + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Abilities") + TArray RequiredAbilities; + +}; + +USTRUCT(BlueprintType) +struct FAuraAbilityInfo +{ + GENERATED_BODY() + + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Ability") + TSubclassOf Ability; + + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Icon") + TObjectPtr Icon = nullptr; + + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Icon") + TObjectPtr Background = nullptr; + + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Description") + FText Name = FText(); + + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Description") + FText Description = FText(); + + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Levels") + TArray RequirementsForLevels; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "TreeLocation") + FName TreeName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "TreeLocation") + FVector2D TreePosition = FVector2D(0.5f, 150); + +}; + +/** + * + */ +UCLASS() +class AURA_API UAbilityBook : public UDataAsset +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, Category = "Abilities") + const TMap& GetAbilities(); + + const FAuraAbilityRequirement* GetRequirementsForAbilityLevel(FGameplayTag AbilityID, int32 Level); + +protected: + + UPROPERTY(EditDefaultsOnly, Category = "Abilities") + TArray AllAbilities; + + TMap Abilities; + + bool DictionaryInitialized = false; + +}; diff --git a/Source/Aura/Public/AbilitySystem/Data/AttributeInfo.h b/Source/Aura/Public/AbilitySystem/Data/AttributeInfo.h new file mode 100644 index 0000000..3250495 --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/Data/AttributeInfo.h @@ -0,0 +1,43 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Engine/DataAsset.h" +#include "GameplayTagContainer.h" +#include "AttributeInfo.generated.h" + +USTRUCT(BlueprintType) +struct FAuraAttributeInfo +{ + GENERATED_USTRUCT_BODY() + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) + FGameplayTag AttributeTag = FGameplayTag(); + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) + FText AttributeName = FText(); + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) + FText AttributeDescription = FText(); + + UPROPERTY(BlueprintReadOnly) + float AttributeValue = 0.0f; +}; + +/** + * + */ +UCLASS() +class AURA_API UAttributeInfo : public UDataAsset +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable) + FAuraAttributeInfo FindAttributeInfoForTag(const FGameplayTag& AttributeTag, bool bLogNotFound = false) const; + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) + TArray AttributeInformation; +}; diff --git a/Source/Aura/Public/AbilitySystem/Data/CharacterClassInfo.h b/Source/Aura/Public/AbilitySystem/Data/CharacterClassInfo.h new file mode 100644 index 0000000..aa9ba18 --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/Data/CharacterClassInfo.h @@ -0,0 +1,46 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Engine/DataAsset.h" +#include "AbilitySystem/AbilitySystemTypes.h" +#include "ScalableFloat.h" +#include "CharacterClassInfo.generated.h" + +class UGameplayEffect; +class UGameplayAbility; +struct FGameplayEffectParameters; + +/** + * + */ +UCLASS() +class AURA_API UCharacterClassInfo : public UDataAsset +{ + GENERATED_BODY() + +public: + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Character Class") + FText Name; + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Character Class") + FGameplayTagContainer ClassTag; + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Character Class") + TArray> BaseEffects; + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Abilities") + TArray StartupAbilities; + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Abilities") + TObjectPtr AbilitiesBook; + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Starting") + TArray OnBeginEffects; + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Experience") + FScalableFloat DeathExperience; + +}; diff --git a/Source/Aura/Public/AbilitySystem/Data/EffectInfo.h b/Source/Aura/Public/AbilitySystem/Data/EffectInfo.h new file mode 100644 index 0000000..4646514 --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/Data/EffectInfo.h @@ -0,0 +1,42 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Engine/DataAsset.h" +#include "GameplayTagContainer.h" +#include "EffectInfo.generated.h" + +USTRUCT(BlueprintType) +struct FAuraEffectInfo +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadOnly, Category = "Tag") + FGameplayTag MessageTag; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Message") + FText Message = FText(); + + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Widget") + TSubclassOf MessageWidget; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Widget") + TObjectPtr Image = nullptr; + +}; + +/** + * + */ +UCLASS() +class AURA_API UEffectInfo : public UDataAsset +{ + GENERATED_BODY() + +public: + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Effect Information") + TMap EffectsInformations; + +}; \ No newline at end of file diff --git a/Source/Aura/Public/AbilitySystem/Data/LevelingInfo.h b/Source/Aura/Public/AbilitySystem/Data/LevelingInfo.h new file mode 100644 index 0000000..b04a5b3 --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/Data/LevelingInfo.h @@ -0,0 +1,48 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Engine/DataAsset.h" +#include "ScalableFloat.h" +#include "LevelingInfo.generated.h" + +USTRUCT(BlueprintType) +struct FLevelingRewardInfo +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Attributes") + int32 AttributePointsAward = 3; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Ability") + int32 AbilityPointAward = 1; + +}; + +/** + * + */ +UCLASS() +class AURA_API ULevelingInfo : public UDataAsset +{ + GENERATED_BODY() + +public: + + // Input curve should be constantly increasing. The key is the level and the value is the required experience + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Experience") + FScalableFloat ExperienceCurve; + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Level") + int32 MaxLevel = 20; + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Rewards") + TArray LevelRewards; + + UFUNCTION(BlueprintCallable) + int32 FindLevelForXP(int32 ExperiencePoints, int32 MinLevel = 0) const; + + void GetExperienceBoundsAtLevel(int32 Level, int32& MinExperience, int32& MaxExperience) const; + +}; diff --git a/Source/Aura/Public/AbilitySystem/EffectCalculation/ExecCalc_AttributeBased.h b/Source/Aura/Public/AbilitySystem/EffectCalculation/ExecCalc_AttributeBased.h new file mode 100644 index 0000000..f314b87 --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/EffectCalculation/ExecCalc_AttributeBased.h @@ -0,0 +1,47 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameplayEffectExecutionCalculation.h" +#include "GameplayEffectTypes.h" +#include "AbilitySystem/AuraAttributeList.h" +#include "ExecCalc_AttributeBased.generated.h" + +/** + * + */ +UCLASS() +class AURA_API UExecCalc_AttributeBased : public UGameplayEffectExecutionCalculation +{ + GENERATED_BODY() + +public: + UFUNCTION(BlueprintCallable, Category = "Gameplay Effect|Data") + void GetCapturedAttributesMagnitudes(const FGameplayEffectCustomExecutionParameters& ExecutionParams, TArray& Attributes) const; + + UFUNCTION(BlueprintCallable, Category = "Gameplay Effect|Data") + void GetContext(const FGameplayEffectCustomExecutionParameters& ExecutionParams, FGameplayEffectContextHandle& Context) const; + + UFUNCTION(BlueprintCallable, Category = "Gameplay Effect|Data") + float GetSetByCallerTagMagnitude(const FGameplayEffectCustomExecutionParameters& ExecutionParams, FGameplayTag DataTag, bool WarnIfNotFound = false, float Default = 0.0f) const; + + UFUNCTION(BlueprintCallable, Category = "Ability|Gameplay Effect") + const TMap& GetSetByCallerTagMagnitudes(const FGameplayEffectCustomExecutionParameters& ExecutionParams) const; + + UFUNCTION(BlueprintCallable, Category = "Gameplay Effect|Modifiers") + void AddExecutionOutputs(const TArray& EvaluatedDatas, FGameplayEffectCustomExecutionOutput& OutExecutionOutput) const; + + + /** Attribute Modifiers */ + + UFUNCTION(BlueprintCallable, Category = "Gameplay Effect|Attribute Modifier") + FGameplayModifierEvaluatedData MakeModifierEvaluatedData_IncomingDamage(EGameplayModOp::Type Operation, float Value) const; + +// #define MakeModifier(AttributeName, CategoryName) \ +// UFUNCTION(BlueprintCallable, Category = "Gameplay Effect|Attribute Modifier") \ +// FGameplayModifierEvaluatedData MakeModifierEvaluatedData_##AttributeName(EGameplayModOp::Type Operation, float Value) const; + +// FOREACH_ATTRIBUTE_All(MakeModifier) + +}; diff --git a/Source/Aura/Public/AbilitySystem/EffectCalculation/MMC_AttributeBased.h b/Source/Aura/Public/AbilitySystem/EffectCalculation/MMC_AttributeBased.h new file mode 100644 index 0000000..9c610e2 --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/EffectCalculation/MMC_AttributeBased.h @@ -0,0 +1,23 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameplayModMagnitudeCalculation.h" +#include "MMC_AttributeBased.generated.h" + +/** + * + */ +UCLASS(Blueprintable) +class AURA_API UMMC_AttributeBased : public UGameplayModMagnitudeCalculation +{ + GENERATED_BODY() + +protected: + UFUNCTION(BlueprintCallable, Category = "Ability|Gameplay Effect") + void GetCapturedAttributesMagnitudes(const FGameplayEffectSpec& EffectSpec, TArray& Attributes) const; + + UFUNCTION(BlueprintCallable, Category = "Ability|Gameplay Effect") + void GetContext(const FGameplayEffectSpec& EffectSpec, FGameplayEffectContextHandle& Context) const; +}; diff --git a/Source/Aura/Public/AbilitySystem/Tasks/TargetDataUnderMouse.h b/Source/Aura/Public/AbilitySystem/Tasks/TargetDataUnderMouse.h new file mode 100644 index 0000000..8290d0a --- /dev/null +++ b/Source/Aura/Public/AbilitySystem/Tasks/TargetDataUnderMouse.h @@ -0,0 +1,33 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Abilities/Tasks/AbilityTask.h" +#include "TargetDataUnderMouse.generated.h" + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMouseTargetDataSignature, const FGameplayAbilityTargetDataHandle&, DataHandle); +DECLARE_DYNAMIC_MULTICAST_DELEGATE(FNoTargetDataSignature); + +/** + * + */ +UCLASS() +class AURA_API UTargetDataUnderMouse : public UAbilityTask +{ + GENERATED_BODY() + +public: + + UPROPERTY(BlueprintAssignable) + FMouseTargetDataSignature ValidData; + UPROPERTY(BlueprintAssignable) + FNoTargetDataSignature NoData; + + UFUNCTION(BlueprintCallable, Category = "Ability|Tasks", meta = (DisplayName = "TargetDataUnderMouse", HidePin = "OwningAbility", DefaultToSelf = "OwningAbility", BlueprintInternalUseOnly = true)) + static UTargetDataUnderMouse* CreateTargetDataUnderMouse(UGameplayAbility* OwningAbility); + + virtual void Activate() override; + + void SendMouseCursorData(); +}; diff --git a/Source/Aura/Public/Actor/AuraEffectActor.h b/Source/Aura/Public/Actor/AuraEffectActor.h new file mode 100644 index 0000000..6c23bd5 --- /dev/null +++ b/Source/Aura/Public/Actor/AuraEffectActor.h @@ -0,0 +1,53 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameplayEffect.h" +#include "GameplayEffectTypes.h" +#include "AbilitySystem/AbilitySystemTypes.h" +#include "AuraEffectActor.generated.h" + +USTRUCT(BlueprintType) +struct AURA_API FEffectHandleArray +{ + GENERATED_BODY() + +public: + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TArray Handles; +}; + +UCLASS() +class AURA_API AAuraEffectActor : public AActor +{ + GENERATED_BODY() + +public: + AAuraEffectActor(); + + UFUNCTION(BlueprintCallable) + bool ApplyEffectToActor(AActor* Actor); + + UFUNCTION(BlueprintCallable) + bool ApplyEffectToAbilitySystemComponent(UAbilitySystemComponent* ASC); + + UFUNCTION(BlueprintCallable) + bool RemoveEffectFromActor(AActor* Actor); + + UFUNCTION(BlueprintCallable) + bool RemoveEffectFromAbilitySystemComponent(UAbilitySystemComponent* ASC); + + +protected: + virtual void BeginPlay() override; + +private: + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Effects", meta = (AllowPrivateAccess = true)) + TArray Effects; + + UPROPERTY() + TMap ActiveEffectHandles; + +}; diff --git a/Source/Aura/Public/Actor/AuraProjectile.h b/Source/Aura/Public/Actor/AuraProjectile.h new file mode 100644 index 0000000..2fbab86 --- /dev/null +++ b/Source/Aura/Public/Actor/AuraProjectile.h @@ -0,0 +1,84 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "AbilitySystem/AbilitySystemTypes.h" +#include "AuraProjectile.generated.h" + +class UPrimitiveComponent; +class USphereComponent; +class UProjectileMovementComponent; +class UArrowComponent; +class UAbilitySystemComponent; + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FProjectileImpactSignature, AAuraProjectile*, Projectile, FHitResult, HitResult); + +UCLASS() +class AURA_API AAuraProjectile : public AActor +{ + GENERATED_BODY() + +public: + AAuraProjectile(); + + UPROPERTY(BlueprintReadWrite, Category = "Projectile|Applied Effects", meta = (ExposeOnSpawn = true, AllowPrivateAccess = true)) + TArray AppliedEffects; + + UFUNCTION(BlueprintCallable, BlueprintPure = false, Category = "Projectile") + TArray ApplyEffects(UAbilitySystemComponent* TargetASC, const FHitResult& Collision) const; + + UPROPERTY(BlueprintReadWrite, Category = "Projectile|Instigator", meta = (ExposeOnSpawn = true, AllowPrivateAccess = true)) + TObjectPtr InstigatorAbility; + +protected: + + virtual void BeginPlay() override; + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Projectile|Impact") + bool ShouldImpact(const FHitResult& HitResult); + + UFUNCTION(BlueprintNativeEvent, Category = "Projectile|Impact") + void Impact(const FHitResult& HitResult); + + UFUNCTION(BlueprintNativeEvent, Category = "Projectile|Impact") + void Overlapped(const FHitResult& HitResult); + + UFUNCTION() + void OnSphereOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComponent, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& HitResult); + + UPROPERTY(BlueprintAssignable, Category = "Projectile|Impact") + FProjectileImpactSignature OnImpact; + +private: + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Projectile", meta = (AllowPrivateAccess = true)) + TObjectPtr Sphere; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Projectile", meta = (AllowPrivateAccess = true)) + TObjectPtr ProjectileMovement; + + UPROPERTY(VisibleAnywhere, Category = "Projectile"); + TObjectPtr ArrowComponent; +}; + +UINTERFACE(MinimalAPI) +class UProjectileReactionInterface : public UInterface +{ + GENERATED_BODY() +}; + +class AURA_API IProjectileReactionInterface +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable) + void OverlappedByProjectile(AAuraProjectile* Projectile, const FHitResult& HitResult); + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable) + void ImpactedByProjectile(AAuraProjectile* Projectile, const FHitResult& HitResult); + +}; diff --git a/Source/Aura/Public/AsyncTask/InspectCooldownTask.h b/Source/Aura/Public/AsyncTask/InspectCooldownTask.h new file mode 100644 index 0000000..d7dbec2 --- /dev/null +++ b/Source/Aura/Public/AsyncTask/InspectCooldownTask.h @@ -0,0 +1,53 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Kismet/BlueprintAsyncActionBase.h" +#include "GameplayTagContainer.h" +#include "ActiveGameplayEffectHandle.h" +#include "InspectCooldownTask.generated.h" + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FCooldownChangeSignature, float, TimeRemaining, float, TimeTotal); + +class UAbilitySystemComponent; +struct FGameplayEffectSpec; + +/** + * + */ +UCLASS(BlueprintType, meta = (ExposedAsyncProxy = "AsyncTask")) +class AURA_API UInspectCooldownTask : public UBlueprintAsyncActionBase +{ + GENERATED_BODY() + +public: + + UPROPERTY(BlueprintAssignable) + FCooldownChangeSignature CooldownStart; + + UPROPERTY(BlueprintAssignable) + FCooldownChangeSignature CooldownEnd; + + UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = true)) + static UInspectCooldownTask* InspectCooldown(UAbilitySystemComponent* AbilitySystemComponent, FGameplayTag InCooldownTag); + + UFUNCTION(BlueprintCallable) + void EndTask(); + + UFUNCTION(BlueprintCallable) + void BroadcastEffectCooldownTime(); + +protected: + + UPROPERTY() + TObjectPtr ASC; + + FGameplayTag CooldownTag; + + void CooldownTagChanged(const FGameplayTag ChangedTag, int32 NewCount); + void OnActiveEffectAdded(UAbilitySystemComponent* TargetASC, const FGameplayEffectSpec& SpecApplied, FActiveGameplayEffectHandle ActiveEffectHandle); + + bool EffectHasCooldownTag(const FGameplayEffectSpec& EffectSpec); + +}; diff --git a/Source/Aura/Public/AuraAssetManager.h b/Source/Aura/Public/AuraAssetManager.h new file mode 100644 index 0000000..e0fa389 --- /dev/null +++ b/Source/Aura/Public/AuraAssetManager.h @@ -0,0 +1,23 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Engine/AssetManager.h" +#include "AuraAssetManager.generated.h" + +/** + * + */ +UCLASS() +class AURA_API UAuraAssetManager : public UAssetManager +{ + GENERATED_BODY() + +public: + static UAuraAssetManager& Get(); + +protected: + + virtual void StartInitialLoading() override; +}; diff --git a/Source/Aura/Public/AuraBlueprintFunctionLibrary.h b/Source/Aura/Public/AuraBlueprintFunctionLibrary.h new file mode 100644 index 0000000..691649c --- /dev/null +++ b/Source/Aura/Public/AuraBlueprintFunctionLibrary.h @@ -0,0 +1,37 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Kismet/BlueprintFunctionLibrary.h" +#include "AuraBlueprintFunctionLibrary.generated.h" + + +DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnDeathDelegateSignature, AActor*, DeadActor, const FGameplayEffectSpec&, KillingEffectSpec); + +/** + * + */ +UCLASS() +class AURA_API UAuraBlueprintFunctionLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, Category = "Components") + static void RegisterComponent(UActorComponent* Component); + + UFUNCTION(BlueprintCallable, Category = "Components") + static void UnregisterComponent(UActorComponent* Component); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Team") + static bool AreActorsEnemies(AActor* FirstActor, AActor* SecondActor); + + UFUNCTION(BlueprintCallable, Category = "CombatInterface|OnDeath") + static void AddOnDeathCallback(UObject* CombatInterfaceObject, FOnDeathDelegateSignature Callback); + + UFUNCTION(BlueprintCallable, Category = "CombatInterface|OnDeath") + static void RemoveOnDeathCallback(UObject* CombatInterfaceObject, FOnDeathDelegateSignature Callback); + +}; diff --git a/Source/Aura/Public/AuraGameplayTags.h b/Source/Aura/Public/AuraGameplayTags.h new file mode 100644 index 0000000..9a4c4f5 --- /dev/null +++ b/Source/Aura/Public/AuraGameplayTags.h @@ -0,0 +1,96 @@ + +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameplayTagContainer.h" +#include "AbilitySystem/AuraAttributeList.h" + +/** + * AuraGameplayTags + * + * Singleton containing gameplay tags +*/ + +struct FAuraGameplayTags +{ +public: + static const FAuraGameplayTags& Get() { return GameplayTags; } + static void InitializeNativeGameplayTags(); + + #define __AURAGAMEPLAYTAGS_SINGLETON_PROPERTYDECLARATION__(AttributeName, CategoryName) FGameplayTag Attributes_##CategoryName##_##AttributeName; + + FOREACH_ATTRIBUTE_All(__AURAGAMEPLAYTAGS_SINGLETON_PROPERTYDECLARATION__) + + FGameplayTag InputTag; + FGameplayTag InputTag_LMB; + FGameplayTag InputTag_RMB; + FGameplayTag InputTag_1; + FGameplayTag InputTag_2; + FGameplayTag InputTag_3; + FGameplayTag InputTag_4; + FGameplayTag InputTag_Q; + FGameplayTag InputTag_E; + FGameplayTag InputTag_R; + FGameplayTag InputTag_F; + FGameplayTag InputTag_Space; + FGameplayTag InputTag_Passive_1; + FGameplayTag InputTag_Passive_2; + FGameplayTag InputTag_Passive_3; + + TArray InputTags; + + FGameplayTag Event; + FGameplayTag Event_AbilitySystem_DamageApplied; + + FGameplayTag Damage; + FGameplayTag Damage_Physical; + FGameplayTag Damage_Magical; + FGameplayTag Damage_Magical_Fire; + FGameplayTag Damage_Magical_Ice; + FGameplayTag Damage_Magical_Shock; + FGameplayTag Damage_Magical_Shadow; + FGameplayTag Damage_Magical_Arcane; + + TArray DamageTypes; + + TMap DamageResistanceMap; + + FGameplayTag Effects_HitReact; + + FGameplayTag Debuff; + FGameplayTag Debuff_Stun; + FGameplayTag Debuff_Slow; + FGameplayTag Debuff_Dot; + FGameplayTag Debuff_Attributes; + + FGameplayTag Ability_ID; + + FGameplayTag Ability_Cooldown; + + FGameplayTag Ability_Status; + FGameplayTag Ability_Status_Locked; + FGameplayTag Ability_Status_Eligible; + FGameplayTag Ability_Status_Unlocked; + FGameplayTag Ability_Status_Equipped; + + FGameplayTag Ability_Type; + FGameplayTag Ability_Type_Activable; + FGameplayTag Ability_Type_Passive; + FGameplayTag Ability_Type_Utility; + + FGameplayTag Ability_Interruptible; + FGameplayTag Ability_Interruptible_HitReact; + + FGameplayTag Ability_AI_BasicAttack; + + FGameplayTag Player_Hide_Cursor; + FGameplayTag Player_Block_AbilityInput; + FGameplayTag Player_Block_CursorTrace; + +protected: + +private: + static FAuraGameplayTags GameplayTags; +}; diff --git a/Source/Aura/Public/Character/AuraCharacterBase.h b/Source/Aura/Public/Character/AuraCharacterBase.h new file mode 100644 index 0000000..3fa55cf --- /dev/null +++ b/Source/Aura/Public/Character/AuraCharacterBase.h @@ -0,0 +1,101 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "AbilitySystemInterface.h" +#include "GameFramework/Character.h" +#include "Interaction/CombatInterface.h" +#include "Interfaces/WorldHoverable.h" +#include "GameplayEffectTypes.h" +#include "AuraCharacterBase.generated.h" + +DECLARE_DYNAMIC_DELEGATE_TwoParams(FTagCountChangeSignature, FGameplayTag, Tag, int32, NewCount); + +class UAbilitySystemComponent; +class UAttributeSet; +class UCharacterClassInfo; + +UCLASS(Abstract) +class AURA_API AAuraCharacterBase : public ACharacter, public IAbilitySystemInterface, public ICombatInterface, public IWorldHoverable +{ + GENERATED_BODY() + +public: + AAuraCharacterBase(); + + FOnASCRegisteredDelegate OnASCRegistered; + + UPROPERTY(BlueprintAssignable) + FOnDeathBroadcastSignature OnDeath; + + /** Ability System */ + virtual UAbilitySystemComponent* GetAbilitySystemComponent() const override; + UFUNCTION(BlueprintCallable, Category = "Ability") + FORCEINLINE UAttributeSet* GetAttributeSet() const { return AttributeSet; } + + /** Highlight */ + UFUNCTION(BlueprintNativeEvent, Category = "Highlight") + void SetHighlighted(bool bNewHighlighted); + virtual void SetHighlighted_Implementation(bool bNewHighlighted); + UFUNCTION(BlueprintCallable, Category = "Highlight") + bool GetHighlighted() const { return bHighlighted; } + + /** World Hoverable */ + virtual void GetWorldHoverableInfos_Implementation(FWorldHoverableInfos& Infos) override; + virtual bool CanBeHovered_Implementation(AController* Controller, const FHitResult& TraceHit) override; + virtual void HoveredBegin_Implementation(AController* Controller, const FHitResult& TraceHit) override; + virtual void HoveredEnd_Implementation(AController* Controller) override; + + + FORCEINLINE const UCharacterClassInfo* GetClassInfo() const { return ClassInfo; } + + +protected: + + virtual void BeginPlay() override; + + virtual void Restart() override; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Combat") + TObjectPtr Weapon; + + UPROPERTY(BlueprintReadOnly, Category = "Combat") + bool bHitReacting = false; + + /** Combat Interface*/ + virtual int32 GetDeathExperience_Implementation() const override; + virtual FVector GetCombatSocketLocation_Implementation(FGameplayTag SocketTagName) const override; + virtual bool IsDead_Implementation() const override; + virtual FOnASCRegisteredDelegate& GetOnASCRegisteredDelegate() override; + virtual FOnDeathBroadcastSignature& GetOnDeathDelegate() override; + + UPROPERTY(BlueprintReadOnly, Category = "Highlight") + bool bHighlighted; + + UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category = "Ability", meta = (AllowPrivateAccess = "true")) + TObjectPtr AbilitySystemComponent; + + UPROPERTY() + TObjectPtr AttributeSet; + + /* InitAbilityActorInfo */ + UFUNCTION() + virtual void InitAbilitySystem(); + + UFUNCTION(BlueprintNativeEvent, Category = "Ability System") + void AbilitySystemInitialized(UAbilitySystemComponent* ASC); + + void AddCharacterBaseEffects(); + void AddCharacterAbilities(); + + UFUNCTION(BlueprintCallable) + void ApplyBeginEffects(); + + UFUNCTION(BlueprintCallable, Category = "Gameplay Effect|Event Tag") + void RegisterGameplayTagEvent(FGameplayTag EventTag, EGameplayTagEventType::Type TagEventType, FTagCountChangeSignature OnTagCountChanged); + + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Character Class") + TObjectPtr ClassInfo; + +}; diff --git a/Source/Aura/Public/Character/AuraEnemy.h b/Source/Aura/Public/Character/AuraEnemy.h new file mode 100644 index 0000000..b199f12 --- /dev/null +++ b/Source/Aura/Public/Character/AuraEnemy.h @@ -0,0 +1,38 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Character/AuraCharacterBase.h" +#include "AuraEnemy.generated.h" + +/** + * + */ +UCLASS() +class AAuraEnemy : public AAuraCharacterBase +{ + GENERATED_BODY() + +public: + + AAuraEnemy(); + + /** Combat Interface */ + virtual int32 GetPlayerLevel_Implementation() const override { return Level; } + virtual void SetCombatTarget_Implementation(USceneComponent *NewCombatTarget) override { CombatTarget = NewCombatTarget; } + virtual USceneComponent* GetCombatTarget_Implementation() const override { return CombatTarget; } + +protected: + + virtual void BeginPlay() override; + + virtual void InitAbilitySystem() override; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Character Class Default") + int32 Level = 1; + + UPROPERTY() + TObjectPtr CombatTarget; + +}; diff --git a/Source/Aura/Public/Character/AuraPlayerCharacter.h b/Source/Aura/Public/Character/AuraPlayerCharacter.h new file mode 100644 index 0000000..742099a --- /dev/null +++ b/Source/Aura/Public/Character/AuraPlayerCharacter.h @@ -0,0 +1,45 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Character/AuraCharacterBase.h" +#include "Interaction/PlayerInterface.h" +#include "AuraPlayerCharacter.generated.h" + +class USpringArmComponent; +class UCameraComponent; + +/** + * + */ +UCLASS() +class AAuraPlayerCharacter : public AAuraCharacterBase, public IPlayerInterface +{ + GENERATED_BODY() + +public: + AAuraPlayerCharacter(); + + FORCEINLINE USpringArmComponent* GetCameraBoom() const { return CameraBoom; } + FORCEINLINE UCameraComponent* GetFollowCamera() const { return FollowCamera; } + + virtual void PossessedBy(AController* NewController) override; + virtual void OnRep_PlayerState() override; + +protected: + + /** Combat Interface */ + virtual int32 GetPlayerLevel_Implementation() const override; + + /** Player Interface */ + virtual class ULevelingExperienceComponent* GetLevelingExperienceComponent_Implementation() const override; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera", meta = (AllowPrivateAccess = "true")) + TObjectPtr CameraBoom; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera", meta = (AllowPrivateAccess = "true")) + TObjectPtr FollowCamera; + + virtual void InitAbilitySystem() override; +}; diff --git a/Source/Aura/Public/Game/AuraGameModeBase.h b/Source/Aura/Public/Game/AuraGameModeBase.h new file mode 100644 index 0000000..3fdfec1 --- /dev/null +++ b/Source/Aura/Public/Game/AuraGameModeBase.h @@ -0,0 +1,17 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/GameMode.h" +#include "AuraGameModeBase.generated.h" + +/** + * + */ +UCLASS() +class AURA_API AAuraGameModeBase : public AGameMode +{ + GENERATED_BODY() + +}; diff --git a/Source/Aura/Public/Game/AuraGameState.h b/Source/Aura/Public/Game/AuraGameState.h new file mode 100644 index 0000000..a694e7e --- /dev/null +++ b/Source/Aura/Public/Game/AuraGameState.h @@ -0,0 +1,18 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/GameState.h" +#include "AuraGameState.generated.h" + +/** + * + */ +UCLASS() +class AURA_API AAuraGameState : public AGameState +{ + GENERATED_BODY() + + +}; diff --git a/Source/Aura/Public/Input/AuraInputComponent.h b/Source/Aura/Public/Input/AuraInputComponent.h new file mode 100644 index 0000000..7c445e3 --- /dev/null +++ b/Source/Aura/Public/Input/AuraInputComponent.h @@ -0,0 +1,47 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "EnhancedInputComponent.h" +#include "AuraInputConfig.h" +#include "AuraInputComponent.generated.h" + +/** + * + */ +UCLASS() +class AURA_API UAuraInputComponent : public UEnhancedInputComponent +{ + GENERATED_BODY() + +public: + + template + void BindAbilityActions(const UAuraInputConfig* InputConfig, + UserClass* BindObject, PressedFuncType PressedFunc, + ReleaseFuncType ReleaseFunc, HeldFuncType HeldFunc); + +}; + + +template + void UAuraInputComponent::BindAbilityActions(const UAuraInputConfig* InputConfig, + UserClass* BindObject, PressedFuncType PressedFunc, + ReleaseFuncType ReleaseFunc, HeldFuncType HeldFunc) +{ + check(InputConfig) + + for (const FAuraInputAction& Action : InputConfig->AbilityInputActions) + { + if (!(Action.InputAction && Action.InputTag.IsValid())) + continue; + + if (PressedFunc) + BindAction(Action.InputAction, ETriggerEvent::Started, BindObject, PressedFunc, Action.InputTag); + if (ReleaseFunc) + BindAction(Action.InputAction, ETriggerEvent::Completed, BindObject, ReleaseFunc, Action.InputTag); + if (HeldFunc) + BindAction(Action.InputAction, ETriggerEvent::Triggered, BindObject, HeldFunc, Action.InputTag); + } +} diff --git a/Source/Aura/Public/Input/AuraInputConfig.h b/Source/Aura/Public/Input/AuraInputConfig.h new file mode 100644 index 0000000..800290f --- /dev/null +++ b/Source/Aura/Public/Input/AuraInputConfig.h @@ -0,0 +1,39 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Engine/DataAsset.h" +#include "GameplayTagContainer.h" +#include "AuraInputConfig.generated.h" + +USTRUCT(BlueprintType) +struct FAuraInputAction +{ + GENERATED_BODY() + + UPROPERTY(EditDefaultsOnly) + class UInputAction* InputAction = nullptr; + + UPROPERTY(EditDefaultsOnly) + FGameplayTag InputTag = FGameplayTag(); + +}; + +/** + * + */ +UCLASS() +class AURA_API UAuraInputConfig : public UDataAsset +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable) + const UInputAction* FindAbilityInputActionForTag(const FGameplayTag& InputTag, bool bLogNotFound) const; + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Input") + TArray AbilityInputActions; + +}; diff --git a/Source/Aura/Public/Interaction/CombatInterface.h b/Source/Aura/Public/Interaction/CombatInterface.h new file mode 100644 index 0000000..42eed91 --- /dev/null +++ b/Source/Aura/Public/Interaction/CombatInterface.h @@ -0,0 +1,79 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "UObject/Interface.h" +#include "GameplayTagContainer.h" +#include "CombatInterface.generated.h" + +class UAbilitySystemComponent; + +DECLARE_MULTICAST_DELEGATE_OneParam(FOnASCRegisteredDelegate, UAbilitySystemComponent*); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnDeathBroadcastSignature, AActor*, DeadActor, const FGameplayEffectSpec&, KillingEffectSpec); + +USTRUCT(BlueprintType, Blueprintable) +struct FCombatMontage +{ + GENERATED_BODY() + + FCombatMontage(){} + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + class UAnimMontage* Montage; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FGameplayTag EventTag; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FGameplayTag SocketTag; + +}; + +// This class does not need to be modified. +UINTERFACE(MinimalAPI) +class UCombatInterface : public UInterface +{ + GENERATED_BODY() +}; + +/** + * + */ +class AURA_API ICombatInterface +{ + GENERATED_BODY() + + // Add interface functions to this class. This is the class that will be inherited to implement this interface. +public: + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable) + int32 GetPlayerLevel() const; + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable) + int32 GetDeathExperience() const; + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable) + FVector GetCombatSocketLocation(FGameplayTag SocketTagName) const; + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable) + USceneComponent* GetCombatComponent(FGameplayTag ComponentTagName) const; + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable) + FCombatMontage GetCombatMontage(FGameplayTag MontageTagName) const; + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable) + void SetCombatTarget(USceneComponent *NewCombatTarget); + UFUNCTION(BlueprintNativeEvent, BlueprintCallable) + USceneComponent* GetCombatTarget() const; + + UFUNCTION(BlueprintNativeEvent) + void Die(const FGameplayEffectSpec& KillingEffectSpec); + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable) + bool IsDead() const; + + virtual FOnASCRegisteredDelegate& GetOnASCRegisteredDelegate() = 0; + virtual FOnDeathBroadcastSignature& GetOnDeathDelegate() = 0; + +}; diff --git a/Source/Aura/Public/Interaction/PlayerInterface.h b/Source/Aura/Public/Interaction/PlayerInterface.h new file mode 100644 index 0000000..eda73db --- /dev/null +++ b/Source/Aura/Public/Interaction/PlayerInterface.h @@ -0,0 +1,29 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UObject/Interface.h" +#include "PlayerInterface.generated.h" + +// This class does not need to be modified. +UINTERFACE(MinimalAPI) +class UPlayerInterface : public UInterface +{ + GENERATED_BODY() +}; + +/** + * + */ +class AURA_API IPlayerInterface +{ + GENERATED_BODY() + + // Add interface functions to this class. This is the class that will be inherited to implement this interface. +public: + + UFUNCTION(BlueprintNativeEvent, BlueprintCallable) + class ULevelingExperienceComponent* GetLevelingExperienceComponent() const; + +}; diff --git a/Source/Aura/Public/Inventory/AuraInventoryComponent.h b/Source/Aura/Public/Inventory/AuraInventoryComponent.h new file mode 100644 index 0000000..c21445d --- /dev/null +++ b/Source/Aura/Public/Inventory/AuraInventoryComponent.h @@ -0,0 +1,42 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Components/SlotInventoryComponent_Networked.h" +#include "InventoryItem.h" +#include "AuraInventoryComponent.generated.h" + +class UAuraInventoryDataSource; + +/** + * + */ +UCLASS( Blueprintable, ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) +class AURA_API UAuraInventoryComponent : public USlotInventoryComponent_Networked +{ + GENERATED_BODY() + +protected: + + virtual uint8 GetMaxStackSizeForID(const FName& ID) const override; + + +public: + + UFUNCTION(BlueprintCallable, Category = "Data") + bool FetchSlotData(const FName& SlotId, FInventoryItemData& Data) const; + + UFUNCTION(BlueprintCallable, Category = "Data|Quality") + FLinearColor GetColorFromQuality(EInventoryItemQuality Quality) const; + + UPROPERTY(BlueprintReadWrite, Category = "Quick Drop") + TObjectPtr QuickDeliverInventory; + + +private: + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Data|Asset", meta = (AllowPrivateAccess = true)) + TObjectPtr DataSource; + +}; diff --git a/Source/Aura/Public/Inventory/AuraInventoryDataSource.h b/Source/Aura/Public/Inventory/AuraInventoryDataSource.h new file mode 100644 index 0000000..4aabc13 --- /dev/null +++ b/Source/Aura/Public/Inventory/AuraInventoryDataSource.h @@ -0,0 +1,34 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Components/ActorComponent.h" +#include "InventoryItem.h" +#include "AuraInventoryDataSource.generated.h" + + +UCLASS() +class AURA_API UAuraInventoryDataSource : public UDataAsset +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, Category = "Data") + bool GetDataForItemId(const FName& ItemId, FInventoryItemData& Data) const; + + UFUNCTION(BlueprintCallable, Category = "Data") + FLinearColor GetColorFromQuality(EInventoryItemQuality Quality) const; + + +protected: + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Data") + TObjectPtr ItemDataTable; + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Data") + TMap QualityColors; + + +}; diff --git a/Source/Aura/Public/Inventory/InventoryItem.h b/Source/Aura/Public/Inventory/InventoryItem.h new file mode 100644 index 0000000..ed4cd47 --- /dev/null +++ b/Source/Aura/Public/Inventory/InventoryItem.h @@ -0,0 +1,46 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Engine/DataTable.h" +#include "InventoryItem.generated.h" + + +UENUM(BlueprintType) +enum class EInventoryItemQuality : uint8 +{ + IIQ_Trash UMETA(DisplayName="Trash"), + IIQ_Common UMETA(DisplayName="Common"), + IIQ_Unusual UMETA(DisplayName="Unusual"), + IIQ_Rare UMETA(DisplayName="Rare"), + IIQ_Epic UMETA(DisplayName="Epic"), + IIQ_Legendary UMETA(DisplayName="Legendary"), + IIQ_Doom UMETA(DisplayName="Doom"), +}; + + +USTRUCT(BlueprintType) +struct FInventoryItemData : public FTableRowBase +{ + GENERATED_USTRUCT_BODY() + + + UPROPERTY(BlueprintReadWrite, EditAnywhere) + FText Name; + + UPROPERTY(BlueprintReadWrite, EditAnywhere) + FText Description; + + UPROPERTY(BlueprintReadWrite, EditAnywhere) + TObjectPtr Icon; + + UPROPERTY(BlueprintReadWrite, EditAnywhere) + EInventoryItemQuality Quality = EInventoryItemQuality::IIQ_Common; + + UPROPERTY(BlueprintReadWrite, EditAnywhere) + TObjectPtr Behavior; + + UPROPERTY(BlueprintReadWrite, EditAnywhere) + uint8 MaxStackSize = 255; +}; diff --git a/Source/Aura/Public/Player/AuraPlayerController.h b/Source/Aura/Public/Player/AuraPlayerController.h new file mode 100644 index 0000000..bdee78c --- /dev/null +++ b/Source/Aura/Public/Player/AuraPlayerController.h @@ -0,0 +1,97 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/PlayerController.h" +#include "GameplayTagContainer.h" +#include "AuraPlayerController.generated.h" + +class UInteractionControllerComponent; +class UInputMappingContext; +class UInputAction; +class UAuraInputConfig; +class UAuraAbilitySystemComponent; +class AAuraEnemy; +class UAutoRunComponent; + +/** + * + */ +UCLASS() +class AAuraPlayerController : public APlayerController +{ + GENERATED_BODY() + +protected: + + AAuraPlayerController(); + +public: + + virtual void BeginPlay() override; + + virtual void SetupInputComponent() override; + + /** Cursor Interaction */ + UFUNCTION(BlueprintCallable) + const FHitResult& GetCursorHit() const; + UFUNCTION(BlueprintCallable) + AAuraEnemy* GetHoveredEnemy() const; + + + /** Floating Damages */ + UFUNCTION(Client, Reliable) + void Client_ShowFloatingDamages(const FFloatingDamage& FloatingDamage); + UFUNCTION(BlueprintNativeEvent, BlueprintCallable) + void ShowFloatingDamages(const FFloatingDamage& FloatingDamage); + + UFUNCTION(Client, Reliable) + void Client_ShowReceivedDamages(const FFloatingDamage& ReceivedDamage); + UFUNCTION(BlueprintNativeEvent, BlueprintCallable) + void ShowReceivedDamages(const FFloatingDamage& ReceivedDamage); + + + /** Pawn Restart */ + + virtual void PawnRestart(APawn* aPawn); + + UFUNCTION(BlueprintImplementableEvent, DisplayName = "PawnRestart") + void BP_PawnRestart(APawn* aPawn); + + +private: + + void Move(const struct FInputActionValue& InputActionValue); + + void AbilityTagPressed(FGameplayTag InputTag); + void AbilityTagReleased(FGameplayTag InputTag); + void AbilityTagHeld(FGameplayTag InputTag); + + void HoldPositionPressed(); + void HoldPositionReleased(); + + UFUNCTION(BlueprintCallable) + UAuraAbilitySystemComponent* GetASC(); + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Interaction", meta = (AllowPrivateAccess = true)) + TObjectPtr InteractionController; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "AutoRun", meta = (AllowPrivateAccess = true)) + TObjectPtr AutoRunComponent; + + UPROPERTY(EditAnywhere, Category = "Input") + TObjectPtr AuraContext; + + UPROPERTY(EditAnywhere, Category = "Input") + TObjectPtr MoveAction; + + UPROPERTY(EditAnywhere, Category = "Input") + TObjectPtr HoldPositionAction; + + UPROPERTY(EditDefaultsOnly, Category = "Input") + TObjectPtr AbilityInputConfig; + + TObjectPtr AbilitySystemComponent; + +}; diff --git a/Source/Aura/Public/Player/AuraPlayerState.h b/Source/Aura/Public/Player/AuraPlayerState.h new file mode 100644 index 0000000..9e963b9 --- /dev/null +++ b/Source/Aura/Public/Player/AuraPlayerState.h @@ -0,0 +1,100 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "AbilitySystemInterface.h" +#include "GameFramework/PlayerState.h" +#include "AuraPlayerState.generated.h" + +class UAuraAbilitySystemComponent; +class UAuraAttributeSet; +class ULevelingExperienceComponent; +class UPerkPointsComponent; +struct FLevelingRewardInfo; +struct FAuraAbilityRequirement; + +/** + * + */ +UCLASS() +class AURA_API AAuraPlayerState : public APlayerState, public IAbilitySystemInterface +{ + GENERATED_BODY() + +public: + AAuraPlayerState(); + + virtual UAbilitySystemComponent* GetAbilitySystemComponent() const override; + UFUNCTION(BlueprintCallable, Category = "Ability") + FORCEINLINE UAuraAttributeSet* GetAttributeSet() const { return AttributeSet; } + + int32 GetPlayerLevel() const; + + FORCEINLINE ULevelingExperienceComponent* GetLevelingExperience() const { return LevelingExperience; } + + FORCEINLINE UPerkPointsComponent* GetPerkPoints() const { return PerkPoints; } + + /** Leveling Up */ + UFUNCTION(BlueprintNativeEvent, Category = "Leveling") + void GrantLevelingReward(const FLevelingRewardInfo& Reward); + virtual void GrantLevelingReward_Implementation(const FLevelingRewardInfo& Reward); + + UFUNCTION(NetMulticast, Reliable, Category = "Leveling") + void NetMulticast_PlayLevelUpEffect(int32 NewLevel); + + UFUNCTION(BlueprintNativeEvent, Category = "Leveling") + void PlayLevelUpEffect(int32 NewLevel); + virtual void PlayLevelUpEffect_Implementation(int32 NewLevel); + + + /** Attributes Management */ + UFUNCTION(Server, Reliable, Category = "Attribute") + void Server_SpendAttributesPoint(int32 PointsCount, FGameplayTag AttributeTag); + + + /** Ability Management */ + UFUNCTION(Category = "Ability|Upgrade") + bool MeetAbilityRequirement(const FAuraAbilityRequirement& Requirement) const; + + UFUNCTION(Category = "Ability|Upgrade") + FString AbilityRequirementRichText(const FAuraAbilityRequirement& Requirement, const FString& ValidBalise, const FString& WrongBalise) const; + + UFUNCTION(Category = "Ability|Upgrade") + bool CanUpgradeAbility(FGameplayTag AbilityID) const; + + UFUNCTION(Server, Reliable, Category = "Ability|Upgrade") + void Server_UpgradeAbility(FGameplayTag AbilityID); + + UFUNCTION(Category = "Ability|Equip") + bool CanEquipAbility(FGameplayTag AbilityID) const; + + UFUNCTION(Category = "Ability|Equip") + void EquipAbility(FGameplayTag AbilityID, FGameplayTag InputTag); + + UFUNCTION(Category = "Ability|Tree") + void UpdateAbilityTree(); + +protected: + + virtual void BeginPlay(); + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Ability", meta = (AllowPrivateAccess = true)) + TObjectPtr AbilitySystemComponent; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Ability", meta = (AllowPrivateAccess = true)) + TObjectPtr AttributeSet; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Leveling", meta = (AllowPrivateAccess = true)) + TObjectPtr LevelingExperience; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Perks", meta = (AllowPrivateAccess = true)) + TObjectPtr PerkPoints; + +private: + + UFUNCTION() void OnLevelChanged(int32 NewLevel); + + int32 LastLevelReward = 0; + +}; diff --git a/Source/Aura/Public/Player/Components/AutoRunComponent.h b/Source/Aura/Public/Player/Components/AutoRunComponent.h new file mode 100644 index 0000000..4c3017a --- /dev/null +++ b/Source/Aura/Public/Player/Components/AutoRunComponent.h @@ -0,0 +1,74 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Components/ActorComponent.h" +#include "AutoRunComponent.generated.h" + +class USplineComponent; + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnAutoWalkBeginSignature, UAutoRunComponent*, AutoRunComponent, FVector, Destination); + + +UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) +class AURA_API UAutoRunComponent : public UActorComponent +{ + GENERATED_BODY() + +public: + + UAutoRunComponent(); + + UPROPERTY(BlueprintAssignable) + FOnAutoWalkBeginSignature OnAutoWalkBegin; + + void SetControlledPawn(APawn* Pawn); + + virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override; + + void StopAutoRun(); + + void AutoRunKeyPressed(bool bTargetingSomething = false); + void AutoRunKeyReleased(); + void AutoRunKeyHold(float DeltaTime, const FHitResult& CursorHit); + + void HoldPositionPressed() + { + bIsHoldingPosition = true; + } + + void HoldPositionReleased() + { + bIsHoldingPosition = false; + } + + bool ShouldAutoRun() + { + return !bTargeting && !bIsHoldingPosition; + } + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Components") + USplineComponent* GetPathSpline() const { return PathSpline; } + +private: + + FVector CachedDestination = FVector::ZeroVector; + float FollowTime = 0.0f; + float ShortPressThreshold = 0.2f; + bool bAutoRunning = false; + + UPROPERTY(EditDefaultsOnly) + float AutoRunAcceptanceRadius = 50.0f; + + UPROPERTY(VisibleAnywhere) + TObjectPtr PathSpline; + + TObjectPtr ControlledPawn; + + bool bTargeting; + bool bIsHoldingPosition; + + bool IsAtDestination() const; + +}; diff --git a/Source/Aura/Public/UI/AuraUIBlueprintFunctionLibrary.h b/Source/Aura/Public/UI/AuraUIBlueprintFunctionLibrary.h new file mode 100644 index 0000000..0fc1b28 --- /dev/null +++ b/Source/Aura/Public/UI/AuraUIBlueprintFunctionLibrary.h @@ -0,0 +1,36 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "Kismet/BlueprintFunctionLibrary.h" +#include "AuraUIBlueprintFunctionLibrary.generated.h" + +class UOverlayController; +class UAttributeMenuController; +class UAbilityMenuController; + +/** + * + */ +UCLASS() +class AURA_API UAuraUIBlueprintFunctionLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + + /** Widget Controllers */ + + UFUNCTION(BlueprintPure, Category = "AuraAbilitySystemLibrary|WidgetController", meta = (HidePin = "WorldContextObject", DefaultToSelf = "WorldContextObject")) + static UOverlayController* GetOverlayController(const UObject* WorldContextObject); + + UFUNCTION(BlueprintPure, Category = "AuraAbilitySystemLibrary|WidgetController", meta = (HidePin = "WorldContextObject", DefaultToSelf = "WorldContextObject")) + static UAttributeMenuController* GetAttributeMenuController(const UObject* WorldContextObject); + + UFUNCTION(BlueprintPure, Category = "AuraAbilitySystemLibrary|WidgetController", meta = (HidePin = "WorldContextObject", DefaultToSelf = "WorldContextObject")) + static UAbilityMenuController* GetAbilityMenuController(const UObject* WorldContextObject); + + /** End Widget Controllers */ + +}; diff --git a/Source/Aura/Public/UI/HUD/AuraHUD.h b/Source/Aura/Public/UI/HUD/AuraHUD.h new file mode 100644 index 0000000..d6c51c7 --- /dev/null +++ b/Source/Aura/Public/UI/HUD/AuraHUD.h @@ -0,0 +1,62 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/HUD.h" +#include "AuraHUD.generated.h" + +class UControllableUserWidget; +class UOverlayController; +class UAttributeMenuController; +class UAbilityMenuController; +class UAbilitySystemComponent; +class UAttributeSet; + +/** + * + */ +UCLASS() +class AURA_API AAuraHUD : public AHUD +{ + GENERATED_BODY() + +public: + + UPROPERTY(BlueprintReadOnly, Category = "Overlay Widget") + TObjectPtr OverlayWidget; + + UOverlayController* GetOverlayController(); + UAttributeMenuController* GetAttributeMenuController(); + UAbilityMenuController* GetAbilityMenuController(); + + void InitOverlay(); + + void ClearOverlay(); + +protected: + + AActor* GetActorToObserve() const; + + UPROPERTY(EditDefaultsOnly, Category = "WidgetController") + TSubclassOf OverlayWidgetClass; + + UPROPERTY(BlueprintReadOnly, Category = "WidgetController") + TObjectPtr OverlayController; + + UPROPERTY(EditAnywhere, Category = "WidgetController") + TSubclassOf OverlayControllerClass; + + UPROPERTY(BlueprintReadOnly, Category = "WidgetController") + TObjectPtr AttributeMenuController; + + UPROPERTY(EditAnywhere, Category = "WidgetController") + TSubclassOf AttributeMenuControllerClass; + + UPROPERTY(BlueprintReadOnly, Category = "WidgetController") + TObjectPtr AbilityMenuController; + + UPROPERTY(EditAnywhere, Category = "WidgetController") + TSubclassOf AbilityMenuControllerClass; + +}; diff --git a/Source/Aura/Public/UI/WidgetController/AbilityMenuController.h b/Source/Aura/Public/UI/WidgetController/AbilityMenuController.h new file mode 100644 index 0000000..16bbf47 --- /dev/null +++ b/Source/Aura/Public/UI/WidgetController/AbilityMenuController.h @@ -0,0 +1,61 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UI/WidgetController/AuraWidgetControllerBase.h" +#include "AbilityMenuController.generated.h" + + +class AAuraPlayerState; +class UAuraAbilitySystemComponent; +class UAbilityBook; + +/** + * + */ +UCLASS(BlueprintType, Blueprintable) +class AURA_API UAbilityMenuController : public UAuraWidgetControllerBase +{ + GENERATED_BODY() + +protected: + + virtual void Construct() override; + + virtual void ObservedActorSet() override; + + +public: + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "GAS|Abilities") + bool CanUpgradeAbility(FGameplayTag AbilityID) const; + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "GAS|Abilities") + bool CanEquipAbility(FGameplayTag AbilityID) const; + + UFUNCTION(BlueprintCallable, Category = "GAS|Abilities") + void UpgradeAbility(FGameplayTag AbilityID); + + UFUNCTION(BlueprintCallable, Category = "GAS|Abilities") + void EquipAbility(FGameplayTag AbilityID, FGameplayTag InputTag); + + UFUNCTION(BlueprintCallable, Category = "GAS|Abilities") + FString GetRequirementRichTextForAbility(FGameplayTag AbilityID, int32 Level, FString ValidBalise, FString WrongBalise) const; + + UFUNCTION(BlueprintCallable, Category = "WidgetController|Aura") + FORCEINLINE UAbilityBook* GetAbilityBook() const { return AbilityBook; } + + +protected: + + UPROPERTY() + TObjectPtr AbilityBook; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + TObjectPtr AbilitiesStatusWcc; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + TObjectPtr PerkPointsWcc; + +}; diff --git a/Source/Aura/Public/UI/WidgetController/AttributeMenuController.h b/Source/Aura/Public/UI/WidgetController/AttributeMenuController.h new file mode 100644 index 0000000..9eaf508 --- /dev/null +++ b/Source/Aura/Public/UI/WidgetController/AttributeMenuController.h @@ -0,0 +1,41 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UI/WidgetController/AuraWidgetControllerBase.h" +#include "AttributeMenuController.generated.h" + +/** + * + */ +UCLASS(BlueprintType, Blueprintable) +class AURA_API UAttributeMenuController : public UAuraWidgetControllerBase +{ + GENERATED_BODY() + +protected: + + virtual void Construct() override; + + virtual void ObservedActorSet() override; + + +public: + + UFUNCTION(BlueprintCallable, Category = "GAS|Attributes") + void UpgradeAttribute(FGameplayTag AttributeTag); + + +protected: + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + TObjectPtr AttributeSetWcc; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + TObjectPtr PerkPointsWcc; + + UPROPERTY(EditDefaultsOnly, Category = "GAS|Attributes") + TObjectPtr AttributeInfo; + +}; diff --git a/Source/Aura/Public/UI/WidgetController/AuraWidgetControllerBase.h b/Source/Aura/Public/UI/WidgetController/AuraWidgetControllerBase.h new file mode 100644 index 0000000..9f04f38 --- /dev/null +++ b/Source/Aura/Public/UI/WidgetController/AuraWidgetControllerBase.h @@ -0,0 +1,53 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UI/WidgetController.h" +#include "AuraWidgetControllerBase.generated.h" + + +class AAuraPlayerState; +class UAuraAbilitySystemComponent; +class UAuraAttributeSet; + +/** + * + */ +UCLASS() +class AURA_API UAuraWidgetControllerBase : public UWidgetController +{ + GENERATED_BODY() + +protected: + + virtual void ObservedActorSet() override; + + + UFUNCTION(BlueprintCallable, Category = "WidgetController|Aura") + FORCEINLINE AAuraCharacterBase* GetAuraCharacterBase() const { return AuraCharacter; } + UFUNCTION(BlueprintCallable, Category = "WidgetController|Aura") + FORCEINLINE AAuraPlayerState* GetAuraPlayerState() const { return AuraPlayerState; } + UFUNCTION(BlueprintCallable, Category = "WidgetController|Aura") + FORCEINLINE UAuraAbilitySystemComponent* GetAuraAbilitySystemComponent() const { return AuraAbilitySystemComponent; } + UFUNCTION(BlueprintCallable, Category = "WidgetController|Aura") + FORCEINLINE UAuraAttributeSet* GetAuraAttributeSet() const { return AuraAttributeSet; } + + +protected: + + class UAbilityBook* RetrieveAbilityBook() const; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "WidgetController|Aura") + TObjectPtr AuraCharacter; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "WidgetController|Aura") + TObjectPtr AuraPlayerState; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "WidgetController|Aura") + TObjectPtr AuraAbilitySystemComponent; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "WidgetController|Aura") + TObjectPtr AuraAttributeSet; + +}; diff --git a/Source/Aura/Public/UI/WidgetController/Components/AbilitiesInputWCComponent.h b/Source/Aura/Public/UI/WidgetController/Components/AbilitiesInputWCComponent.h new file mode 100644 index 0000000..0e3c760 --- /dev/null +++ b/Source/Aura/Public/UI/WidgetController/Components/AbilitiesInputWCComponent.h @@ -0,0 +1,57 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UI/WidgetControllerComponent.h" +#include "GameplayTagContainer.h" +#include "AbilitiesInputWCComponent.generated.h" + +class UAuraAbilitySystemComponent; +class UAbilityBook; +struct FAuraAbilityInfo; + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnAbilityInputInfoChangeSignature, const FGameplayTag&, InputTag, const FAuraAbilityInfo&, Info); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnAbilityInputRemovedSignature, const FGameplayTag&, InputTag); + +/** + * + */ +UCLASS(BlueprintType) +class AURA_API UAbilitiesInputWCComponent : public UWidgetControllerComponent +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, category = "Initialize") + void Initialize(UAuraAbilitySystemComponent* ASC, UAbilityBook* AB); + + virtual void BroadcastValues() override; + + UPROPERTY(BlueprintAssignable, Category = "GAS|Abilities") + FOnAbilityInputInfoChangeSignature OnAbilityInputInfoChange; + UPROPERTY(BlueprintAssignable, Category = "GAS|Abilities") + FOnAbilityInputRemovedSignature OnAbilityInputRemoved; + + +protected: + + virtual void BindCallbacksToDependencies() override; + + UPROPERTY() + TObjectPtr AbilitySystemComponent; + + UPROPERTY() + TObjectPtr AbilityBook; + + +private: + + UFUNCTION() void OnAbilitySpecChange(UAuraAbilitySystemComponent* AuraASC, const FGameplayAbilitySpec& AbilitySpec); + UFUNCTION() void OnAbilitySpecRemoving(UAuraAbilitySystemComponent* AuraASC, const FGameplayAbilitySpec& AbilitySpec); + + UPROPERTY() + TSet AbilitiesInputTags; + +}; diff --git a/Source/Aura/Public/UI/WidgetController/Components/AbilitiesStatusWCComponent.h b/Source/Aura/Public/UI/WidgetController/Components/AbilitiesStatusWCComponent.h new file mode 100644 index 0000000..31a85bc --- /dev/null +++ b/Source/Aura/Public/UI/WidgetController/Components/AbilitiesStatusWCComponent.h @@ -0,0 +1,59 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UI/WidgetControllerComponent.h" +#include "GameplayTagContainer.h" +#include "AbilitiesStatusWCComponent.generated.h" + + +class UAuraAbilitySystemComponent; +class UAbilityBook; + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnAbilityStatusUpdatedSignature, const FGameplayTag&, AbilityID, const FGameplayTag&, Status, int32, Level); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnAbilityStatusRemovedSignature, const FGameplayTag&, AbilityID); + +/** + * + */ +UCLASS(BlueprintType) +class AURA_API UAbilitiesStatusWCComponent : public UWidgetControllerComponent +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, category = "Initialize") + void Initialize(UAuraAbilitySystemComponent* ASC, UAbilityBook* AB); + + virtual void BroadcastValues() override; + virtual void BindCallbacksToDependencies() override; + + UPROPERTY(BlueprintAssignable, Category = "GAS|Abilities") + FOnAbilityStatusUpdatedSignature OnAbilityStatusUpdated; + UPROPERTY(BlueprintAssignable, Category = "GAS|Abilities") + FOnAbilityStatusRemovedSignature OnAbilityStatusRemoved; + + UFUNCTION(BlueprintCallable, BlueprintPure = false, Category = "GAS|Abilities") + void GetAbilityBookCategories(TSet& Names) const; + + UFUNCTION(BlueprintCallable, BlueprintPure = false, Category = "GAS|Abilities") + void GetAllAbilitiesInformations(TArray& AbilitiesInfo) const; + + +protected: + + UPROPERTY() + TObjectPtr AbilitySystemComponent; + + UPROPERTY() + TObjectPtr AbilitiesBook; + + +private: + + UFUNCTION() void OnAbilitySpecChange(UAuraAbilitySystemComponent* AuraASC, const FGameplayAbilitySpec& AbilitySpec); + UFUNCTION() void OnAbilitySpecRemoving(UAuraAbilitySystemComponent* AuraASC, const FGameplayAbilitySpec& AbilitySpec); + +}; diff --git a/Source/Aura/Public/UI/WidgetController/Components/AttributeSetWCComponent.h b/Source/Aura/Public/UI/WidgetController/Components/AttributeSetWCComponent.h new file mode 100644 index 0000000..1a8a2c2 --- /dev/null +++ b/Source/Aura/Public/UI/WidgetController/Components/AttributeSetWCComponent.h @@ -0,0 +1,46 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UI/WidgetControllerComponent.h" +#include "AttributeSetWCComponent.generated.h" + + +class UAuraAbilitySystemComponent; +class UAuraAttributeSet; +class UAttributeInfo; + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnAttributeInfoChangeSignature, const FAuraAttributeInfo&, AttributeInfo); + +/** + * + */ +UCLASS(BlueprintType) +class AURA_API UAttributeSetWCComponent : public UWidgetControllerComponent +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, category = "Initialize") + void Initialize(UAuraAbilitySystemComponent* ASC, UAuraAttributeSet* AS, UAttributeInfo* AI); + + virtual void BroadcastValues() override; + virtual void BindCallbacksToDependencies() override; + + UPROPERTY(BlueprintAssignable, Category = "GAS|Attributes") + FOnAttributeInfoChangeSignature OnAttributeInfoChange; + +protected: + + UPROPERTY() + TObjectPtr AbilitySystemComponent; + + UPROPERTY() + TObjectPtr AttributeSet; + + UPROPERTY() + TObjectPtr AttributeInfo; + +}; diff --git a/Source/Aura/Public/UI/WidgetController/Components/ExperienceWCComponent.h b/Source/Aura/Public/UI/WidgetController/Components/ExperienceWCComponent.h new file mode 100644 index 0000000..c8e6187 --- /dev/null +++ b/Source/Aura/Public/UI/WidgetController/Components/ExperienceWCComponent.h @@ -0,0 +1,46 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UI/WidgetControllerComponent.h" +#include "ExperienceWCComponent.generated.h" + + +class ULevelingExperienceComponent; + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnPlayerLevelUpdateSignature, int32, Level); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnPlayerExperienceUpdateSignature, int32, Experience, float, Progress); + +/** + * + */ +UCLASS(BlueprintType) +class AURA_API UExperienceWCComponent : public UWidgetControllerComponent +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, category = "Initialize") + void Initialize(ULevelingExperienceComponent* LE); + + virtual void BroadcastValues() override; + virtual void BindCallbacksToDependencies() override; + + UPROPERTY(BlueprintAssignable, Category = "Leveling") + FOnPlayerLevelUpdateSignature OnPlayerLevelUpdate; + UPROPERTY(BlueprintAssignable, Category = "Leveling") + FOnPlayerExperienceUpdateSignature OnPlayerExperienceUpdate; + +protected: + + UPROPERTY() + TObjectPtr LevelingExperience; + +private: + + UFUNCTION() void OnLevelUpdate(int32 NewLevel); + UFUNCTION() void OnExperienceUpdate(int32 NewExperience, float NewProgress); + +}; diff --git a/Source/Aura/Public/UI/WidgetController/Components/PerkPointsWCComponent.h b/Source/Aura/Public/UI/WidgetController/Components/PerkPointsWCComponent.h new file mode 100644 index 0000000..575d9e6 --- /dev/null +++ b/Source/Aura/Public/UI/WidgetController/Components/PerkPointsWCComponent.h @@ -0,0 +1,47 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UI/WidgetControllerComponent.h" +#include "PerkPointsWCComponent.generated.h" + + +class UPerkPointsComponent; + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnPerkPointsChangeSignature, int32, NewValue); + +/** + * + */ +UCLASS(BlueprintType) +class AURA_API UPerkPointsWCComponent : public UWidgetControllerComponent +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, category = "Initialize") + void Initialize(UPerkPointsComponent* PP); + + virtual void BroadcastValues() override; + virtual void BindCallbacksToDependencies() override; + + UPROPERTY(BlueprintAssignable, Category = "Perks") + FOnPerkPointsChangeSignature OnAttributePointsChange; + UPROPERTY(BlueprintAssignable, Category = "Perks") + FOnPerkPointsChangeSignature OnAbilityPointsChange; + + +protected: + + UPROPERTY() + TObjectPtr PerkPoints; + + +private: + + UFUNCTION() void OnAttributePointsChanged(int32 NewValue); + UFUNCTION() void OnAbilityPointsChanged(int32 NewValue); + +}; diff --git a/Source/Aura/Public/UI/WidgetController/Components/ReceivingEffectWCComponent.h b/Source/Aura/Public/UI/WidgetController/Components/ReceivingEffectWCComponent.h new file mode 100644 index 0000000..bc10308 --- /dev/null +++ b/Source/Aura/Public/UI/WidgetController/Components/ReceivingEffectWCComponent.h @@ -0,0 +1,44 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UI/WidgetControllerComponent.h" +#include "GameplayTagContainer.h" +#include "ReceivingEffectWCComponent.generated.h" + + +class UAuraAbilitySystemComponent; +class UEffectInfo; +struct FAuraEffectInfo; + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnNewEffectInfoSignature, const FAuraEffectInfo&, Info); + +/** + * + */ +UCLASS(BlueprintType) +class AURA_API UReceivingEffectWCComponent : public UWidgetControllerComponent +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, category = "Initialize") + void Initialize(UAuraAbilitySystemComponent* ASC, UEffectInfo* EI); + + virtual void BroadcastValues() override; + virtual void BindCallbacksToDependencies() override; + + UPROPERTY(BlueprintAssignable, Category = "GAS|Effects") + FOnNewEffectInfoSignature OnNewEffectInfo; + +protected: + + UPROPERTY() + TObjectPtr AbilitySystemComponent; + + UPROPERTY() + TObjectPtr EffectsInformations; + +}; diff --git a/Source/Aura/Public/UI/WidgetController/Components/VitalAttributesWCComponent.h b/Source/Aura/Public/UI/WidgetController/Components/VitalAttributesWCComponent.h new file mode 100644 index 0000000..0cbbb61 --- /dev/null +++ b/Source/Aura/Public/UI/WidgetController/Components/VitalAttributesWCComponent.h @@ -0,0 +1,51 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UI/WidgetControllerComponent.h" +#include "VitalAttributesWCComponent.generated.h" + + +class UAuraAbilitySystemComponent; +class UAuraAttributeSet; + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnAttributeChangeSignature, float, NewValue); + +/** + * + */ +UCLASS(BlueprintType) +class AURA_API UVitalAttributesWCComponent : public UWidgetControllerComponent +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, category = "Initialize") + void Initialize(UAuraAbilitySystemComponent* ASC, UAuraAttributeSet* AS); + + virtual void BroadcastValues() override; + virtual void BindCallbacksToDependencies() override; + + UPROPERTY(BlueprintAssignable, Category = "GAS|Attributes") + FOnAttributeChangeSignature OnHealthChanged; + UPROPERTY(BlueprintAssignable, Category = "GAS|Attributes") + FOnAttributeChangeSignature OnMaxHealthChanged; + UPROPERTY(BlueprintAssignable, Category = "GAS|Attributes") + FOnAttributeChangeSignature OnManaChanged; + UPROPERTY(BlueprintAssignable, Category = "GAS|Attributes") + FOnAttributeChangeSignature OnMaxManaChanged; + + UFUNCTION(BlueprintCallable, Category = "GAS|Attributes") + bool IsManaRelevant() const; + +protected: + + UPROPERTY() + TObjectPtr AbilitySystemComponent; + + UPROPERTY() + TObjectPtr AttributeSet; + +}; diff --git a/Source/Aura/Public/UI/WidgetController/OverlayController.h b/Source/Aura/Public/UI/WidgetController/OverlayController.h new file mode 100644 index 0000000..6db7010 --- /dev/null +++ b/Source/Aura/Public/UI/WidgetController/OverlayController.h @@ -0,0 +1,49 @@ +// Amasson + +#pragma once + +#include "CoreMinimal.h" +#include "UI/WidgetController/AuraWidgetControllerBase.h" +#include "GameplayTagContainer.h" +#include "OverlayController.generated.h" + +/** + * + */ +UCLASS(BlueprintType, Blueprintable) +class AURA_API UOverlayController : public UAuraWidgetControllerBase +{ + GENERATED_BODY() + +protected: + + virtual void Construct() override; + + virtual void ObservedActorSet() override; + + +public: + + + +protected: + + UPROPERTY() + TObjectPtr AbilityBook; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + TObjectPtr VitalAttributesWcc; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + TObjectPtr ReceivingEffectWcc; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + TObjectPtr AbilitiesInputWcc; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + TObjectPtr ExperienceWcc; + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "GAS|Effects") + TObjectPtr EffectsInformations; + +}; diff --git a/Source/AuraEditor.Target.cs b/Source/AuraEditor.Target.cs new file mode 100644 index 0000000..c53d044 --- /dev/null +++ b/Source/AuraEditor.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 AuraEditorTarget : TargetRules +{ + public AuraEditorTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Editor; + DefaultBuildSettings = BuildSettingsVersion.V2; + + ExtraModuleNames.AddRange( new string[] { "Aura" } ); + } +}