OSDN Git Service

入渠の終わった艦娘が要修復リストに載るのを直す
authorKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Mon, 29 Sep 2014 16:34:20 +0000 (01:34 +0900)
committerKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Thu, 2 Oct 2014 10:50:19 +0000 (19:50 +0900)
KancolleSniffer/DockInfo.cs
KancolleSniffer/ShipInfo.cs

index e7b5ec9..c64cf5f 100644 (file)
@@ -45,7 +45,9 @@ namespace KancolleSniffer
             {\r
                 var id = (int)entry.api_id - 1;\r
                 _ndocTimers[id].SetEndTime(entry.api_complete_time);\r
-                if (_ndoc[id] == 0) // 新たな入渠なら資源を減らす\r
+                var prev = _ndoc[id];\r
+                _ndoc[id] = (int)entry.api_ship_id;\r
+                if (prev == 0 && _ndoc[id] != 0) // 新たな入渠なら資源を減らす\r
                 {\r
                     var history = _itemInfo.MaterialHistory;\r
                     history[0].Now -= (int)entry.api_item1;\r
@@ -53,7 +55,10 @@ namespace KancolleSniffer
                     history[2].Now -= (int)entry.api_item3;\r
                     history[3].Now -= (int)entry.api_item4;\r
                 }\r
-                _ndoc[id] = (int)entry.api_ship_id;\r
+                else if (prev != 0 && _ndoc[id] == 0) // 修復完了\r
+                {\r
+                    _shipInfo.RepairShip(prev);\r
+                }\r
             }\r
         }\r
 \r
@@ -62,7 +67,7 @@ namespace KancolleSniffer
             var values = HttpUtility.ParseQueryString(request);\r
             if (int.Parse(values["api_highspeed"]) == 0)\r
                 return;\r
-            _shipInfo.ApplyBucket(int.Parse(values["api_ship_id"]));\r
+            _shipInfo.RepairShip(int.Parse(values["api_ship_id"]));\r
             _itemInfo.MaterialHistory[(int)Material.Bucket].Now--;\r
         }\r
 \r
@@ -70,7 +75,7 @@ namespace KancolleSniffer
         {\r
             var values = HttpUtility.ParseQueryString(request);\r
             var dock = int.Parse(values["api_ndock_id"]) - 1;\r
-            _shipInfo.ApplyBucket(_ndoc[dock]);\r
+            _shipInfo.RepairShip(_ndoc[dock]);\r
             _ndoc[dock] = 0;\r
             _ndocTimers[dock].SetEndTime(0);\r
             _itemInfo.MaterialHistory[(int)Material.Bucket].Now--;\r
index c1eba03..a699ea6 100644 (file)
@@ -284,7 +284,7 @@ namespace KancolleSniffer
             return _shipInfo[id].Slot.Count(item => item != -1);\r
         }\r
 \r
-        public void ApplyBucket(int id)\r
+        public void RepairShip(int id)\r
         {\r
             var s = _shipInfo[id];\r
             s.NowHp = s.MaxHp;\r