From 0a15d68eeea3a04d83d6729cf8713b8fa3dec811 Mon Sep 17 00:00:00 2001 From: Adrian Paschkowski <git@wasdennnoch.me> Date: Wed, 14 Apr 2021 17:19:42 +0200 Subject: [PATCH] Add sword colliders to attack anims --- .../Heavy Bandit/HeavyBandit_Attack.anim | 89 ++++++- .../Light Bandit/LightBandit_Attack.anim | 89 ++++++- .../Animations/HeroKnight_Attack1.anim | 85 +++++- .../Animations/HeroKnight_Attack2.anim | 85 +++++- .../Animations/HeroKnight_Attack3.anim | 85 +++++- Assets/Prefabs/Fighters/AntiPlayer.prefab | 243 +++--------------- Assets/Prefabs/Fighters/Bandit.prefab | 66 ++++- Assets/Prefabs/Fighters/Tank.prefab | 64 ++++- Assets/Scripts/Fighters/AntiPlayer.cs | 13 +- Assets/Scripts/Fighters/Enemy.cs | 7 +- Assets/Scripts/Fighters/Fighter.cs | 15 +- ProjectSettings/Physics2DSettings.asset | 2 +- ProjectSettings/TagManager.asset | 7 +- 13 files changed, 603 insertions(+), 247 deletions(-) diff --git a/Assets/Asset Store/Bandits - Pixel Art/Animations/Heavy Bandit/HeavyBandit_Attack.anim b/Assets/Asset Store/Bandits - Pixel Art/Animations/Heavy Bandit/HeavyBandit_Attack.anim index 52beb5d..fea9045 100644 --- a/Assets/Asset Store/Bandits - Pixel Art/Animations/Heavy Bandit/HeavyBandit_Attack.anim +++ b/Assets/Asset Store/Bandits - Pixel Art/Animations/Heavy Bandit/HeavyBandit_Attack.anim @@ -4,7 +4,8 @@ AnimationClip: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_Name: HeavyBandit_Attack serializedVersion: 6 m_Legacy: 0 @@ -15,7 +16,44 @@ AnimationClip: m_EulerCurves: [] m_PositionCurves: [] m_ScaleCurves: [] - m_FloatCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.4 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.6 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Sword Collider + classID: 1 + script: {fileID: 0} m_PPtrCurves: - curve: - time: 0 @@ -45,6 +83,13 @@ AnimationClip: m_Extent: {x: 0, y: 0, z: 0} m_ClipBindingConstant: genericBindings: + - serializedVersion: 2 + path: 3175754583 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 - serializedVersion: 2 path: 0 attribute: 0 @@ -81,9 +126,45 @@ AnimationClip: m_KeepOriginalPositionXZ: 0 m_HeightFromFeet: 0 m_Mirror: 0 - m_EditorCurves: [] + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.4 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.6 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Sword Collider + classID: 1 + script: {fileID: 0} m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 - m_GenerateMotionCurves: 0 m_Events: [] diff --git a/Assets/Asset Store/Bandits - Pixel Art/Animations/Light Bandit/LightBandit_Attack.anim b/Assets/Asset Store/Bandits - Pixel Art/Animations/Light Bandit/LightBandit_Attack.anim index 645d067..8a90555 100644 --- a/Assets/Asset Store/Bandits - Pixel Art/Animations/Light Bandit/LightBandit_Attack.anim +++ b/Assets/Asset Store/Bandits - Pixel Art/Animations/Light Bandit/LightBandit_Attack.anim @@ -4,7 +4,8 @@ AnimationClip: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_Name: LightBandit_Attack serializedVersion: 6 m_Legacy: 0 @@ -15,7 +16,44 @@ AnimationClip: m_EulerCurves: [] m_PositionCurves: [] m_ScaleCurves: [] - m_FloatCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.4 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.6 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Sword Collider + classID: 1 + script: {fileID: 0} m_PPtrCurves: - curve: - time: 0 @@ -45,6 +83,13 @@ AnimationClip: m_Extent: {x: 0, y: 0, z: 0} m_ClipBindingConstant: genericBindings: + - serializedVersion: 2 + path: 3175754583 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 - serializedVersion: 2 path: 0 attribute: 0 @@ -81,9 +126,45 @@ AnimationClip: m_KeepOriginalPositionXZ: 0 m_HeightFromFeet: 0 m_Mirror: 0 - m_EditorCurves: [] + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.4 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.6 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Sword Collider + classID: 1 + script: {fileID: 0} m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 - m_GenerateMotionCurves: 0 m_Events: [] diff --git a/Assets/Asset Store/Hero Knight - Pixel Art/Animations/HeroKnight_Attack1.anim b/Assets/Asset Store/Hero Knight - Pixel Art/Animations/HeroKnight_Attack1.anim index 0300a8e..5ce4cd0 100644 --- a/Assets/Asset Store/Hero Knight - Pixel Art/Animations/HeroKnight_Attack1.anim +++ b/Assets/Asset Store/Hero Knight - Pixel Art/Animations/HeroKnight_Attack1.anim @@ -16,7 +16,44 @@ AnimationClip: m_EulerCurves: [] m_PositionCurves: [] m_ScaleCurves: [] - m_FloatCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.14285715 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.2857143 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Sword Collider + classID: 1 + script: {fileID: 0} m_PPtrCurves: - curve: - time: 0 @@ -42,6 +79,13 @@ AnimationClip: m_Extent: {x: 0, y: 0, z: 0} m_ClipBindingConstant: genericBindings: + - serializedVersion: 2 + path: 3175754583 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 - serializedVersion: 2 path: 0 attribute: 0 @@ -76,7 +120,44 @@ AnimationClip: m_KeepOriginalPositionXZ: 0 m_HeightFromFeet: 0 m_Mirror: 0 - m_EditorCurves: [] + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.14285715 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.2857143 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Sword Collider + classID: 1 + script: {fileID: 0} m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 diff --git a/Assets/Asset Store/Hero Knight - Pixel Art/Animations/HeroKnight_Attack2.anim b/Assets/Asset Store/Hero Knight - Pixel Art/Animations/HeroKnight_Attack2.anim index 74a0998..6695f52 100644 --- a/Assets/Asset Store/Hero Knight - Pixel Art/Animations/HeroKnight_Attack2.anim +++ b/Assets/Asset Store/Hero Knight - Pixel Art/Animations/HeroKnight_Attack2.anim @@ -16,7 +16,44 @@ AnimationClip: m_EulerCurves: [] m_PositionCurves: [] m_ScaleCurves: [] - m_FloatCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.071428575 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.21428572 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Sword Collider + classID: 1 + script: {fileID: 0} m_PPtrCurves: - curve: - time: 0 @@ -42,6 +79,13 @@ AnimationClip: m_Extent: {x: 0, y: 0, z: 0} m_ClipBindingConstant: genericBindings: + - serializedVersion: 2 + path: 3175754583 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 - serializedVersion: 2 path: 0 attribute: 0 @@ -76,7 +120,44 @@ AnimationClip: m_KeepOriginalPositionXZ: 0 m_HeightFromFeet: 0 m_Mirror: 0 - m_EditorCurves: [] + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.071428575 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.21428572 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Sword Collider + classID: 1 + script: {fileID: 0} m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 diff --git a/Assets/Asset Store/Hero Knight - Pixel Art/Animations/HeroKnight_Attack3.anim b/Assets/Asset Store/Hero Knight - Pixel Art/Animations/HeroKnight_Attack3.anim index c01ebce..0426fc7 100644 --- a/Assets/Asset Store/Hero Knight - Pixel Art/Animations/HeroKnight_Attack3.anim +++ b/Assets/Asset Store/Hero Knight - Pixel Art/Animations/HeroKnight_Attack3.anim @@ -16,7 +16,44 @@ AnimationClip: m_EulerCurves: [] m_PositionCurves: [] m_ScaleCurves: [] - m_FloatCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.14285715 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.2857143 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Sword Collider + classID: 1 + script: {fileID: 0} m_PPtrCurves: - curve: - time: 0 @@ -46,6 +83,13 @@ AnimationClip: m_Extent: {x: 0, y: 0, z: 0} m_ClipBindingConstant: genericBindings: + - serializedVersion: 2 + path: 3175754583 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 - serializedVersion: 2 path: 0 attribute: 0 @@ -82,7 +126,44 @@ AnimationClip: m_KeepOriginalPositionXZ: 0 m_HeightFromFeet: 0 m_Mirror: 0 - m_EditorCurves: [] + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.14285715 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.2857143 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Sword Collider + classID: 1 + script: {fileID: 0} m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 diff --git a/Assets/Prefabs/Fighters/AntiPlayer.prefab b/Assets/Prefabs/Fighters/AntiPlayer.prefab index 11218ce..bf82cdb 100644 --- a/Assets/Prefabs/Fighters/AntiPlayer.prefab +++ b/Assets/Prefabs/Fighters/AntiPlayer.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 2900218875308588589} - component: {fileID: 827722496337519530} - component: {fileID: 2090642674025853698} - m_Layer: 0 + m_Layer: 8 m_Name: GroundSensor m_TagString: Untagged m_Icon: {fileID: 0} @@ -74,7 +74,7 @@ GameObject: - component: {fileID: 2954181336601895002} - component: {fileID: 8942925490989933264} - component: {fileID: 9117128348835321587} - m_Layer: 0 + m_Layer: 9 m_Name: AntiPlayer m_TagString: AntiPlayer m_Icon: {fileID: 0} @@ -93,10 +93,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 2900218875308588589} - - {fileID: 4393510860592810054} - - {fileID: 7646082782773197330} - - {fileID: 351674194244795142} - - {fileID: 3233824457707053878} + - {fileID: 5106986198484731838} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -118,6 +115,7 @@ MonoBehaviour: baseArmor: 1 currentHealth: 100 maxDistanceToEnemy: 1 + movementSpeed: 4 --- !u!95 &2655505060201611074 Animator: serializedVersion: 3 @@ -206,7 +204,7 @@ Rigidbody2D: m_GravityScale: 1 m_Material: {fileID: 0} m_Interpolate: 0 - m_SleepingMode: 1 + m_SleepingMode: 0 m_CollisionDetection: 1 m_Constraints: 4 --- !u!61 &9117128348835321587 @@ -235,7 +233,7 @@ BoxCollider2D: serializedVersion: 2 m_Size: {x: 0.73, y: 1.2} m_EdgeRadius: 0 ---- !u!1 &7087049454815086010 +--- !u!1 &8613082040857381092 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -243,235 +241,52 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7646082782773197330} - - component: {fileID: 1011138383611117998} - - component: {fileID: 2724002377843051195} - m_Layer: 0 - m_Name: WallSensor_R2 + - component: {fileID: 5106986198484731838} + - component: {fileID: 2369454338099947293} + m_Layer: 10 + m_Name: Sword Collider m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7646082782773197330 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7087049454815086010} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.375, y: 1.15, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 8413529789942519730} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!58 &1011138383611117998 -CircleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7087049454815086010} - m_Enabled: 1 - m_Density: 1 - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_UsedByEffector: 0 - m_UsedByComposite: 0 - m_Offset: {x: 0, y: 0.1} - serializedVersion: 2 - m_Radius: 0.05 ---- !u!114 &2724002377843051195 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7087049454815086010} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2f2a8bdc7f41b704693ad497097f30dc, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &7967423529762950208 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3233824457707053878} - - component: {fileID: 1306675150133841448} - - component: {fileID: 7644162722278263769} - m_Layer: 0 - m_Name: WallSensor_L2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3233824457707053878 + m_IsActive: 0 +--- !u!4 &5106986198484731838 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7967423529762950208} + m_GameObject: {fileID: 8613082040857381092} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.378, y: 1.15, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 8413529789942519730} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!58 &1306675150133841448 -CircleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7967423529762950208} - m_Enabled: 1 - m_Density: 1 - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_UsedByEffector: 0 - m_UsedByComposite: 0 - m_Offset: {x: 0, y: 0.1} - serializedVersion: 2 - m_Radius: 0.05 ---- !u!114 &7644162722278263769 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7967423529762950208} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2f2a8bdc7f41b704693ad497097f30dc, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &8631832243428726876 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4393510860592810054} - - component: {fileID: 3960872287899394342} - - component: {fileID: 4862588835780617305} - m_Layer: 0 - m_Name: WallSensor_R1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4393510860592810054 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8631832243428726876} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.375, y: 0.15, z: 0} + m_LocalPosition: {x: 1.02, y: 0.729, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 8413529789942519730} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!58 &3960872287899394342 -CircleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8631832243428726876} - m_Enabled: 1 - m_Density: 1 - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_UsedByEffector: 0 - m_UsedByComposite: 0 - m_Offset: {x: 0, y: 0.1} - serializedVersion: 2 - m_Radius: 0.05 ---- !u!114 &4862588835780617305 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8631832243428726876} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2f2a8bdc7f41b704693ad497097f30dc, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &9013660374251658338 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 351674194244795142} - - component: {fileID: 5359120195630597513} - - component: {fileID: 2193030436431168656} - m_Layer: 0 - m_Name: WallSensor_L1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &351674194244795142 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9013660374251658338} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.378, y: 0.15, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 8413529789942519730} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!58 &5359120195630597513 -CircleCollider2D: +--- !u!61 &2369454338099947293 +BoxCollider2D: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9013660374251658338} + m_GameObject: {fileID: 8613082040857381092} m_Enabled: 1 m_Density: 1 m_Material: {fileID: 0} m_IsTrigger: 1 m_UsedByEffector: 0 m_UsedByComposite: 0 - m_Offset: {x: 0, y: 0.1} + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 serializedVersion: 2 - m_Radius: 0.05 ---- !u!114 &2193030436431168656 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9013660374251658338} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2f2a8bdc7f41b704693ad497097f30dc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Size: {x: 0.75, y: 0.6} + m_EdgeRadius: 0 diff --git a/Assets/Prefabs/Fighters/Bandit.prefab b/Assets/Prefabs/Fighters/Bandit.prefab index c37169e..7b81946 100644 --- a/Assets/Prefabs/Fighters/Bandit.prefab +++ b/Assets/Prefabs/Fighters/Bandit.prefab @@ -14,7 +14,7 @@ GameObject: - component: {fileID: 212259381048184306} - component: {fileID: 50512961935941442} - component: {fileID: 61252362154681264} - m_Layer: 0 + m_Layer: 9 m_Name: Bandit m_TagString: Enemy m_Icon: {fileID: 0} @@ -33,6 +33,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 4269114208525818} + - {fileID: 4068702172619718228} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -53,8 +54,8 @@ MonoBehaviour: baseAttackDamage: 10 baseArmor: 1 currentHealth: 100 - playerNearDistance: 3.75 playerDistanceToAttack: 1.25 + playerNearDistance: 3.75 --- !u!95 &95346456782871180 Animator: serializedVersion: 3 @@ -143,7 +144,7 @@ Rigidbody2D: m_GravityScale: 1 m_Material: {fileID: 0} m_Interpolate: 0 - m_SleepingMode: 1 + m_SleepingMode: 0 m_CollisionDetection: 0 m_Constraints: 4 --- !u!61 &61252362154681264 @@ -183,7 +184,7 @@ GameObject: - component: {fileID: 4269114208525818} - component: {fileID: 114926350374723154} - component: {fileID: 61368513597639598} - m_Layer: 0 + m_Layer: 8 m_Name: GroundSensor m_TagString: Player m_Icon: {fileID: 0} @@ -242,3 +243,60 @@ BoxCollider2D: serializedVersion: 2 m_Size: {x: 0.16, y: 0.03} m_EdgeRadius: 0 +--- !u!1 &2027188061190139354 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4068702172619718228} + - component: {fileID: 2581621478704734931} + m_Layer: 10 + m_Name: Sword Collider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &4068702172619718228 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027188061190139354} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.509, y: 0.915, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4805181885227780} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!61 &2581621478704734931 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027188061190139354} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.55, y: 0.75} + m_EdgeRadius: 0 diff --git a/Assets/Prefabs/Fighters/Tank.prefab b/Assets/Prefabs/Fighters/Tank.prefab index a4646e0..bb19629 100644 --- a/Assets/Prefabs/Fighters/Tank.prefab +++ b/Assets/Prefabs/Fighters/Tank.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 4532010589869964} - component: {fileID: 114204724084870448} - component: {fileID: 61751993304262736} - m_Layer: 0 + m_Layer: 8 m_Name: GroundSensor m_TagString: Player m_Icon: {fileID: 0} @@ -103,6 +103,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 4532010589869964} + - {fileID: 7400179465404256056} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -123,8 +124,8 @@ MonoBehaviour: baseAttackDamage: 10 baseArmor: 1 currentHealth: 100 - playerNearDistance: 3.75 playerDistanceToAttack: 1.25 + playerNearDistance: 3.75 --- !u!95 &95734438044755836 Animator: serializedVersion: 3 @@ -213,7 +214,7 @@ Rigidbody2D: m_GravityScale: 1 m_Material: {fileID: 0} m_Interpolate: 0 - m_SleepingMode: 1 + m_SleepingMode: 0 m_CollisionDetection: 0 m_Constraints: 4 --- !u!61 &61346583712760016 @@ -242,3 +243,60 @@ BoxCollider2D: serializedVersion: 2 m_Size: {x: 0.8, y: 1.2} m_EdgeRadius: 0 +--- !u!1 &3679663780537613636 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7400179465404256056} + - component: {fileID: 2341786342133006739} + m_Layer: 10 + m_Name: Sword Collider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &7400179465404256056 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3679663780537613636} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.509, y: 0.915, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4588935210562790} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!61 &2341786342133006739 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3679663780537613636} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.55, y: 0.75} + m_EdgeRadius: 0 diff --git a/Assets/Scripts/Fighters/AntiPlayer.cs b/Assets/Scripts/Fighters/AntiPlayer.cs index c1388b3..351e2a2 100644 --- a/Assets/Scripts/Fighters/AntiPlayer.cs +++ b/Assets/Scripts/Fighters/AntiPlayer.cs @@ -16,12 +16,16 @@ public class AntiPlayer : Fighter, IFighterCallback protected override void Awake() { base.Awake(); + fighterType = FighterTypes.ANTI_PLAYER; + opponentTag = "Enemy"; // TODO Eventually, the player will be able to place enemies _after_ the AntiPlayer has been created. // Idea: Create a global GameManager-like class where scripts can register an IGameState callback, // which has a `OnRoundStart()` callback. foreach (var enemy in GameObject.FindGameObjectsWithTag("Enemy")) { - enemies.Add(enemy.GetComponent<Fighter>()); + var fighter = enemy.GetComponent<Fighter>(); + fighter.callbacks.Add(this); + enemies.Add(fighter); } CalculateClosestEnemy(); animator.SetBool("Grounded", true); @@ -36,7 +40,12 @@ public class AntiPlayer : Fighter, IFighterCallback } var vectorToNextEnemy = currentTargetEnemy.transform.position - transform.position; - spriteRenderer.flipX = vectorToNextEnemy.x < 0; + var scale = transform.localScale; + // Always face the target Enemy + scale.x = vectorToNextEnemy.x < 0 ? -initalScale.x : initalScale.x; + transform.localScale = scale; + + // Run towards target enemy if too far away if (Mathf.Abs(vectorToNextEnemy.x) > maxDistanceToEnemy) { animator.SetInteger("AnimState", 1); // Run diff --git a/Assets/Scripts/Fighters/Enemy.cs b/Assets/Scripts/Fighters/Enemy.cs index 242275f..79f775e 100644 --- a/Assets/Scripts/Fighters/Enemy.cs +++ b/Assets/Scripts/Fighters/Enemy.cs @@ -5,7 +5,7 @@ using UnityEngine; public abstract class Enemy : Fighter { - [SerializeField, Tooltip("How close the AntiPlayer has to be in order for this Bandit to start attacking")] + [SerializeField, Tooltip("How close the AntiPlayer has to be in order for this Enemy to start attacking")] protected float playerDistanceToAttack = 1.25f; protected GameObject antiPlayer; @@ -14,13 +14,16 @@ public abstract class Enemy : Fighter { base.Awake(); antiPlayer = GameObject.FindGameObjectWithTag("AntiPlayer"); + opponentTag = antiPlayer.tag; } protected override void Update() { base.Update(); // Always face the AntiPlayer - spriteRenderer.flipX = transform.position.x < antiPlayer.transform.position.x; + var scale = transform.localScale; + scale.x = transform.position.x < antiPlayer.transform.position.x ? -initalScale.x : initalScale.x; + transform.localScale = scale; } protected override bool CanAttack() diff --git a/Assets/Scripts/Fighters/Fighter.cs b/Assets/Scripts/Fighters/Fighter.cs index fdfd8d9..f347de9 100644 --- a/Assets/Scripts/Fighters/Fighter.cs +++ b/Assets/Scripts/Fighters/Fighter.cs @@ -25,6 +25,11 @@ public abstract class Fighter : MonoBehaviour protected SpriteRenderer spriteRenderer; protected bool alive { get => currentHealth > 0; } protected FighterTypes fighterType; + protected string opponentTag; + + protected Vector3 initalScale; + protected Vector3 initalPosition; + protected abstract bool CanAttack(); protected abstract void Attack(); @@ -36,6 +41,8 @@ public abstract class Fighter : MonoBehaviour rigidbody = GetComponent<Rigidbody2D>(); spriteRenderer = GetComponent<SpriteRenderer>(); fighterType = FighterTypes.ENEMY; + initalPosition = transform.position; + initalScale = transform.localScale; } protected virtual void Start() @@ -76,8 +83,6 @@ public abstract class Fighter : MonoBehaviour { animator.SetTrigger("Death"); callbacks.ForEach(c => c.OnFighterDeath(this)); - // TODO (Depending on the death animation) only destroy on round end so that corpses stay on the ground - // Destroy(gameObject); } else { @@ -90,10 +95,12 @@ public abstract class Fighter : MonoBehaviour return StatsManager.instance.fighterStats[fighterType]; } - // TODO Move to new common Enemy subclass which also has reference to AnitPlayer void OnTriggerEnter2D(Collider2D other) { - if (other.CompareTag("AntiPlayer")) +#if false + Debug.Log(string.Format("'{0}' (tag '{1}') collided with '{2}' (tag '{3}') in parent '{4}' (tag '{5}')", name, tag, other.name, other.tag, other.transform.parent ? other.transform.parent.name : null, other.transform.parent ? other.transform.parent.tag : null)); +#endif + if (other.CompareTag(opponentTag)) { var damageToDeal = Mathf.RoundToInt(baseAttackDamage * GetStats().damageMultiplier); other.GetComponent<Fighter>().DealDamage(damageToDeal); diff --git a/ProjectSettings/Physics2DSettings.asset b/ProjectSettings/Physics2DSettings.asset index b143805..f679aec 100644 --- a/ProjectSettings/Physics2DSettings.asset +++ b/ProjectSettings/Physics2DSettings.asset @@ -53,4 +53,4 @@ Physics2DSettings: m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} - m_LayerCollisionMatrix: ffffefffffffefffffffefffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_LayerCollisionMatrix: fffbeffffffbeffffffbeffffffffffffffbeffffffbeffffffffffffffffffffffdfffffffeefffc8ffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 00a4a98..703509c 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -6,6 +6,7 @@ TagManager: tags: - AntiPlayer - Enemy + - Weapon layers: - Default - TransparentFX @@ -15,9 +16,9 @@ TagManager: - UI - - - - - - - - + - Ground Sensor + - Fighter + - Weapon - - - -- GitLab