Răsfoiți Sursa

修改刺客rush状态为新增rushattack状态

LAPTOP-OM1V99U2\永远de小亡灵 1 an în urmă
părinte
comite
0b81b5f1f8

+ 1 - 1
ActionTowerDefense/Assets/Resources/Spine/Spirits_Assassin/Spirits_Assassin_Controller.controller

@@ -1358,7 +1358,7 @@ AnimatorState:
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: attack_summon
+  m_Name: rush_attack
   m_Speed: 1
   m_CycleOffset: 0
   m_Transitions: []

+ 1 - 0
ActionTowerDefense/Assets/Scripts/Character.cs

@@ -28,6 +28,7 @@ public enum CharacterState
     DownRush = 19,  //邈華喳棧
     FinishRush = 20,    //賦旰喳棧
     Coma = 21,      //餉譎
+    RushAttack, //湍馴僻腔喳棧
 }
 
 public enum AttackType

+ 8 - 7
ActionTowerDefense/Assets/Scripts/Enemy.cs

@@ -62,7 +62,8 @@ public class Enemy : MoveCharacter
     public DashEffect dashEffect;
     [HideInInspector]
     public Vector3 targetDir;
-    public bool haveDownRush;
+    public bool haveDownRush;   //冲刺结束后是否可以接落地斩
+    public bool rushHaveAttack; //冲刺是否带伤害
     public float downRushTime;
     public float finishRushTime;
     public bool isBack = false; //往反方向走
@@ -421,7 +422,7 @@ public class Enemy : MoveCharacter
                     ChangeState(CharacterState.Rush);
                 }
                 break;
-            case CharacterState.Rush:
+            case CharacterState.RushAttack:
                 time += Time.deltaTime;
                 Rush();
                 if (time >= rushTime)
@@ -515,7 +516,7 @@ public class Enemy : MoveCharacter
                 rb.constraints = 
                     RigidbodyConstraints.FreezePositionZ|RigidbodyConstraints.FreezeRotation;
                 break;
-            case CharacterState.Rush:
+            case CharacterState.RushAttack:
                 dashEffect.canHit = false;
                 rb.velocity = Vector3.zero;
                 bodyTrans.rotation = Quaternion.Euler(Vector3.zero);
@@ -595,7 +596,7 @@ public class Enemy : MoveCharacter
                 weakTime = totalWeakTime;
                 break;
             case CharacterState.FindPlayer:
-                isFindPlayer = true;
+                isFindPlayer = false;
                 noOnSearchState = true;
                 ChosePlayer();
                 ani.Play("walk", 0, 0);
@@ -608,11 +609,11 @@ public class Enemy : MoveCharacter
                 rb.constraints = RigidbodyConstraints.FreezeAll;
                 ReadyToDash(rushEndPos + Vector3.up, transform.position + Vector3.up);
                 break;
-            case CharacterState.Rush:
+            case CharacterState.RushAttack:
                 dashEffect.canHit = true;
                 targetDir =
                         (rushEndPos - transform.position).normalized;
-                ani.Play("attack_summon", 0, 0);
+                ani.Play("rush_attack", 0, 0);
                 break;
             case CharacterState.ReadyToDownRush:
                 rb.constraints = RigidbodyConstraints.FreezeAll;
@@ -620,7 +621,7 @@ public class Enemy : MoveCharacter
                 break;
             case CharacterState.DownRush:
                 targetDir = Vector3.down;
-                ani.Play("attack_summon", 0, 0);
+                ani.Play("rush_attack", 0, 0);
                 dashEffect.canHit = true;
                 break;
             case CharacterState.FinishRush:

+ 6 - 1
ActionTowerDefense/Assets/Scripts/Spirits/ESpirits_Invisible.cs

@@ -65,10 +65,12 @@ public class ESpirits_Invisible : MonoBehaviour
                 if (haveSoulNumber != followNumber && SoulInMap.souls.Count != 0)
                 {
                     ChangeState(InvisibleState.FindSoul);
+                    return;
                 }
                 if (hp != enemy.hp)
                 {
                     ChangeState(InvisibleState.Hurt);
+                    return;
                 }
                 //posx = Mathf.Min(PlayersInput.instance[0].transform.position.x,
                 //    PlayersInput.instance[1].transform.position.x);
@@ -92,10 +94,12 @@ public class ESpirits_Invisible : MonoBehaviour
                 if (haveSoulNumber != followNumber && SoulInMap.souls.Count != 0)
                 {
                     ChangeState(InvisibleState.FindSoul);
+                    return;
                 }
                 if (Vector3.Distance(targetPos, transform.position) < 1)
                 {
                     ChangeState(InvisibleState.Normal);
+                    return;
                 }
                 
                 Goto(targetPos, moveSpeed);
@@ -172,8 +176,9 @@ public class ESpirits_Invisible : MonoBehaviour
                 offsetX = Random.Range(-randomRageX, randomRageX);
                 break;
             case InvisibleState.Hurt:
-                targetPos = new Vector3(posx + offsetX - back, altitude + offsetY, 0);
                 posx = transform.position.x;
+                targetPos = new Vector3(posx + offsetX - back, altitude + offsetY, 0);
+                
                 break;
             case InvisibleState.FindSoul:
                 FindSoul();