OSDN Git Service

発令!「西方海域作戦」のカウンターを実装する
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Tue, 26 Nov 2019 13:03:16 +0000 (22:03 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Fri, 6 Dec 2019 11:46:05 +0000 (20:46 +0900)
KancolleSniffer.Test/QuestCounterTest.cs
KancolleSniffer/Model/QuestCountList.cs
KancolleSniffer/Model/QuestCounter.cs

index c73e317..8e17a49 100644 (file)
@@ -709,6 +709,33 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 845: 発令!「西方海域作戦」\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void BattleResult_845()\r
+        {\r
+            var quest = InjectQuest(845);\r
+\r
+            InjectMapNext(41, 4);\r
+            InjectBattleResult("S");\r
+            InjectMapNext(41, 5);\r
+            InjectBattleResult("A");\r
+            Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0, 0, 0}));\r
+\r
+            InjectMapNext(41, 5);\r
+            InjectBattleResult("S");\r
+            InjectMapNext(42, 5);\r
+            InjectBattleResult("S");\r
+            InjectMapNext(43, 5);\r
+            InjectBattleResult("S");\r
+            InjectMapNext(44, 5);\r
+            InjectBattleResult("S");\r
+            InjectMapNext(45, 5);\r
+            InjectBattleResult("S");\r
+            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 1, 1}));\r
+        }\r
+\r
+        /// <summary>\r
         /// 861: 強行輸送艦隊、抜錨!\r
         /// </summary>\r
         [TestMethod]\r
index 5e59c8d..2b3d9a3 100644 (file)
@@ -61,6 +61,7 @@ namespace KancolleSniffer.Model
             {284, new QuestSortie {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1}, Rank = "S", Maps = new[] {14, 21, 22, 23}, Material = new[] {0, 0, 0, 4}}}, // 284: 南西諸島方面「海上警備行動」発令!\r
 \r
             {822, new QuestSortie {Interval = Quarterly, Max = 2, Rank = "S", Maps = new[] {24}, Material = new[] {0, 0, 0, 5}}}, // 822: 沖ノ島海域迎撃戦\r
+            {845, new QuestSortie {Interval = Quarterly, MaxArray = new []{1, 1, 1, 1, 1}, Rank = "S", Maps = new[] {41, 42, 43, 44, 45}, Material = new[] {0, 0, 1, 0}}}, // 845: 発令!「西方海域作戦」\r
             {854, new QuestSortie {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1}, Ranks = new[] {"A", "A", "A", "S"}, Maps = new[] {24, 61, 63, 64}, Material = new[] {0, 0, 0, 4}}}, // 854: 戦果拡張任務!「Z作戦」前段作戦\r
             {861, new QuestSpec {Interval = Quarterly, Max = 2, Material = new[] {0, 4, 0, 0}}}, // 861: 強行輸送艦隊、抜錨!\r
             {862, new QuestSortie {Interval = Quarterly, Max = 2, Rank = "A", Maps = new[] {63}, Material = new[] {0, 0, 8, 4}}}, // 862: 前線の航空偵察を実施せよ!\r
index 3c009d6..274c249 100644 (file)
@@ -77,7 +77,7 @@ namespace KancolleSniffer.Model
 \r
         public override string ToString()\r
         {\r
-            if (Id == 280 || Id == 284 || Id == 426 || Id == 854 || Id == 872 || Id == 873 || Id == 888 || Id == 894)\r
+            if (Id == 280 || Id == 284 || Id == 426 || Id == 845 || Id == 854 || Id == 872 || Id == 873 || Id == 888 || Id == 894)\r
                 return $"{NowArray.Count(n => n >= 1)}/{Spec.MaxArray.Length}";\r
             return NowArray != null\r
                 ? string.Join(" ", NowArray.Zip(Spec.MaxArray, (n, m) => $"{n}/{m}"))\r
@@ -122,6 +122,10 @@ namespace KancolleSniffer.Model
                     return string.Join(" ",\r
                         new[] {"対潜警戒任務", "海峡警備行動", "長時間対潜警戒"}.Zip(NowArray, (mission, n) => n >= 1 ? mission + n : "")\r
                             .Where(s => !string.IsNullOrEmpty(s)));\r
+                case 845:\r
+                    return string.Join(" ",\r
+                        new[] {"4-1", "4-2", "4-3", "4-4", "4-5"}.Zip(NowArray, (map, n) => n >= 1 ? map : "")\r
+                            .Where(s => !string.IsNullOrEmpty(s)));\r
                 case 854:\r
                     return string.Join(" ",\r
                         new[] {"2-4", "6-1", "6-3", "6-4"}.Zip(NowArray, (map, n) => n >= 1 ? map : "")\r