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

修复护甲值没用问题

wgl 6 сар өмнө
parent
commit
f1141c3845

+ 4 - 6
ActionTowerDefense/Assets/Scripts/Characters/AttributeStatus.cs

@@ -358,15 +358,13 @@ public class AttributeStatus : MonoBehaviour
         int am = resistances.armor;
         if (am > 0)
         {
-            int ap = armor.rate;
-            int c = am - ap;
-            if (c < 0)
+            am = am - armor.rate;
+            if (am < 0)
             {
-                c = 0;
+                am = 0;
             }
-            damage = (int)(damage * (100f / (100 + c)) + 0.5f);
         }
-        return damage;
+        return am;
     }
 
     //Êܵ½Ò×ÉË

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

@@ -223,8 +223,8 @@ public class MoveCharacter : Character
             return;
         }
         screenReflectPresets.ScreenReflect(hitFeedbackSystem, attackInfo.attackValue - hitResistance);
-        base.BeHit(attackInfo, attackFrom);
         int damage = attackInfo.damage;
+        int armorRate = attributeStatus.resistances.armor;
         if (attackInfo.attackEffect != null && attackInfo.attackEffect.Length > 0)
         {
             foreach (AttackEffect ae in attackInfo.attackEffect)
@@ -274,7 +274,7 @@ public class MoveCharacter : Character
                     /*非控制*/
                     //穿甲
                     case AttackEffect.Armor:
-                        damage = attributeStatus.AddArmor(attackInfo.armor, damage);
+                        armorRate = attributeStatus.AddArmor(attackInfo.armor, damage);
                         break;
                     //易伤
                     case AttackEffect.Vulnerable:
@@ -283,6 +283,11 @@ public class MoveCharacter : Character
                 }
             }
         }
+
+        //计算护甲减免
+        damage = (int)(damage * (100f / (100 + armorRate)) + 0.5f);
+
+        //计算易伤
         damage = attributeStatus.DamageCalculation(damage);
 
         //伤害减免,先注释,用到的时候再改