OSDN Git Service

新兵装開発資材輸送を船団護衛せよ!のカウンターを実装する
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer.Test / QuestCounterTest.cs
index d93ddf9..6132f9e 100644 (file)
@@ -403,7 +403,7 @@ namespace KancolleSniffer.Test
             PAssert.That(() => counts[2].NowArray.SequenceEqual(new[] {1, 1, 2, 1}));\r
 \r
             // 1-6 ゴール\r
-            InjectMapNext(16,8);\r
+            InjectMapNext(16, 8);\r
             Assert.AreEqual(2, counts[0].Now);\r
         }\r
 \r
@@ -1678,7 +1678,12 @@ namespace KancolleSniffer.Test
         {\r
             var count = InjectQuest(345);\r
 \r
-            _battleInfo.InjectResultStatus(new []{ShipStatus("Warspite"), ShipStatus("金剛"), ShipStatus("Ark Royal"), ShipStatus("Richelieu"), ShipStatus("Perth")},\r
+            _battleInfo.InjectResultStatus(\r
+                new[]\r
+                {\r
+                    ShipStatus("Warspite"), ShipStatus("金剛"), ShipStatus("Ark Royal"), ShipStatus("Richelieu"),\r
+                    ShipStatus("Perth")\r
+                },\r
                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
             InjectPracticeResult("B");\r
             Assert.AreEqual(0, count.Now);\r
@@ -1707,7 +1712,8 @@ namespace KancolleSniffer.Test
         {\r
             var count = InjectQuest(346);\r
 \r
-            _battleInfo.InjectResultStatus(new []{ShipStatus("夕雲改二"), ShipStatus("巻雲改二"), ShipStatus("風雲改二"), ShipStatus("秋雲改")},\r
+            _battleInfo.InjectResultStatus(\r
+                new[] {ShipStatus("夕雲改二"), ShipStatus("巻雲改二"), ShipStatus("風雲改二"), ShipStatus("秋雲改")},\r
                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
             InjectPracticeResult("A");\r
             Assert.AreEqual(0, count.Now);\r
@@ -1725,6 +1731,36 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 348: 「精鋭軽巡」演習!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void PracticeResult_348()\r
+        {\r
+            var count = InjectQuest(348);\r
+\r
+            _battleInfo.InjectResultStatus(ShipStatusList(3, 3, 21, 2, 2),\r
+                new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+            InjectPracticeResult("B");\r
+            Assert.AreEqual(0, count.Now);\r
+\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(1, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus(4);\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(1, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus(21);\r
+            _battleInfo.Result.Friend.Main[4] = ShipStatus(1);\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(1, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[4] = ShipStatus(2);\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(2, count.Now);\r
+        }\r
+\r
+        /// <summary>\r
         /// 402: 「遠征」を3回成功させよう!\r
         /// 403: 「遠征」を10回成功させよう!\r
         /// 404: 大規模遠征作戦、発令!\r
@@ -1910,18 +1946,18 @@ namespace KancolleSniffer.Test
                     new {api_id = 3, api_mission = new[] {2, 100}},\r
                     new {api_id = 4, api_mission = new[] {2, 9}}\r
                 }));\r
-            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new { api_clear_result = 1 }));\r
-            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new { api_clear_result = 1 }));\r
-            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new { api_clear_result = 1 }));\r
-            PAssert.That(() => count.NowArray.SequenceEqual(new[] { 1, 1, 1, 0 }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));\r
 \r
             _questCounter.InspectDeck(Js(\r
                 new[]\r
                 {\r
                     new {api_id = 2, api_mission = new[] {2, 114}}\r
                 }));\r
-            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new { api_clear_result = 1 }));\r
-            PAssert.That(() => count.NowArray.SequenceEqual(new[] { 1, 1, 1, 1 }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
         }\r
 \r
         /// <summary>\r
@@ -1980,7 +2016,67 @@ namespace KancolleSniffer.Test
                     new {api_id = 3, api_mission = new[] {2, 46}}\r
                 }));\r
             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
-            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new { api_clear_result = 1 }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
+        }\r
+\r
+        /// <summary>\r
+        /// 442: 西方連絡作戦準備を実施せよ!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void MissionResult_442()\r
+        {\r
+            var count = InjectQuest(442);\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 131}},\r
+                    new {api_id = 3, api_mission = new[] {2, 29}},\r
+                    new {api_id = 4, api_mission = new[] {2, 30}}\r
+                }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 133}}\r
+                }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
+        }\r
+\r
+        /// <summary>\r
+        /// 444: 新兵装開発資材輸送を船団護衛せよ!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void MissionResult_444()\r
+        {\r
+            var count = InjectQuest(444);\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 5}},\r
+                    new {api_id = 3, api_mission = new[] {2, 12}},\r
+                    new {api_id = 4, api_mission = new[] {2, 9}}\r
+                }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}));\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 110}},\r
+                    new {api_id = 3, api_mission = new[] {2, 11}}\r
+                }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
         }\r
 \r
@@ -2073,7 +2169,8 @@ namespace KancolleSniffer.Test
                 new ItemSpec {Id = 242, Name = "Swordfish", Type = 8},\r
                 new ItemSpec {Id = 249, Name = "Fulmar", Type = 6}\r
             });\r
-            var questList = new[] {613, 638, 643, 645, 655, 653, 654, 657, 663, 673, 674, 675, 676, 677, 678, 680, 681, 686, 688};\r
+            var questList = new[]\r
+                {613, 638, 643, 645, 655, 653, 654, 657, 663, 673, 674, 675, 676, 677, 678, 680, 681, 686, 688};\r
             InjectQuestList(questList);\r
             _questCounter.InspectDestroyItem(\r
                 $"api%5Fslotitem%5Fids={string.Join("%2C", Enumerable.Range(1, _itemInventory.Count))}&api%5Fverno=1");\r
@@ -2108,7 +2205,7 @@ namespace KancolleSniffer.Test
 \r
         private void InjectItems(IEnumerable<ItemSpec> specs)\r
         {\r
-            _itemInventory.Add(specs.Select((s, i) => new ItemStatus{Id = i + 1, Spec = s}));\r
+            _itemInventory.Add(specs.Select((s, i) => new ItemStatus {Id = i + 1, Spec = s}));\r
         }\r
 \r
         /// <summary>\r
@@ -2157,5 +2254,41 @@ namespace KancolleSniffer.Test
             _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
+        /// <summary>\r
+        /// 716: 「軽巡」級の改修工事を実施せよ!\r
+        /// 717: 続:「軽巡」級の改修工事を実施せよ!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void PowerUp_716_717()\r
+        {\r
+            var ships = new[]\r
+            {\r
+                ShipStatus(3), ShipStatus(3), ShipStatus(4), ShipStatus(21),\r
+                ShipStatus(5), ShipStatus(6), ShipStatus(6)\r
+            };\r
+            _shipInventory.Add(ships.Select((s, i) =>\r
+            {\r
+                s.Id = i + 1;\r
+                return s;\r
+            }));\r
+\r
+            var q716 = InjectQuest(716);\r
+            _questCounter.InspectPowerUp("api_id=1&api_id_items=2,3", Js(new {api_powerup_flag = 1}));\r
+            Assert.AreEqual(0, q716.Now);\r
+            _questCounter.InspectPowerUp("api_id=1&api_id_items=2,3,5", Js(new {api_powerup_flag = 1}));\r
+            Assert.AreEqual(0, q716.Now);\r
+            _questCounter.InspectPowerUp("api_id=5&api_id_items=2,3,4", Js(new {api_powerup_flag = 1}));\r
+            Assert.AreEqual(0, q716.Now);\r
+            _questCounter.InspectPowerUp("api_id=1&api_id_items=2,3,4", Js(new {api_powerup_flag = 1}));\r
+            Assert.AreEqual(1, q716.Now);\r
+\r
+            var q717 = InjectQuest(717);\r
+            _questCounter.InspectPowerUp("api_id=1&api_id_items=3,4,5", Js(new {api_powerup_flag = 1}));\r
+            Assert.AreEqual(0, q717.Now);\r
+            _questCounter.InspectPowerUp("api_id=1&api_id_items=5,6,7", Js(new {api_powerup_flag = 1}));\r
+            Assert.AreEqual(1, q717.Now);\r
+        }\r
+\r
     }\r
 }
\ No newline at end of file