OSDN Git Service

連撃の初弾でダメコンが発動するバグが再発しているのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sat, 22 Sep 2018 07:33:29 +0000 (16:33 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sat, 22 Sep 2018 07:38:04 +0000 (16:38 +0900)
KancolleSniffer/Model/BattleInfo.cs

index ef6d1a6..de4487d 100644 (file)
@@ -430,7 +430,10 @@ namespace KancolleSniffer.Model
         {\r
             var damage = (int[])rawDamage;\r
             for (var i = 0; i < friend.Length; i++)\r
+            {\r
                 friend[i].ApplyDamage(damage[i]);\r
+                friend[i].CheckDamageControl();\r
+            }\r
             if (guard == null)\r
                 return;\r
             for (var i = 0; i < guard.Length; i++)\r
@@ -464,6 +467,8 @@ namespace KancolleSniffer.Model
                         continue;\r
                     records[eFlags[turn]][target].ApplyDamage(damage);\r
                 }\r
+                foreach (var ship in records[1])\r
+                    ship?.CheckDamageControl();\r
             }\r
         }\r
 \r
@@ -589,13 +594,12 @@ namespace KancolleSniffer.Model
 \r
             public void ApplyDamage(int damage)\r
             {\r
-                if (_status.NowHp > damage)\r
-                {\r
-                    _status.NowHp -= damage;\r
-                    return;\r
-                }\r
-                _status.NowHp = 0;\r
-                if (_practice)\r
+                _status.NowHp = Max(0, _status.NowHp - damage);\r
+            }\r
+\r
+            public void CheckDamageControl()\r
+            {\r
+                if (_status.NowHp > 0 || _practice)\r
                     return;\r
                 foreach (var item in new[] {_status.SlotEx}.Concat(_status.Slot))\r
                 {\r