wgl vor 6 Monaten
Ursprung
Commit
03d9f1169d

+ 8 - 1
ActionTowerDefense/Assets/Scripts/Characters/AttackController.cs

@@ -48,6 +48,7 @@ public class AttackInfo
     {
         return attackEffect.Contains(AttackEffect.FloatState);
     }
+    [Header("漂浮")]
     [ShowIf("ShowFloatStateValue")]
     public FloatState floatState;
 
@@ -63,6 +64,7 @@ public class AttackInfo
     {
         return attackEffect.Contains(AttackEffect.BlowUp);
     }
+    [Header("击飞")]
     [ShowIf("ShowBlowUpValue")]
     public BlowUp blowUp;
 
@@ -72,12 +74,13 @@ public class AttackInfo
     {
         public Vector3 dir; //击打的方向
         public float force; //击打的力
-        public float timel; //落地后眩晕时间
+        public float time; //落地后眩晕时间
     }
     private bool ShowShotDownValue()
     {
         return attackEffect.Contains(AttackEffect.ShotDown);
     }
+    [Header("击落")]
     [ShowIf("ShowShotDownValue")]
     public ShotDown shotDown;
 
@@ -91,6 +94,7 @@ public class AttackInfo
     {
         return attackEffect.Contains(AttackEffect.Stun);
     }
+    [Header("击晕")]
     [ShowIf("ShowStunValue")]
     public Stun stun;
 
@@ -104,6 +108,7 @@ public class AttackInfo
     {
         return attackEffect.Contains(AttackEffect.Armor);
     }
+    [Header("穿甲")]
     [ShowIf("ShowArmorValue")]
     public Armor armor;
 
@@ -117,6 +122,7 @@ public class AttackInfo
     {
         return attackEffect.Contains(AttackEffect.ChangeDamage);
     }
+    [Header("更改攻击力")]
     [ShowIf("ShowChangeDamageValue")]
     public ChangeDamage changeDamage;
 
@@ -130,6 +136,7 @@ public class AttackInfo
     {
         return attackEffect.Contains(AttackEffect.SustainedInjury);
     }
+    [Header("持续伤害")]
     [ShowIf("ShowSustainedInjuryValue")]
     public SustainedInjury sustainedInjury;
 

+ 20 - 16
ActionTowerDefense/Assets/Scripts/Characters/AttributeStatus.cs

@@ -43,6 +43,7 @@ public class AttributeStatus : MonoBehaviour
         switch (curSpecialStates[0])
         {
             case SpecialState.BlownUp:
+            case SpecialState.ShotDown:
                 if (rb.velocity.magnitude > 0)
                 {
                     //击飞中
@@ -79,21 +80,6 @@ public class AttributeStatus : MonoBehaviour
                     }
                 }
                 break;
-
-        }
-    }
-
-    //受到击落
-    public void AddShotDown()
-    {
-        if (character.canFly)
-        {
-            character.ChangeState(CharacterState.SpecialStatus);
-            //if (canFly)
-            //{
-            //    rb.constraints = RigidbodyConstraints.FreezeRotation | RigidbodyConstraints.FreezePositionZ;
-            //    rb.useGravity = true;
-            //}
         }
     }
 
@@ -108,13 +94,31 @@ public class AttributeStatus : MonoBehaviour
             {
                 vec3.x = -vec3.x;
             }
-            Debug.Log(vec3 * blowUp.force);
             rb.velocity = vec3 * blowUp.force;
             curSpecialStates[0] = SpecialState.BlownUp;
             character.ChangeState(CharacterState.SpecialStatus);
         }
     }
 
+    //受到击落
+    public void AddShotDown(AttackInfo.ShotDown shotDown, float dir)
+    {
+        if (!rb.useGravity)
+        {
+            strikeStunTime = shotDown.time;
+            Vector3 vec3 = shotDown.dir.normalized;
+            if (dir < 0)
+            {
+                vec3.x = -vec3.x;
+            }
+            rb.velocity = vec3 * shotDown.force;
+            curSpecialStates[0] = SpecialState.ShotDown;
+            rb.constraints = RigidbodyConstraints.FreezeRotation | RigidbodyConstraints.FreezePositionZ;
+            rb.useGravity = true;
+            character.ChangeState(CharacterState.SpecialStatus);
+        }
+    }
+
     //受到击晕
     public void AddStun()
     {

+ 4 - 1
ActionTowerDefense/Assets/Scripts/Characters/MoveCharacter.cs

@@ -457,12 +457,15 @@ public class MoveCharacter : Character
             {
                 switch (ae)
                 {
+                    //»÷·É
                     case AttackEffect.BlowUp:
                         attributeStatus.AddBlowUp(attackInfo.blowUp,dir);
                         break;
+                    //»÷Âä
                     case AttackEffect.ShotDown:
-                        attributeStatus.AddShotDown();
+                        attributeStatus.AddShotDown(attackInfo.shotDown,dir);
                         break;
+                    //»÷ÔÎ
                     case AttackEffect.Stun:
                         attributeStatus.AddStun();
                         break;