OSDN Git Service

「空母機動部隊」西へ!のカウンタを実装する
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Tue, 3 Apr 2018 13:20:25 +0000 (22:20 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Tue, 3 Apr 2018 13:21:38 +0000 (22:21 +0900)
KancolleSniffer.Test/QuestInfoTest.cs
KancolleSniffer/QuestInfo.cs

index cef14ba..a963982 100644 (file)
@@ -500,6 +500,44 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 264: 「空母機動部隊」西へ!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void BattleResult_264()\r
+        {\r
+            var battleInfo = new BattleInfo(null, null);\r
+            var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
+            questInfo.InspectQuestList(CreateQuestList(new[] {264}));\r
+\r
+            battleInfo.InjectResultStatus(new[]\r
+            {\r
+                ShipStatus(7), ShipStatus(11), ShipStatus(3),\r
+                ShipStatus(3), ShipStatus(2), ShipStatus(2)\r
+            }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+            questInfo.InspectMapNext(Js(new\r
+            {\r
+                api_maparea_id = 4,\r
+                api_mapinfo_no = 2,\r
+                api_event_id = 4\r
+            }));\r
+            questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
+            questInfo.InspectMapNext(Js(new\r
+            {\r
+                api_maparea_id = 4,\r
+                api_mapinfo_no = 2,\r
+                api_event_id = 5\r
+            }));\r
+            questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
+            PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
+            questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
+            PAssert.That(() => questInfo.Quests[0].Count.Now == 1);\r
+\r
+            battleInfo.Result.Friend.Main[0].NowHp = 0;\r
+            questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
+            PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "轟沈あり");\r
+        }\r
+\r
+        /// <summary>\r
         /// 266: 「水上反撃部隊」突入せよ!\r
         /// </summary>\r
         [TestMethod]\r
index a963148..f862300 100644 (file)
@@ -266,6 +266,7 @@ namespace KancolleSniffer
             {257, new QuestSpec {Interval = Monthly, Max = 1, Material = new[] {0, 0, 0, 3}}}, // 257: 「水雷戦隊」南西へ!\r
             {259, new QuestSpec {Interval = Monthly, Max = 1, Material = new[] {0, 3, 0, 4}}}, // 259: 「水上打撃部隊」南方へ!\r
             {261, new QuestSortie {Interval = Weekly, Max = 3, Rank = "A", Maps = new[] {15}, Material = new[] {0, 0, 0, 3}}}, // 261: 海上輸送路の安全確保に努めよ!\r
+            {264, new QuestSpec {Interval = Monthly, Max = 1, Material = new[] {0, 0, 0, 2}}}, // 264: 「空母機動部隊」西へ!\r
             {265, new QuestSortie {Interval = Monthly, Max = 10, Rank = "A", Maps = new[] {15}, Material = new[] {0, 0, 5, 3}}}, // 265: 海上護衛強化月間\r
             {266, new QuestSpec {Interval = Monthly, Max = 1, Material = new[] {0, 0, 4, 2}}}, // 266: 「水上反撃部隊」突入せよ!\r
 \r
@@ -608,6 +609,16 @@ namespace KancolleSniffer
                     }\r
                 }\r
             }\r
+            if (_quests.TryGetValue(264, out var q264))\r
+            {\r
+                if (_map == 42 && _boss && QuestSortie.CompareRank(rank, "S") == 0)\r
+                {\r
+                    var fleet = _battleInfo.Result.Friend.Main.Where(s => s.NowHp > 0).Select(s => s.Spec)\r
+                        .ToArray();\r
+                    if (fleet.Count(spec => spec.ShipType == 2) >= 2 && fleet.Count(spec => spec.IsAircraftCarrier) >= 2)\r
+                        IncrementCount(q264.Count);\r
+                }\r
+            }\r
             if (_quests.TryGetValue(266, out var q266))\r
             {\r
                 if (_map == 25 && _boss && QuestSortie.CompareRank(rank, "S") == 0)\r