OSDN Git Service

続:「駆逐艦」の改修工事を実施せよ!のカウンターを実装する
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 29 Nov 2020 12:40:26 +0000 (21:40 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 29 Nov 2020 12:40:26 +0000 (21:40 +0900)
KancolleSniffer.Test/QuestCounterTest.cs
KancolleSniffer/Model/QuestCountList.cs
KancolleSniffer/Model/QuestCounter.cs

index 17b10c2..0001775 100644 (file)
@@ -2065,16 +2065,22 @@ namespace KancolleSniffer.Test
 \r
         /// <summary>\r
         /// 714: 「駆逐艦」の改修工事を実施せよ!\r
+        /// 715: 続:「駆逐艦」の改修工事を実施せよ!\r
         /// </summary>\r
         [TestMethod]\r
-        public void PowerUp_714()\r
+        public void PowerUp_714_715()\r
         {\r
-            var ships = new[] {ShipStatus(2), ShipStatus(2), ShipStatus(2), ShipStatus(2), ShipStatus(3)};\r
+            var ships = new[]\r
+            {\r
+                ShipStatus(2), ShipStatus(2), ShipStatus(2), ShipStatus(2),\r
+                ShipStatus(3), ShipStatus(3), ShipStatus(3), ShipStatus(3)\r
+            };\r
             _shipInventory.Add(ships.Select((s, i) =>\r
             {\r
                 s.Id = i + 1;\r
                 return s;\r
             }));\r
+\r
             var q714 = InjectQuest(714);\r
             _questCounter.InspectPowerUp("api_id=3&api_id_items=1,2", Js(new {api_powerup_flag = 1}));\r
             Assert.AreEqual(0, q714.Now);\r
@@ -2082,6 +2088,12 @@ namespace KancolleSniffer.Test
             Assert.AreEqual(0, q714.Now);\r
             _questCounter.InspectPowerUp("api_id=4&api_id_items=1,2,3", Js(new {api_powerup_flag = 1}));\r
             Assert.AreEqual(1, q714.Now);\r
+\r
+            var q715 = InjectQuest(715);\r
+            _questCounter.InspectPowerUp("api_id=4&api_id_items=1,2,3", Js(new {api_powerup_flag = 1}));\r
+            Assert.AreEqual(0, q715.Now);\r
+            _questCounter.InspectPowerUp("api_id=4&api_id_items=5,6,7", Js(new {api_powerup_flag = 1}));\r
+            Assert.AreEqual(1, q715.Now);\r
         }\r
     }\r
 }
\ No newline at end of file
index 52014bb..00b67f1 100644 (file)
@@ -144,7 +144,8 @@ namespace KancolleSniffer.Model
 \r
             {702, new QuestPowerUp {Interval = Daily, Max = 2, Material = new[] {0, 1, 0, 0}}}, // 702: 艦の「近代化改修」を実施せよ!\r
             {703, new QuestPowerUp {Interval = Weekly, Max = 15, Material = new[] {1, 0, 2, 0}}}, // 703: 「近代化改修」を進め、戦備を整えよ!\r
-            {714, new QuestPowerUp {Interval = Yearly11, Max = 2, Material = new[] {0, 2, 2, 0}}} // 714: 「駆逐艦」の改修工事を実施せよ!\r
+            {714, new QuestPowerUp {Interval = Yearly11, Max = 2, Material = new[] {0, 2, 2, 0}}}, // 714: 「駆逐艦」の改修工事を実施せよ!\r
+            {715, new QuestPowerUp {Interval = Yearly11, Max = 2, Material = new[] {0, 2, 3, 2}}}, // 715: 続:「駆逐艦」の改修工事を実施せよ!\r
         };\r
         // @formatter:on\r
 \r
index d8eaa2a..d07342a 100644 (file)
@@ -459,13 +459,14 @@ namespace KancolleSniffer.Model
                 var count = quest.Count;\r
                 if (!(count.Spec is QuestPowerUp))\r
                     continue;\r
-                if (quest.Id == 714)\r
+                if (quest.Id == 714 || quest.Id == 715)\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
+                    var ships = values["api_id_items"].Split(',').Select(id => _shipInventory[int.Parse(id)]).ToArray();\r
+                    var type = quest.Id == 714 ? 2 : quest.Id == 715 ? 3 : -1;\r
+                    if (ships.Count(s => s.Spec.ShipType == type) < 3)\r
                         return;\r
                 }\r
                 Increment(count);\r