Эх сурвалжийг харах

修复无法二次击飞问题again

wgl 6 сар өмнө
parent
commit
1970634ced

+ 12 - 5
ActionTowerDefense/Assets/Scripts/Characters/AttributeStatus.cs

@@ -262,7 +262,11 @@ public class AttributeStatus : MonoBehaviour
     {
         if (curSpecialStates != SpecialState.Null && curSpecialStates <= specialState)
         {
-            return false;
+            return true;
+        }
+        if(curSpecialStates == SpecialState.Null)
+        {
+            return true;
         }
         return true;
     }
@@ -270,7 +274,7 @@ public class AttributeStatus : MonoBehaviour
     //Êܵ½Æ¯¸¡
     public void AddFloat(AttackInfo.FloatState floatState)
     {
-        if (PriorityOrder(SpecialState.FloatState))
+        if (!PriorityOrder(SpecialState.FloatState))
         {
             return;
         } 
@@ -301,7 +305,7 @@ public class AttributeStatus : MonoBehaviour
         {
             return;
         }
-        if (PriorityOrder(SpecialState.BlownUp))
+        if (!PriorityOrder(SpecialState.BlownUp))
         {
             return;
         }
@@ -313,6 +317,7 @@ public class AttributeStatus : MonoBehaviour
         }
         rb.AddForce(vec3 * blowUp.force * (1 - resistances.BlowUp), ForceMode.Impulse);
         curSpecialStates = SpecialState.BlownUp;
+        character.ani.Play("hitted",0,0);
         character.ChangeState(CharacterState.SpecialStatus_BlowUp);
     }
 
@@ -323,7 +328,7 @@ public class AttributeStatus : MonoBehaviour
         {
             return;
         }
-        if (PriorityOrder(SpecialState.ShotDown))
+        if (!PriorityOrder(SpecialState.ShotDown))
         {
             return;
         }
@@ -337,18 +342,20 @@ public class AttributeStatus : MonoBehaviour
         rb.constraints = RigidbodyConstraints.FreezeRotation | RigidbodyConstraints.FreezePositionZ;
         rb.AddForce(vec3 * shotDown.force * (1 - resistances.ShotDown), ForceMode.Impulse);
         curSpecialStates = SpecialState.ShotDown;
+        character.ani.Play("hitted", 0, 0);
         character.ChangeState(CharacterState.SpecialStatus_ShotDown);
     }
 
     //Êܵ½»÷ÔÎ
     public void AddWeak(AttackInfo.Weak weak)
     {
-        if (PriorityOrder(SpecialState.Weak))
+        if (!PriorityOrder(SpecialState.Weak))
         {
             return;
         }
         attributeTime = weak.time * (1 - resistances.Weak);
         curSpecialStates = SpecialState.Weak;
+        character.ani.Play("weak", 0, 0);
         character.ChangeState(CharacterState.SpecialStatus_Weak);
     }