OSDN Git Service

緊急泊地修理に対応する
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sat, 19 Oct 2019 13:26:37 +0000 (22:26 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 20 Oct 2019 12:44:28 +0000 (21:44 +0900)
KancolleSniffer.Test/BattleTest.cs
KancolleSniffer.Test/logs
KancolleSniffer/Model/ShipInfo.cs
KancolleSniffer/Sniffer.cs

index bab45b5..d8e6f36 100644 (file)
@@ -393,5 +393,16 @@ namespace KancolleSniffer.Test
             Assert.AreEqual(BattleState.Result, battle.BattleState);\r
             Assert.AreEqual(0, sniffer.BadlyDamagedShips.Length);\r
         }\r
+\r
+        /// <summary>\r
+        /// 緊急泊地修理\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void AnchorageRepair()\r
+        {\r
+            var sniffer = new Sniffer();\r
+            SniffLogFile(sniffer, "anchorage_repair_001");\r
+            PAssert.That(() => !sniffer.IsBattleResultError);\r
+        }\r
     }\r
 }
\ No newline at end of file
index a1cddc0..bec859f 160000 (submodule)
@@ -1 +1 @@
-Subproject commit a1cddc02b44ae9718c5a2a16cc282fbfa01ea178
+Subproject commit bec859f3bfa2e99759505a46cff017fd4d5b98c7
index a455767..ad35f19 100644 (file)
@@ -369,6 +369,11 @@ namespace KancolleSniffer.Model
             SetBadlyDamagedShips();\r
         }\r
 \r
+        public void InspectAnchorageRepair(dynamic json)\r
+        {\r
+            UpdateShips(json.api_ship_data);\r
+        }\r
+\r
         public void StartPractice(string request)\r
         {\r
             var values = HttpUtility.ParseQueryString(request);\r
index 9c60aa9..c7b6555 100644 (file)
@@ -164,6 +164,8 @@ namespace KancolleSniffer
                 return ApiKaisou(url, request, data);\r
             if (url.Contains("air_corps"))\r
                 return ApiAirCorps(url, request, data);\r
+            if (url.Contains("map"))\r
+                return ApiMap(url, request, data);\r
             return ApiOthers(url, request, data);\r
         }\r
 \r
@@ -518,6 +520,39 @@ namespace KancolleSniffer
             return Update.None;\r
         }\r
 \r
+        private Update ApiMap(string url, string request, dynamic data)\r
+        {\r
+            if (url.EndsWith("api_req_map/start"))\r
+            {\r
+                _shipInfo.InspectMapStart(request); // 出撃中判定が必要なので_conditionTimerより前\r
+                _conditionTimer.InvalidateCond();\r
+                _exMapInfo.InspectMapStart(data);\r
+                _battleInfo.InspectMapStart(data);\r
+                _logger.InspectMapStart(data);\r
+                _miscTextInfo.InspectMapStart(data);\r
+                _questCounter.InspectMapStart(data);\r
+                _cellInfo.InspectMapStart(data);\r
+                RepeatingTimerController?.Suspend("大破警告");\r
+                return Update.Timer | Update.Ship | Update.Cell;\r
+            }\r
+            if (url.EndsWith("api_req_map/next"))\r
+            {\r
+                _exMapInfo.InspectMapNext(data);\r
+                _battleInfo.InspectMapNext(data);\r
+                _logger.InspectMapNext(data);\r
+                _questCounter.InspectMapNext(data);\r
+                _miscTextInfo.InspectMapNext(data);\r
+                _cellInfo.InspectMapNext(data);\r
+                return Update.Battle;\r
+            }\r
+            if (url.EndsWith("api_req_map/anchorage_repair"))\r
+            {\r
+                _shipInfo.InspectAnchorageRepair(data);\r
+                return Update.Ship;\r
+            }\r
+            return Update.None;\r
+        }\r
+\r
         private Update ApiOthers(string url, string request, dynamic data)\r
         {\r
             if (url.EndsWith("api_req_hokyu/charge"))\r
@@ -544,29 +579,6 @@ namespace KancolleSniffer
                 _conditionTimer.CheckCond();\r
                 return Update.NDock | Update.Timer | Update.Item | Update.Ship;\r
             }\r
-            if (url.EndsWith("api_req_map/start"))\r
-            {\r
-                _shipInfo.InspectMapStart(request); // 出撃中判定が必要なので_conditionTimerより前\r
-                _conditionTimer.InvalidateCond();\r
-                _exMapInfo.InspectMapStart(data);\r
-                _battleInfo.InspectMapStart(data);\r
-                _logger.InspectMapStart(data);\r
-                _miscTextInfo.InspectMapStart(data);\r
-                _questCounter.InspectMapStart(data);\r
-                _cellInfo.InspectMapStart(data);\r
-                RepeatingTimerController?.Suspend("大破警告");\r
-                return Update.Timer | Update.Ship | Update.Cell;\r
-            }\r
-            if (url.EndsWith("api_req_map/next"))\r
-            {\r
-                _exMapInfo.InspectMapNext(data);\r
-                _battleInfo.InspectMapNext(data);\r
-                _logger.InspectMapNext(data);\r
-                _questCounter.InspectMapNext(data);\r
-                _miscTextInfo.InspectMapNext(data);\r
-                _cellInfo.InspectMapNext(data);\r
-                return Update.Battle;\r
-            }\r
             if (url.EndsWith("api_req_mission/start"))\r
             {\r
                 var deck = HttpUtility.ParseQueryString(request)["api_deck_id"];\r