OSDN Git Service

入渠後にバケツを使ったときの効果が母港に戻るまで反映されないのを直す
authorKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Sun, 31 Aug 2014 08:49:02 +0000 (17:49 +0900)
committerKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Sun, 31 Aug 2014 08:49:02 +0000 (17:49 +0900)
KancolleSniffer/DockInfo.cs
KancolleSniffer/ShipInfo.cs
KancolleSniffer/Sniffer.cs

index 267e138..2bd0498 100644 (file)
@@ -17,6 +17,7 @@
 \r
 using System;\r
 using System.Linq;\r
+using System.Web;\r
 \r
 namespace KancolleSniffer\r
 {\r
@@ -56,6 +57,32 @@ namespace KancolleSniffer
             }\r
         }\r
 \r
+        public void InspectNyukyo(string request)\r
+        {\r
+            var values = HttpUtility.ParseQueryString(request);\r
+            if (int.Parse(values["api_highspeed"]) == 0)\r
+                return;\r
+            RecoverShip(int.Parse(values["api_ship_id"]));\r
+            _itemInfo.MaterialHistory[(int)Material.Bucket].Now--;\r
+        }\r
+\r
+        public void InspectSpeedChange(string request)\r
+        {\r
+            var values = HttpUtility.ParseQueryString(request);\r
+            var dock = int.Parse(values["api_ndock_id"]) - 1;\r
+            RecoverShip(_ndoc[dock]);\r
+            _ndoc[dock] = 0;\r
+            _ndocTimers[dock].SetEndTime(0);\r
+        }\r
+\r
+        private void RecoverShip(int id)\r
+        {\r
+            var ship = _shipInfo[id];\r
+            ship.NowHp = ship.MaxHp;\r
+            if (ship.Cond < 40)\r
+                ship.Cond = 40;\r
+        }\r
+\r
         public NameAndTimer[] NDock\r
         {\r
             get\r
index 62c06bc..9f8bce0 100644 (file)
@@ -205,7 +205,7 @@ namespace KancolleSniffer
                     WithdrowShip(of, oi);\r
                 if (of != fleet)\r
                     _conditionTimer.Invalidate(of);\r
-            };\r
+            }\r
             _decks[fleet][idx] = ship;\r
             _conditionTimer.Invalidate(fleet);\r
         }\r
@@ -266,19 +266,6 @@ namespace KancolleSniffer
             return _shipInfo[id].Slot.Count(item => item != -1);\r
         }\r
 \r
-        public void InspectNyukyo(string request)\r
-        {\r
-            var values = HttpUtility.ParseQueryString(request);\r
-            var id = int.Parse(values["api_ship_id"]);\r
-            if (int.Parse(values["api_highspeed"]) == 0)\r
-                return;\r
-            var ship = _shipInfo[id];\r
-            ship.NowHp = ship.MaxHp;\r
-            if (ship.Cond < 40)\r
-                ship.Cond = 40;\r
-            _itemInfo.MaterialHistory[(int)Material.Bucket].Now--;\r
-        }\r
-\r
         public ShipStatus[] GetShipStatuses(int fleet)\r
         {\r
             return (from id in _decks[fleet] where id != -1 select _shipInfo[id]).ToArray();\r
index 567861a..fa03932 100644 (file)
@@ -191,9 +191,14 @@ namespace KancolleSniffer
             }\r
             if (url.EndsWith("api_req_nyukyo/start"))\r
             {\r
-                _shipInfo.InspectNyukyo(request);\r
+                _dockInfo.InspectNyukyo(request);\r
                 return Update.Item | Update.Ship;\r
             }\r
+            if (url.EndsWith("api_req_nyukyo/speedchange"))\r
+            {\r
+                _dockInfo.InspectSpeedChange(request);\r
+                return Update.NDock | Update.Timer | Update.Ship;\r
+            }\r
             if (IsNormalBattleAPI(url))\r
             {\r
                 _battleInfo.InspectBattle(data);\r