OSDN Git Service

装備を交換するAPIの仕様変更に対応する
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Wed, 23 Jan 2019 14:30:26 +0000 (23:30 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Wed, 23 Jan 2019 14:30:26 +0000 (23:30 +0900)
KancolleSniffer.Test/SnifferTest.cs
KancolleSniffer.Test/logs
KancolleSniffer/Model/ShipInfo.cs
KancolleSniffer/Sniffer.cs

index 89c1b91..a1aa77a 100644 (file)
@@ -394,15 +394,15 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
         }\r
 \r
         /// <summary>\r
-        /// 装備の交換を正しく反映する\r
+        /// 装備交換のAPIの仕様変更に対応する\r
         /// </summary>\r
         [TestMethod]\r
         /// </summary>\r
         [TestMethod]\r
-        public void SlotExchange()\r
+        public void SlotExchangeVersion2()\r
         {\r
             var sniffer = new Sniffer();\r
         {\r
             var sniffer = new Sniffer();\r
-            SniffLogFile(sniffer, "slot_exchange_001");\r
+            SniffLogFile(sniffer, "slot_exchange_002");\r
             var result = sniffer.Fleets[0].Ships[0].Slot.Select(item => item.Id);\r
             var result = sniffer.Fleets[0].Ships[0].Slot.Select(item => item.Id);\r
-            PAssert.That(() => new[] {26096, 30571, 77694, 61383, -1}.SequenceEqual(result));\r
+            PAssert.That(() => new[] {157798, 59001, 157804, -1, -1}.SequenceEqual(result));\r
         }\r
 \r
         /// <summary>\r
         }\r
 \r
         /// <summary>\r
index fdf7a6e..d11d731 160000 (submodule)
@@ -1 +1 @@
-Subproject commit fdf7a6e1a45053b92b38a36246658a8c2289b722
+Subproject commit d11d7317726c98a9fcc1a97bd9ef28263884586d
index 2db8456..a4fed28 100644 (file)
@@ -236,7 +236,7 @@ namespace KancolleSniffer.Model
                 AntiSubmarine = (int)entry.api_taisen[0],\r
                 AntiAir = (int)entry.api_taiku[0],\r
                 Lucky = (int)entry.api_lucky[0],\r
                 AntiSubmarine = (int)entry.api_taisen[0],\r
                 AntiAir = (int)entry.api_taiku[0],\r
                 Lucky = (int)entry.api_lucky[0],\r
-                Locked = entry.api_locked() && entry.api_locked == 1,\r
+                Locked = entry.api_locked() && entry.api_locked == 1\r
             };\r
         }\r
 \r
             };\r
         }\r
 \r
@@ -305,26 +305,27 @@ namespace KancolleSniffer.Model
                 return;\r
             _itemInventory.Remove(ships.SelectMany(id => _shipInventory[id].Slot));\r
             _shipInventory.Remove(ships);\r
                 return;\r
             _itemInventory.Remove(ships.SelectMany(id => _shipInventory[id].Slot));\r
             _shipInventory.Remove(ships);\r
-            FillShipData(new[]{json.api_ship}, json.api_deck);\r
+            FillShipData(new[] {json.api_ship}, json.api_deck);\r
         }\r
 \r
         }\r
 \r
-        public void InspectSlotExchange(string request, dynamic json)\r
+        public void InspectSlotExchange(dynamic json)\r
         {\r
         {\r
-            var values = HttpUtility.ParseQueryString(request);\r
-            var ship = int.Parse(values["api_id"]);\r
-            _shipInventory[ship].Slot = ((int[])json.api_slot).Select(id => new ItemStatus(id)).ToArray();\r
+            UpdateShips(new[] {json.api_ship_data});\r
         }\r
 \r
         public void InspectSlotDeprive(dynamic json)\r
         {\r
         }\r
 \r
         public void InspectSlotDeprive(dynamic json)\r
         {\r
-            FillShips(new[] {json.api_ship_data.api_set_ship, json.api_ship_data.api_unset_ship});\r
-            foreach (var fleet in _fleets)\r
-                fleet.SetDeck(); // ShipStatusの差し替え\r
+            UpdateShips(new[] {json.api_ship_data.api_set_ship, json.api_ship_data.api_unset_ship});\r
         }\r
 \r
         public void InspectMarriage(dynamic json)\r
         {\r
         }\r
 \r
         public void InspectMarriage(dynamic json)\r
         {\r
-            FillShips(new[]{json});\r
+            UpdateShips(new[] {json});\r
+        }\r
+\r
+        private void UpdateShips(dynamic json)\r
+        {\r
+            FillShips(json);\r
             foreach (var fleet in _fleets)\r
                 fleet.SetDeck(); // ShipStatusの差し替え\r
         }\r
             foreach (var fleet in _fleets)\r
                 fleet.SetDeck(); // ShipStatusの差し替え\r
         }\r
index b5c8369..89c87c9 100644 (file)
@@ -490,7 +490,7 @@ namespace KancolleSniffer
             }\r
             if (url.EndsWith("api_req_kaisou/slot_exchange_index"))\r
             {\r
             }\r
             if (url.EndsWith("api_req_kaisou/slot_exchange_index"))\r
             {\r
-                _shipInfo.InspectSlotExchange(request, data);\r
+                _shipInfo.InspectSlotExchange(data);\r
                 return Update.Ship;\r
             }\r
             if (url.EndsWith("api_req_kaisou/slot_deprive"))\r
                 return Update.Ship;\r
             }\r
             if (url.EndsWith("api_req_kaisou/slot_deprive"))\r