OSDN Git Service

「駆逐艦」の改修工事を実施せよ!のカウンターを実装する
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer / Model / QuestCounter.cs
index 988572e..d8eaa2a 100644 (file)
@@ -138,6 +138,7 @@ namespace KancolleSniffer.Model
     {\r
         private readonly QuestInfo _questInfo;\r
         private readonly ItemInventory _itemInventory;\r
+        private readonly ShipInventory _shipInventory;\r
         private readonly BattleInfo _battleInfo;\r
         private readonly SortedDictionary<int, QuestStatus> _quests;\r
         private int _map;\r
@@ -184,11 +185,12 @@ namespace KancolleSniffer.Model
             }\r
         }\r
 \r
-        public QuestCounter(QuestInfo questInfo, ItemInventory itemInventory, BattleInfo battleInfo)\r
+        public QuestCounter(QuestInfo questInfo, ItemInventory itemInventory, ShipInventory shipInventory, BattleInfo battleInfo)\r
         {\r
             _questInfo = questInfo;\r
             _quests = questInfo.QuestDictionary;\r
             _itemInventory = itemInventory;\r
+            _shipInventory = shipInventory;\r
             _battleInfo = battleInfo;\r
         }\r
 \r
@@ -448,7 +450,7 @@ namespace KancolleSniffer.Model
             }\r
         }\r
 \r
-        public void InspectPowerUp(dynamic json)\r
+        public void InspectPowerUp(string request, dynamic json)\r
         {\r
             if ((int)json.api_powerup_flag == 0)\r
                 return;\r
@@ -457,6 +459,15 @@ namespace KancolleSniffer.Model
                 var count = quest.Count;\r
                 if (!(count.Spec is QuestPowerUp))\r
                     continue;\r
+                if (quest.Id == 714)\r
+                {\r
+                    var values = HttpUtility.ParseQueryString(request);\r
+                    if (_shipInventory[int.Parse(values["api_id"])].Spec.ShipType != 2)\r
+                        return;\r
+                    var ships = values["api_id_items"].Split(',').Select(id => _shipInventory[int.Parse(id)]);\r
+                    if (ships.Count(s => s.Spec.ShipType == 2) < 3)\r
+                        return;\r
+                }\r
                 Increment(count);\r
             }\r
         }\r