Jelajahi Sumber

修复飞剑累伤初始伤害不对的问题

WGL 2 bulan lalu
induk
melakukan
59310d5720

+ 13 - 7
ActionTowerDefense/Assets/Scripts/Characters/MoveCharacter.cs

@@ -38,8 +38,7 @@ public class MoveCharacter : Character
 
     [Header("属性")]
     public float moveSpeed = 5;
-    [FoldoutGroup("飞行兵落地后回升")][LabelText("是否需要判定回升")]
-    public bool needToAdjustFlyHeight;
+    [FoldoutGroup("飞行兵落地后回升")][LabelText("是否需要判定回升")] public bool needToAdjustFlyHeight;
     [FoldoutGroup("飞行兵落地后回升", order:-1)][DisplayOnly] public float flyHeight;
     [FoldoutGroup("飞行兵落地后回升")][LabelText("最大高度")] public float maxFlyHeight;
     [FoldoutGroup("飞行兵落地后回升")][LabelText("最低高度")] public float minFlyHeight;
@@ -279,15 +278,15 @@ public class MoveCharacter : Character
             }
         }
 
-        //计算护甲减免
-        damageData = (int)(damageData * (100f / (100 + armorRate)) + 0.5f);
-
         //计算累伤
         if (haveStackingWords)
         {
-            damageData = (int)(damageData + attributeStatus.stackingWordsNum * attackInfo.stackingWounds.damage + 0.5f);
+            damageData = (int)(damageData + (attributeStatus.stackingWordsNum - 1) * attackInfo.stackingWounds.damage + 0.5f);
         }
 
+        //计算护甲减免
+        damageData = (int)(damageData * (100f / (100 + armorRate)) + 0.5f);
+
         //计算易伤
         damageData = (int)(damageData * (1 + attackInfo.vulnerable.rate) + 0.5f);
 
@@ -300,7 +299,14 @@ public class MoveCharacter : Character
         hp -= damageData;
 
         //敌方士兵受起手式伤害/我方士兵受伤 闪白
-        beHitTrigger.JudgeTurnWhite(attackInfo.isDemSummon, this);
+        if(attackFrom.CompareTag("Demonic") && attackInfo.attackMethod_Type == AttackMethod_Type.Attack_Summon)
+        {
+            beHitTrigger.JudgeTurnWhite(true, this);
+        }
+        else
+        {
+            beHitTrigger.JudgeTurnWhite(false, this);
+        }
 
         //击中特效(如果有的话)
         if (attackInfo.effect)