OSDN Git Service

戦闘結果の反映時にHPが0の艦娘からダメコンか女神を一つ消す
authorKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Sat, 18 Apr 2015 05:41:50 +0000 (14:41 +0900)
committerKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Wed, 22 Apr 2015 10:56:23 +0000 (19:56 +0900)
KancolleSniffer/BattleInfo.cs

index 695b331..f8224e5 100644 (file)
@@ -229,7 +229,28 @@ namespace KancolleSniffer
             foreach (var e in ships.Zip(_friendHp, (ship, now) => new {ship, now}))\r
                 e.ship.NowHp = e.now;\r
             if (warnDamagedShip)\r
+            {\r
+                ConsumeDamageControlItem(ships);\r
                 UpdateDamgedShipNames(ships);\r
+            }\r
+        }\r
+\r
+\r
+        // HPが0の艦娘にダメコンか女神があったら消費する。\r
+        // 両方ある場合には前のスロットから消費する。\r
+        // 本当はどちらか選べるらしい。\r
+        private void ConsumeDamageControlItem(IEnumerable<ShipStatus> ships)\r
+        {\r
+            foreach (var s in ships.Where(s => s.NowHp == 0))\r
+            {\r
+                for (var i = 0; i < s.Slot.Length; i++)\r
+                {\r
+                    if (_itemInfo[s.Slot[i]].Type != 23)\r
+                        continue;\r
+                    s.Slot[i] = -1;\r
+                    break;\r
+                }\r
+            }\r
         }\r
 \r
         private void UpdateDamgedShipNames(IEnumerable<ShipStatus> ships)\r
@@ -286,7 +307,10 @@ namespace KancolleSniffer
             foreach (var e in ships.Zip(_friendHp.Concat(_guardHp), (ship, now) => new {ship, now}))\r
                 e.ship.NowHp = e.now;\r
             if (warnDamagedShip)\r
+            {\r
+                ConsumeDamageControlItem(ships);\r
                 UpdateDamgedShipNames(ships);\r
+            }\r
         }\r
 \r
         public void CauseCombinedBattleEscape()\r