Prechádzať zdrojové kódy

修复融魂技有时候没有慢动作问题

wgl 7 mesiacov pred
rodič
commit
ab75c1baa2

+ 30 - 34
ActionTowerDefense/Assets/Scripts/Characters/PlayerController.cs

@@ -681,6 +681,17 @@ public class PlayerController : MoveCharacter
                 return true;
             }
         }
+        if (state != CharacterState.Conduct && nowConductButton != -1 && conductTime > totalCacheSummonTime)
+        {
+            CheckTurn();
+            if (conductCanRelease[nowConductButton])
+            {
+                ChangeState(CharacterState.Conduct);
+                return true;
+            }
+            return false;
+
+        }
         if (isBtnEastUp || isBtnWestUp || isBtnSouthUp)
         {
             if (cacheSummonTime >= 0 && conductTime <= totalCacheSummonTime)
@@ -694,16 +705,7 @@ public class PlayerController : MoveCharacter
                 return true;
             }
         }
-        if (state != CharacterState.Conduct && nowConductButton != -1 && conductTime > totalCacheSummonTime)
-        {
-            CheckTurn();
-            if (conductCanRelease[nowConductButton])
-            {
-                ChangeState(CharacterState.Conduct);
-                return true;
-            }
 
-        }
         return false;
     }
 
@@ -718,9 +720,10 @@ public class PlayerController : MoveCharacter
             isReadyConduct = false;
             return true;
         }
+
         if (!isReadyConduct && nowConductButton != -1)
         {
-            if (conductTime >= totalCacheSummonTime + canConductTime[nowConductButton] * timeSlowingMultiplier)
+            if (conductTime >= canConductTime[nowConductButton] * timeSlowingMultiplier)
             {
                 isReadyConduct = true;
                 if (!conductReadyTip.isShowing1 && !conductReadyTip.isShowingNoDemonic)
@@ -743,7 +746,7 @@ public class PlayerController : MoveCharacter
                 }
 
             }
-            else if (conductTime >= totalCacheSummonTime + (canConductTime[nowConductButton] - readyTipFxTime) * timeSlowingMultiplier)
+            else if (conductTime >= (canConductTime[nowConductButton] - readyTipFxTime) * timeSlowingMultiplier)
             {
                 if (!conductReadyTip.isShowing0 && !conductReadyTip.isShowingNoDemonic)
                 {
@@ -765,7 +768,7 @@ public class PlayerController : MoveCharacter
                 }
 
             }
-            else if (conductTime > totalCacheSummonTime)
+            else
             {
                 if (Time.timeScale == 1)
                 {
@@ -782,14 +785,9 @@ public class PlayerController : MoveCharacter
                         CannotConductFX(nowConductButton);
                     }
                 }
-
-            }
-            else
-            {
                 conductReadyTip.Init();
             }
         }
-
         return false;
     }
 
@@ -985,14 +983,7 @@ public class PlayerController : MoveCharacter
     {
         if (!foot.TrigGround)
         {
-            //if(excludeState != CharacterState.Summon)
-            //{
-            //    if (CheckSummon())
-            //    {
-            //        return true;
-            //    }
-            //}
-            if (excludeState != CharacterState.Summon || excludeState != CharacterState.Conduct)
+            if (excludeState != CharacterState.Summon)
             {
                 if (CheckSummon())
                 {
@@ -1036,7 +1027,7 @@ public class PlayerController : MoveCharacter
             //        return true;
             //    }
             //}
-            if (excludeState != CharacterState.Summon || excludeState != CharacterState.Conduct)
+            if (excludeState != CharacterState.Summon)
             {
                 if (CheckSummon())
                 {
@@ -1263,7 +1254,7 @@ public class PlayerController : MoveCharacter
                 }
                 if (foot.TrigGround)
                 {
-                    if (CheckPlayerChangeState())
+                    if (CheckPlayerChangeState(CharacterState.Fall))
                     {
                         break;
                     }
@@ -1334,7 +1325,7 @@ public class PlayerController : MoveCharacter
                         ChangeState(CharacterState.KeepAttack);
                         break;
                     }
-                    if (CheckPlayerChangeState())
+                    if (CheckPlayerChangeState(CharacterState.Attack))
                     {
                         break;
                     }
@@ -1353,7 +1344,7 @@ public class PlayerController : MoveCharacter
                 }
                 if (!btnNorthKeep)
                 {
-                    if (CheckPlayerChangeState(CharacterState.Attack))
+                    if (CheckPlayerChangeState(CharacterState.KeepAttack))
                     {
                         break;
                     }
@@ -1503,9 +1494,9 @@ public class PlayerController : MoveCharacter
                 {
                     cacheRush = true;
                 }
-                if (summonTime <= 0 || btnTransfiguratePress)
+                if (summonTime <= 0)
                 {
-                    if (CheckPlayerChangeState())
+                    if (CheckPlayerChangeState(CharacterState.Summon))
                     {
                         break;
                     }
@@ -1521,7 +1512,7 @@ public class PlayerController : MoveCharacter
                         ChangeState(CharacterState.Sprint);
                         break;
                     }
-                    if (CheckPlayerChangeState())
+                    if (CheckPlayerChangeState(CharacterState.Rush))
                     {
                         break;
                     }
@@ -1547,14 +1538,14 @@ public class PlayerController : MoveCharacter
             case CharacterState.Sprint:
                 if (!btnRushKeep)
                 {
-                    if (CheckPlayerChangeState(CharacterState.Rush))
+                    if (CheckPlayerChangeState(CharacterState.Sprint))
                     {
                         break;
                     }
                 }
                 if (mp < sprintCostMp * Time.deltaTime)
                 {
-                    if (CheckPlayerChangeState(CharacterState.Rush))
+                    if (CheckPlayerChangeState(CharacterState.Sprint))
                     {
                         break;
                     }
@@ -1861,13 +1852,16 @@ public class PlayerController : MoveCharacter
             case CharacterState.Conduct:
                 rb.isKinematic = false;
                 Time.timeScale = 1;
+                Debug.Log(222);
                 conductReadyTip.activeFalse();
                 break;
             default:
                 break;
         }
         CharacterState oldState = state;
+        
         state = newState;
+
         switch (newState)
         {
             case CharacterState.Idle:
@@ -1972,6 +1966,8 @@ public class PlayerController : MoveCharacter
                 //hurtKeepTime = minHurtKeepTime;
                 break;
             case CharacterState.Conduct:
+                Debug.Log(oldState);
+                conductTime = 0;
                 rb.velocity = Vector3.zero;
                 rb.isKinematic = true;
                 aniCollider.Play("Summon", 0, 0);