diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index b0d24eb..3c6be08 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -334,3 +334,60 @@ BuildToolsOverride= bStreamLandscapeMeshLODs=False bEnableDomStorage=False +[/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="Enemy") +-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") + diff --git a/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_Skeleton.uasset b/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_Skeleton.uasset index 576ea25..d4b70e0 100644 --- a/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_Skeleton.uasset +++ b/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_Skeleton.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1a2f524c878ae9e18103d5c74346366998200985cd9295124d684ad99758c270 -size 36477 +oid sha256:92d6c86a8587d89f3da1418d443ab0ff71dc215d2a6f42f6948a6f162e1ca09c +size 36690 diff --git a/Content/SideScroller/Animations/Combat/Combat_Idle.uasset b/Content/SideScroller/Animations/Combat/Combat_Idle.uasset deleted file mode 100644 index db3678e..0000000 --- a/Content/SideScroller/Animations/Combat/Combat_Idle.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fe2bf935561fab345555cdea1c834f5660e4c56b25963ef0ea380c9961d861df -size 672535 diff --git a/Content/SideScroller/Animations/Combat/Combat_LHit_Head_LPunch.uasset b/Content/SideScroller/Animations/Combat/Combat_LHit_Head_LPunch.uasset deleted file mode 100644 index 4c0f40c..0000000 --- a/Content/SideScroller/Animations/Combat/Combat_LHit_Head_LPunch.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e4edc3b71e486cc201af0b3870b06f80073f1c36e216bd655bae2e7126c01bd8 -size 376774 diff --git a/Content/SideScroller/Animations/Combat/Combat_LHit_Head_RPunch.uasset b/Content/SideScroller/Animations/Combat/Combat_LHit_Head_RPunch.uasset deleted file mode 100644 index 1956703..0000000 --- a/Content/SideScroller/Animations/Combat/Combat_LHit_Head_RPunch.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dd99eaa99f28986ae7dd924c97d110f6cc720759e6faa441faf8a5367383346e -size 246042 diff --git a/Content/SideScroller/Animations/Combat/Combat_LPunch.uasset b/Content/SideScroller/Animations/Combat/Combat_LPunch.uasset deleted file mode 100644 index e7ea6e2..0000000 --- a/Content/SideScroller/Animations/Combat/Combat_LPunch.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:13a80d4b3c630c81e9ab2dfd932e44f95046e6f9489bbe8b9a507e051ede35ec -size 291550 diff --git a/Content/SideScroller/Animations/Combat/Combat_RPunch.uasset b/Content/SideScroller/Animations/Combat/Combat_RPunch.uasset deleted file mode 100644 index 9bb917a..0000000 --- a/Content/SideScroller/Animations/Combat/Combat_RPunch.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6518d3cfd4bedc51550bc1428d73f5b8f4b825693d7191127905335d76c4ff9b -size 257111 diff --git a/Content/SideScroller/Animations/Combat/Combat_Walking_Bwd.uasset b/Content/SideScroller/Animations/Combat/Combat_Walking_Bwd.uasset deleted file mode 100644 index 21da381..0000000 --- a/Content/SideScroller/Animations/Combat/Combat_Walking_Bwd.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:21a66c2b12dc0fac6d167885a7ea20f573f5a34b82e2d7b33846406c5f8d84dc -size 262028 diff --git a/Content/SideScroller/Animations/Combat/Combat_Walking_Fwd.uasset b/Content/SideScroller/Animations/Combat/Combat_Walking_Fwd.uasset deleted file mode 100644 index c018b28..0000000 --- a/Content/SideScroller/Animations/Combat/Combat_Walking_Fwd.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ef6415bd7dc4474e9cc208f1403ab3416317754de8845f8a4e521a179cb605d9 -size 291118 diff --git a/Content/SideScroller/Animations/Combat/Punch1.uasset b/Content/SideScroller/Animations/Combat/Punch1.uasset new file mode 100644 index 0000000..9818d07 --- /dev/null +++ b/Content/SideScroller/Animations/Combat/Punch1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b1b89297b4811d05eb0734ee9b1c821836b6db771ce6a2ced181d6dcd858c03 +size 206210 diff --git a/Content/SideScroller/Animations/Combat/Punch_Montage.uasset b/Content/SideScroller/Animations/Combat/Punch_Montage.uasset new file mode 100644 index 0000000..414b703 --- /dev/null +++ b/Content/SideScroller/Animations/Combat/Punch_Montage.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd567054e270d8bf89a442d8a3e0dcaec06b92fa01e5dd72c1b9eba5245c3226 +size 12280 diff --git a/Content/SideScroller/Animations/Combat_test/Combat_Idle.uasset b/Content/SideScroller/Animations/Combat_test/Combat_Idle.uasset new file mode 100644 index 0000000..070205c --- /dev/null +++ b/Content/SideScroller/Animations/Combat_test/Combat_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a685b0bf2fd41a2edb3e31c30837d1ea3edd65afa5964bb0a0ba9105c1142d33 +size 672545 diff --git a/Content/SideScroller/Animations/Combat_test/Combat_LHit_Head_LPunch.uasset b/Content/SideScroller/Animations/Combat_test/Combat_LHit_Head_LPunch.uasset new file mode 100644 index 0000000..faac598 --- /dev/null +++ b/Content/SideScroller/Animations/Combat_test/Combat_LHit_Head_LPunch.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6bfa842d58e079b116fdcabd402913cb1b63dac9a6a713c9062cbc88ea3ef2c2 +size 376784 diff --git a/Content/SideScroller/Animations/Combat_test/Combat_LHit_Head_RPunch.uasset b/Content/SideScroller/Animations/Combat_test/Combat_LHit_Head_RPunch.uasset new file mode 100644 index 0000000..b549a81 --- /dev/null +++ b/Content/SideScroller/Animations/Combat_test/Combat_LHit_Head_RPunch.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e46929fc097bab2f33868f86992cd5093935cb22de7baa6c740be4a7ca35339 +size 246052 diff --git a/Content/SideScroller/Animations/Combat_test/Combat_LPunch.uasset b/Content/SideScroller/Animations/Combat_test/Combat_LPunch.uasset new file mode 100644 index 0000000..6729b5d --- /dev/null +++ b/Content/SideScroller/Animations/Combat_test/Combat_LPunch.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:315beddd51221390cf964d5960c1269a2f69fbca77eb50d777255da5a9a56be8 +size 291560 diff --git a/Content/SideScroller/Animations/Combat_test/Combat_RPunch.uasset b/Content/SideScroller/Animations/Combat_test/Combat_RPunch.uasset new file mode 100644 index 0000000..ceb39cf --- /dev/null +++ b/Content/SideScroller/Animations/Combat_test/Combat_RPunch.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fce45045e620d8d6f7f1e39498e100c1b13aafd35c3fe43479d511c9719152f +size 257121 diff --git a/Content/SideScroller/Animations/Combat_test/Combat_Walking_Bwd.uasset b/Content/SideScroller/Animations/Combat_test/Combat_Walking_Bwd.uasset new file mode 100644 index 0000000..6673bb3 --- /dev/null +++ b/Content/SideScroller/Animations/Combat_test/Combat_Walking_Bwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b9bcd7b29380b8233a6bc0118c64de8dd55d2c84287095f847cfaa310801f86 +size 262038 diff --git a/Content/SideScroller/Animations/Combat_test/Combat_Walking_Fwd.uasset b/Content/SideScroller/Animations/Combat_test/Combat_Walking_Fwd.uasset new file mode 100644 index 0000000..6ad82cf --- /dev/null +++ b/Content/SideScroller/Animations/Combat_test/Combat_Walking_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2286862b72528a326412816e86759d7ec6b975f316f4102961631667b4d226b7 +size 291128 diff --git a/Content/SideScroller/Animations/Retargeted_UE4_Manny/ABP_SST.uasset b/Content/SideScroller/Animations/Retargeted_UE4_Manny/ABP_SST.uasset index dce53cd..513b08a 100644 --- a/Content/SideScroller/Animations/Retargeted_UE4_Manny/ABP_SST.uasset +++ b/Content/SideScroller/Animations/Retargeted_UE4_Manny/ABP_SST.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8949eff8da96c001c68c9f88f91099d0486262c909f716420bd549e8093461ef -size 551734 +oid sha256:0d3f5c5b9c3b279a24fbdca71e84c45f7b61f9b0f9d0de713e918a72b52c13ad +size 595395 diff --git a/Content/SideScroller/Blueprints/BP_EnemyCharacter.uasset b/Content/SideScroller/Blueprints/BP_EnemyCharacter.uasset new file mode 100644 index 0000000..d527c88 --- /dev/null +++ b/Content/SideScroller/Blueprints/BP_EnemyCharacter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b12b695a4b8c24b926b8e8f764378f1197190a736fa2b7b43cf4eaaf7cf5d3e +size 53813 diff --git a/Content/SideScroller/Blueprints/BP_FunnyPrinceCharacter.uasset b/Content/SideScroller/Blueprints/BP_FunnyPrinceCharacter.uasset index 83432cd..460b6ce 100644 --- a/Content/SideScroller/Blueprints/BP_FunnyPrinceCharacter.uasset +++ b/Content/SideScroller/Blueprints/BP_FunnyPrinceCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ce499df585291ccd71631b5fef9449e0edf7a4095aadee2f5a95b29f444e0b50 -size 166878 +oid sha256:13b6e7f480b49bb42391aacec89db41c01ae3c6ad0a38f31d9591594b41b697d +size 167579 diff --git a/Content/SideScroller/Maps/ExampleMap.umap b/Content/SideScroller/Maps/ExampleMap.umap index 251a804..7842cd0 100644 --- a/Content/SideScroller/Maps/ExampleMap.umap +++ b/Content/SideScroller/Maps/ExampleMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d9c2028d3e298f5ce6d4632bd7eb61dbd88418ae71d1ec748fd246026b5b41e4 -size 144623 +oid sha256:31e87c6e235a1a19984a0cf56eb59ea5f9f230c953cda6e6a6bda71b1db79700 +size 144728 diff --git a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/0/W3/BH9RA5CXGG4V6NBO45LIOY.uasset b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/0/W3/BH9RA5CXGG4V6NBO45LIOY.uasset index 271c138..dd6daa1 100644 --- a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/0/W3/BH9RA5CXGG4V6NBO45LIOY.uasset +++ b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/0/W3/BH9RA5CXGG4V6NBO45LIOY.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a5cbdc4113cdf9ac887f532c393c5b8f69a14bc40d93eae2030e67c4b3cfb8a4 +oid sha256:3bad85f63ddd6bff05c28850fc6dd0fbdefe8c9eb700f3f761e184d6e9d4396e size 4498 diff --git a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/4/QW/5WE9GKFW00ZNQ6SD6WMVRC.uasset b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/4/QW/5WE9GKFW00ZNQ6SD6WMVRC.uasset deleted file mode 100644 index 932f58b..0000000 --- a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/4/QW/5WE9GKFW00ZNQ6SD6WMVRC.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:db934dcfba037c00569b0a5d44bcbe48dccf7e83f5c393b860ab21d325de575d -size 4029 diff --git a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/6/VL/GF1TMJ1ORJOMC81L0OJWM2.uasset b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/6/VL/GF1TMJ1ORJOMC81L0OJWM2.uasset deleted file mode 100644 index abbb2ce..0000000 --- a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/6/VL/GF1TMJ1ORJOMC81L0OJWM2.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5bec29b3f1c4c0496ce20f7dc3a6254be8ae0545aac1c6e286d4002dc47baed2 -size 4029 diff --git a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/A/CH/NMMOEGBFAUN8ARA752VXIQ.uasset b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/A/CH/NMMOEGBFAUN8ARA752VXIQ.uasset deleted file mode 100644 index 5ba0e36..0000000 --- a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/A/CH/NMMOEGBFAUN8ARA752VXIQ.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c15d5b68ef35a2870f5d5f3a1947202b88fd0b8bad0622ae4704ec36179f9ee8 -size 4029 diff --git a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/A/MK/V9KCSFINAV5BREIG0VBKFL.uasset b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/A/MK/V9KCSFINAV5BREIG0VBKFL.uasset index 3f3542e..c162c72 100644 --- a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/A/MK/V9KCSFINAV5BREIG0VBKFL.uasset +++ b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/A/MK/V9KCSFINAV5BREIG0VBKFL.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:644e2fb8f6203106697dd021e8ee1db9a2186d622e4b6f74e8495de47a6640ce +oid sha256:a01802553765d6545bdc69193b9ae73ee78bdb0ca09fa72a936d3471e211d152 size 4414 diff --git a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/A/R2/4F7Z2HU8ENHXL7LRCV9ZHV.uasset b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/A/R2/4F7Z2HU8ENHXL7LRCV9ZHV.uasset index bed3954..62b422e 100644 --- a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/A/R2/4F7Z2HU8ENHXL7LRCV9ZHV.uasset +++ b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/A/R2/4F7Z2HU8ENHXL7LRCV9ZHV.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a03c49c36bb390f9a5ea4ccd90830086295c3bafc9184ac68d6a457a540365f4 +oid sha256:34644fefb31ee5008d4d105f1ac9058cede92f31fcef22303a623a708d88ebfd size 4406 diff --git a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/C/6K/SI4KJ8SJZN9L91M628EEFW.uasset b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/C/6K/SI4KJ8SJZN9L91M628EEFW.uasset new file mode 100644 index 0000000..f604609 --- /dev/null +++ b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/C/6K/SI4KJ8SJZN9L91M628EEFW.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b4410871813490ed29d8121dc2d8efd85b11a345eea0ddc7d6d918c591240d7 +size 7169 diff --git a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/F/1A/W8YZ8M6GSJM28GSDZ6DWH2.uasset b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/F/1A/W8YZ8M6GSJM28GSDZ6DWH2.uasset index 6d4ca81..ec504fc 100644 --- a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/F/1A/W8YZ8M6GSJM28GSDZ6DWH2.uasset +++ b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/F/1A/W8YZ8M6GSJM28GSDZ6DWH2.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b9bc519a5b3082458743a63a0c9df741a5a8b3471c265755022dfff5184879f5 +oid sha256:f3217420fd1bd0dd59678463dd57374a99d7d0d8e2dd3fa6c8b8f1a9571d02c5 size 4596 diff --git a/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/F/3Q/YBBSP9LI16UL08SAMED44A.uasset b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/F/3Q/YBBSP9LI16UL08SAMED44A.uasset new file mode 100644 index 0000000..93aec9c --- /dev/null +++ b/Content/__ExternalActors__/SideScroller/Maps/ExampleMap/F/3Q/YBBSP9LI16UL08SAMED44A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95b453b1f9526935becb4d054b5d42b9aef38ab4063c9dc653b065523d02fd4c +size 4282 diff --git a/Source/FunnyPrince/EnemyCharacter.cpp b/Source/FunnyPrince/EnemyCharacter.cpp index acf6774..94883e5 100644 --- a/Source/FunnyPrince/EnemyCharacter.cpp +++ b/Source/FunnyPrince/EnemyCharacter.cpp @@ -3,3 +3,26 @@ #include "EnemyCharacter.h" +AEnemyCharacter::AEnemyCharacter(const FObjectInitializer& ObjectInitializer) + : Super(ObjectInitializer) +{ +} + +void AEnemyCharacter::BeginPlay() +{ + /*GetWorldTimerManager().SetTimer(AutoPunch, this, &AEnemyCharacter::StartPunch, + 1.f);*/ +} + +void AEnemyCharacter::Tick(float DeltaTime) +{ +} + +void AEnemyCharacter::StartPunch() +{ + if (CanAttack) + UE_LOG(LogTemp, Warning, TEXT("Enemy StartPunch()")); + Super::StartPunch(); + GetWorldTimerManager().SetTimer(AutoPunch, this, &AEnemyCharacter::StartPunch, + 1.f); +} diff --git a/Source/FunnyPrince/EnemyCharacter.h b/Source/FunnyPrince/EnemyCharacter.h index 8e1fc01..835b2f3 100644 --- a/Source/FunnyPrince/EnemyCharacter.h +++ b/Source/FunnyPrince/EnemyCharacter.h @@ -4,8 +4,12 @@ #include "CoreMinimal.h" #include "FunnyPrinceCharacter.h" +#include "Logging/LogMacros.h" + #include "EnemyCharacter.generated.h" +DECLARE_LOG_CATEGORY_EXTERN(LogTemplateEnemyCharacter, Log, All); + /** * */ @@ -13,5 +17,22 @@ UCLASS() class FUNNYPRINCE_API AEnemyCharacter : public AFunnyPrinceCharacter { GENERATED_BODY() - + +public: + AEnemyCharacter(const FObjectInitializer& ObjectInitializer); + +protected: + // To add mapping context + virtual void BeginPlay() override; + + // To add mapping context + virtual void Tick(float DeltaTime) override; + + virtual void StartPunch() override; + +private: + + FTimerHandle AutoPunch; + +public: }; diff --git a/Source/FunnyPrince/FunnyPrinceCharacter.cpp b/Source/FunnyPrince/FunnyPrinceCharacter.cpp index 3527c65..23a12ca 100644 --- a/Source/FunnyPrince/FunnyPrinceCharacter.cpp +++ b/Source/FunnyPrince/FunnyPrinceCharacter.cpp @@ -4,8 +4,11 @@ #include "FunnyPrinceCharacter.h" #include "SSTCharacterMovementComponent.h" #include "Components/InputComponent.h" +#include "Components/ArrowComponent.h" #include "EnhancedInputComponent.h" #include "InputActionValue.h" +#include "Engine/DamageEvents.h" +#include "EnemyCharacter.h" DEFINE_LOG_CATEGORY(LogTemplateFunnyPrinceCharacter); @@ -16,7 +19,18 @@ DEFINE_LOG_CATEGORY(LogTemplateFunnyPrinceCharacter); AFunnyPrinceCharacter::AFunnyPrinceCharacter(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { + StartAttack = CreateDefaultSubobject("StartAttack"); + StartAttack->SetupAttachment(RootComponent); + StartAttack->SetRelativeLocation(FVector(60.f, 0.f, 40.f)); + StartAttack->SetArrowSize(0.5f); + StartAttack->SetArrowLength(30.f); + + EndAttack = CreateDefaultSubobject("EndAttack"); + EndAttack->SetupAttachment(RootComponent); + EndAttack->SetRelativeLocation(FVector(105.f, 0.f, 40.f)); + EndAttack->SetArrowSize(0.5f); + EndAttack->SetArrowLength(30.f); } void AFunnyPrinceCharacter::BeginPlay() @@ -37,10 +51,51 @@ void AFunnyPrinceCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInp if (UEnhancedInputComponent* EnhancedInputComponent = CastChecked(PlayerInputComponent)) { // Punching - EnhancedInputComponent->BindAction(PunchAction, ETriggerEvent::Started, this, &AFunnyPrinceCharacter::Punch); + EnhancedInputComponent->BindAction(PunchAction, ETriggerEvent::Started, this, &AFunnyPrinceCharacter::StartPunch); } } +void AFunnyPrinceCharacter::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); +} + +float AFunnyPrinceCharacter::TakeDamage(float DamageAmount, FDamageEvent const& DamageEvent, AController* EventInstigator, + AActor* DamageCauser) +{ + float DamageToApply = Super::TakeDamage(DamageAmount, DamageEvent, EventInstigator, DamageCauser); + + DamageToApply = FMath::Min(Health, DamageToApply); + Health -= DamageToApply; + + if (Health <= 0) + { + Health = 0; + + /*ASimpleShooterGameModeBase* GameMode = GetWorld()->GetAuthGameMode(); + if (GameMode) + { + GameMode->PawnKilled(this); + } + + DetachFromControllerPendingDestroy(); + GetCapsuleComponent()->SetCollisionEnabled(ECollisionEnabled::NoCollision);*/ + } + + UE_LOG(LogTemp, Warning, TEXT("Actor hit for %f damage. Current HP: %f"), DamageToApply, Health); + return DamageToApply; +} + +bool AFunnyPrinceCharacter::IsDead() const +{ + return (Health <= 0); +} + +float AFunnyPrinceCharacter::GetHealthPercent() const +{ + return Health / MaxHealth; +} + bool AFunnyPrinceCharacter::CanJumpInternal_Implementation() const { USSTCharacterMovementComponent* Movement = Cast(GetCharacterMovement()); @@ -53,7 +108,61 @@ bool AFunnyPrinceCharacter::CanJumpInternal_Implementation() const return Super::CanJumpInternal_Implementation(); } -void AFunnyPrinceCharacter::Punch() +void AFunnyPrinceCharacter::StartPunch() { - GetCharacterMovement()->IsFalling() + if (!CanAttack) return; + + UAnimInstance* AnimInstance = GetMesh()->GetAnimInstance(); + + if (AnimInstance && PunchMontage) + { + UE_LOG(LogTemp, Warning, TEXT("StartPunch()")); + //CanAttack = false; + if (Enemy && Enemy->GetMesh()->GetAnimInstance()) + { + Enemy->GetMesh()->GetAnimInstance()->Montage_Play(Enemy->PunchMontage); + } + AnimInstance->Montage_Play(PunchMontage); + //AnimInstance->Montage_JumpToSection(FName("StartFire")); + } + //GetCharacterMovement()->IsFalling(); +} + +void AFunnyPrinceCharacter::FinishPunching() +{ + CanAttack = true; +} + +void AFunnyPrinceCharacter::PunchHitTrace() +{ + // Trace hit + FHitResult PunchTraceHit; + if (StartAttack && EndAttack) + { + FVector start = StartAttack->GetSocketLocation(FName()); + FVector end = EndAttack->GetSocketLocation(FName()); + + FCollisionQueryParams Params; + Params.AddIgnoredActor(this); + bool bSuccess = GetWorld()->LineTraceSingleByChannel(PunchTraceHit, start, end, ECollisionChannel::ECC_GameTraceChannel1, Params); + if (bSuccess) + { + AActor* HitActor = PunchTraceHit.GetActor(); + if (HitActor) + { + FPointDamageEvent DamageEvent(PunchDamage, PunchTraceHit, end - start, nullptr); + HitActor->TakeDamage(PunchDamage, DamageEvent, GetController(), this); + } + } + /*UE_LOG(LogTemp, Warning, TEXT("TraceHit from %f %f %f to %f %f %f"), + start.X, + start.Y, + start.Z, + end.X, + end.Y, + end.Z);*/ + + // (World, Start, End, Color, Persistent Lines, Life Time, Depth Priority, Thickness) + DrawDebugLine(GetWorld(), start, end, FColor(255, 0, 0), false, 1, 0, 5); + } } diff --git a/Source/FunnyPrince/FunnyPrinceCharacter.h b/Source/FunnyPrince/FunnyPrinceCharacter.h index 9a20c70..f5e77e6 100644 --- a/Source/FunnyPrince/FunnyPrinceCharacter.h +++ b/Source/FunnyPrince/FunnyPrinceCharacter.h @@ -5,8 +5,11 @@ #include "CoreMinimal.h" #include "SSTCharacter.h" #include "Logging/LogMacros.h" + #include "FunnyPrinceCharacter.generated.h" +class AEnemyCharacter; + DECLARE_LOG_CATEGORY_EXTERN(LogTemplateFunnyPrinceCharacter, Log, All); /** @@ -20,25 +23,70 @@ class FUNNYPRINCE_API AFunnyPrinceCharacter : public ASSTCharacter public: AFunnyPrinceCharacter(const FObjectInitializer& ObjectInitializer); -protected: // APawn interface virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override; // To add mapping context - virtual void BeginPlay(); + virtual void Tick(float DeltaTime) override; + +protected: + + // To add mapping context + virtual void BeginPlay() override; + + virtual float TakeDamage(float DamageAmount, struct FDamageEvent const& DamageEvent, class AController* EventInstigator, AActor* DamageCauser) override; + + UFUNCTION(BlueprintPure) + bool IsDead() const; + + UFUNCTION(BlueprintPure) + float GetHealthPercent() const; virtual bool CanJumpInternal_Implementation() const override; - void Punch(); + virtual void StartPunch(); + + UFUNCTION(BlueprintCallable) + void FinishPunching(); + + UFUNCTION(BlueprintCallable) + void PunchHitTrace(); + + /** Punch Input Action */ + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, meta = (AllowPrivateAccess = true)) + TObjectPtr PunchAction = nullptr; + + /** Punch Montage */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = true)) + UAnimMontage* PunchMontage = nullptr; + + /** Punch Start Position */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = true)) + UArrowComponent* StartAttack = nullptr; + + /** Punch End Position */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = true)) + UArrowComponent* EndAttack = nullptr; + + /** Punch Input Action */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Combat, meta = (AllowPrivateAccess = true)) + bool CanAttack = true; + + UPROPERTY(EditDefaultsOnly) + float MaxHealth = 100; + + /** Current Health */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Combat, meta = (AllowPrivateAccess = true)) + float Health = 100; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = true)) + float PunchDamage = 10; + + /** Punch End Position */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = true)) + TSoftObjectPtr Enemy = nullptr; private: - /** Punch Input Action */ - UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, meta = (AllowPrivateAccess = "true")) - TObjectPtr PunchAction; - - /** Punch Input Action */ - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Combat, meta = (AllowPrivateAccess = "true")) - bool IsPunching; public: };