Merge pull request #3 from Games-Academy-Student-Work-22-23/dev
Merged Inventory System with the Turned Based Combat System
This commit is contained in:
commit
2977b84cfc
81
.gitignore
vendored
81
.gitignore
vendored
@ -99,11 +99,88 @@ Build/Android/res/*/*
|
||||
### VisualStudioCode ###
|
||||
.git
|
||||
.vscode
|
||||
Content
|
||||
DerivedDataCache
|
||||
Intermediate
|
||||
Saved
|
||||
Script
|
||||
|
||||
# Discord Rich Presence
|
||||
EditorDiscordRichPresence
|
||||
EditorDiscordRichPresence
|
||||
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
||||
# User-specific stuff
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/**/usage.statistics.xml
|
||||
.idea/**/dictionaries
|
||||
.idea/**/shelf
|
||||
|
||||
# Generated files
|
||||
.idea/**/contentModel.xml
|
||||
|
||||
# Sensitive or high-churn files
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
.idea/**/dataSources.local.xml
|
||||
.idea/**/sqlDataSources.xml
|
||||
.idea/**/dynamic.xml
|
||||
.idea/**/uiDesigner.xml
|
||||
.idea/**/dbnavigator.xml
|
||||
|
||||
# Gradle
|
||||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
|
||||
# Gradle and Maven with auto-import
|
||||
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||
# since they will be recreated, and may cause churn. Uncomment if using
|
||||
# auto-import.
|
||||
# .idea/artifacts
|
||||
# .idea/compiler.xml
|
||||
# .idea/jarRepositories.xml
|
||||
# .idea/modules.xml
|
||||
# .idea/*.iml
|
||||
# .idea/modules
|
||||
# *.iml
|
||||
# *.ipr
|
||||
|
||||
# CMake
|
||||
cmake-build-*/
|
||||
|
||||
# Mongo Explorer plugin
|
||||
.idea/**/mongoSettings.xml
|
||||
|
||||
# File-based project format
|
||||
*.iws
|
||||
|
||||
# IntelliJ
|
||||
out/
|
||||
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Cursive Clojure plugin
|
||||
.idea/replstate.xml
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
|
||||
# Editor-based Rest Client
|
||||
.idea/httpRequests
|
||||
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
.idea
|
||||
*.iml
|
||||
out
|
||||
gen
|
||||
|
||||
RiderLink/
|
||||
|
@ -0,0 +1 @@
|
||||
|
@ -1,39 +1,7 @@
|
||||
|
||||
|
||||
[/Script/EngineSettings.GameMapsSettings]
|
||||
GameDefaultMap=/Game/Levels/Main.Main
|
||||
|
||||
|
||||
EditorStartupMap=/Game/Levels/Main.Main
|
||||
GlobalDefaultGameMode=/Script/the_twilight_abyss.the_twilight_abyssGameModeBase
|
||||
|
||||
[/Script/HardwareTargeting.HardwareTargetingSettings]
|
||||
TargetedHardwareClass=Desktop
|
||||
AppliedTargetedHardwareClass=Desktop
|
||||
DefaultGraphicsPerformance=Maximum
|
||||
AppliedDefaultGraphicsPerformance=Maximum
|
||||
|
||||
[/Script/WindowsTargetPlatform.WindowsTargetSettings]
|
||||
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
|
||||
|
||||
[/Script/Engine.RendererSettings]
|
||||
r.GenerateMeshDistanceFields=True
|
||||
r.DynamicGlobalIlluminationMethod=1
|
||||
r.ReflectionMethod=1
|
||||
r.Shadow.Virtual.Enable=1
|
||||
|
||||
[/Script/WorldPartitionEditor.WorldPartitionEditorSettings]
|
||||
CommandletClass=Class'/Script/UnrealEd.WorldPartitionConvertCommandlet'
|
||||
|
||||
[/Script/Engine.Engine]
|
||||
+ActiveGameNameRedirects=(OldGameName="TP_Blank",NewGameName="/Script/the_twilight_abyss")
|
||||
+ActiveGameNameRedirects=(OldGameName="/Script/TP_Blank",NewGameName="/Script/the_twilight_abyss")
|
||||
+ActiveClassRedirects=(OldClassName="TP_BlankGameModeBase",NewClassName="the_twilight_abyssGameModeBase")
|
||||
|
||||
[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings]
|
||||
bEnablePlugin=True
|
||||
bAllowNetworkConnection=True
|
||||
SecurityToken=DB2C79604D560F95FCE2F0AB4CCF2F08
|
||||
SecurityToken=C35635AB4464641248F9498D0F62F177
|
||||
bIncludeInShipping=False
|
||||
bAllowExternalStartInShipping=False
|
||||
bCompileAFSProject=False
|
||||
@ -44,3 +12,89 @@ ConnectionType=USBOnly
|
||||
bUseManualIPAddress=False
|
||||
ManualIPAddress=
|
||||
|
||||
[/Script/Engine.Engine]
|
||||
+ActiveGameNameRedirects=(OldGameName="/Script/TP_ThirdPerson",NewGameName="/Script/the_twilight_abyss")
|
||||
+ActiveGameNameRedirects=(OldGameName="TP_ThirdPerson",NewGameName="/Script/the_twilight_abyss")
|
||||
|
||||
[/Script/EngineSettings.GameMapsSettings]
|
||||
EditorStartupMap=/Game/Levels/Prototype.Prototype
|
||||
LocalMapOptions=
|
||||
TransitionMap=None
|
||||
bUseSplitscreen=True
|
||||
TwoPlayerSplitscreenLayout=Horizontal
|
||||
ThreePlayerSplitscreenLayout=FavorTop
|
||||
FourPlayerSplitscreenLayout=Grid
|
||||
bOffsetPlayerGamepadIds=False
|
||||
GameInstanceClass=/Script/Engine.GameInstance
|
||||
GameDefaultMap=/Game/Levels/Prototype.Prototype
|
||||
ServerDefaultMap=/Engine/Maps/Entry.Entry
|
||||
GlobalDefaultGameMode=/Game/Merchant/BP_MerchantGameMode.BP_MerchantGameMode_C
|
||||
GlobalDefaultServerGameMode=None
|
||||
|
||||
[/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=,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="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. ")
|
||||
+Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=,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="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. ")
|
||||
+Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,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.")
|
||||
+Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,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. ")
|
||||
+Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),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="WorldStatic"),(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.")
|
||||
+Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,bCanModify=False,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.")
|
||||
+Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors")
|
||||
+Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors")
|
||||
+Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.")
|
||||
+Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.")
|
||||
+Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,bCanModify=False,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.")
|
||||
+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=,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="Pawn",Response=ECR_Overlap),(Channel="Visibility"),(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. ")
|
||||
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,DefaultResponse=ECR_Ignore,bTraceType=True,bStaticObject=False,Name="Player")
|
||||
-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")
|
||||
|
||||
|
||||
[CoreRedirects]
|
||||
+PropertyRedirects=(OldName="/Script/the_twilight_abyss.TurnBaseCombat.isPlayerTurn",NewName="/Script/the_twilight_abyss.TurnBaseCombat.bIsPlayerTurn")
|
||||
+PropertyRedirects=(OldName="/Script/the_twilight_abyss.TurnBaseCombat.playerHealth",NewName="/Script/the_twilight_abyss.TurnBaseCombat.PlayerHealth")
|
||||
+PropertyRedirects=(OldName="/Script/the_twilight_abyss.TurnBaseCombat.enemyHealth",NewName="/Script/the_twilight_abyss.TurnBaseCombat.EnemyHealth")
|
||||
+PropertyRedirects=(OldName="/Script/the_twilight_abyss.TurnBaseCombat.defaultActionPoints",NewName="/Script/the_twilight_abyss.TurnBaseCombat.DefaultActionPoints")
|
||||
+PropertyRedirects=(OldName="/Script/the_twilight_abyss.TurnBaseCombat.TestButton",NewName="/Script/the_twilight_abyss.TurnBaseCombat.CastButton")
|
||||
+PropertyRedirects=(OldName="/Script/the_twilight_abyss.TurnBaseCombat.CurrentCombo",NewName="/Script/the_twilight_abyss.TurnBaseCombat.CurrentComboTextBlock")
|
||||
+PropertyRedirects=(OldName="/Script/the_twilight_abyss.TurnBaseCombat.TurnIndicator",NewName="/Script/the_twilight_abyss.TurnBaseCombat.TurnIndicatorTextBlock")
|
||||
|
||||
|
@ -1,9 +0,0 @@
|
||||
|
||||
[/Script/EngineSettings.GeneralProjectSettings]
|
||||
ProjectID=FCCEDCD4410CCAFCCB4EF4BD279589AB
|
||||
ProjectName=The Twilight Abyss
|
||||
|
||||
[StartupActions]
|
||||
bAddPacks=True
|
||||
InsertPack=(PackSource="StarterContent.upack",PackName="StarterContent")
|
||||
|
95
Config/DefaultInput.ini
Normal file
95
Config/DefaultInput.ini
Normal file
@ -0,0 +1,95 @@
|
||||
[/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_Left_Trackpad_Touch",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
|
||||
bAlwaysShowTouchInterface=False
|
||||
bShowConsoleOnFourFingerTap=True
|
||||
bEnableGestureRecognizer=False
|
||||
bUseAutocorrect=False
|
||||
DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown
|
||||
DefaultViewportMouseLockMode=LockOnCapture
|
||||
FOVScale=0.011110
|
||||
DoubleClickTime=0.200000
|
||||
+ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_FaceButton_Bottom)
|
||||
+ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=SpaceBar)
|
||||
+ActionMappings=(ActionName="Interact",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=E)
|
||||
+AxisMappings=(AxisName="Look Up / Down Gamepad",Scale=1.000000,Key=Gamepad_RightY)
|
||||
+AxisMappings=(AxisName="Look Up / Down Mouse",Scale=-1.000000,Key=MouseY)
|
||||
+AxisMappings=(AxisName="Move Forward / Backward",Scale=1.000000,Key=Gamepad_LeftY)
|
||||
+AxisMappings=(AxisName="Move Forward / Backward",Scale=-1.000000,Key=S)
|
||||
+AxisMappings=(AxisName="Move Forward / Backward",Scale=1.000000,Key=W)
|
||||
+AxisMappings=(AxisName="Move Right / Left",Scale=-1.000000,Key=A)
|
||||
+AxisMappings=(AxisName="Move Right / Left",Scale=1.000000,Key=D)
|
||||
+AxisMappings=(AxisName="Move Right / Left",Scale=1.000000,Key=Gamepad_LeftX)
|
||||
+AxisMappings=(AxisName="Turn Right / Left Gamepad",Scale=1.000000,Key=Gamepad_RightX)
|
||||
+AxisMappings=(AxisName="Turn Right / Left Mouse",Scale=1.000000,Key=MouseX)
|
||||
DefaultPlayerInputClass=/Script/Engine.PlayerInput
|
||||
DefaultInputComponentClass=/Script/Engine.InputComponent
|
||||
DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks
|
||||
-ConsoleKeys=Tilde
|
||||
+ConsoleKeys=Tilde
|
||||
|
BIN
Content/Blueprints/BP_CrossHair.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/BP_CrossHair.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/BP_HealingJellyItem.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/BP_HealingJellyItem.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/BP_Interaction.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/BP_Interaction.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/BP_MyTempCharacter.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/BP_MyTempCharacter.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/Combat_UI/CombatCharacter.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/Combat_UI/CombatCharacter.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/Combat_UI/Combat_Test.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/Combat_UI/Combat_Test.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/Combat_UI/Combat_UI.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/Combat_UI/Combat_UI.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/Combat_UI/Gun/Gun.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/Combat_UI/Gun/Gun.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/Combat_UI/Gun/GunProto.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/Combat_UI/Gun/GunProto.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/Combat_UI/Gun/image__1_.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/Combat_UI/Gun/image__1_.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/Combat_UI/TestEnemy.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/Combat_UI/TestEnemy.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/Items/BP_BuffJelly.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/Items/BP_BuffJelly.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/Items/BP_HealingJelly.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/Items/BP_HealingJelly.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/WBP_ItemDisplay.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/WBP_ItemDisplay.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/WBP_PlayerInventory.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/WBP_PlayerInventory.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Blueprints/WBP_Shop.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Blueprints/WBP_Shop.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/BungeeMan/CR_BungeeMan.uasset
(Stored with Git LFS)
Normal file
BIN
Content/BungeeMan/CR_BungeeMan.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/BungeeMan/LS_BungeeManCycle.uasset
(Stored with Git LFS)
Normal file
BIN
Content/BungeeMan/LS_BungeeManCycle.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/BungeeMan/LS_BungeeMan_Poses.uasset
(Stored with Git LFS)
Normal file
BIN
Content/BungeeMan/LS_BungeeMan_Poses.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/BungeeMan/Main.umap
(Stored with Git LFS)
Normal file
BIN
Content/BungeeMan/Main.umap
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/BungeeMan/Mat_BungeeMan_Body.uasset
(Stored with Git LFS)
Normal file
BIN
Content/BungeeMan/Mat_BungeeMan_Body.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/BungeeMan/Mat_BungeeMan_Rubber.uasset
(Stored with Git LFS)
Normal file
BIN
Content/BungeeMan/Mat_BungeeMan_Rubber.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/BungeeMan/SKM_BungeeMan.uasset
(Stored with Git LFS)
Normal file
BIN
Content/BungeeMan/SKM_BungeeMan.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/BungeeMan/SK_BungeeMan.uasset
(Stored with Git LFS)
Normal file
BIN
Content/BungeeMan/SK_BungeeMan.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Material.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Material.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cube.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cube.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cube_001.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cube_001.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cube_002.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cube_002.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cube_003.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cube_003.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cube_004.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cube_004.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cube_005.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cube_005.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cube_006.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cube_006.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cube_007.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cube_007.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cube_008.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cube_008.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cube_009.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cube_009.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_001.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_001.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_002.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_002.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_004.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_004.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_005.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_005.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_006.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_006.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_007.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_007.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_008.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_008.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_009.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_009.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_010.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_010.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_011.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_011.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_012.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_012.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_013.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_013.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_014.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_014.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_015.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_015.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_016.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_016.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Cylinder_017.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Cylinder_017.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Plane.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Plane.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Plane_001.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Plane_001.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Plane_002.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Plane_002.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Plane_003.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Plane_003.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Plane_004.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Plane_004.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Environment/Prototype_level_Plane_005.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Environment/Prototype_level_Plane_005.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Images/butterfly-pea-jelly-on-a-plate-9e24c00721c6d67f7486dab91235681c-1920-q70.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Images/butterfly-pea-jelly-on-a-plate-9e24c00721c6d67f7486dab91235681c-1920-q70.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Images/testimage.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Images/testimage.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Levels/CombatTest.umap
(Stored with Git LFS)
Normal file
BIN
Content/Levels/CombatTest.umap
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Levels/Main.umap
(Stored with Git LFS)
BIN
Content/Levels/Main.umap
(Stored with Git LFS)
Binary file not shown.
BIN
Content/Levels/MerchantPrototype.umap
(Stored with Git LFS)
Normal file
BIN
Content/Levels/MerchantPrototype.umap
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Levels/Prototype.umap
(Stored with Git LFS)
Normal file
BIN
Content/Levels/Prototype.umap
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Merchant/BP_MerchantGameMode.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Merchant/BP_MerchantGameMode.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Merchant/BP_OPENDIAL.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Merchant/BP_OPENDIAL.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/Merchant_Blueprint.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Merchant_Blueprint.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
60
Source/the_twilight_abyss/BaseItems/InventoryComponent.cpp
Normal file
60
Source/the_twilight_abyss/BaseItems/InventoryComponent.cpp
Normal file
@ -0,0 +1,60 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "InventoryComponent.h"
|
||||
#include "Items/BaseItem.h"
|
||||
#include "the_twilight_abyss/PlayerTemp/TempCharacter.h"
|
||||
|
||||
|
||||
// Sets default values for this component's properties
|
||||
UInventoryComponent::UInventoryComponent()
|
||||
{
|
||||
// Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features
|
||||
// off to improve performance if you don't need them.
|
||||
PrimaryComponentTick.bCanEverTick = true;
|
||||
|
||||
MaxItemSlots = 10;
|
||||
}
|
||||
|
||||
|
||||
// Called when the game starts
|
||||
void UInventoryComponent::BeginPlay()
|
||||
{
|
||||
Super::BeginPlay();
|
||||
|
||||
for(auto & BaseItem : DefaultItems)
|
||||
{
|
||||
AddItem(BaseItem);
|
||||
}
|
||||
}
|
||||
|
||||
bool UInventoryComponent::AddItem(class UBaseItem* BaseItem)
|
||||
{
|
||||
//if the items is over the maxinventoryslots then it wont add the item
|
||||
if (Items.Num() >= MaxItemSlots || !BaseItem)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
BaseItem->StoredItems = this;
|
||||
BaseItem->World = GetWorld();
|
||||
Items.Add(BaseItem);
|
||||
|
||||
//Update UI
|
||||
OnInventoryUpdated.Broadcast();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool UInventoryComponent::Remove(UBaseItem* BaseItem)
|
||||
{
|
||||
if(BaseItem)
|
||||
{
|
||||
BaseItem->StoredItems = nullptr;
|
||||
BaseItem->World = nullptr;
|
||||
Items.RemoveSingle(BaseItem);
|
||||
OnInventoryUpdated.Broadcast(); // Updates UI
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
41
Source/the_twilight_abyss/BaseItems/InventoryComponent.h
Normal file
41
Source/the_twilight_abyss/BaseItems/InventoryComponent.h
Normal file
@ -0,0 +1,41 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Components/ActorComponent.h"
|
||||
#include "InventoryComponent.generated.h"
|
||||
|
||||
//OUR DELEGATE IS CALLED FONINVENTORYUPDATED
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnInventoryUpdated);
|
||||
|
||||
UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
|
||||
class THE_TWILIGHT_ABYSS_API UInventoryComponent : public UActorComponent
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// Sets default values for this component's properties
|
||||
UInventoryComponent();
|
||||
|
||||
protected:
|
||||
// Called when the game starts
|
||||
virtual void BeginPlay() override;
|
||||
|
||||
public:
|
||||
bool AddItem(class UBaseItem* BaseItem); //adds the item to the player
|
||||
|
||||
bool Remove(class UBaseItem* BaseItem); //removes the item from the player
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, Instanced)
|
||||
TArray<class UBaseItem*> DefaultItems; //Items you start the game with IF YOU WANT YOU CAN JUST NOT USE THIS
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, Category= "Inventory")
|
||||
int32 MaxItemSlots;
|
||||
|
||||
UPROPERTY(BlueprintAssignable, Category= "Inventory")
|
||||
FOnInventoryUpdated OnInventoryUpdated; //This is our delegate
|
||||
|
||||
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Items")
|
||||
TArray<class UBaseItem*> Items; // The items currently in the inventory
|
||||
};
|
16
Source/the_twilight_abyss/BaseItems/Items/BaseItem.cpp
Normal file
16
Source/the_twilight_abyss/BaseItems/Items/BaseItem.cpp
Normal file
@ -0,0 +1,16 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "BaseItem.h"
|
||||
|
||||
//constructor
|
||||
UBaseItem::UBaseItem()
|
||||
{
|
||||
ItemDisplayName = FText::FromString("ItemName");
|
||||
ItemUseAction = FText::FromString("UseAction");
|
||||
}
|
||||
|
||||
void UBaseItem::Use(ATempCharacter* Character)
|
||||
{
|
||||
|
||||
}
|
66
Source/the_twilight_abyss/BaseItems/Items/BaseItem.h
Normal file
66
Source/the_twilight_abyss/BaseItems/Items/BaseItem.h
Normal file
@ -0,0 +1,66 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "UObject/Object.h"
|
||||
#include "BaseItem.generated.h"
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS(Abstract, BlueprintType, Blueprintable, EditInlineNew, DefaultToInstanced)
|
||||
class THE_TWILIGHT_ABYSS_API UBaseItem : public UObject
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UBaseItem();
|
||||
|
||||
virtual class UWorld* GetWorld() const { return World; };
|
||||
|
||||
UPROPERTY(Transient)
|
||||
class UWorld* World;
|
||||
|
||||
//The text that will be displayed for using the item (Equip, Eat)
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Item")
|
||||
FText ItemUseAction;
|
||||
|
||||
//The actual mesh of the item
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Item")
|
||||
class UStaticMesh* ItemMesh;
|
||||
|
||||
//The picture of the item icon
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Item")
|
||||
class UTexture2D* ItemIcon;
|
||||
|
||||
//The name of the item
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Item")
|
||||
FText ItemDisplayName;
|
||||
|
||||
//The description of the item
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Item")
|
||||
FText ItemDescription;
|
||||
|
||||
//The cost of the item
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Item")
|
||||
int ItemCostPrice;
|
||||
|
||||
//reference to the UInventoryComponent script
|
||||
UPROPERTY()
|
||||
class UInventoryComponent* StoredItems;
|
||||
|
||||
//The buy class to purchase the item
|
||||
virtual void Buy(class ATempCharacter* PurchaseItem) PURE_VIRTUAL(UBaseItem); // WILL SET THIS UP LATER
|
||||
|
||||
//The use Item class to use the item in the player Inventory
|
||||
virtual void Use(class ATempCharacter* Character);
|
||||
|
||||
//This is the same as the use item class but its in BP instead
|
||||
UFUNCTION(BlueprintImplementableEvent)
|
||||
void OnUse(class ATempCharacter* Character);
|
||||
|
||||
UFUNCTION(BlueprintImplementableEvent)
|
||||
void OnBuy(class ATempCharacter* PurchaseItem);
|
||||
};
|
41
Source/the_twilight_abyss/BaseItems/Items/EatableItems.cpp
Normal file
41
Source/the_twilight_abyss/BaseItems/Items/EatableItems.cpp
Normal file
@ -0,0 +1,41 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "EatableItems.h"
|
||||
|
||||
#include "the_twilight_abyss/BaseItems/InventoryComponent.h"
|
||||
#include "the_twilight_abyss/PlayerTemp/TempCharacter.h"
|
||||
|
||||
|
||||
UEatableItems::UEatableItems()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void UEatableItems::Use(ATempCharacter* Character)
|
||||
{
|
||||
if(Character)
|
||||
{
|
||||
Character->Health += 10;
|
||||
|
||||
if(StoredItems)
|
||||
{
|
||||
StoredItems->Remove(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void UEatableItems::Buy(ATempCharacter* PurchaseItem)
|
||||
{
|
||||
if(PurchaseItem)
|
||||
{
|
||||
if(PurchaseItem->GoldBalance <= 0)
|
||||
{
|
||||
UE_LOG(LogTemp, Display, TEXT("Not Enough Gold"));
|
||||
}
|
||||
else
|
||||
{
|
||||
PurchaseItem->GoldBalance -= ItemCostPrice;
|
||||
}
|
||||
}
|
||||
}
|
23
Source/the_twilight_abyss/BaseItems/Items/EatableItems.h
Normal file
23
Source/the_twilight_abyss/BaseItems/Items/EatableItems.h
Normal file
@ -0,0 +1,23 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "BaseItem.h"
|
||||
#include "EatableItems.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class THE_TWILIGHT_ABYSS_API UEatableItems : public UBaseItem
|
||||
{
|
||||
GENERATED_BODY()
|
||||
UEatableItems();
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
virtual void Use(class ATempCharacter* Character) override;
|
||||
virtual void Buy(ATempCharacter* PurchaseItem) override;
|
||||
};
|
19
Source/the_twilight_abyss/BaseItems/Items/ShopItems.cpp
Normal file
19
Source/the_twilight_abyss/BaseItems/Items/ShopItems.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "ShopItems.h"
|
||||
|
||||
#include "the_twilight_abyss/PlayerTemp/TempCharacter.h"
|
||||
|
||||
UShopItems::UShopItems()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// void UShopItems::Buy(ATempCharacter* PurchaseItem)
|
||||
// {
|
||||
// if(PurchaseItem)
|
||||
// {
|
||||
// PurchaseItem->GoldBalance -= ItemCostPrice;
|
||||
// }
|
||||
// }
|
20
Source/the_twilight_abyss/BaseItems/Items/ShopItems.h
Normal file
20
Source/the_twilight_abyss/BaseItems/Items/ShopItems.h
Normal file
@ -0,0 +1,20 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "BaseItem.h"
|
||||
#include "ShopItems.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class THE_TWILIGHT_ABYSS_API UShopItems : public UBaseItem
|
||||
{
|
||||
GENERATED_BODY()
|
||||
UShopItems();
|
||||
|
||||
// protected:
|
||||
// virtual void Buy(ATempCharacter* PurchaseItem) override;
|
||||
};
|
@ -0,0 +1,36 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "Interaction.h"
|
||||
|
||||
#include "Components/WidgetComponent.h"
|
||||
|
||||
|
||||
|
||||
// Sets default values
|
||||
AInteraction::AInteraction()
|
||||
{
|
||||
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
|
||||
PrimaryActorTick.bCanEverTick = true;
|
||||
}
|
||||
|
||||
// Called when the game starts or when spawned
|
||||
void AInteraction::BeginPlay()
|
||||
{
|
||||
Super::BeginPlay();
|
||||
|
||||
}
|
||||
|
||||
// Called every frame
|
||||
void AInteraction::Tick(float DeltaTime)
|
||||
{
|
||||
Super::Tick(DeltaTime);
|
||||
|
||||
}
|
||||
|
||||
void AInteraction::OnInteract()
|
||||
{
|
||||
UUserWidget* spawnedWidget = CreateWidget<UUserWidget>(GetWorld(), Widget);
|
||||
spawnedWidget->AddToViewport(0);
|
||||
}
|
||||
|
31
Source/the_twilight_abyss/MerchantInteraction/Interaction.h
Normal file
31
Source/the_twilight_abyss/MerchantInteraction/Interaction.h
Normal file
@ -0,0 +1,31 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "GameFramework/Actor.h"
|
||||
#include "Interaction.generated.h"
|
||||
|
||||
UCLASS()
|
||||
class THE_TWILIGHT_ABYSS_API AInteraction : public AActor
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// Sets default values for this actor's properties
|
||||
AInteraction();
|
||||
|
||||
protected:
|
||||
// Called when the game starts or when spawned
|
||||
virtual void BeginPlay() override;
|
||||
|
||||
public:
|
||||
// Called every frame
|
||||
virtual void Tick(float DeltaTime) override;
|
||||
|
||||
UPROPERTY(EditAnywhere)
|
||||
TSubclassOf<UUserWidget> Widget;
|
||||
|
||||
virtual void OnInteract();
|
||||
};
|
||||
|
120
Source/the_twilight_abyss/PlayerTemp/TempCharacter.cpp
Normal file
120
Source/the_twilight_abyss/PlayerTemp/TempCharacter.cpp
Normal file
@ -0,0 +1,120 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#include "TempCharacter.h"
|
||||
#include "Blueprint/UserWidget.h"
|
||||
#include "the_twilight_abyss/BaseItems/InventoryComponent.h"
|
||||
#include "the_twilight_abyss/BaseItems/Items/BaseItem.h"
|
||||
#include "the_twilight_abyss/MerchantInteraction/Interaction.h"
|
||||
|
||||
|
||||
// CONSTRUCTOR
|
||||
ATempCharacter::ATempCharacter()
|
||||
{
|
||||
// Set this character to call Tick() every frame. You can turn this off to improve performance if you don't need it.
|
||||
PrimaryActorTick.bCanEverTick = true;
|
||||
Inventory = CreateDefaultSubobject<UInventoryComponent>("Inventory");
|
||||
Inventory->MaxItemSlots = 10;
|
||||
}
|
||||
|
||||
// Called when the game starts or when spawned
|
||||
void ATempCharacter::BeginPlay()
|
||||
{
|
||||
Super::BeginPlay();
|
||||
Health = 100;
|
||||
}
|
||||
|
||||
//Binds the input we made in the setup player component to the forward vector
|
||||
void ATempCharacter::ForwardInput(float Axis)
|
||||
{
|
||||
AddMovementInput(GetActorForwardVector() * Axis);
|
||||
}
|
||||
//Binds the input we made in the setup player component to the right vector
|
||||
void ATempCharacter::RightMoveInput(float Axis)
|
||||
{
|
||||
AddMovementInput(GetActorRightVector() * Axis);
|
||||
}
|
||||
|
||||
|
||||
// Called every frame
|
||||
void ATempCharacter::Tick(float DeltaTime)
|
||||
{
|
||||
Super::Tick(DeltaTime);
|
||||
}
|
||||
|
||||
// Gives the character the functionality
|
||||
void ATempCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
|
||||
{
|
||||
Super::SetupPlayerInputComponent(PlayerInputComponent);
|
||||
PlayerInputComponent->BindAxis(TEXT("Move Forward / Backward"), this, &ATempCharacter::ForwardInput);
|
||||
PlayerInputComponent->BindAxis(TEXT("Move Right / Left"), this, &ATempCharacter::RightMoveInput);
|
||||
PlayerInputComponent->BindAxis(TEXT("Turn Right / Left Mouse"), this, &ATempCharacter::AddControllerYawInput);
|
||||
PlayerInputComponent->BindAxis(TEXT("Look Up / Down Mouse"), this, &ATempCharacter::AddControllerPitchInput);
|
||||
PlayerInputComponent->BindAction("Interact", IE_Pressed, this, &ATempCharacter::KeyPressed);
|
||||
}
|
||||
|
||||
// When the player presses the E key
|
||||
void ATempCharacter::KeyPressed()
|
||||
{
|
||||
LineTraceLogic();
|
||||
}
|
||||
|
||||
// Line trace logic
|
||||
void ATempCharacter::LineTraceLogic()
|
||||
{
|
||||
float GlobalTrace = TraceDistance;
|
||||
FHitResult OutHit;
|
||||
FVector Start = GetActorLocation();
|
||||
FVector End = Start + GlobalTrace * GetActorForwardVector();
|
||||
|
||||
FCollisionQueryParams TraceParams;
|
||||
|
||||
TraceParams.AddIgnoredActor(this);
|
||||
|
||||
bool bHit = GetWorld()->LineTraceSingleByChannel(OutHit, Start, End, ECC_Visibility, TraceParams);
|
||||
if (bHit)
|
||||
{
|
||||
if(OutHit.GetActor() == nullptr)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if(OutHit.GetActor()->ActorHasTag("HealingJelly"))
|
||||
{
|
||||
if(GoldBalance >= 100)
|
||||
{
|
||||
GoldBalance -= 100;
|
||||
UE_LOG(LogTemp, Display, TEXT("Item Purchased"));
|
||||
// UInventoryComponent* tempInventory = GetOwner()->FindComponentByClass<UInventoryComponent>();
|
||||
// tempInventory->AddItem(ItemToBuy);
|
||||
}
|
||||
if(GoldBalance <= 0)
|
||||
{
|
||||
UE_LOG(LogTemp, Display, TEXT("Not Enough Gold"));
|
||||
}
|
||||
}
|
||||
if (AInteraction* MyInteractable = Cast<AInteraction>(OutHit.GetActor()))
|
||||
{
|
||||
DrawDebugLine(GetWorld(), Start, End, FColor::Green, false, 1.0f);
|
||||
MyInteractable->OnInteract();
|
||||
UE_LOG(LogTemp, Display, TEXT("HIT: %s"), *OutHit.GetActor()->GetName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ATempCharacter::UseItem(class UBaseItem* Item)
|
||||
{
|
||||
if(Item)
|
||||
{
|
||||
Item->Use(this);
|
||||
Item->OnUse(this); //Blueprint Version
|
||||
}
|
||||
}
|
||||
|
||||
void ATempCharacter::BuyItem(UBaseItem* BuyItem)
|
||||
{
|
||||
if(BuyItem)
|
||||
{
|
||||
BuyItem->Buy(this);
|
||||
BuyItem->OnBuy(this);
|
||||
}
|
||||
}
|
||||
|
59
Source/the_twilight_abyss/PlayerTemp/TempCharacter.h
Normal file
59
Source/the_twilight_abyss/PlayerTemp/TempCharacter.h
Normal file
@ -0,0 +1,59 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "GameFramework/Character.h"
|
||||
#include "the_twilight_abyss/BaseItems/Items/BaseItem.h"
|
||||
#include "TempCharacter.generated.h"
|
||||
|
||||
UCLASS()
|
||||
class THE_TWILIGHT_ABYSS_API ATempCharacter : public ACharacter
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
//Player inventory
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Inventory, meta = (AllowPrivateAccess = "true"))
|
||||
class UInventoryComponent* Inventory; //Using the InventoryComponent class
|
||||
|
||||
public:
|
||||
// Sets default values for this character's properties
|
||||
ATempCharacter();
|
||||
|
||||
protected:
|
||||
// Called when the game starts or when spawned
|
||||
virtual void BeginPlay() override;
|
||||
|
||||
void ForwardInput(float Axis);
|
||||
void RightMoveInput(float Axis);
|
||||
|
||||
public:
|
||||
// Called every frame
|
||||
virtual void Tick(float DeltaTime) override;
|
||||
|
||||
// Called to bind functionality to input
|
||||
virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
|
||||
|
||||
void KeyPressed();
|
||||
|
||||
UPROPERTY(EditAnyWhere)
|
||||
float TraceDistance = 200;
|
||||
|
||||
void LineTraceLogic();
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Health")
|
||||
float Health;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Gold")
|
||||
int GoldBalance;
|
||||
|
||||
//Using the item in the inventory
|
||||
UFUNCTION(BlueprintCallable, Category= "Items")
|
||||
void UseItem(class UBaseItem* Item); // Overriding the BaseItem Class
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category= "Items")
|
||||
void BuyItem(class UBaseItem* BuyItem);
|
||||
|
||||
// UPROPERTY(EditAnywhere, Category= "Items")
|
||||
// UBaseItem ItemToBuy;
|
||||
};
|
@ -0,0 +1,35 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "PlayerCharacterCombatTest.h"
|
||||
|
||||
// Sets default values
|
||||
APlayerCharacterCombatTest::APlayerCharacterCombatTest()
|
||||
{
|
||||
// Set this character to call Tick() every frame. You can turn this off to improve performance if you don't need it.
|
||||
PrimaryActorTick.bCanEverTick = true;
|
||||
|
||||
Tags.Add(FName("Character"));
|
||||
}
|
||||
|
||||
// Called when the game starts or when spawned
|
||||
void APlayerCharacterCombatTest::BeginPlay()
|
||||
{
|
||||
Super::BeginPlay();
|
||||
|
||||
}
|
||||
|
||||
// Called every frame
|
||||
void APlayerCharacterCombatTest::Tick(float DeltaTime)
|
||||
{
|
||||
Super::Tick(DeltaTime);
|
||||
|
||||
}
|
||||
|
||||
// Called to bind functionality to input
|
||||
void APlayerCharacterCombatTest::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
|
||||
{
|
||||
Super::SetupPlayerInputComponent(PlayerInputComponent);
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,29 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "GameFramework/Character.h"
|
||||
#include "PlayerCharacterCombatTest.generated.h"
|
||||
|
||||
UCLASS()
|
||||
class THE_TWILIGHT_ABYSS_API APlayerCharacterCombatTest : public ACharacter
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// Sets default values for this character's properties
|
||||
APlayerCharacterCombatTest();
|
||||
|
||||
protected:
|
||||
// Called when the game starts or when spawned
|
||||
virtual void BeginPlay() override;
|
||||
|
||||
public:
|
||||
// Called every frame
|
||||
virtual void Tick(float DeltaTime) override;
|
||||
|
||||
// Called to bind functionality to input
|
||||
virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
|
||||
|
||||
};
|
297
Source/the_twilight_abyss/TurnBasedCombat/TurnBaseCombat.cpp
Normal file
297
Source/the_twilight_abyss/TurnBasedCombat/TurnBaseCombat.cpp
Normal file
@ -0,0 +1,297 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "TurnBaseCombat.h"
|
||||
#include "CoreMinimal.h"
|
||||
#include "Blueprint/UserWidget.h"
|
||||
#include "Components/TextBlock.h"
|
||||
#include "Components/ProgressBar.h"
|
||||
#include "Kismet/GameplayStatics.h"
|
||||
|
||||
ATurnBaseCombat::ATurnBaseCombat()
|
||||
{
|
||||
if (HUDWidget == nullptr)
|
||||
{
|
||||
// Load the HUD widget from the specified path
|
||||
static ConstructorHelpers::FClassFinder<UUserWidget> HUDWidgetClass(TEXT("/Game/Blueprints/Combat_UI/Combat_UI"));
|
||||
HUDWidget = HUDWidgetClass.Class;
|
||||
}
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::StartCombat(AActor* Enemy)
|
||||
{
|
||||
if (HUD->IsInViewport()) return;
|
||||
HUD->AddToViewport();
|
||||
EnemyActor = Enemy;
|
||||
|
||||
if (APlayerController* PC = Cast<APlayerController>(GetWorld()->GetFirstPlayerController()))
|
||||
{
|
||||
PC->bShowMouseCursor = true;
|
||||
PC->bEnableClickEvents = true;
|
||||
PC->bEnableMouseOverEvents = true;
|
||||
}
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::EndCombat()
|
||||
{
|
||||
//Remove the HUD from the viewport
|
||||
HUD->RemoveFromViewport();
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::BeginPlay()
|
||||
{
|
||||
Super::BeginPlay();
|
||||
|
||||
TArray<AActor*> AllCharacterActorsInScene;
|
||||
UGameplayStatics::GetAllActorsOfClassWithTag(GetWorld(), AActor::StaticClass(), FName("Character"), AllCharacterActorsInScene);
|
||||
|
||||
HUD = CreateWidget<UUserWidget>(GetWorld(), HUDWidget);
|
||||
|
||||
TurnIndicatorTextBlock = Cast<UTextBlock>(HUD->GetWidgetFromName("TurnIndicator"));
|
||||
CurrentComboTextBlock = Cast<UTextBlock>(HUD->GetWidgetFromName("CurrentCombo"));
|
||||
ActionPointsTextBlock = Cast<UTextBlock>(HUD->GetWidgetFromName("ActionPoints"));
|
||||
BattleLogTextBlock = Cast<UTextBlock>(HUD->GetWidgetFromName("BattleLog"));
|
||||
PlayerHealthBar = Cast<UProgressBar>(HUD->GetWidgetFromName("PlayerHealthBar"));
|
||||
EnemyHealthBar = Cast<UProgressBar>(HUD->GetWidgetFromName("EnemyHealthBar"));
|
||||
IronResourceBar = Cast<UProgressBar>(HUD->GetWidgetFromName("IronResourceBar"));
|
||||
SulfurResourceBar = Cast<UProgressBar>(HUD->GetWidgetFromName("SulfurResourceBar"));
|
||||
CastButton = Cast<UButton>(HUD->GetWidgetFromName("CastButton"));
|
||||
FButton = Cast<UButton>(HUD->GetWidgetFromName("FButton"));
|
||||
WButton = Cast<UButton>(HUD->GetWidgetFromName("WButton"));
|
||||
BackspaceButton = Cast<UButton>(HUD->GetWidgetFromName("BackspaceButton"));
|
||||
CastButton->OnClicked.AddDynamic(this, &ATurnBaseCombat::CastButtonOnClick);
|
||||
FButton->OnClicked.AddDynamic(this, &ATurnBaseCombat::FButtonOnClick);
|
||||
WButton->OnClicked.AddDynamic(this, &ATurnBaseCombat::WButtonOnClick);
|
||||
BackspaceButton->OnClicked.AddDynamic(this, &ATurnBaseCombat::BackspaceButtonOnClick);
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::ExecuteCast(FString Combo)
|
||||
{
|
||||
if (!IsValidCombo(Combo))
|
||||
{
|
||||
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Invalid Combo"));
|
||||
//For each character in the current combo add back the resource
|
||||
for (int i = 0; i < Combo.Len(); i++)
|
||||
{
|
||||
if (Combo[i] == 'F')
|
||||
{
|
||||
IronResource += 1;
|
||||
}
|
||||
else if (Combo[i] == 'W')
|
||||
{
|
||||
SulfurResource += 1;
|
||||
}
|
||||
}
|
||||
CurrentComboString = "";
|
||||
UpdateComboString(CurrentComboString);
|
||||
RevertActionPoints();
|
||||
UpdateActionPoints();
|
||||
UpdateResourceBars();
|
||||
return;
|
||||
}
|
||||
|
||||
CurrentComboString = "";
|
||||
UpdateComboString(CurrentComboString);
|
||||
RevertActionPoints();
|
||||
UpdateActionPoints();
|
||||
|
||||
switch (bIsPlayerTurn)
|
||||
{
|
||||
case true:
|
||||
// Player Turn
|
||||
DamageEnemy(*ValidCombos.Find(Combo));
|
||||
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Green, FString::Printf(TEXT("Enemy Damaged %d"), *ValidCombos.Find(Combo)));
|
||||
break;
|
||||
case false:
|
||||
// Enemy Turn
|
||||
DamagePlayer(*ValidCombos.Find(Combo));
|
||||
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Green, FString::Printf(TEXT("Player Damaged %d"), *ValidCombos.Find(Combo)));
|
||||
break;
|
||||
}
|
||||
//End Combat if either the player or enemy is dead
|
||||
if (EnemyHealth <= 0)
|
||||
{
|
||||
EndCombat();
|
||||
EnemyActor->Destroy();
|
||||
return;
|
||||
}
|
||||
if (PlayerHealth <= 0)
|
||||
{
|
||||
EndCombat();
|
||||
return;
|
||||
}
|
||||
|
||||
SwitchTurn();
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::UseActionPoint()
|
||||
{
|
||||
ActiveActionPoints += 1;
|
||||
UpdateActionPoints();
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::ReuseActionPoint()
|
||||
{
|
||||
ActiveActionPoints -= 1;
|
||||
UpdateActionPoints();
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::RevertActionPoints()
|
||||
{
|
||||
ActiveActionPoints = 0;
|
||||
UpdateActionPoints();
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::DamagePlayer(int Damage)
|
||||
{
|
||||
PlayerHealth -= FMath::Clamp(Damage, 0, 100);
|
||||
UpdateProgressBars();
|
||||
AddBattleLogMessage("Player was damaged for " + FString::FromInt(Damage) + " damage.");
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::DamageEnemy(int Damage)
|
||||
{
|
||||
EnemyHealth -= FMath::Clamp(Damage, 0, 100);
|
||||
UpdateProgressBars();
|
||||
AddBattleLogMessage("Enemy was damaged for " + FString::FromInt(Damage) + " damage.");
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::UpdateProgressBars() const
|
||||
{
|
||||
PlayerHealthBar->SetPercent(PlayerHealth / 100.0f);
|
||||
EnemyHealthBar->SetPercent(EnemyHealth / 100.0f);
|
||||
}
|
||||
|
||||
bool ATurnBaseCombat::IsValidCombo(FString Combo) const
|
||||
{
|
||||
return ValidCombos.Contains(Combo);
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::SwitchTurn()
|
||||
{
|
||||
//TurnIndicatorTextBlock->SetText(FText::FromString(bIsPlayerTurn ? "Enemy Turn" : "Player Turn"));
|
||||
//bIsPlayerTurn = !bIsPlayerTurn;
|
||||
TurnIndicatorTextBlock->SetText(FText::FromString("Enemy Turn"));
|
||||
ToggleButtons();
|
||||
//wait for 2 seconds
|
||||
FTimerHandle UnusedHandle;
|
||||
GetWorldTimerManager().SetTimer(UnusedHandle, this, &ATurnBaseCombat::EnemyTurn, 2.0f, false);
|
||||
|
||||
//activeActor = bIsPlayerTurn ? enemyActor : playerActor;
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::CastButtonOnClick()
|
||||
{
|
||||
ExecuteCast(CurrentComboString);
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::FButtonOnClick()
|
||||
{
|
||||
if (ActiveActionPoints >= DefaultActionPoints)
|
||||
{
|
||||
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("No More Action Points"));
|
||||
return;
|
||||
}
|
||||
if (IronResource <= 0)
|
||||
{
|
||||
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("No More Iron"));
|
||||
return;
|
||||
}
|
||||
UseActionPoint();
|
||||
CurrentComboString.AppendChar('F');
|
||||
UpdateComboString(CurrentComboString);
|
||||
IronResource -= 1;
|
||||
UpdateResourceBars();
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::WButtonOnClick()
|
||||
{
|
||||
if (ActiveActionPoints >= DefaultActionPoints)
|
||||
{
|
||||
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("No More Action Points"));
|
||||
return;
|
||||
}
|
||||
if (SulfurResource <= 0)
|
||||
{
|
||||
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("No More Sulfur"));
|
||||
return;
|
||||
}
|
||||
UseActionPoint();
|
||||
CurrentComboString.AppendChar('W');
|
||||
UpdateComboString(CurrentComboString);
|
||||
SulfurResource -= 1;
|
||||
UpdateResourceBars();
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::BackspaceButtonOnClick()
|
||||
{
|
||||
if (CurrentComboString.Len() <= 0)
|
||||
{
|
||||
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Blank Combo"));
|
||||
return;
|
||||
}
|
||||
ReuseActionPoint();
|
||||
if (CurrentComboString.Right(1) == "F")
|
||||
{
|
||||
IronResource += 1;
|
||||
}
|
||||
else if (CurrentComboString.Right(1) == "W")
|
||||
{
|
||||
SulfurResource += 1;
|
||||
}
|
||||
CurrentComboString.RemoveAt(CurrentComboString.Len() - 1);
|
||||
UpdateComboString(CurrentComboString);
|
||||
UpdateResourceBars();
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::UpdateComboString(FString NewCombo) const
|
||||
{
|
||||
CurrentComboTextBlock->SetText(FText::FromString(NewCombo));
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::UpdateActionPoints() const
|
||||
{
|
||||
ActionPointsTextBlock->SetText(FText::FromString(FString::FromInt(ActiveActionPoints)));
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::AddBattleLogMessage(FString Message)
|
||||
{
|
||||
BattleLog.Append(Message + "\n");
|
||||
UpdateBattleLog();
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::ClearBattleLog()
|
||||
{
|
||||
BattleLog = "";
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::UpdateBattleLog()
|
||||
{
|
||||
TArray<FString> TempArray;
|
||||
if (const int32 LineCount = BattleLog.ParseIntoArray(TempArray, TEXT("\n"), true); LineCount > 10)
|
||||
{
|
||||
ClearBattleLog();
|
||||
}
|
||||
BattleLogTextBlock->SetText(FText::FromString(BattleLog));
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::UpdateResourceBars() const
|
||||
{
|
||||
IronResourceBar->SetPercent(IronResource / 10.0f);
|
||||
SulfurResourceBar->SetPercent(SulfurResource / 10.0f);
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::ToggleButtons() const
|
||||
{
|
||||
FButton->SetIsEnabled(!FButton->bIsEnabled);
|
||||
WButton->SetIsEnabled(!WButton->bIsEnabled);
|
||||
BackspaceButton->SetIsEnabled(!BackspaceButton->bIsEnabled);
|
||||
CastButton->SetIsEnabled(!CastButton->bIsEnabled);
|
||||
}
|
||||
|
||||
void ATurnBaseCombat::EnemyTurn()
|
||||
{
|
||||
DamagePlayer(10);
|
||||
TurnIndicatorTextBlock->SetText(FText::FromString("Player Turn"));
|
||||
ToggleButtons();
|
||||
}
|
143
Source/the_twilight_abyss/TurnBasedCombat/TurnBaseCombat.h
Normal file
143
Source/the_twilight_abyss/TurnBasedCombat/TurnBaseCombat.h
Normal file
@ -0,0 +1,143 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Components/Button.h"
|
||||
#include "Components/ProgressBar.h"
|
||||
#include "Components/TextBlock.h"
|
||||
#include "GameFramework/GameStateBase.h"
|
||||
#include "TurnBaseCombat.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class THE_TWILIGHT_ABYSS_API ATurnBaseCombat : public AGameStateBase
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
ATurnBaseCombat();
|
||||
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
int PlayerHealth = 100;
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
int EnemyHealth = 100;
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
int DefaultActionPoints = 3;
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
int ActiveActionPoints = 0;
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
int IronResource = 10; // F
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
int SulfurResource = 10; // W
|
||||
|
||||
// AActor* PlayerActor;
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
AActor* EnemyActor;
|
||||
// AActor* ActiveActor;
|
||||
|
||||
/*
|
||||
TODO:
|
||||
Reference Player Inventory
|
||||
*/
|
||||
UPROPERTY(EditAnywhere)
|
||||
TSubclassOf<UUserWidget> HUDWidget;
|
||||
UPROPERTY(EditAnywhere)
|
||||
TMap<FString, int32> ValidCombos =
|
||||
{
|
||||
{"F", 10},
|
||||
{"W", 10},
|
||||
{"WW", 15},
|
||||
{"FW", 20},
|
||||
{"FFW", 30}
|
||||
};
|
||||
|
||||
FString BattleLog;
|
||||
|
||||
UFUNCTION(BlueprintCallable)
|
||||
void StartCombat(AActor* Enemy);
|
||||
UFUNCTION(BlueprintCallable)
|
||||
void EndCombat();
|
||||
|
||||
protected:
|
||||
virtual void BeginPlay() override;
|
||||
void ExecuteCast(FString Combo);
|
||||
void UseActionPoint();
|
||||
void ReuseActionPoint();
|
||||
void RevertActionPoints();
|
||||
void DamagePlayer(int Damage);
|
||||
void DamageEnemy(int Damage);
|
||||
void UpdateProgressBars() const;
|
||||
|
||||
private:
|
||||
bool IsValidCombo(FString Combo) const;
|
||||
UUserWidget* HUD;
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
bool bIsPlayerTurn = true;
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
FString CurrentComboString = "";
|
||||
|
||||
void SwitchTurn();
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
UTextBlock* TurnIndicatorTextBlock;
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
UTextBlock* CurrentComboTextBlock;
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
UTextBlock* BattleLogTextBlock;
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
UTextBlock* ActionPointsTextBlock;
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
UProgressBar* PlayerHealthBar;
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
UProgressBar* EnemyHealthBar;
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
UProgressBar* IronResourceBar;
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
UProgressBar* SulfurResourceBar;
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
UButton* CastButton;
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
UButton* FButton;
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
UButton* WButton;
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
UButton* BackspaceButton;
|
||||
|
||||
UFUNCTION()
|
||||
void CastButtonOnClick();
|
||||
|
||||
UFUNCTION()
|
||||
void FButtonOnClick();
|
||||
|
||||
UFUNCTION()
|
||||
void WButtonOnClick();
|
||||
|
||||
UFUNCTION()
|
||||
void BackspaceButtonOnClick();
|
||||
|
||||
void UpdateComboString(FString NewCombo) const;
|
||||
void UpdateActionPoints() const;
|
||||
|
||||
void AddBattleLogMessage(FString Message);
|
||||
void ClearBattleLog();
|
||||
void UpdateBattleLog();
|
||||
void UpdateResourceBars() const;
|
||||
void ToggleButtons() const;
|
||||
void EnemyTurn();
|
||||
};
|
@ -8,7 +8,7 @@ public class the_twilight_abyss : ModuleRules
|
||||
{
|
||||
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
|
||||
|
||||
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });
|
||||
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "UMG" });
|
||||
|
||||
PrivateDependencyModuleNames.AddRange(new string[] { });
|
||||
|
||||
|
@ -1,5 +0,0 @@
|
||||
// Copyright Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
|
||||
#include "the_twilight_abyssGameModeBase.h"
|
||||
|
@ -1,17 +0,0 @@
|
||||
// Copyright Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "GameFramework/GameModeBase.h"
|
||||
#include "the_twilight_abyssGameModeBase.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class THE_TWILIGHT_ABYSS_API Athe_twilight_abyssGameModeBase : public AGameModeBase
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
};
|
@ -6,14 +6,11 @@
|
||||
},
|
||||
{
|
||||
"name": "UE5",
|
||||
"path": "C:\\Program Files\\UE_5.0"
|
||||
"path": "H:\\UE5\\UE_5.0"
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
"typescript.tsc.autoDetect": "off",
|
||||
"cSpell.ignoreWords": [
|
||||
"Athe"
|
||||
]
|
||||
"typescript.tsc.autoDetect": "off"
|
||||
},
|
||||
"extensions": {
|
||||
"recommendations": [
|
||||
|
@ -7,7 +7,11 @@
|
||||
{
|
||||
"Name": "the_twilight_abyss",
|
||||
"Type": "Runtime",
|
||||
"LoadingPhase": "Default"
|
||||
"LoadingPhase": "Default",
|
||||
"AdditionalDependencies": [
|
||||
"Engine",
|
||||
"UMG"
|
||||
]
|
||||
}
|
||||
],
|
||||
"Plugins": [
|
||||
|
Loading…
Reference in New Issue
Block a user