From 37d1462032e920196fa2a8cfb149e4fbe1a2355d Mon Sep 17 00:00:00 2001 From: Nadar Date: Sun, 17 Mar 2024 00:00:54 +0300 Subject: [PATCH] #2 CDELAL --- .../Animations/EnemyController.controller | 445 +++++++++--------- .../Characters/Enemy/EnemyController.cs | 132 +----- .../PersonController/BasicRigidBodyPush.cs | 5 - .../PersonController/Interactions.cs | 13 +- .../PersonController/PersonController.cs | 12 +- 5 files changed, 264 insertions(+), 343 deletions(-) diff --git a/Assets/Characters/AlienCharacter/Animations/EnemyController.controller b/Assets/Characters/AlienCharacter/Animations/EnemyController.controller index 98dfd64..e5ece29 100644 --- a/Assets/Characters/AlienCharacter/Animations/EnemyController.controller +++ b/Assets/Characters/AlienCharacter/Animations/EnemyController.controller @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1101 &-6232032248366544017 +--- !u!1101 &-6818529094234887481 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} @@ -12,19 +12,71 @@ AnimatorStateTransition: m_ConditionEvent: attack m_EventTreshold: 0 m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: 1102850212276232830} + m_DstState: {fileID: 6469307968501949992} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.38631588 + m_TransitionOffset: 0 + m_ExitTime: 0.000000018719188 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-5992129908580872030 +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: attack + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 6469307968501949992} m_Solo: 0 m_Mute: 0 m_IsExit: 0 serializedVersion: 3 m_TransitionDuration: 0.25 m_TransitionOffset: 0 - m_ExitTime: 0.6875 - m_HasExitTime: 0 + m_ExitTime: 0.94186044 + m_HasExitTime: 1 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 +--- !u!1102 &-5914887121904355405 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: z fall to bite and stand 0 + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 4133929114904890219} + 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: -203655887218126122, guid: 9175fddd2326b1545ac71cf4346baa83, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1101 &-4063881565528374387 AnimatorStateTransition: m_ObjectHideFlags: 1 @@ -50,7 +102,7 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 ---- !u!1101 &-1801186109566512774 +--- !u!1101 &-3088080077202337175 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} @@ -59,19 +111,44 @@ AnimatorStateTransition: m_Name: m_Conditions: [] m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: 0} + m_DstState: {fileID: 1102751178008254848} m_Solo: 0 m_Mute: 0 - m_IsExit: 1 + m_IsExit: 0 serializedVersion: 3 m_TransitionDuration: 0.25 m_TransitionOffset: 0 - m_ExitTime: 0.765625 + m_ExitTime: 0.94 m_HasExitTime: 1 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 +--- !u!1101 &-2680946984351937023 +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: damage + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -5914887121904355405} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 1.10299 + m_TransitionOffset: 0 + m_ExitTime: 0.080844834 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1101 &-1746738016173991043 AnimatorStateTransition: m_ObjectHideFlags: 1 @@ -106,36 +183,42 @@ AnimatorController: m_Name: EnemyController serializedVersion: 5 m_AnimatorParameters: - - m_Name: speed - m_Type: 1 - m_DefaultFloat: 0 - m_DefaultInt: 0 - m_DefaultBool: 0 - m_Controller: {fileID: 9100000} - - m_Name: attack - m_Type: 9 - m_DefaultFloat: 0 - m_DefaultInt: 0 - m_DefaultBool: 0 - m_Controller: {fileID: 9100000} - m_Name: damage m_Type: 9 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 9100000} + m_Controller: {fileID: 0} + - m_Name: speed + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} - m_Name: death m_Type: 9 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 9100000} + m_Controller: {fileID: 0} - m_Name: angularspeed m_Type: 1 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 9100000} + m_Controller: {fileID: 0} + - m_Name: stun + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: attack + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer @@ -188,31 +271,6 @@ BlendTree: m_UseAutomaticThresholds: 0 m_NormalizedBlendValues: 0 m_BlendType: 3 ---- !u!1101 &1046002043389130723 -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: damage - m_EventTreshold: 0 - m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: 1102338065620714850} - m_Solo: 0 - m_Mute: 0 - m_IsExit: 0 - serializedVersion: 3 - m_TransitionDuration: 0.25 - m_TransitionOffset: 0 - m_ExitTime: 0.75 - m_HasExitTime: 0 - m_HasFixedDuration: 1 - m_InterruptionSource: 0 - m_OrderedInterruption: 1 - m_CanTransitionToSelf: 1 --- !u!1101 &1101067943808544730 AnimatorStateTransition: m_ObjectHideFlags: 1 @@ -238,78 +296,6 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 ---- !u!1101 &1101567344336423536 -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: attack - m_EventTreshold: 0 - m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: 1102850212276232830} - m_Solo: 0 - m_Mute: 0 - m_IsExit: 0 - serializedVersion: 3 - m_TransitionDuration: 0.25 - m_TransitionOffset: 0 - m_ExitTime: 0.8655914 - m_HasExitTime: 0 - m_HasFixedDuration: 1 - m_InterruptionSource: 0 - m_OrderedInterruption: 1 - m_CanTransitionToSelf: 1 ---- !u!1101 &1101706176895985570 -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: attack - m_EventTreshold: 0 - m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: 1102850212276232830} - m_Solo: 0 - m_Mute: 0 - m_IsExit: 0 - serializedVersion: 3 - m_TransitionDuration: 0.25 - m_TransitionOffset: 0 - m_ExitTime: 0.87684727 - m_HasExitTime: 0 - m_HasFixedDuration: 1 - m_InterruptionSource: 0 - m_OrderedInterruption: 1 - m_CanTransitionToSelf: 1 ---- !u!1101 &1101834332879401448 -AnimatorStateTransition: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - m_Conditions: [] - m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: 1102751178008254848} - m_Solo: 0 - m_Mute: 0 - m_IsExit: 0 - serializedVersion: 3 - m_TransitionDuration: 0.25 - m_TransitionOffset: 0 - m_ExitTime: 0.8943662 - m_HasExitTime: 1 - m_HasFixedDuration: 1 - m_InterruptionSource: 0 - m_OrderedInterruption: 1 - m_CanTransitionToSelf: 1 --- !u!1101 &1101976969126293670 AnimatorStateTransition: m_ObjectHideFlags: 1 @@ -335,59 +321,6 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 ---- !u!1102 &1102006803148897358 -AnimatorState: - serializedVersion: 6 - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: 10-death_fall_backward - 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: -203655887218126122, guid: b22721dd9d763f048bbebcff37d247ad, type: 3} - m_Tag: - m_SpeedParameter: - m_MirrorParameter: - m_CycleOffsetParameter: - m_TimeParameter: ---- !u!1102 &1102338065620714850 -AnimatorState: - serializedVersion: 6 - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: 3-great_damage_torso_front - m_Speed: 1 - m_CycleOffset: 0 - m_Transitions: - - {fileID: -1801186109566512774} - 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: -203655887218126122, guid: fcd023cdac866c54ba8bb2cae0c1a787, type: 3} - m_Tag: - m_SpeedParameter: - m_MirrorParameter: - m_CycleOffsetParameter: - m_TimeParameter: --- !u!1102 &1102467787576756274 AnimatorState: serializedVersion: 6 @@ -399,9 +332,9 @@ AnimatorState: m_Speed: 1 m_CycleOffset: 0 m_Transitions: - - {fileID: 1101567344336423536} - {fileID: 1101976969126293670} - {fileID: -4063881565528374387} + - {fileID: 8378993677699007574} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -429,7 +362,7 @@ AnimatorState: m_CycleOffset: 0 m_Transitions: - {fileID: 1101067943808544730} - - {fileID: 1101706176895985570} + - {fileID: -5992129908580872030} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -445,33 +378,6 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: ---- !u!1102 &1102850212276232830 -AnimatorState: - serializedVersion: 6 - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: 2-attack_inversed_horizontal_right_hand - m_Speed: 1 - m_CycleOffset: 0 - m_Transitions: - - {fileID: 1101834332879401448} - 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: -203655887218126122, guid: 080487d9267f5544aa84f6dbe316d8cf, type: 3} - m_Tag: - m_SpeedParameter: - m_MirrorParameter: - m_CycleOffsetParameter: - m_TimeParameter: --- !u!1107 &1107779761624041760 AnimatorStateMachine: serializedVersion: 6 @@ -483,30 +389,30 @@ AnimatorStateMachine: m_ChildStates: - serializedVersion: 1 m_State: {fileID: 1102751178008254848} - m_Position: {x: 120, y: 48, z: 0} + m_Position: {x: 120, y: 50, z: 0} - serializedVersion: 1 m_State: {fileID: 1102467787576756274} - m_Position: {x: 170, y: -110, z: 0} - - serializedVersion: 1 - m_State: {fileID: 1102850212276232830} - m_Position: {x: 528, y: -144, z: 0} - - serializedVersion: 1 - m_State: {fileID: 1102338065620714850} - m_Position: {x: 630, y: 0, z: 0} - - serializedVersion: 1 - m_State: {fileID: 1102006803148897358} - m_Position: {x: 756, y: 84, z: 0} + m_Position: {x: 120, y: -110, z: 0} - serializedVersion: 1 m_State: {fileID: 2316826469527330622} - m_Position: {x: 130, y: -170, z: 0} + m_Position: {x: 120, y: -170, z: 0} + - serializedVersion: 1 + m_State: {fileID: 3530830070236652748} + m_Position: {x: 560, y: 440, z: 0} + - serializedVersion: 1 + m_State: {fileID: -5914887121904355405} + m_Position: {x: 650, y: 10, z: 0} + - serializedVersion: 1 + m_State: {fileID: 6469307968501949992} + m_Position: {x: 540, y: -170, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: - - {fileID: 1046002043389130723} + - {fileID: -2680946984351937023} m_EntryTransitions: [] m_StateMachineTransitions: {} m_StateMachineBehaviours: [] - m_AnyStatePosition: {x: 516, y: 96, z: 0} - m_EntryPosition: {x: 50, y: 120, z: 0} + m_AnyStatePosition: {x: 520, y: 100, z: 0} + m_EntryPosition: {x: 140, y: 120, z: 0} m_ExitPosition: {x: 864, y: 144, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: 1102751178008254848} @@ -522,7 +428,7 @@ AnimatorState: m_CycleOffset: 0 m_Transitions: - {fileID: -1746738016173991043} - - {fileID: -6232032248366544017} + - {fileID: -6818529094234887481} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -538,3 +444,106 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1102 &3530830070236652748 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: z fall to bite and stand + 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: -203655887218126122, guid: 9175fddd2326b1545ac71cf4346baa83, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &4133929114904890219 +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: 0} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 1 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.9639423 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &6469307968501949992 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: zNeckBite + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -3088080077202337175} + 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: -203655887218126122, guid: 44e7c5a9d9018944591bb3f85d64726b, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &8378993677699007574 +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: attack + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 6469307968501949992} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.9375 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 diff --git a/Assets/Scripts/Characters/Enemy/EnemyController.cs b/Assets/Scripts/Characters/Enemy/EnemyController.cs index f5d0285..934ac9d 100644 --- a/Assets/Scripts/Characters/Enemy/EnemyController.cs +++ b/Assets/Scripts/Characters/Enemy/EnemyController.cs @@ -44,9 +44,11 @@ public partial class EnemyController : Pawn [SyncVar(hook = nameof(OnStateChanged))] private ENEMY_STATE state = ENEMY_STATE.PATROL; - - + private AudioClip skrClip, agressiveClip; + public NavMeshPath navMeshPath; + public bool isKilling = false; + [SerializeField] private bool canAttack = true; void Start() { // Time.timeScale = 10; @@ -74,9 +76,6 @@ public partial class EnemyController : Pawn navMeshPath = new NavMeshPath(); } - public NavMeshPath navMeshPath; - public bool isKilling = false; - void Update() { controller.speed = _speedMul * _runSpeed; @@ -114,15 +113,13 @@ public partial class EnemyController : Pawn // Debug.Log("da"); // _target.GetComponent().DropProp(); - if (isKilling == false) + if (canAttack && !isKilling) { RpcKillPlayer(_target); animator.SetTrigger("attack"); StartCoroutine(AfterKillTimer()); } - - isKilling = true; } } else @@ -155,68 +152,6 @@ public partial class EnemyController : Pawn SetRandomDestination(); } } - - // if (_target == null) - // { - // float pointDistance = Vector3.Distance(_patrolPoints[_currenPointId].position, transform.position); - - // if (pointDistance < 2) - // { - // _currenPointId = Random.Range(0, _patrolPoints.Length); - // } - - // controller.destination = _patrolPoints[_currenPointId].position; - - // foreach (var player in players) - // { - // float distance = Vector3.Distance(player.transform.position, transform.position); - - // if (distance < aggressionDistance) - // { - // state = ENEMY_STATE.ROTATE; - - // _target = player.transform; - // targetLayerWeight = 1f; - - // break; - // } - // } - // } - // else - // { - // if (layerWeight >= 0.9f && hasPath) - // { - // if (state == ENEMY_STATE.ROTATE) - // { - // state = ENEMY_STATE.CHASE; - // } - - // controller.destination = _target.position; - // } - - // if (controller.velocity.magnitude <= 1 && !hasPath) - // { - // _target = null; - // state = ENEMY_STATE.PATROL; - // } - - // target.position = _target.position + _target.up * 1.2f; - - // var distance = Vector3.Distance(_target.transform.position, transform.position); - - // if (distance <= 1) - // { - // _target.GetComponent().Die(); - // } - - // if (distance >= aggressionDistance) - // { - // state = ENEMY_STATE.PATROL; - - // _target = null; - // targetLayerWeight = 0f; - // } - // } } bool CalculateNewPath(Transform target) @@ -226,11 +161,8 @@ public partial class EnemyController : Pawn if (navMeshPath.status != NavMeshPathStatus.PathComplete) { return false; - } - else - { - return true; - } + } + return true; } [ClientRpc] @@ -245,9 +177,11 @@ public partial class EnemyController : Pawn IEnumerator AfterKillTimer() { - yield return new WaitForSeconds(5); - isKilling = false; + isKilling = true; _target = null; + _runSpeed = 0; + yield return new WaitForSeconds(7); + isKilling = false; aimTarget.position = transform.position; SetRandomDestination(); @@ -290,36 +224,6 @@ public partial class EnemyController : Pawn Vector3 GetRandomLocation() { - // // NavMeshTriangulation navMeshData = NavMesh.CalculateTriangulation(); - - // int maxIndices = navMeshData.indices.Length - 3; - // // Pick the first indice of a random triangle in the nav mesh - // int firstVertexSelected = Random.Range(0, maxIndices); - // int secondVertexSelected = Random.Range(0, maxIndices); - // //Spawn on Verticies - // Vector3 point = navMeshData.vertices[navMeshData.indices[firstVertexSelected]]; - - // Vector3 firstVertexPosition = navMeshData.vertices[navMeshData.indices[firstVertexSelected]]; - // Vector3 secondVertexPosition = navMeshData.vertices[navMeshData.indices[secondVertexSelected]]; - // //Eliminate points that share a similar X or Z position to stop spawining in square grid line formations - // if ((int)firstVertexPosition.x == (int)secondVertexPosition.x || - // (int)firstVertexPosition.z == (int)secondVertexPosition.z - // ) - // { - // point = GetRandomLocation(); //Re-Roll a position - I'm not happy with this recursion it could be better - // } - // else - // { - // // Select a random point on it - // point = Vector3.Lerp( - // firstVertexPosition, - // secondVertexPosition, //[t + 1]], - // Random.Range(0.05f, 0.95f) // Not using Random.value as clumps form around Verticies - // ); - // } - // //Vector3.Lerp(point, navMeshData.vertices[navMeshData.indices[t + 2]], Random.value); //Made Obsolete - - // return point; var point = navMeshData.vertices[navMeshData.indices[Random.Range(0, navMeshData.indices.Length - 3)]]; _points.Add(point); return point; @@ -357,9 +261,19 @@ public partial class EnemyController : Pawn void TakeDamageAnimation(Pawn self) { + canAttack = false; + _runSpeed = 0; animator.SetTrigger("damage"); - + // animator.SetTrigger("stun"); тут!!! hitVFX.Stop(); hitVFX.Play(); + StartCoroutine(AfterTakeDamage()); } -} + + IEnumerator AfterTakeDamage() + { + yield return new WaitForSeconds(4); + _runSpeed = 4.974f; + canAttack = true; + } +} \ No newline at end of file diff --git a/Assets/Scripts/Characters/PersonController/BasicRigidBodyPush.cs b/Assets/Scripts/Characters/PersonController/BasicRigidBodyPush.cs index c0692f1..7459dca 100644 --- a/Assets/Scripts/Characters/PersonController/BasicRigidBodyPush.cs +++ b/Assets/Scripts/Characters/PersonController/BasicRigidBodyPush.cs @@ -9,11 +9,6 @@ public class BasicRigidBodyPush : NetworkBehaviour private CharacterController _controller; - void Start() - { - - } - private void OnControllerColliderHit(ControllerColliderHit hit) { if (!isLocalPlayer) return; diff --git a/Assets/Scripts/Characters/PersonController/Interactions.cs b/Assets/Scripts/Characters/PersonController/Interactions.cs index 7dcdcb2..78688f9 100644 --- a/Assets/Scripts/Characters/PersonController/Interactions.cs +++ b/Assets/Scripts/Characters/PersonController/Interactions.cs @@ -188,7 +188,12 @@ public class Interactions : NetworkBehaviour if (player != null) { CmdReductStamina(player); - // CmdAddDebuff(player); + CmdAddDebuff(player); + } + var alien = hitInfo.transform.gameObject.GetComponent(); + if (alien != null) + { + CmdHitAlien(alien); } } @@ -212,6 +217,12 @@ public class Interactions : NetworkBehaviour { RpcReductStamina(player); } + + [Command] + void CmdHitAlien(EnemyController alien) + { + alien.TakeDamage(); + } [ClientRpc] void RpcReductStamina(PersonController player) diff --git a/Assets/Scripts/Characters/PersonController/PersonController.cs b/Assets/Scripts/Characters/PersonController/PersonController.cs index 37ac40c..36dd27d 100644 --- a/Assets/Scripts/Characters/PersonController/PersonController.cs +++ b/Assets/Scripts/Characters/PersonController/PersonController.cs @@ -220,10 +220,6 @@ namespace StarterAssets { currentEnergy = Mathf.MoveTowards(currentEnergy, _maxEnergy, _regenerationSpeed * Time.deltaTime); } - else - { - // staminaIsChanging = false; - } if (currentEnergy <= 0) { @@ -355,7 +351,6 @@ namespace StarterAssets void TakeDamageAnimation(Pawn self) { _animator.SetTrigger("damage"); - // Debug.Log(self.GetComponent().playerName); // hitVFX.Stop(); @@ -435,9 +430,7 @@ namespace StarterAssets _verticalVelocity += Gravity * Time.deltaTime; } } - - - + private void OnDrawGizmosSelected() { Color transparentGreen = new Color(0.0f, 1.0f, 0.0f, 0.35f); @@ -449,8 +442,7 @@ namespace StarterAssets // when selected, draw a gizmo in the position of, and matching radius of, the grounded collider Gizmos.DrawSphere(new Vector3(transform.position.x, transform.position.y - GroundedOffset, transform.position.z), GroundedRadius); } - - + void CalculateFootstepTriggers() { float _controllerVelocity = ((_position - transform.position) / Time.deltaTime).magnitude;