OSDN Git Service

新型兵装開発整備の強化のカウンターを実装する
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer.Test / QuestCounterTest.cs
index 7033628..251cc7d 100644 (file)
@@ -166,6 +166,7 @@ namespace KancolleSniffer.Test
                     new QuestCount {Id = 872, NowArray = new[] {1, 1, 1, 1}},\r
                     new QuestCount {Id = 284, NowArray = new[] {1, 1, 1, 1}},\r
                     new QuestCount {Id = 226, Now = 2},\r
+                    new QuestCount {Id = 434, NowArray = new[] {1, 0, 1, 0, 1}},\r
                     new QuestCount {Id = 436, NowArray = new[] {1, 0, 1, 1, 1}},\r
                     new QuestCount {Id = 437, NowArray = new[] {1, 0, 1, 1}},\r
                     new QuestCount {Id = 438, NowArray = new[] {1, 0, 1, 1}},\r
@@ -236,6 +237,9 @@ namespace KancolleSniffer.Test
             var q226 = status.QuestCountList.First(q => q.Id == 226);\r
             Assert.AreEqual("2/5", q226.ToString());\r
             Assert.AreEqual("", q226.ToToolTip());\r
+            var q434 = status.QuestCountList.First(q => q.Id == 434);\r
+            Assert.AreEqual("1\u200a0\u200a1\u200a0\u200a1", q434.ToString());\r
+            Assert.AreEqual("警備任務1 海上護衛任務0 兵站強化任務1 海峡警備行動0 タンカー護衛任務1", q434.ToToolTip());\r
             var q436 = status.QuestCountList.First(q => q.Id == 436);\r
             Assert.AreEqual("1\u200a0\u200a1\u200a1\u200a1", q436.ToString());\r
             Assert.AreEqual("練習航海1 長距離練習航海0 警備任務1 対潜警戒任務1 強行偵察任務1", q436.ToToolTip());\r
@@ -1574,6 +1578,60 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 345: 演習ティータイム!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void PracticeResult_345()\r
+        {\r
+            var count = InjectQuest(345);\r
+\r
+            _battleInfo.InjectResultStatus(new []{ShipStatus("Warspite"), ShipStatus("金剛"), ShipStatus("Ark Royal"), ShipStatus("Richelieu"), ShipStatus("Perth")},\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(0, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[3] = ShipStatus("Jervis");\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(1, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus("Janus");\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(2, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[1] = ShipStatus("Richelieu");\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(2, count.Now);\r
+        }\r
+\r
+        /// <summary>\r
+        /// 346: 最精鋭!主力オブ主力、演習開始!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void PracticeResult_346()\r
+        {\r
+            var count = InjectQuest(346);\r
+\r
+            _battleInfo.InjectResultStatus(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
+\r
+            InjectPracticeResult("S");\r
+            Assert.AreEqual(0, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[3] = ShipStatus("秋雲改二");\r
+            InjectPracticeResult("S");\r
+            Assert.AreEqual(1, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus("綾波改二");\r
+            InjectPracticeResult("S");\r
+            Assert.AreEqual(1, count.Now);\r
+        }\r
+\r
+        /// <summary>\r
         /// 402: 「遠征」を3回成功させよう!\r
         /// 403: 「遠征」を10回成功させよう!\r
         /// 404: 大規模遠征作戦、発令!\r
@@ -1654,6 +1712,37 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 434: 特設護衛船団司令部、活動開始!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void MissionResult_434()\r
+        {\r
+            var count = InjectQuest(434);\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 3}},\r
+                    new {api_id = 3, api_mission = new[] {2, 5}},\r
+                    new {api_id = 4, api_mission = new[] {2, 100}}\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, 101}},\r
+                    new {api_id = 3, 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
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
+        }\r
+\r
+        /// <summary>\r
         /// 436: 練習航海及び警備任務を実施せよ!\r
         /// </summary>\r
         [TestMethod]\r
@@ -1853,6 +1942,7 @@ namespace KancolleSniffer.Test
         /// 643: 主力「陸攻」の調達\r
         /// 645: 「洋上補給」物資の調達\r
         /// 653: 工廠稼働!次期作戦準備!\r
+        /// 657: 新型兵装開発整備の強化\r
         /// 663: 新型艤装の継続研究\r
         /// 673: 装備開発力の整備\r
         /// 674: 工廠環境の整備\r
@@ -1864,7 +1954,7 @@ namespace KancolleSniffer.Test
         /// 688: 航空戦力の強化\r
         /// </summary>\r
         [TestMethod]\r
-        public void DestroyItem_613_638_643_645_653_663_673_674_675_676_677_678_680_686_688()\r
+        public void DestroyItem_613_638_643_645_653_657_663_673_674_675_676_677_678_680_686_688()\r
         {\r
             _itemInfo.InjectItemSpec(new[]\r
             {\r
@@ -1888,7 +1978,7 @@ namespace KancolleSniffer.Test
             });\r
             var items = new[] {1, 37, 19, 4, 11, 75, 7, 25, 13, 20, 28, 31, 35, 23, 16, 3, 121};\r
             _itemInfo.InjectItems(items);\r
-            var questList = new[] {613, 638, 643, 645, 653, 663, 673, 674, 675, 676, 677, 678, 680, 686, 688};\r
+            var questList = new[] {613, 638, 643, 645, 653, 657, 663, 673, 674, 675, 676, 677, 678, 680, 686, 688};\r
             InjectQuestList(questList);\r
             _questCounter.InspectDestroyItem(\r
                 $"api%5Fslotitem%5Fids={string.Join("%2C", Enumerable.Range(1, items.Length))}&api%5Fverno=1");\r
@@ -1905,6 +1995,7 @@ namespace KancolleSniffer.Test
             }\r
             var array = new[]\r
             {\r
+                new {Id = 657, NowArray = new[] {2, 1, 1}},\r
                 new {Id = 675, NowArray = new[] {2, 1}}, new {Id = 676, NowArray = new[] {1, 1, 1}},\r
                 new {Id = 677, NowArray = new[] {1, 1, 1}}, new {Id = 678, NowArray = new[] {1, 1}},\r
                 new {Id = 680, NowArray = new[] {1, 2}}, new {Id = 686, NowArray = new[] {1, 1}},\r