OSDN Git Service

装備解除後近代化改修で外れた装備がカウントされないのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Thu, 16 Jan 2020 12:10:08 +0000 (21:10 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Thu, 16 Jan 2020 12:10:08 +0000 (21:10 +0900)
KancolleSniffer.Test/SnifferTest.cs
KancolleSniffer.Test/logs
KancolleSniffer/Model/ShipInfo.cs

index cd5154d..45a35ff 100644 (file)
@@ -436,6 +436,18 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 近代化改修による艦娘数と装備数の変化\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void PowerUpCount()\r
+        {\r
+            var sniffer = new Sniffer();\r
+            SniffLogFile(sniffer, "powerup_001");\r
+            PAssert.That(() => sniffer.ShipCounter.Now == 204);\r
+            PAssert.That(() => sniffer.ItemCounter.Now == 932);\r
+        }\r
+\r
+        /// <summary>\r
         /// 近代化改修が二重に行われた場合に対応する\r
         /// </summary>\r
         [TestMethod]\r
@@ -447,6 +459,18 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 装備解除後の近代化改修\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void PowerUpDetachItem()\r
+        {\r
+            var sniffer = new Sniffer();\r
+            SniffLogFile(sniffer, "powerup_003");\r
+            PAssert.That(() => sniffer.ShipCounter.Now == 317);\r
+            PAssert.That(() => sniffer.ItemCounter.Now == 1390);\r
+        }\r
+\r
+        /// <summary>\r
         /// ship2を待たずにケッコンの結果を反映する\r
         /// </summary>\r
         [TestMethod]\r
index cee4be2..261484e 160000 (submodule)
@@ -1 +1 @@
-Subproject commit cee4be25181f2e1bf9b45bcd410887301dacad49
+Subproject commit 261484e649bab67a15dd529e098b73b3a2efa66c
index 54e33e5..a412a54 100644 (file)
@@ -308,7 +308,8 @@ namespace KancolleSniffer.Model
             var ships = values["api_id_items"].Split(',').Select(int.Parse).ToArray();\r
             if (!_shipInventory.Contains(ships[0])) // 二重に実行された場合\r
                 return;\r
-            _itemInventory.Remove(ships.SelectMany(id => _shipInventory[id].Slot));\r
+            if ((values["api_slot_dest_flag"] ?? "1") == "1")\r
+                _itemInventory.Remove(ships.SelectMany(id => _shipInventory[id].Slot));\r
             _shipInventory.Remove(ships);\r
             SetShipAndDeck(new[] {json.api_ship}, json.api_deck);\r
         }\r