diff --git a/Assets/Animation/AnimationControllers/BasicEnemyAc.controller b/Assets/Animation/AnimationControllers/BasicEnemyAc.controller index 7aee554..5739141 100644 --- a/Assets/Animation/AnimationControllers/BasicEnemyAc.controller +++ b/Assets/Animation/AnimationControllers/BasicEnemyAc.controller @@ -10,7 +10,8 @@ AnimatorState: m_Name: Enemy1_walk m_Speed: 1 m_CycleOffset: 0 - m_Transitions: [] + m_Transitions: + - {fileID: -7241754476159125152} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -26,7 +27,7 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: ---- !u!1101 &-620458994428194117 +--- !u!1101 &-9173579473245928717 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} @@ -35,62 +36,90 @@ AnimatorStateTransition: m_Name: m_Conditions: - m_ConditionMode: 1 - m_ConditionEvent: Knockback + m_ConditionEvent: PlayerDetected + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: LookForPlayer m_EventTreshold: 0 m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: 2331468422103063953} + m_DstState: {fileID: -8658500197949413652} m_Solo: 0 m_Mute: 0 m_IsExit: 0 serializedVersion: 3 m_TransitionDuration: 0 m_TransitionOffset: 0 - m_ExitTime: 0.75 + m_ExitTime: 0.16666669 m_HasExitTime: 0 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 - m_CanTransitionToSelf: 0 ---- !u!91 &9100000 -AnimatorController: - m_ObjectHideFlags: 0 + m_CanTransitionToSelf: 1 +--- !u!1101 &-9092351600516249748 +AnimatorStateTransition: + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: BasicEnemyAc - serializedVersion: 5 - m_AnimatorParameters: - - m_Name: Knockback - m_Type: 4 - m_DefaultFloat: 0 - m_DefaultInt: 0 - m_DefaultBool: 0 - m_Controller: {fileID: 9100000} - m_AnimatorLayers: - - serializedVersion: 5 - m_Name: Base Layer - m_StateMachine: {fileID: 6831584002752009231} - m_Mask: {fileID: 0} - m_Motions: [] - m_Behaviours: [] - m_BlendingMode: 0 - m_SyncedLayerIndex: -1 - m_DefaultWeight: 0 - m_IKPass: 0 - m_SyncedLayerAffectsTiming: 0 - m_Controller: {fileID: 9100000} ---- !u!1102 &2331468422103063953 + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: Charge + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: MeleeAttack + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -1697517822426922553} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.8508545 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-8806919855709333108 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: MeleeAttack + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -1697517822426922553} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-8658500197949413652 AnimatorState: serializedVersion: 5 m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Enemy1_Hurt + m_Name: Enemy1_PlayerDetected m_Speed: 1 m_CycleOffset: 0 m_Transitions: - - {fileID: 5795875195906319899} + - {fileID: 7424796054809405924} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -100,13 +129,38 @@ AnimatorState: m_MirrorParameterActive: 0 m_CycleOffsetParameterActive: 0 m_TimeParameterActive: 0 - m_Motion: {fileID: 7400000, guid: 96159ad6f2799374d90929e486af57f7, type: 2} + m_Motion: {fileID: 7400000, guid: 59e77a599c2b13647962b16ec646e2d5, type: 2} m_Tag: m_SpeedParameter: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: ---- !u!1101 &5795875195906319899 +--- !u!1101 &-8429392716084838430 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Stun + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 967468253051138707} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-7611457051063546625 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} @@ -115,10 +169,10 @@ AnimatorStateTransition: m_Name: m_Conditions: - m_ConditionMode: 2 - m_ConditionEvent: Knockback + m_ConditionEvent: Charge m_EventTreshold: 0 m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: -9190944687798816731} + m_DstState: {fileID: -7551899271212613431} m_Solo: 0 m_Mute: 0 m_IsExit: 0 @@ -131,29 +185,1159 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 ---- !u!1107 &6831584002752009231 -AnimatorStateMachine: +--- !u!1101 &-7581026058444137338 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: LookForPlayer + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: Move + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -9190944687798816731} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.16666669 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-7551899271212613431 +AnimatorState: serializedVersion: 5 m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Base Layer - m_ChildStates: - - serializedVersion: 1 - m_State: {fileID: -9190944687798816731} - m_Position: {x: 240, y: 80, z: 0} - - serializedVersion: 1 - m_State: {fileID: 2331468422103063953} - m_Position: {x: 240, y: 20, z: 0} - m_ChildStateMachines: [] - m_AnyStateTransitions: - - {fileID: -620458994428194117} - m_EntryTransitions: [] - m_StateMachineTransitions: {} + m_Name: Empty + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 2219105253444733550} + - {fileID: -22285441338083122} + - {fileID: -8806919855709333108} + - {fileID: 2391719557599309806} + - {fileID: 7374915423555516872} + - {fileID: 2808990261789913626} + - {fileID: -8429392716084838430} m_StateMachineBehaviours: [] - m_AnyStatePosition: {x: 260, y: -30, z: 0} - m_EntryPosition: {x: 50, y: 90, z: 0} - m_ExitPosition: {x: 50, y: 140, z: 0} - m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} - m_DefaultState: {fileID: -9190944687798816731} + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 0} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-7241754476159125152 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: Move + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7551899271212613431} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.5833333 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-6959489070667304808 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: Move + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: Idle + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 8206254002601701628} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.48275864 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-6700759833864347202 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Stun + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 967468253051138707} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 0 +--- !u!1101 &-6246768053446543338 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: PlayerDetected + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: Charge + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -8658500197949413652} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.3181818 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-5934499945346383766 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: MeleeAttack + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: LookForPlayer + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -3986136229334749953} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-5360033612222241811 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: PlayerDetected + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: Charge + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 3995466496764135770} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-5276563037550169798 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: MeleeAttack + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7551899271212613431} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-5080471408698595987 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: Idle + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: PlayerDetected + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -8658500197949413652} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.16666669 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-4917207915996559421 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: MeleeAttack + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: PlayerDetected + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -8658500197949413652} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-3986136229334749953 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Enemy1_LookForPlayer + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -1336723358817764324} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 5d963416a087ce848be82e3a39b8fdf0, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-3526955028126852807 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Move + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: Idle + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -9190944687798816731} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.9958878 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-2548575660815743178 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: Stun + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7551899271212613431} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-2260056023557407738 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Charge + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: Stun + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 3995466496764135770} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-1853924301917641163 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: PlayerDetected + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: Idle + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 8206254002601701628} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-1697517822426922553 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Enemy1_MeleeAttack + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -5276563037550169798} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 19eb1b08d5922484681c8a5383b474d5, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-1430587499001005214 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Move + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: PlayerDetected + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -9190944687798816731} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-1394521872176004560 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: Move + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: PlayerDetected + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -8658500197949413652} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.48275864 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-1336723358817764324 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: LookForPlayer + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7551899271212613431} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.16666669 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-620458994428194117 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Knockback + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 2331468422103063953} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 0 +--- !u!1101 &-22285441338083122 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Charge + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 3995466496764135770} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: BasicEnemyAc + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: Move + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: Idle + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: PlayerDetected + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: Charge + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: LookForPlayer + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: MeleeAttack + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: Stun + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 6831584002752009231} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1101 &389712737174338642 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Charge + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: LookForPlayer + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 3995466496764135770} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.16666669 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &967468253051138707 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Enemy1_Stun + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -2548575660815743178} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 9fea38e0a889834409e89db426928c9e, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &2219105253444733550 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Idle + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 8206254002601701628} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &2331468422103063953 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Enemy1_Hurt + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 96159ad6f2799374d90929e486af57f7, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &2391719557599309806 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: PlayerDetected + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -8658500197949413652} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &2808990261789913626 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: LookForPlayer + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -3986136229334749953} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &3995466496764135770 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Enemy1_Charge + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -7611457051063546625} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: da0f5280504f0134da5c37f7f5c67a70, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &5429105355721133318 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: Idle + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7551899271212613431} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.16666669 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &5774204204636646451 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: PlayerDetected + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: LookForPlayer + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -3986136229334749953} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &5795875195906319899 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: Knockback + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -9190944687798816731} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &6786292643265319261 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: Stun + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: LookForPlayer + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -3986136229334749953} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &6831584002752009231 +AnimatorStateMachine: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -9190944687798816731} + m_Position: {x: -300, y: 260, z: 0} + - serializedVersion: 1 + m_State: {fileID: 8206254002601701628} + m_Position: {x: -400, y: 400, z: 0} + - serializedVersion: 1 + m_State: {fileID: -8658500197949413652} + m_Position: {x: 0, y: 600, z: 0} + - serializedVersion: 1 + m_State: {fileID: 3995466496764135770} + m_Position: {x: 400, y: 400, z: 0} + - serializedVersion: 1 + m_State: {fileID: -3986136229334749953} + m_Position: {x: 300, y: 260, z: 0} + - serializedVersion: 1 + m_State: {fileID: -1697517822426922553} + m_Position: {x: 0, y: 200, z: 0} + - serializedVersion: 1 + m_State: {fileID: 967468253051138707} + m_Position: {x: -300, y: 530, z: 0} + - serializedVersion: 1 + m_State: {fileID: -7551899271212613431} + m_Position: {x: 0, y: 400, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: + - {fileID: -6700759833864347202} + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: -280, y: 600, z: 0} + m_EntryPosition: {x: -280, y: 200, z: 0} + m_ExitPosition: {x: 290, y: 540, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -9190944687798816731} +--- !u!1101 &7041687587687150272 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: MeleeAttack + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: Stun + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -1697517822426922553} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &7374915423555516872 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Move + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -9190944687798816731} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &7424796054809405924 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: PlayerDetected + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7551899271212613431} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &7883401335464094355 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: PlayerDetected + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: MeleeAttack + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -1697517822426922553} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &8206254002601701628 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Enemy1_Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 5429105355721133318} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 5d963416a087ce848be82e3a39b8fdf0, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &8416890014345593666 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: Charge + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: LookForPlayer + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -3986136229334749953} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 diff --git a/Assets/Animation/Animations/Enemy/Enemy1_Charge.anim b/Assets/Animation/Animations/Enemy/Enemy1_Charge.anim new file mode 100644 index 0000000..250864e --- /dev/null +++ b/Assets/Animation/Animations/Enemy/Enemy1_Charge.anim @@ -0,0 +1,97 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Enemy1_Charge + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: 7942249098920568159, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.033333335 + value: {fileID: 6294125324160034484, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.06666667 + value: {fileID: 5845606359538220865, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.1 + value: {fileID: 7559897690265657476, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.13333334 + value: {fileID: -4821758819355737828, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.16666667 + value: {fileID: 4027105108782761397, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.2 + value: {fileID: -4356277145322495249, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.23333333 + value: {fileID: -4536786074267818148, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: 7942249098920568159, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 6294125324160034484, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 5845606359538220865, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 7559897690265657476, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -4821758819355737828, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 4027105108782761397, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -4356277145322495249, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -4536786074267818148, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.25 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Animation/Animations/Enemy/Enemy1_Charge.anim.meta b/Assets/Animation/Animations/Enemy/Enemy1_Charge.anim.meta new file mode 100644 index 0000000..1ebc116 --- /dev/null +++ b/Assets/Animation/Animations/Enemy/Enemy1_Charge.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da0f5280504f0134da5c37f7f5c67a70 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animation/Animations/Enemy/Enemy1_Idle.anim b/Assets/Animation/Animations/Enemy/Enemy1_Idle.anim new file mode 100644 index 0000000..b8c525b --- /dev/null +++ b/Assets/Animation/Animations/Enemy/Enemy1_Idle.anim @@ -0,0 +1,85 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Enemy1_Idle + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: 6469914809321751411, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.083333336 + value: {fileID: -2540635606737711782, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.16666667 + value: {fileID: 8571016785330678217, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.25 + value: {fileID: -6999863032711394166, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.28333333 + value: {fileID: -6999863032711394166, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: 6469914809321751411, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -2540635606737711782, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 8571016785330678217, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -6999863032711394166, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -6999863032711394166, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.3 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Animation/Animations/Enemy/Enemy1_Idle.anim.meta b/Assets/Animation/Animations/Enemy/Enemy1_Idle.anim.meta new file mode 100644 index 0000000..0a1c9d5 --- /dev/null +++ b/Assets/Animation/Animations/Enemy/Enemy1_Idle.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5d963416a087ce848be82e3a39b8fdf0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animation/Animations/Enemy/Enemy1_MeleeAttack.anim b/Assets/Animation/Animations/Enemy/Enemy1_MeleeAttack.anim new file mode 100644 index 0000000..3a107a2 --- /dev/null +++ b/Assets/Animation/Animations/Enemy/Enemy1_MeleeAttack.anim @@ -0,0 +1,103 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Enemy1_MeleeAttack + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: -7306169539634696901, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.016666668 + value: {fileID: -1145555792994578308, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.06666667 + value: {fileID: -5680426439555403407, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.083333336 + value: {fileID: 2624123026477953508, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.11666667 + value: {fileID: -4634043128709410468, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.13333334 + value: {fileID: -6204320956982381673, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: -7306169539634696901, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -1145555792994578308, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -5680426439555403407, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 2624123026477953508, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -4634043128709410468, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -6204320956982381673, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.15 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: + - time: 0.06666667 + functionName: TriggerAttack + data: + objectReferenceParameter: {fileID: 0} + floatParameter: 0 + intParameter: 0 + messageOptions: 0 + - time: 0.15 + functionName: FinishAttack + data: + objectReferenceParameter: {fileID: 0} + floatParameter: 0 + intParameter: 0 + messageOptions: 0 diff --git a/Assets/Animation/Animations/Enemy/Enemy1_MeleeAttack.anim.meta b/Assets/Animation/Animations/Enemy/Enemy1_MeleeAttack.anim.meta new file mode 100644 index 0000000..d125746 --- /dev/null +++ b/Assets/Animation/Animations/Enemy/Enemy1_MeleeAttack.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 19eb1b08d5922484681c8a5383b474d5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animation/Animations/Enemy/Enemy1_PlayerDetected.anim b/Assets/Animation/Animations/Enemy/Enemy1_PlayerDetected.anim new file mode 100644 index 0000000..8b01c37 --- /dev/null +++ b/Assets/Animation/Animations/Enemy/Enemy1_PlayerDetected.anim @@ -0,0 +1,69 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Enemy1_PlayerDetected + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: -7306169539634696901, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: -7306169539634696901, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.016666668 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Animation/Animations/Enemy/Enemy1_PlayerDetected.anim.meta b/Assets/Animation/Animations/Enemy/Enemy1_PlayerDetected.anim.meta new file mode 100644 index 0000000..4d8f7b2 --- /dev/null +++ b/Assets/Animation/Animations/Enemy/Enemy1_PlayerDetected.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59e77a599c2b13647962b16ec646e2d5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animation/Animations/Enemy/Enemy1_Stun.anim b/Assets/Animation/Animations/Enemy/Enemy1_Stun.anim new file mode 100644 index 0000000..681e274 --- /dev/null +++ b/Assets/Animation/Animations/Enemy/Enemy1_Stun.anim @@ -0,0 +1,81 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Enemy1_Stun + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: 4182601990571434440, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.016666668 + value: {fileID: -3033029466344800901, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.033333335 + value: {fileID: -4838196666909180953, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.05 + value: {fileID: 3542500663635982729, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: 4182601990571434440, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -3033029466344800901, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -4838196666909180953, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 3542500663635982729, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.06666667 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Animation/Animations/Enemy/Enemy1_Stun.anim.meta b/Assets/Animation/Animations/Enemy/Enemy1_Stun.anim.meta new file mode 100644 index 0000000..152a907 --- /dev/null +++ b/Assets/Animation/Animations/Enemy/Enemy1_Stun.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9fea38e0a889834409e89db426928c9e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animation/Animations/Enemy/Enemy1_walk.anim b/Assets/Animation/Animations/Enemy/Enemy1_walk.anim index 20e4e6a..9d0df77 100644 --- a/Assets/Animation/Animations/Enemy/Enemy1_walk.anim +++ b/Assets/Animation/Animations/Enemy/Enemy1_walk.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Enemy1_walk + m_Name: Enemy1_Walk serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 @@ -20,28 +20,28 @@ AnimationClip: m_PPtrCurves: - curve: - time: 0 - value: {fileID: 6369384564468328029, guid: 3bb687d3e4e625245b3d010df27f3a6d, + value: {fileID: 7942249098920568159, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} - - time: 0.06666667 - value: {fileID: 6138185936412383962, guid: 3bb687d3e4e625245b3d010df27f3a6d, + - time: 0.083333336 + value: {fileID: 6294125324160034484, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} - - time: 0.13333334 - value: {fileID: -275327403722753088, guid: 3bb687d3e4e625245b3d010df27f3a6d, + - time: 0.16666667 + value: {fileID: 5845606359538220865, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} - - time: 0.2 - value: {fileID: 850753403565259673, guid: 3bb687d3e4e625245b3d010df27f3a6d, - type: 3} - - time: 0.26666668 - value: {fileID: 3471711084143634667, guid: 3bb687d3e4e625245b3d010df27f3a6d, + - time: 0.25 + value: {fileID: 7559897690265657476, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} - time: 0.33333334 - value: {fileID: -3991021883962996350, guid: 3bb687d3e4e625245b3d010df27f3a6d, + value: {fileID: -4821758819355737828, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.41666666 + value: {fileID: 4027105108782761397, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} - - time: 0.4 - value: {fileID: -5760543911693439659, guid: 3bb687d3e4e625245b3d010df27f3a6d, + - time: 0.5 + value: {fileID: -4356277145322495249, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} - - time: 0.46666667 - value: {fileID: -3974637543865793226, guid: 3bb687d3e4e625245b3d010df27f3a6d, + - time: 0.5833333 + value: {fileID: -4536786074267818148, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} attribute: m_Sprite path: @@ -62,20 +62,20 @@ AnimationClip: customType: 23 isPPtrCurve: 1 pptrCurveMapping: - - {fileID: 6369384564468328029, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} - - {fileID: 6138185936412383962, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} - - {fileID: -275327403722753088, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} - - {fileID: 850753403565259673, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} - - {fileID: 3471711084143634667, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} - - {fileID: -3991021883962996350, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} - - {fileID: -5760543911693439659, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} - - {fileID: -3974637543865793226, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} + - {fileID: 7942249098920568159, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 6294125324160034484, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 5845606359538220865, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 7559897690265657476, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -4821758819355737828, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 4027105108782761397, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -4356277145322495249, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -4536786074267818148, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} m_AnimationClipSettings: serializedVersion: 2 m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseTime: 0 m_StartTime: 0 - m_StopTime: 0.48333335 + m_StopTime: 0.59999996 m_OrientationOffsetY: 0 m_Level: 0 m_CycleOffset: 0 diff --git a/Assets/Materials/EnemyMaterial.physicsMaterial2D b/Assets/Materials/EnemyMaterial.physicsMaterial2D new file mode 100644 index 0000000..9b050ba --- /dev/null +++ b/Assets/Materials/EnemyMaterial.physicsMaterial2D @@ -0,0 +1,11 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!62 &6200000 +PhysicsMaterial2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: EnemyMaterial + friction: 0 + bounciness: 0 diff --git a/Assets/Materials/EnemyMaterial.physicsMaterial2D.meta b/Assets/Materials/EnemyMaterial.physicsMaterial2D.meta new file mode 100644 index 0000000..866c0e5 --- /dev/null +++ b/Assets/Materials/EnemyMaterial.physicsMaterial2D.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a56be316809bfb04b9619281395b55bb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 6200000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab index 7510603..79551ce 100644 --- a/Assets/Prefabs/Player.prefab +++ b/Assets/Prefabs/Player.prefab @@ -101,11 +101,11 @@ GameObject: - component: {fileID: 8910869952386821002} - component: {fileID: 8910869952386821045} - component: {fileID: 1014591825909172493} + - component: {fileID: 5033257558057960078} - component: {fileID: 8910869952386821003} - component: {fileID: 8910869952386821000} - component: {fileID: 8910869952386821001} - component: {fileID: 844650217789276172} - - component: {fileID: 5033257558057960078} m_Layer: 11 m_Name: Player m_TagString: Player @@ -193,6 +193,23 @@ MonoBehaviour: whatIsDamagable: serializedVersion: 2 m_Bits: 512 +--- !u!114 &5033257558057960078 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8910869952386821006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0142b1e76b86f5746a31da6d4cdd96c7, type: 3} + m_Name: + m_EditorClassIdentifier: + maxHealth: 50 + deathBloodParticle: {fileID: 6973840520826084357, guid: 123a8f48fb319724799ad291fbf131c8, + type: 3} + deathChunkParticle: {fileID: 1482411589124549042, guid: 11ab0c1767df18c47a4ecc7832d158ab, + type: 3} --- !u!212 &8910869952386821003 SpriteRenderer: m_ObjectHideFlags: 0 @@ -310,23 +327,6 @@ Animator: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorControllerStateOnDisable: 0 ---- !u!114 &5033257558057960078 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8910869952386821006} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0142b1e76b86f5746a31da6d4cdd96c7, type: 3} - m_Name: - m_EditorClassIdentifier: - maxHealth: 50 - deathBloodParticle: {fileID: 6973840520826084357, guid: 123a8f48fb319724799ad291fbf131c8, - type: 3} - deathChunkParticle: {fileID: 1482411589124549042, guid: 11ab0c1767df18c47a4ecc7832d158ab, - type: 3} --- !u!1 &9208750176505156739 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index f3d0837..fba934a 100644 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -26976,7 +26976,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 556279999} - m_Layer: 9 + m_Layer: 0 m_Name: WallCheck m_TagString: Untagged m_Icon: {fileID: 0} @@ -26997,6 +26997,66 @@ Transform: m_Father: {fileID: 892116533} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &573192537 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 573192538} + m_Layer: 9 + m_Name: GroundCheck + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &573192538 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 573192537} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.81, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 892116533} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &592136733 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 592136734} + m_Layer: 0 + m_Name: MeleeAttackPosition + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &592136734 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 592136733} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.04, y: -0.31, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 892116533} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &653128047 GameObject: m_ObjectHideFlags: 0 @@ -27046,6 +27106,7 @@ GameObject: - component: {fileID: 892116536} - component: {fileID: 892116535} - component: {fileID: 892116534} + - component: {fileID: 892116538} m_Layer: 9 m_Name: Alive m_TagString: Enemy @@ -27061,12 +27122,15 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 892116532} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 27.1, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 2138779603} - {fileID: 556279999} + - {fileID: 1610420346} - {fileID: 1280154865} + - {fileID: 592136734} + - {fileID: 573192538} m_Father: {fileID: 1881142531} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -27131,7 +27195,7 @@ Rigidbody2D: m_LinearDrag: 0 m_AngularDrag: 0.05 m_GravityScale: 8 - m_Material: {fileID: 0} + m_Material: {fileID: 6200000, guid: a56be316809bfb04b9619281395b55bb, type: 2} m_Interpolate: 0 m_SleepingMode: 1 m_CollisionDetection: 1 @@ -27175,7 +27239,7 @@ SpriteRenderer: m_SortingLayerID: -1031487247 m_SortingLayer: 4 m_SortingOrder: 0 - m_Sprite: {fileID: 6369384564468328029, guid: 3bb687d3e4e625245b3d010df27f3a6d, + m_Sprite: {fileID: 7942249098920568159, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 @@ -27187,6 +27251,18 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!114 &892116538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 892116532} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9df63f33a6f7ac2498a3c90f9082de99, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1092216064 GameObject: m_ObjectHideFlags: 0 @@ -35805,7 +35881,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 892116533} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1402441190 GameObject: @@ -35874,6 +35950,36 @@ MonoBehaviour: m_Calls: [] m_LegacyBlendHint: 0 m_ComponentOwner: {fileID: 1686624242} +--- !u!1 &1610420345 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1610420346} + m_Layer: 0 + m_Name: PlayerCheck + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1610420346 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1610420345} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.09, y: -0.39, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 892116533} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1686624241 GameObject: m_ObjectHideFlags: 3 @@ -35970,7 +36076,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1881142531} - - component: {fileID: 1881142532} + - component: {fileID: 1881142533} m_Layer: 0 m_Name: Enemy1 m_TagString: Untagged @@ -35993,7 +36099,7 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1881142532 +--- !u!114 &1881142533 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -36002,34 +36108,24 @@ MonoBehaviour: m_GameObject: {fileID: 1881142530} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a6cdb301218e5c14bbfd54d736f699ff, type: 3} + m_Script: {fileID: 11500000, guid: a1fcba6b1a5db63439c38a820a941109, type: 3} m_Name: m_EditorClassIdentifier: - groundCheck: {fileID: 2138779603} + entityData: {fileID: 11400000, guid: b722b6081dff5fc48a07f50f3b391492, type: 2} wallCheck: {fileID: 556279999} - touchDamageCheck: {fileID: 1280154865} - whatIsGround: - serializedVersion: 2 - m_Bits: 256 - whatIsPlayer: - serializedVersion: 2 - m_Bits: 2048 - groundCheckDistance: 0.5 - wallCheckDistance: 0.1 - movementSpeed: 3 - maxHealth: 30 - knockbackDuration: 0.1 - touchDamageCooldown: 0.2 - touchDamage: 10 - touchDamageWidth: 1.97 - touchDamageHeight: 0.98 - knockbackSpeed: {x: 10, y: 5} - hitParticle: {fileID: 1607698850734752776, guid: a75fed3be19fd4e43a0ae215689d76a8, - type: 3} - deathChunkParticle: {fileID: 1482411589124549042, guid: 11ab0c1767df18c47a4ecc7832d158ab, - type: 3} - deathBloodParticle: {fileID: 6973840520826084357, guid: 123a8f48fb319724799ad291fbf131c8, - type: 3} + ledgeCheck: {fileID: 2138779603} + playerCheck: {fileID: 1610420346} + groundCheck: {fileID: 573192538} + idleStateData: {fileID: 11400000, guid: c1afee4bde01d524a8780ceb0e2942cf, type: 2} + moveStateData: {fileID: 11400000, guid: 8d3710213c08b1c4cb0429ae94a8a87a, type: 2} + playerDetectedData: {fileID: 11400000, guid: 59caef930896322448abfc4a80d380d7, type: 2} + chargeStateData: {fileID: 11400000, guid: 1454ddae167882b4e9bc3df06f52059f, type: 2} + lookForPlayerData: {fileID: 11400000, guid: bfb42d83e58933d4192b7fc4bd97380e, type: 2} + meleeAttackStateData: {fileID: 11400000, guid: cb89210fb16e32d4a8c05f4391829550, + type: 2} + stunStateData: {fileID: 11400000, guid: 48a7a2e2926c242449bd17f4631fa3cf, type: 2} + deadStateData: {fileID: 11400000, guid: 2fadc6a8ba18f334bb94baaedbf84698, type: 2} + meleeAttackPosition: {fileID: 592136734} --- !u!1 &2086072978 GameObject: m_ObjectHideFlags: 0 @@ -36256,8 +36352,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2138779603} - m_Layer: 9 - m_Name: GroundCheck + m_Layer: 0 + m_Name: LedgeCheck m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 diff --git a/Assets/Scripts/AnimationToStateMachine.cs b/Assets/Scripts/AnimationToStateMachine.cs new file mode 100644 index 0000000..bfe2567 --- /dev/null +++ b/Assets/Scripts/AnimationToStateMachine.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class AnimationToStateMachine : MonoBehaviour +{ + public AttackState attackState; + + private void TriggerAttack() + { + attackState.TriggerAttack(); + } + + private void FinishAttack() + { + attackState.FinishAttack(); + } +} diff --git a/Assets/Scripts/AnimationToStateMachine.cs.meta b/Assets/Scripts/AnimationToStateMachine.cs.meta new file mode 100644 index 0000000..34e089a --- /dev/null +++ b/Assets/Scripts/AnimationToStateMachine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9df63f33a6f7ac2498a3c90f9082de99 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/CombatDummyController.cs b/Assets/Scripts/Enemy/CombatDummyController.cs index 69db5d4..49f2550 100644 --- a/Assets/Scripts/Enemy/CombatDummyController.cs +++ b/Assets/Scripts/Enemy/CombatDummyController.cs @@ -44,11 +44,11 @@ private void Update() CheckKnockBack(); } - private void Damage(float[] _details) + private void Damage(AttackDetails _attackDetails) { - currentHealth -= _details[0]; + currentHealth -= _attackDetails.damageAmount; //_details[0]; - if(_details[1] < aliveGO.transform.position.x) + if(_attackDetails.position.x < aliveGO.transform.position.x) { playerFacingDirection = 1; } diff --git a/Assets/Scripts/Enemy/EnemySpecific.meta b/Assets/Scripts/Enemy/EnemySpecific.meta new file mode 100644 index 0000000..f98823d --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1de8f1dbab8eabf41aa3b7e715871aed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1.meta new file mode 100644 index 0000000..bcacdbf --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d001eeb6f74f3874ebb876483fecc815 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data.meta new file mode 100644 index 0000000..7d11a81 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b7ae57f8dc35f104caf468cb80f75ba9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_BaseData.asset b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_BaseData.asset new file mode 100644 index 0000000..bdee720 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_BaseData.asset @@ -0,0 +1,32 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57df72b3fdb53634da7bfbc546142b09, type: 3} + m_Name: E1_BaseData + m_EditorClassIdentifier: + maxHealth: 50 + damageHopSpeed: 6 + wallCheckDistance: 0.2 + groundCheckRadius: 0.3 + ledgeCheckDistance: 1 + minAgroDistance: 7 + maxAgroDistance: 8 + stunResistance: 3 + stunRecoveryTime: 2 + closeRangeActionDistance: 1.75 + hitParticle: {fileID: 1607698850734752776, guid: a75fed3be19fd4e43a0ae215689d76a8, + type: 3} + whatIsGround: + serializedVersion: 2 + m_Bits: 256 + whatIsPlayer: + serializedVersion: 2 + m_Bits: 2048 diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_BaseData.asset.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_BaseData.asset.meta new file mode 100644 index 0000000..c9b4efa --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_BaseData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b722b6081dff5fc48a07f50f3b391492 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_ChargedState.asset b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_ChargedState.asset new file mode 100644 index 0000000..464e13a --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_ChargedState.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc0e4fcf4b6fe7f46a744a69b8e9298f, type: 3} + m_Name: E1_ChargedState + m_EditorClassIdentifier: + chargeSpeed: 6 + chargeTime: 1 diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_ChargedState.asset.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_ChargedState.asset.meta new file mode 100644 index 0000000..5c7b67d --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_ChargedState.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1454ddae167882b4e9bc3df06f52059f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_DeadStateData.asset b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_DeadStateData.asset new file mode 100644 index 0000000..f103d8c --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_DeadStateData.asset @@ -0,0 +1,18 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e7c0445530c6b6144ac5ee5cbc08edc4, type: 3} + m_Name: E1_DeadStateData + m_EditorClassIdentifier: + deathChunkParticle: {fileID: 1482411589124549042, guid: 11ab0c1767df18c47a4ecc7832d158ab, + type: 3} + deathBloodParticle: {fileID: 6973840520826084357, guid: 123a8f48fb319724799ad291fbf131c8, + type: 3} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_DeadStateData.asset.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_DeadStateData.asset.meta new file mode 100644 index 0000000..ba2dd75 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_DeadStateData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2fadc6a8ba18f334bb94baaedbf84698 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_IdleStateData.asset b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_IdleStateData.asset new file mode 100644 index 0000000..a1cc2c1 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_IdleStateData.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aaab811baedddc44f882613071bf592f, type: 3} + m_Name: E1_IdleStateData + m_EditorClassIdentifier: + minIdleTime: 1 + maxIdleTime: 2 diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_IdleStateData.asset.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_IdleStateData.asset.meta new file mode 100644 index 0000000..e4bfb96 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_IdleStateData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c1afee4bde01d524a8780ceb0e2942cf +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_LookForPlayerData.asset b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_LookForPlayerData.asset new file mode 100644 index 0000000..4bf69aa --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_LookForPlayerData.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6abb59b9e5f6f384a86c54828ca11e8a, type: 3} + m_Name: E1_LookForPlayerData + m_EditorClassIdentifier: + amountOfTurn: 2 + timeBetweenTurn: 0.75 diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_LookForPlayerData.asset.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_LookForPlayerData.asset.meta new file mode 100644 index 0000000..95f5ee1 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_LookForPlayerData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bfb42d83e58933d4192b7fc4bd97380e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MeleeAttackData.asset b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MeleeAttackData.asset new file mode 100644 index 0000000..66843de --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MeleeAttackData.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 560f685b14fc1394db4a9cad9df5234a, type: 3} + m_Name: E1_MeleeAttackData + m_EditorClassIdentifier: + attackRadius: 0.75 + attackDamage: 10 + whatIsPlayer: + serializedVersion: 2 + m_Bits: 2048 diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MeleeAttackData.asset.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MeleeAttackData.asset.meta new file mode 100644 index 0000000..54d112e --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MeleeAttackData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cb89210fb16e32d4a8c05f4391829550 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MoveStateData.asset b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MoveStateData.asset new file mode 100644 index 0000000..265469b --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MoveStateData.asset @@ -0,0 +1,15 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 29d0f54a61c9b044fa3173897f9af062, type: 3} + m_Name: E1_MoveStateData + m_EditorClassIdentifier: + movementSpeed: 3 diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MoveStateData.asset.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MoveStateData.asset.meta new file mode 100644 index 0000000..6ed603b --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MoveStateData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8d3710213c08b1c4cb0429ae94a8a87a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_PlayerDetectedData.asset b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_PlayerDetectedData.asset new file mode 100644 index 0000000..1714f04 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_PlayerDetectedData.asset @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aab07c177bd811f43bd49f2e24716e9f, type: 3} + m_Name: E1_PlayerDetectedData + m_EditorClassIdentifier: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_PlayerDetectedData.asset.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_PlayerDetectedData.asset.meta new file mode 100644 index 0000000..ce9a8fc --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_PlayerDetectedData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59caef930896322448abfc4a80d380d7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_StunStateData.asset b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_StunStateData.asset new file mode 100644 index 0000000..05b4c0b --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_StunStateData.asset @@ -0,0 +1,18 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 293c4a86afd9c2e44845e9642d325193, type: 3} + m_Name: E1_StunStateData + m_EditorClassIdentifier: + stunTime: 2 + stunKnockbackTime: 0.2 + stunKnockbackSpeed: 15 + stunKnockBackAngle: {x: 1, y: 2} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_StunStateData.asset.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_StunStateData.asset.meta new file mode 100644 index 0000000..4521e99 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_StunStateData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 48a7a2e2926c242449bd17f4631fa3cf +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_ChargeState.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_ChargeState.cs new file mode 100644 index 0000000..ea1c7e2 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_ChargeState.cs @@ -0,0 +1,56 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class E1_ChargeState : ChargeState +{ + + private Enemy1 enemy1; + + public E1_ChargeState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_ChargeState _chargedState, Enemy1 _enemy1) : base(_entity, _stateMachine, _animBoolName, _chargedState) + { + this.enemy1 = _enemy1; + } + + public override void Enter() + { + base.Enter(); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + + if (performCloseRangeAction) + { + stateMachine.ChangeState(enemy1.meleeAttackState); + } + + else if (isDetectingWall || !isDetectingLedge) + { + stateMachine.ChangeState(enemy1.lookForPlayerState); + } + + else if (isChargedTimeOver) + { + if (isPlayerInMinAgroRange) + { + stateMachine.ChangeState(enemy1.playerDetectedState); + } + else + { + stateMachine.ChangeState(enemy1.lookForPlayerState); + } + } + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_ChargeState.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_ChargeState.cs.meta new file mode 100644 index 0000000..029778c --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_ChargeState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e9a1a19af189a1a4bbb62d1f2b6b6d5c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_DeadState.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_DeadState.cs new file mode 100644 index 0000000..2df917a --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_DeadState.cs @@ -0,0 +1,38 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class E1_DeadState : DeadState +{ + private Enemy1 enemy1; + + public E1_DeadState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_DeadState _stateData, Enemy1 _enemy1) : base(_entity, _stateMachine, _animBoolName, _stateData) + { + this.enemy1 = _enemy1; + } + + public override void DoChecks() + { + base.DoChecks(); + } + + public override void Enter() + { + base.Enter(); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_DeadState.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_DeadState.cs.meta new file mode 100644 index 0000000..eb98096 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_DeadState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1d5a0c44595bed043a405f0bf576f77c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_IdleState.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_IdleState.cs new file mode 100644 index 0000000..7b6f4a5 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_IdleState.cs @@ -0,0 +1,41 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class E1_IdleState : IdleState +{ + private Enemy1 enemy; + public E1_IdleState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_IdleState _stateData, Enemy1 _enemy) : base(_entity, _stateMachine, _animBoolName, _stateData) + { + this.enemy = _enemy; + } + + public override void Enter() + { + base.Enter(); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + + if (isPlayerDetectedInMinAgroRange) + { + stateMachine.ChangeState(enemy.playerDetectedState); + } + else if (isIdleTimeOver) + { + stateMachine.ChangeState(enemy.moveState); + } + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_IdleState.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_IdleState.cs.meta new file mode 100644 index 0000000..a950de5 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_IdleState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 243dc99a0a87b7e438eb681f6ab90d73 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_LookForPlayer.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_LookForPlayer.cs new file mode 100644 index 0000000..f957081 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_LookForPlayer.cs @@ -0,0 +1,48 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class E1_LookForPlayer : LookForPlayerState +{ + public Enemy1 enemy1; + + public E1_LookForPlayer(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_LookForPlayer _stateData, Enemy1 _enemy1) : base(_entity, _stateMachine, _animBoolName, _stateData) + { + this.enemy1 = _enemy1; + } + + + public override void Enter() + { + base.Enter(); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + + if (isPlayerInMinAgroRange) + { + stateMachine.ChangeState(enemy1.playerDetectedState); + } + else if(isAllTurnsTimeDone) + { + stateMachine.ChangeState(enemy1.moveState); + } + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } + + public override void DoChecks() + { + base.DoChecks(); + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_LookForPlayer.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_LookForPlayer.cs.meta new file mode 100644 index 0000000..47b8498 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_LookForPlayer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eddf7e15f97ef9240a40faf99fa74b5b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MeleeAttackState.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MeleeAttackState.cs new file mode 100644 index 0000000..9657054 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MeleeAttackState.cs @@ -0,0 +1,62 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class E1_MeleeAttackState : MeleeAttackState +{ + + private Enemy1 enemy1; + + public E1_MeleeAttackState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, Transform _attackPosition, D_MeleeAttack _stateData, Enemy1 _enemy1) : base(_entity, _stateMachine, _animBoolName, _attackPosition, _stateData) + { + this.enemy1 = _enemy1; + } + + public override void DoChecks() + { + base.DoChecks(); + } + + public override void Enter() + { + base.Enter(); + } + + public override void Exit() + { + base.Exit(); + } + + public override void FinishAttack() + { + base.FinishAttack(); + + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + + if (isAnimationFinished) + { + if (isPlayerInMinAgroRange) + { + stateMachine.ChangeState(enemy1.playerDetectedState); + } + else + { + stateMachine.ChangeState(enemy1.lookForPlayerState); + } + } + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } + + public override void TriggerAttack() + { + base.TriggerAttack(); + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MeleeAttackState.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MeleeAttackState.cs.meta new file mode 100644 index 0000000..5a4bfda --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MeleeAttackState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4ba46fbea8e4490429015c25edb87626 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MoveState.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MoveState.cs new file mode 100644 index 0000000..dbfc328 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MoveState.cs @@ -0,0 +1,42 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class E1_MoveState : MoveState +{ + private Enemy1 enemy; + public E1_MoveState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_MoveState _stateData, Enemy1 _enemy) : base(_entity, _stateMachine, _animBoolName, _stateData) + { + this.enemy = _enemy; + } + + public override void Enter() + { + base.Enter(); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + + if (isPlayerDetectedInMinAgroRange) + { + stateMachine.ChangeState(enemy.playerDetectedState); + } + else if (!isDetectingLedge || isTouchingWall) + { + enemy.idleState.SetFlipAfterIdle(true); + stateMachine.ChangeState(enemy.idleState); + } + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MoveState.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MoveState.cs.meta new file mode 100644 index 0000000..37b6831 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MoveState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 05d7271c523296b4cb78d520c44292a1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_PlayerDetectedState.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_PlayerDetectedState.cs new file mode 100644 index 0000000..649e438 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_PlayerDetectedState.cs @@ -0,0 +1,50 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class E1_PlayerDetectedState : PlayerDetectedState +{ + private Enemy1 enemy1; + + public E1_PlayerDetectedState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_PlayerDetectedState _stateData, Enemy1 _enemy1) : base(_entity, _stateMachine, _animBoolName, _stateData) + { + this.enemy1 = _enemy1; + } + + public override void Enter() + { + base.Enter(); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + if (performCloseRangeAction) + { + stateMachine.ChangeState(enemy1.meleeAttackState); + } + else if (performLongRangeAction) + { + stateMachine.ChangeState(enemy1.chargeState); + } + else if (!isPlayerInMaxAgroRange) + { + stateMachine.ChangeState(enemy1.lookForPlayerState); + } + else if (!isDetectingLedge) + { + entity.Flip(); + stateMachine.ChangeState(enemy1.moveState); + } + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_PlayerDetectedState.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_PlayerDetectedState.cs.meta new file mode 100644 index 0000000..c6ad780 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_PlayerDetectedState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5381b948ed91d2e42a9ea8618bd2fc77 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_StunState.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_StunState.cs new file mode 100644 index 0000000..ac8db64 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_StunState.cs @@ -0,0 +1,55 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class E1_StunState : StunState +{ + private Enemy1 enemy1; + + public E1_StunState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_StunState _stateData, Enemy1 _enemy1) : base(_entity, _stateMachine, _animBoolName, _stateData) + { + this.enemy1 = _enemy1; + } + + public override void Enter() + { + base.Enter(); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + + if (isStunTimeOver) + { + if (performCloseRangeAction) + { + stateMachine.ChangeState(enemy1.meleeAttackState); + } + else if (isPlayerInMinAgroRange) + { + stateMachine.ChangeState(enemy1.chargeState); + } + else + { + enemy1.lookForPlayerState.SetTurnImmediately(true); + stateMachine.ChangeState(enemy1.lookForPlayerState); + } + } + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } + + public override void DoChecks() + { + base.DoChecks(); + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_StunState.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_StunState.cs.meta new file mode 100644 index 0000000..216abf8 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_StunState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 07b75238203ecd94aa354bbc083dc2e7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Enemy1.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Enemy1.cs new file mode 100644 index 0000000..90e89b3 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Enemy1.cs @@ -0,0 +1,64 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Enemy1 : Entity +{ + public E1_IdleState idleState { get; private set; } + public E1_MoveState moveState { get; private set; } + public E1_PlayerDetectedState playerDetectedState { get; private set; } + public E1_ChargeState chargeState { get; private set; } + public E1_LookForPlayer lookForPlayerState { get; private set; } + public E1_MeleeAttackState meleeAttackState { get; private set; } + public E1_StunState stunState { get; private set; } + public E1_DeadState deadState { get; private set; } + + + [SerializeField] private D_IdleState idleStateData; // get ref + [SerializeField] private D_MoveState moveStateData; + [SerializeField] private D_PlayerDetectedState playerDetectedData; + [SerializeField] private D_ChargeState chargeStateData; + [SerializeField] private D_LookForPlayer lookForPlayerData; + [SerializeField] private D_MeleeAttack meleeAttackStateData; + [SerializeField] private D_StunState stunStateData; + [SerializeField] private D_DeadState deadStateData; + [SerializeField] private Transform meleeAttackPosition; + + public override void Start() + { + base.Start(); + + moveState = new E1_MoveState(this, stateMachine, "Move", moveStateData, this); // create Instance + idleState = new E1_IdleState(this, stateMachine, "Idle", idleStateData, this); + playerDetectedState = new E1_PlayerDetectedState(this, stateMachine, "PlayerDetected", playerDetectedData, this); + chargeState = new E1_ChargeState(this, stateMachine, "Charge", chargeStateData, this); + lookForPlayerState = new E1_LookForPlayer(this, stateMachine, "LookForPlayer", lookForPlayerData, this); + meleeAttackState = new E1_MeleeAttackState(this, stateMachine, "MeleeAttack", meleeAttackPosition, meleeAttackStateData, this); + stunState = new E1_StunState(this, stateMachine, "Stun", stunStateData, this); + deadState = new E1_DeadState(this, stateMachine, "Dead", deadStateData, this); + + stateMachine.Initialize(moveState); + } + + public override void OnDrawGizmos() + { + base.OnDrawGizmos(); + + Gizmos.DrawWireSphere(meleeAttackPosition.position, meleeAttackStateData.attackRadius); + } + + public override void Damage(AttackDetails attackDetails) + { + base.Damage(attackDetails); + + if (isDead) + { + stateMachine.ChangeState(deadState); + } + else if (isStunned && stateMachine.currentState != stunState) + { + stateMachine.ChangeState(stunState); + } + + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Enemy1.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Enemy1.cs.meta new file mode 100644 index 0000000..427b808 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Enemy1.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a1fcba6b1a5db63439c38a820a941109 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine.meta new file mode 100644 index 0000000..82215be --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dafc2e0c6c27ab647b6b7a4cd2536504 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/Entity.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/Entity.cs new file mode 100644 index 0000000..b0af402 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/Entity.cs @@ -0,0 +1,169 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// Entity Class is the Base Class for Enemies so all Enemies are going to Inherit Entity class + +public class Entity : MonoBehaviour +{ + public FiniteStateMachine stateMachine; + + public D_Entity entityData; + + public int lastDamageDirection { get; private set; } + public int facingDirection { get; private set; } + public Rigidbody2D rb { get; private set; } + public Animator anim { get; private set; } + public GameObject aliveGO { get; private set; } + public AnimationToStateMachine atsm { get; private set; } + + [SerializeField] private Transform wallCheck; + [SerializeField] private Transform ledgeCheck; + [SerializeField] private Transform playerCheck; + [SerializeField] private Transform groundCheck; + + private float currentHealth; + private float currentStunResistance; + private float lastDamageTime; + + private Vector2 velocityWorkspace; + + protected bool isStunned; + protected bool isDead; + + public virtual void Start() + { + facingDirection = 1; + currentHealth = entityData.maxHealth; + currentStunResistance = entityData.stunResistance; + + aliveGO = transform.Find("Alive").gameObject; + rb = aliveGO.GetComponent(); + anim = aliveGO.GetComponent(); + atsm = aliveGO.GetComponent(); + stateMachine = new FiniteStateMachine(); + } + + public virtual void Update() + { + stateMachine.currentState.LogicUpdate(); + + if (Time.time >= lastDamageTime + entityData.stunRecoveryTime) + { + ResetStunResistance(); + } + } + + public virtual void FixedUpdate() + { + stateMachine.currentState.PhysicsUpdate(); + } + + public virtual void SetVelocity(float _velocity) + { + velocityWorkspace.Set(_velocity * facingDirection, rb.velocity.y); + rb.velocity = velocityWorkspace; + } + + public virtual void SetVelocity(float _velocity, Vector2 angle, int direction) + { + angle.Normalize(); + + velocityWorkspace.Set(angle.x * _velocity * direction, angle.y * _velocity); + rb.velocity = velocityWorkspace; + } + + public virtual bool CheckWall() + { + return Physics2D.Raycast(wallCheck.position, aliveGO.transform.right, entityData.wallCheckDistance, entityData.whatIsGround); + } + + public virtual bool CheckLedge() + { + return Physics2D.Raycast(ledgeCheck.position, Vector2.down, entityData.ledgeCheckDistance, entityData.whatIsGround); + } + + public virtual bool CheckGround() + { + return Physics2D.OverlapCircle(groundCheck.position, entityData.groundCheckRadius, entityData.whatIsGround); + } + + public virtual bool CheckPlayerInMinAgroRange() + { + return Physics2D.Raycast(playerCheck.position, aliveGO.transform.right, entityData.minAgroDistance, entityData.whatIsPlayer); + + } + public virtual bool CheckPlayerInMaxAgroRange() + { + return Physics2D.Raycast(playerCheck.position, aliveGO.transform.right, entityData.maxAgroDistance, entityData.whatIsPlayer); + } + + public virtual bool CheckPlayerInCloseRangeAction() + { + return Physics2D.Raycast(playerCheck.position, aliveGO.transform.right, entityData.closeRangeActionDistance, entityData.whatIsPlayer); + } + + public virtual void ResetStunResistance() + { + isStunned = false; + currentStunResistance = entityData.stunResistance; + } + + public virtual void Damage(AttackDetails attackDetails) + { + lastDamageTime = Time.time; + + currentHealth -= attackDetails.damageAmount; + currentStunResistance -= attackDetails.stunDamageAmount; + + DamageHop(entityData.damageHopSpeed); + + Instantiate(entityData.hitParticle, aliveGO.transform.position, Quaternion.Euler(0f, 0f, Random.Range(0f, 360f))); + + if(attackDetails.position.x > aliveGO.transform.position.x) + { + lastDamageDirection = -1; + } + else + { + lastDamageDirection = 1; + } + + if(currentStunResistance <= 0) + { + isStunned = true; + } + + if(currentHealth <= 0) + { + isDead = true; + } + } + + + public virtual void DamageHop(float velocity) + { + velocityWorkspace.Set(rb.velocity.x, velocity); + rb.velocity = velocityWorkspace; + } + + public virtual void Flip() + { + facingDirection *= -1; + //Vector2 scale = aliveGO.transform.localScale; + //scale.x *= -1.0f; + //aliveGO.transform.localScale = scale; + aliveGO.transform.Rotate(0.0f, -180.0f, 0.0f); + } + + public virtual void OnDrawGizmos() + { + Gizmos.DrawLine(wallCheck.position, wallCheck.position + (Vector3)(Vector2.right * facingDirection * entityData.wallCheckDistance)); + Gizmos.DrawLine(ledgeCheck.position, ledgeCheck.position + (Vector3)(Vector2.down * facingDirection * entityData.ledgeCheckDistance)); + + Gizmos.DrawWireSphere(playerCheck.position + (Vector3)(Vector2.right * entityData.minAgroDistance), 0.2f); + Gizmos.DrawWireSphere(playerCheck.position + (Vector3)(Vector2.right * entityData.maxAgroDistance), 0.2f); + + Gizmos.DrawWireSphere(playerCheck.position + (Vector3)(Vector2.right * entityData.closeRangeActionDistance), 0.2f); + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/Entity.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/Entity.cs.meta new file mode 100644 index 0000000..a70a6d9 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/Entity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e39299202f543944a9f6ed30d6eb253a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/FiniteStateMachine.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/FiniteStateMachine.cs new file mode 100644 index 0000000..1e0dc80 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/FiniteStateMachine.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// FiniteStateMachine class is going to keep track of what State the Enemy is currently in & run the correct code from that State. Keep track of current State. +public class FiniteStateMachine +{ + public State currentState { get; private set; } // Keep track of current state which has public getter and private setter + + public void Initialize(State _startingState) + { + currentState = _startingState; + currentState.Enter(); + } + + public void ChangeState(State _newState) + { + currentState.Exit(); + currentState = _newState; + currentState.Enter(); + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/FiniteStateMachine.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/FiniteStateMachine.cs.meta new file mode 100644 index 0000000..e743535 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/FiniteStateMachine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 650104a22a3dbdf45922f9964004652e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/State.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/State.cs new file mode 100644 index 0000000..e8d3d05 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/State.cs @@ -0,0 +1,50 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/* State class has the every function that all the States should have so Enter, Exit, Normal Update function and Physics Update state. + * So when we create a state like Idle or Move then those are going to be inherited from State class. In our Enemy class we are going to create object of the State */ +public class State +{ + protected FiniteStateMachine stateMachine; // keep track of FiniteStateMachine that it belongs to + protected Entity entity; // keep track of which entity it belongs to + + protected float startTime; + + protected string animBoolName; + + public State(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName) // since we need to create Objects out of these States we need to create Constructor + { + this.entity = _entity; + this.stateMachine = _stateMachine; + this.animBoolName = _animBoolName; + } + + public virtual void Enter() // virtual means thats this function can be redefine in the Derived class + { + startTime = Time.time; + entity.anim.SetBool(animBoolName, true); + + DoChecks(); + } + + public virtual void Exit() + { + entity.anim.SetBool(animBoolName, false); + } + + public virtual void LogicUpdate() + { + + } + + public virtual void PhysicsUpdate() + { + DoChecks(); + } + + public virtual void DoChecks() + { + + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/State.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/State.cs.meta new file mode 100644 index 0000000..d31df04 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/StateMachine/State.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f5f45f11a7820cc4e986237e2cdb6afc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States.meta b/Assets/Scripts/Enemy/States.meta new file mode 100644 index 0000000..99d5ccc --- /dev/null +++ b/Assets/Scripts/Enemy/States.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5837aa1820f50c44da8a9cd131d47e3a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/AttackState.cs b/Assets/Scripts/Enemy/States/AttackState.cs new file mode 100644 index 0000000..339546e --- /dev/null +++ b/Assets/Scripts/Enemy/States/AttackState.cs @@ -0,0 +1,57 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class AttackState : State +{ + protected Transform attackPosition; + + protected bool isAnimationFinished; + protected bool isPlayerInMinAgroRange; + + public AttackState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, Transform _attackPosition) : base(_entity, _stateMachine, _animBoolName) + { + this.attackPosition = _attackPosition; + } + + public override void Enter() + { + base.Enter(); + + isAnimationFinished = false; + entity.atsm.attackState = this; + entity.SetVelocity(0.0f); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } + + public override void DoChecks() + { + base.DoChecks(); + + isPlayerInMinAgroRange = entity.CheckPlayerInMinAgroRange(); + } + + public virtual void TriggerAttack() + { + + } + + public virtual void FinishAttack() + { + isAnimationFinished = true; + } +} diff --git a/Assets/Scripts/Enemy/States/AttackState.cs.meta b/Assets/Scripts/Enemy/States/AttackState.cs.meta new file mode 100644 index 0000000..b549dd5 --- /dev/null +++ b/Assets/Scripts/Enemy/States/AttackState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 61772b62954c84e47be4c694c8c90cdc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/ChargeState.cs b/Assets/Scripts/Enemy/States/ChargeState.cs new file mode 100644 index 0000000..5981bf2 --- /dev/null +++ b/Assets/Scripts/Enemy/States/ChargeState.cs @@ -0,0 +1,62 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ChargeState : State +{ + protected D_ChargeState stateData; + + protected bool isPlayerInMinAgroRange; + protected bool isDetectingLedge; + protected bool isDetectingWall; + protected bool isChargedTimeOver; + protected bool performCloseRangeAction; + + public ChargeState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_ChargeState _stateData) : base(_entity, _stateMachine, _animBoolName) + { + this.stateData = _stateData; + } + + + public override void Enter() + { + base.Enter(); + + isChargedTimeOver = false; + + entity.SetVelocity(stateData.chargeSpeed); + } + + public override void Exit() + { + base.Exit(); + + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + + if (Time.time >= startTime + stateData.chargeTime) + { + isChargedTimeOver = true; + } + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } + + public override void DoChecks() + { + base.DoChecks(); + + isPlayerInMinAgroRange = entity.CheckPlayerInMinAgroRange(); + + isDetectingWall = entity.CheckWall(); + isDetectingLedge = entity.CheckLedge(); + + performCloseRangeAction = entity.CheckPlayerInCloseRangeAction(); + } +} diff --git a/Assets/Scripts/Enemy/States/ChargeState.cs.meta b/Assets/Scripts/Enemy/States/ChargeState.cs.meta new file mode 100644 index 0000000..d2b3eff --- /dev/null +++ b/Assets/Scripts/Enemy/States/ChargeState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 76a96f4b9564cc54c9f6d2bfa89be5b5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/Data.meta b/Assets/Scripts/Enemy/States/Data.meta new file mode 100644 index 0000000..5585e6a --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6be2f227dccaa054fbfb0749db6d5cf4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/Data/D_ChargeState.cs b/Assets/Scripts/Enemy/States/Data/D_ChargeState.cs new file mode 100644 index 0000000..79647d3 --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_ChargeState.cs @@ -0,0 +1,11 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(fileName = "newAssetMenu", menuName = "Data/State Data/Charged State" )] + +public class D_ChargeState : ScriptableObject +{ + public float chargeSpeed = 6.0f; + public float chargeTime = 0.5f; +} diff --git a/Assets/Scripts/Enemy/States/Data/D_ChargeState.cs.meta b/Assets/Scripts/Enemy/States/Data/D_ChargeState.cs.meta new file mode 100644 index 0000000..0ca172d --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_ChargeState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dc0e4fcf4b6fe7f46a744a69b8e9298f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/Data/D_DeadState.cs b/Assets/Scripts/Enemy/States/Data/D_DeadState.cs new file mode 100644 index 0000000..77baa1a --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_DeadState.cs @@ -0,0 +1,11 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(fileName = "newDeadStateData", menuName = "Data/State Data/Dead State")] + +public class D_DeadState : ScriptableObject +{ + public GameObject deathChunkParticle; + public GameObject deathBloodParticle; +} diff --git a/Assets/Scripts/Enemy/States/Data/D_DeadState.cs.meta b/Assets/Scripts/Enemy/States/Data/D_DeadState.cs.meta new file mode 100644 index 0000000..c3efe6d --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_DeadState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e7c0445530c6b6144ac5ee5cbc08edc4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/Data/D_Entity.cs b/Assets/Scripts/Enemy/States/Data/D_Entity.cs new file mode 100644 index 0000000..3abebf4 --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_Entity.cs @@ -0,0 +1,30 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(fileName = "newEntityData", menuName = "Data/Entity Data/Base Data")] + +public class D_Entity : ScriptableObject // we need to create Data objects in Unity & this is something ScriptableObject allows us to do +{ + + public float maxHealth = 30.0f; + + public float damageHopSpeed = 3f; + + public float wallCheckDistance = 0.2f; + public float groundCheckRadius = 0.3f; + public float ledgeCheckDistance = 0.45f; + + public float minAgroDistance = 3f; + public float maxAgroDistance = 4f; + + public float stunResistance = 3f; + public float stunRecoveryTime = 2f; + + public float closeRangeActionDistance = 1.0f; + + public GameObject hitParticle; + + public LayerMask whatIsGround; + public LayerMask whatIsPlayer; +} diff --git a/Assets/Scripts/Enemy/States/Data/D_Entity.cs.meta b/Assets/Scripts/Enemy/States/Data/D_Entity.cs.meta new file mode 100644 index 0000000..3b1cb0f --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_Entity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 57df72b3fdb53634da7bfbc546142b09 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/Data/D_IdleState.cs b/Assets/Scripts/Enemy/States/Data/D_IdleState.cs new file mode 100644 index 0000000..f855048 --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_IdleState.cs @@ -0,0 +1,12 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(fileName = "newIdleStateData", menuName = "Data/State Data/Idle State")] + + +public class D_IdleState : ScriptableObject +{ + public float minIdleTime = 0.5f; + public float maxIdleTime = 1.5f; +} diff --git a/Assets/Scripts/Enemy/States/Data/D_IdleState.cs.meta b/Assets/Scripts/Enemy/States/Data/D_IdleState.cs.meta new file mode 100644 index 0000000..93f7578 --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_IdleState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aaab811baedddc44f882613071bf592f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/Data/D_LookForPlayer.cs b/Assets/Scripts/Enemy/States/Data/D_LookForPlayer.cs new file mode 100644 index 0000000..3351a4b --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_LookForPlayer.cs @@ -0,0 +1,11 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(fileName = "newLookForPlayerData", menuName = "Data/State Data/Look For Player State")] + +public class D_LookForPlayer : ScriptableObject +{ + public int amountOfTurn = 2; + public float timeBetweenTurn = 0.75f; +} diff --git a/Assets/Scripts/Enemy/States/Data/D_LookForPlayer.cs.meta b/Assets/Scripts/Enemy/States/Data/D_LookForPlayer.cs.meta new file mode 100644 index 0000000..207a66f --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_LookForPlayer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6abb59b9e5f6f384a86c54828ca11e8a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/Data/D_MeleeAttack.cs b/Assets/Scripts/Enemy/States/Data/D_MeleeAttack.cs new file mode 100644 index 0000000..24e815b --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_MeleeAttack.cs @@ -0,0 +1,13 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(fileName = "newMeleeAttackData", menuName = "Data/State Data/Melee Attack")] + +public class D_MeleeAttack : ScriptableObject +{ + public float attackRadius = 0.5f; + public float attackDamage = 10.0f; + + public LayerMask whatIsPlayer; +} diff --git a/Assets/Scripts/Enemy/States/Data/D_MeleeAttack.cs.meta b/Assets/Scripts/Enemy/States/Data/D_MeleeAttack.cs.meta new file mode 100644 index 0000000..e63f105 --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_MeleeAttack.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 560f685b14fc1394db4a9cad9df5234a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/Data/D_MoveState.cs b/Assets/Scripts/Enemy/States/Data/D_MoveState.cs new file mode 100644 index 0000000..da6f224 --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_MoveState.cs @@ -0,0 +1,12 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(fileName = "newMoveStateData", menuName = "Data/State Data/Move State")] + + +public class D_MoveState : ScriptableObject // Scriptable object is a Data Container to save large amount of data independent of Class Intances +{ + public float movementSpeed = 3f; + +} diff --git a/Assets/Scripts/Enemy/States/Data/D_MoveState.cs.meta b/Assets/Scripts/Enemy/States/Data/D_MoveState.cs.meta new file mode 100644 index 0000000..9c558f1 --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_MoveState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 29d0f54a61c9b044fa3173897f9af062 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/Data/D_PlayerDetectedState.cs b/Assets/Scripts/Enemy/States/Data/D_PlayerDetectedState.cs new file mode 100644 index 0000000..f7c54bf --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_PlayerDetectedState.cs @@ -0,0 +1,10 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(fileName = "newPlayerDetectedData", menuName = "Data/State Data/Player Detected State")] + +public class D_PlayerDetectedState : ScriptableObject +{ + public float LongRangeActionTime = 1.5f; +} diff --git a/Assets/Scripts/Enemy/States/Data/D_PlayerDetectedState.cs.meta b/Assets/Scripts/Enemy/States/Data/D_PlayerDetectedState.cs.meta new file mode 100644 index 0000000..7ddab4b --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_PlayerDetectedState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aab07c177bd811f43bd49f2e24716e9f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/Data/D_StunState.cs b/Assets/Scripts/Enemy/States/Data/D_StunState.cs new file mode 100644 index 0000000..7bb8eb3 --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_StunState.cs @@ -0,0 +1,14 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +[CreateAssetMenu(fileName = "newStunStateData", menuName = "Data/State Data/Stun State")] +public class D_StunState : ScriptableObject +{ + public float stunTime = 0.5f; + + public float stunKnockbackTime = 0.2f; + + public float stunKnockbackSpeed = 15f; + + public Vector2 stunKnockBackAngle; +} diff --git a/Assets/Scripts/Enemy/States/Data/D_StunState.cs.meta b/Assets/Scripts/Enemy/States/Data/D_StunState.cs.meta new file mode 100644 index 0000000..869afed --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_StunState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 293c4a86afd9c2e44845e9642d325193 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/DeadState.cs b/Assets/Scripts/Enemy/States/DeadState.cs new file mode 100644 index 0000000..a079848 --- /dev/null +++ b/Assets/Scripts/Enemy/States/DeadState.cs @@ -0,0 +1,42 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class DeadState : State +{ + protected D_DeadState stateData; + + public DeadState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_DeadState _stateData) : base(_entity, _stateMachine, _animBoolName) + { + this.stateData = _stateData; + } + + public override void Enter() + { + base.Enter(); + + GameObject.Instantiate(stateData.deathBloodParticle, entity.aliveGO.transform.position, stateData.deathBloodParticle.transform.rotation); + GameObject.Instantiate(stateData.deathChunkParticle, entity.aliveGO.transform.position, stateData.deathChunkParticle.transform.rotation); + + entity.gameObject.SetActive(false); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } + public override void DoChecks() + { + base.DoChecks(); + } +} diff --git a/Assets/Scripts/Enemy/States/DeadState.cs.meta b/Assets/Scripts/Enemy/States/DeadState.cs.meta new file mode 100644 index 0000000..15798a0 --- /dev/null +++ b/Assets/Scripts/Enemy/States/DeadState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b6ce66e39ae134e45b570dec3d9f6d69 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/IdleState.cs b/Assets/Scripts/Enemy/States/IdleState.cs new file mode 100644 index 0000000..a03333b --- /dev/null +++ b/Assets/Scripts/Enemy/States/IdleState.cs @@ -0,0 +1,67 @@ +using UnityEngine; + +public class IdleState : State +{ + protected D_IdleState stateData; + + protected bool flipAfterIdle; + protected bool isIdleTimeOver; + protected bool isPlayerDetectedInMinAgroRange; + + protected float idleTime; + public IdleState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_IdleState _stateData) : base(_entity, _stateMachine, _animBoolName) + { + this.stateData = _stateData; + } + + + public override void Enter() + { + base.Enter(); + entity.SetVelocity(0f); + isIdleTimeOver = false; + SetRandomIdleTime(); + } + + public override void Exit() + { + base.Exit(); + + if (flipAfterIdle) + { + entity.Flip(); + } + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + + if (Time.time >= startTime + idleTime) + { + isIdleTimeOver = true; + } + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } + + public void SetFlipAfterIdle(bool _flip) // Setter for flipAfterIdle + { + flipAfterIdle = _flip; + } + + private void SetRandomIdleTime() + { + idleTime = Random.Range(stateData.minIdleTime, stateData.maxIdleTime); + } + + public override void DoChecks() + { + base.DoChecks(); + + isPlayerDetectedInMinAgroRange = entity.CheckPlayerInMinAgroRange(); + } +} diff --git a/Assets/Scripts/Enemy/States/IdleState.cs.meta b/Assets/Scripts/Enemy/States/IdleState.cs.meta new file mode 100644 index 0000000..90a0a3b --- /dev/null +++ b/Assets/Scripts/Enemy/States/IdleState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 93e820c7c1bd8a247a1c90e9d591e4a9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/LookForPlayerState.cs b/Assets/Scripts/Enemy/States/LookForPlayerState.cs new file mode 100644 index 0000000..938180b --- /dev/null +++ b/Assets/Scripts/Enemy/States/LookForPlayerState.cs @@ -0,0 +1,88 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LookForPlayerState : State +{ + + protected D_LookForPlayer stateData; + + protected bool isPlayerInMinAgroRange; + protected bool isAllTurnsDone; + protected bool isAllTurnsTimeDone; + protected bool turnImmediately; + + protected float lastTurnTime; + + protected int amountOfTurnsDone; + + public LookForPlayerState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_LookForPlayer _stateData) : base(_entity, _stateMachine, _animBoolName) + { + this.stateData = _stateData; + } + + + public override void Enter() + { + base.Enter(); + + isAllTurnsDone = false; + isAllTurnsTimeDone = false; + + lastTurnTime = startTime; + amountOfTurnsDone = 0; + entity.SetVelocity(0.0f); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + + if (turnImmediately) + { + entity.Flip(); + lastTurnTime = Time.time; + amountOfTurnsDone++; + turnImmediately = false; + } + else if(Time.time >= lastTurnTime + stateData.timeBetweenTurn && !isAllTurnsDone) + { + entity.Flip(); + lastTurnTime = Time.time; + amountOfTurnsDone++; + } + + if(amountOfTurnsDone >= stateData.amountOfTurn) + { + isAllTurnsDone = true; + } + + if (Time.time >= lastTurnTime + stateData.timeBetweenTurn && isAllTurnsDone) + { + isAllTurnsTimeDone = true; + } + + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } + + public override void DoChecks() + { + base.DoChecks(); + + isPlayerInMinAgroRange = entity.CheckPlayerInMinAgroRange(); + } + + public void SetTurnImmediately(bool flip) + { + turnImmediately = flip; + } +} diff --git a/Assets/Scripts/Enemy/States/LookForPlayerState.cs.meta b/Assets/Scripts/Enemy/States/LookForPlayerState.cs.meta new file mode 100644 index 0000000..0526c08 --- /dev/null +++ b/Assets/Scripts/Enemy/States/LookForPlayerState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 59663a487140a6c499785239143023b1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/MeleeAttackState.cs b/Assets/Scripts/Enemy/States/MeleeAttackState.cs new file mode 100644 index 0000000..581dba4 --- /dev/null +++ b/Assets/Scripts/Enemy/States/MeleeAttackState.cs @@ -0,0 +1,60 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class MeleeAttackState : AttackState +{ + protected D_MeleeAttack stateData; + + protected AttackDetails attackDetails; + + public MeleeAttackState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, Transform _attackPosition, D_MeleeAttack _stateData) : base(_entity, _stateMachine, _animBoolName, _attackPosition) + { + this.stateData = _stateData; + } + + public override void Enter() + { + base.Enter(); + + attackDetails.damageAmount = stateData.attackDamage; + attackDetails.position = entity.aliveGO.transform.position; + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + } + + public override void DoChecks() + { + base.DoChecks(); + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } + + public override void TriggerAttack() + { + base.TriggerAttack(); + + Collider2D[] detectedObjects = Physics2D.OverlapCircleAll(attackPosition.position, stateData.attackRadius, stateData.whatIsPlayer); + + foreach (Collider2D collider in detectedObjects) + { + collider.transform.SendMessage("Damage", attackDetails); + } + } + + public override void FinishAttack() + { + base.FinishAttack(); + } +} diff --git a/Assets/Scripts/Enemy/States/MeleeAttackState.cs.meta b/Assets/Scripts/Enemy/States/MeleeAttackState.cs.meta new file mode 100644 index 0000000..07ee218 --- /dev/null +++ b/Assets/Scripts/Enemy/States/MeleeAttackState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 30c4e041d3ef094489acb7a9ec2899aa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/MoveState.cs b/Assets/Scripts/Enemy/States/MoveState.cs new file mode 100644 index 0000000..1b26543 --- /dev/null +++ b/Assets/Scripts/Enemy/States/MoveState.cs @@ -0,0 +1,46 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class MoveState : State +{ + protected D_MoveState stateData; + + protected bool isTouchingWall; + protected bool isDetectingLedge; + protected bool isPlayerDetectedInMinAgroRange; + public MoveState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_MoveState _stateData) : base(_entity, _stateMachine, _animBoolName) + { + this.stateData = _stateData; + } + + + public override void Enter() + { + base.Enter(); + + entity.SetVelocity(stateData.movementSpeed); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } + public override void DoChecks() + { + base.DoChecks(); + isDetectingLedge = entity.CheckLedge(); + isTouchingWall = entity.CheckWall(); + isPlayerDetectedInMinAgroRange = entity.CheckPlayerInMinAgroRange(); + } +} diff --git a/Assets/Scripts/Enemy/States/MoveState.cs.meta b/Assets/Scripts/Enemy/States/MoveState.cs.meta new file mode 100644 index 0000000..347f194 --- /dev/null +++ b/Assets/Scripts/Enemy/States/MoveState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9abc71b4ae025ab4c9df4152edb86378 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/PlayerDetectedState.cs b/Assets/Scripts/Enemy/States/PlayerDetectedState.cs new file mode 100644 index 0000000..b745932 --- /dev/null +++ b/Assets/Scripts/Enemy/States/PlayerDetectedState.cs @@ -0,0 +1,61 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class PlayerDetectedState : State +{ + protected D_PlayerDetectedState stateData; + + protected bool isPlayerInMinAgroRange; + protected bool isPlayerInMaxAgroRange; + protected bool performLongRangeAction; + protected bool performCloseRangeAction; + protected bool isDetectingLedge; + + public PlayerDetectedState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_PlayerDetectedState _stateData) : base(_entity, _stateMachine, _animBoolName) + { + this.stateData = _stateData; + } + + + public override void Enter() + { + base.Enter(); + + performLongRangeAction = false; + + entity.SetVelocity(0.0f); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + + if(Time.time >= startTime + stateData.LongRangeActionTime) + { + performLongRangeAction = true; + } + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + + } + public override void DoChecks() + { + base.DoChecks(); + + isDetectingLedge = entity.CheckLedge(); + + isPlayerInMinAgroRange = entity.CheckPlayerInMinAgroRange(); // check if Player is in minimum agro range of Enemy + isPlayerInMaxAgroRange = entity.CheckPlayerInMaxAgroRange(); // check if Player is in maximum agro range of Enemy + + performCloseRangeAction = entity.CheckPlayerInCloseRangeAction(); //check for melee attack + } +} diff --git a/Assets/Scripts/Enemy/States/PlayerDetectedState.cs.meta b/Assets/Scripts/Enemy/States/PlayerDetectedState.cs.meta new file mode 100644 index 0000000..b6b766f --- /dev/null +++ b/Assets/Scripts/Enemy/States/PlayerDetectedState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 69e0f615e40307c48b53b7c7437a671c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/StunState.cs b/Assets/Scripts/Enemy/States/StunState.cs new file mode 100644 index 0000000..45306ec --- /dev/null +++ b/Assets/Scripts/Enemy/States/StunState.cs @@ -0,0 +1,65 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class StunState : State +{ + protected D_StunState stateData; + + protected bool isStunTimeOver; + protected bool isGrounded; + protected bool isMovementStopped; + protected bool performCloseRangeAction; + protected bool isPlayerInMinAgroRange; + + public StunState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_StunState _stateData) : base(_entity, _stateMachine, _animBoolName) + { + this.stateData = _stateData; + } + + public override void Enter() + { + base.Enter(); + + isStunTimeOver = false; + isMovementStopped = false; + + entity.SetVelocity(stateData.stunKnockbackSpeed, stateData.stunKnockBackAngle, entity.lastDamageDirection); + } + + public override void Exit() + { + base.Exit(); + entity.ResetStunResistance(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + + if (Time.time > startTime + stateData.stunTime) + { + isStunTimeOver = true; + } + + if(isGrounded && Time.time > startTime + stateData.stunKnockbackTime && !isMovementStopped) + { + isMovementStopped = true; + entity.SetVelocity(0f); + } + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } + + public override void DoChecks() + { + base.DoChecks(); + + isGrounded = entity.CheckGround(); + performCloseRangeAction = entity.CheckPlayerInCloseRangeAction(); + isPlayerInMinAgroRange = entity.CheckPlayerInMinAgroRange(); + } +} diff --git a/Assets/Scripts/Enemy/States/StunState.cs.meta b/Assets/Scripts/Enemy/States/StunState.cs.meta new file mode 100644 index 0000000..beea962 --- /dev/null +++ b/Assets/Scripts/Enemy/States/StunState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 73b879997d81a4f4b9fc95dd62e7766e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Player/PlayerCombatController.cs b/Assets/Scripts/Player/PlayerCombatController.cs index 1aa90fe..00f2725 100644 --- a/Assets/Scripts/Player/PlayerCombatController.cs +++ b/Assets/Scripts/Player/PlayerCombatController.cs @@ -3,14 +3,14 @@ public class PlayerCombatController : MonoBehaviour { [SerializeField] private bool combatEnabled; // control whether we want our character to Attack/Hit other GO or not - [SerializeField] private float inputTimer, attack1Radius, attack1Damage; + [SerializeField] private float inputTimer, attack1Radius, attack1Damage, stunDamageAmount = 1f; [SerializeField] private Transform attackHitBoxPos; // store a ref to GO we will create as a child to Player & allow HitBox where we want [SerializeField] private LayerMask whatIsDamagable; // this will tell what all objects need to be detected as damagable & what not. private bool gotInput, isAttacking, isFirstAttack; // hold the input from player so if player hit just before he is able to hit, the player will still hit once he is able to hit private float lastInputTime = Mathf.NegativeInfinity; // will store last time player had attacked & mathf.negativeInfinity will always attack from the start of the game - private float[] attackDetails = new float[2]; + private AttackDetails attackDetails; //Ref private Animator anim; // hold the ref to Animator component private PlayerController player; @@ -69,8 +69,9 @@ private void CheckHitBox() // det { Collider2D[] detectedObject = Physics2D.OverlapCircleAll(attackHitBoxPos.position, attack1Radius, whatIsDamagable); - attackDetails[0] = attack1Damage; - attackDetails[1] = transform.position.x; + attackDetails.damageAmount = attack1Damage; + attackDetails.position = transform.position; + attackDetails.stunDamageAmount = stunDamageAmount; foreach (Collider2D col in detectedObject) { @@ -86,15 +87,15 @@ private void FinishAttack1() // it anim.SetBool("attack1", false); } - private void Damage(float[] _attackDetails) + private void Damage(AttackDetails _attackDetails) { if (!player.GetDashStatus()) { int direction; - playerStats.DecreaseHealth(attackDetails[0]); // damage player here using attackDeatails[0] + playerStats.DecreaseHealth(attackDetails.damageAmount); // damage player here using attackDeatails[0] - if (_attackDetails[1] < transform.position.x) + if (attackDetails.position.x < transform.position.x) { direction = 1; } diff --git a/Assets/Scripts/Structs.meta b/Assets/Scripts/Structs.meta new file mode 100644 index 0000000..fd14517 --- /dev/null +++ b/Assets/Scripts/Structs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 876fe8bdbc059b94d8dd7247491328be +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Structs/AttackDetails.cs b/Assets/Scripts/Structs/AttackDetails.cs new file mode 100644 index 0000000..9ea9c82 --- /dev/null +++ b/Assets/Scripts/Structs/AttackDetails.cs @@ -0,0 +1,10 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public struct AttackDetails +{ + public Vector2 position; + public float damageAmount; + public float stunDamageAmount; +} diff --git a/Assets/Scripts/Structs/AttackDetails.cs.meta b/Assets/Scripts/Structs/AttackDetails.cs.meta new file mode 100644 index 0000000..ce50e36 --- /dev/null +++ b/Assets/Scripts/Structs/AttackDetails.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2e59c46664229d84e9c3ffd68396d194 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Sprites/Enemy/Enemy 1.2.png b/Assets/Sprites/Enemy/Enemy 1.2.png deleted file mode 100644 index a2b808b..0000000 Binary files a/Assets/Sprites/Enemy/Enemy 1.2.png and /dev/null differ diff --git a/Assets/Sprites/Enemy/Enemy 1.png b/Assets/Sprites/Enemy/Enemy 1.png new file mode 100644 index 0000000..05455ba Binary files /dev/null and b/Assets/Sprites/Enemy/Enemy 1.png differ diff --git a/Assets/Sprites/Enemy/Enemy 1.2.png.meta b/Assets/Sprites/Enemy/Enemy 1.png.meta similarity index 64% rename from Assets/Sprites/Enemy/Enemy 1.2.png.meta rename to Assets/Sprites/Enemy/Enemy 1.png.meta index bd64e55..5c6d5cb 100644 --- a/Assets/Sprites/Enemy/Enemy 1.2.png.meta +++ b/Assets/Sprites/Enemy/Enemy 1.png.meta @@ -1,61 +1,73 @@ fileFormatVersion: 2 -guid: 3bb687d3e4e625245b3d010df27f3a6d +guid: e77d92723044c9d4f8e8a7c82573d073 TextureImporter: internalIDToNameTable: - first: - 213: 6369384564468328029 - second: Enemy 1.2_0 + 213: 7942249098920568159 + second: Enemy 1_0 - first: - 213: 6138185936412383962 - second: Enemy 1.2_1 + 213: 6294125324160034484 + second: Enemy 1_1 - first: - 213: -275327403722753088 - second: Enemy 1.2_2 + 213: 5845606359538220865 + second: Enemy 1_2 - first: - 213: 850753403565259673 - second: Enemy 1.2_3 + 213: 7559897690265657476 + second: Enemy 1_3 - first: - 213: 3471711084143634667 - second: Enemy 1.2_4 + 213: -4821758819355737828 + second: Enemy 1_4 - first: - 213: -3991021883962996350 - second: Enemy 1.2_5 + 213: 4027105108782761397 + second: Enemy 1_5 - first: - 213: -5760543911693439659 - second: Enemy 1.2_6 + 213: -4356277145322495249 + second: Enemy 1_6 - first: - 213: -3974637543865793226 - second: Enemy 1.2_7 + 213: -4536786074267818148 + second: Enemy 1_7 - first: - 213: -5594722903381117994 - second: Enemy 1.2_8 + 213: 6469914809321751411 + second: Enemy 1_8 - first: - 213: 6200630191683923526 - second: Enemy 1.2_9 + 213: -2540635606737711782 + second: Enemy 1_9 - first: - 213: -3627136891024772522 - second: Enemy 1.2_10 + 213: 8571016785330678217 + second: Enemy 1_10 - first: - 213: 8363528568878816504 - second: Enemy 1.2_11 + 213: -6999863032711394166 + second: Enemy 1_11 - first: - 213: -1198644127468891106 - second: Enemy 1.2_12 + 213: -7306169539634696901 + second: Enemy 1_12 - first: - 213: 3094342574952375879 - second: Enemy 1.2_13 + 213: -1145555792994578308 + second: Enemy 1_13 - first: - 213: 7492954755084660316 - second: Enemy 1.2_14 + 213: -5680426439555403407 + second: Enemy 1_14 - first: - 213: -2871824185258403877 - second: Enemy 1.2_15 + 213: 2624123026477953508 + second: Enemy 1_15 - first: - 213: -4890390274435696291 - second: Enemy 1.2_16 + 213: -4634043128709410468 + second: Enemy 1_16 - first: - 213: -3698650164525975811 - second: Enemy 1.2_17 + 213: -6204320956982381673 + second: Enemy 1_17 + - first: + 213: 4182601990571434440 + second: Enemy 1_18 + - first: + 213: -3033029466344800901 + second: Enemy 1_19 + - first: + 213: -4838196666909180953 + second: Enemy 1_20 + - first: + 213: 3542500663635982729 + second: Enemy 1_21 externalObjects: {} serializedVersion: 11 mipmaps: @@ -137,18 +149,6 @@ TextureImporter: overridden: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Windows Store Apps - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Android maxTextureSize: 2048 @@ -165,11 +165,11 @@ TextureImporter: serializedVersion: 2 sprites: - serializedVersion: 2 - name: Enemy 1.2_0 + name: Enemy 1_0 rect: serializedVersion: 2 x: 0 - y: 128 + y: 192 width: 64 height: 64 alignment: 0 @@ -179,18 +179,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: d56adf2d389946850800000000000000 - internalID: 6369384564468328029 + spriteID: f55a3d2c979883e60800000000000000 + internalID: 7942249098920568159 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_1 + name: Enemy 1_1 rect: serializedVersion: 2 x: 64 - y: 128 + y: 192 width: 64 height: 64 alignment: 0 @@ -200,18 +200,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: ada982176973f2550800000000000000 - internalID: 6138185936412383962 + spriteID: 4b6695672a9395750800000000000000 + internalID: 6294125324160034484 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_2 + name: Enemy 1_2 rect: serializedVersion: 2 x: 128 - y: 128 + y: 192 width: 64 height: 64 alignment: 0 @@ -221,18 +221,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 0cbbc206f27dd2cf0800000000000000 - internalID: -275327403722753088 + spriteID: 14f3a0d3304cf1150800000000000000 + internalID: 5845606359538220865 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_3 + name: Enemy 1_3 rect: serializedVersion: 2 x: 192 - y: 128 + y: 192 width: 64 height: 64 alignment: 0 @@ -242,18 +242,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 99b36fa86bb7ecb00800000000000000 - internalID: 850753403565259673 + spriteID: 480a49e25e62ae860800000000000000 + internalID: 7559897690265657476 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_4 + name: Enemy 1_4 rect: serializedVersion: 2 x: 256 - y: 128 + y: 192 width: 64 height: 64 alignment: 0 @@ -263,18 +263,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: be8ea2d46defd2030800000000000000 - internalID: 3471711084143634667 + spriteID: c11c1bb86eba51db0800000000000000 + internalID: -4821758819355737828 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_5 + name: Enemy 1_5 rect: serializedVersion: 2 x: 320 - y: 128 + y: 192 width: 64 height: 64 alignment: 0 @@ -284,18 +284,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 289439bedba0d98c0800000000000000 - internalID: -3991021883962996350 + spriteID: 5b5482a82c623e730800000000000000 + internalID: 4027105108782761397 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_6 + name: Enemy 1_6 rect: serializedVersion: 2 x: 384 - y: 128 + y: 192 width: 64 height: 64 alignment: 0 @@ -305,17 +305,38 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 55d297e35df6e00b0800000000000000 - internalID: -5760543911693439659 + spriteID: fe266e154056b83c0800000000000000 + internalID: -4356277145322495249 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_7 + name: Enemy 1_7 rect: serializedVersion: 2 x: 448 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: c57e3553a191a01c0800000000000000 + internalID: -4536786074267818148 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Enemy 1_8 + rect: + serializedVersion: 2 + x: 0 y: 128 width: 64 height: 64 @@ -326,14 +347,77 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 635c2fe563047d8c0800000000000000 - internalID: -3974637543865793226 + spriteID: 37389a07d31c9c950800000000000000 + internalID: 6469914809321751411 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_8 + name: Enemy 1_9 + rect: + serializedVersion: 2 + x: 64 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a5d80b46069ddbcd0800000000000000 + internalID: -2540635606737711782 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Enemy 1_10 + rect: + serializedVersion: 2 + x: 128 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 9c9ab85ea5e52f670800000000000000 + internalID: 8571016785330678217 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Enemy 1_11 + rect: + serializedVersion: 2 + x: 192 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a8c49da98ad7bde90800000000000000 + internalID: -6999863032711394166 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Enemy 1_12 rect: serializedVersion: 2 x: 0 @@ -347,14 +431,14 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 6d3f937592d8b52b0800000000000000 - internalID: -5594722903381117994 + spriteID: b3d6b4173854b9a90800000000000000 + internalID: -7306169539634696901 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_9 + name: Enemy 1_13 rect: serializedVersion: 2 x: 64 @@ -368,14 +452,14 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 64ee1e69e401d0650800000000000000 - internalID: 6200630191683923526 + spriteID: c70da20631b2a10f0800000000000000 + internalID: -1145555792994578308 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_10 + name: Enemy 1_14 rect: serializedVersion: 2 x: 128 @@ -389,14 +473,14 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 652f0ca0732d9adc0800000000000000 - internalID: -3627136891024772522 + spriteID: 1713099df321b21b0800000000000000 + internalID: -5680426439555403407 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_11 + name: Enemy 1_15 rect: serializedVersion: 2 x: 192 @@ -410,18 +494,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 8fc5ad8ebe8311470800000000000000 - internalID: 8363528568878816504 + spriteID: 4e134284df1ca6420800000000000000 + internalID: 2624123026477953508 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_12 + name: Enemy 1_16 rect: serializedVersion: 2 - x: 0 - y: 0 + x: 256 + y: 64 width: 64 height: 64 alignment: 0 @@ -431,18 +515,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: e14db1a448f8d5fe0800000000000000 - internalID: -1198644127468891106 + spriteID: c519f6f935290bfb0800000000000000 + internalID: -4634043128709410468 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_13 + name: Enemy 1_17 rect: serializedVersion: 2 - x: 64 - y: 0 + x: 320 + y: 64 width: 64 height: 64 alignment: 0 @@ -452,17 +536,17 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 74667696d2051fa20800000000000000 - internalID: 3094342574952375879 + spriteID: 793bd8626f2d5e9a0800000000000000 + internalID: -6204320956982381673 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_14 + name: Enemy 1_18 rect: serializedVersion: 2 - x: 128 + x: 0 y: 0 width: 64 height: 64 @@ -473,17 +557,17 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: c5e25ee76a25cf760800000000000000 - internalID: 7492954755084660316 + spriteID: 8c12adc99569b0a30800000000000000 + internalID: 4182601990571434440 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_15 + name: Enemy 1_19 rect: serializedVersion: 2 - x: 192 + x: 64 y: 0 width: 64 height: 64 @@ -494,17 +578,17 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: bd71c4c7e1b3528d0800000000000000 - internalID: -2871824185258403877 + spriteID: b7db93125c388e5d0800000000000000 + internalID: -3033029466344800901 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_16 + name: Enemy 1_20 rect: serializedVersion: 2 - x: 256 + x: 128 y: 0 width: 64 height: 64 @@ -515,17 +599,17 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: d593c3fa4f7d12cb0800000000000000 - internalID: -4890390274435696291 + spriteID: 7eb366be3c54bdcb0800000000000000 + internalID: -4838196666909180953 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_17 + name: Enemy 1_21 rect: serializedVersion: 2 - x: 320 + x: 192 y: 0 width: 64 height: 64 @@ -536,8 +620,8 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: df63dfa8541cbacc0800000000000000 - internalID: -3698650164525975811 + spriteID: 989bb98a59d792130800000000000000 + internalID: 3542500663635982729 vertices: [] indices: edges: []