OSDN Git Service

1-6のチェックを汎用化する
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Wed, 4 Mar 2020 14:17:06 +0000 (23:17 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Wed, 4 Mar 2020 14:17:06 +0000 (23:17 +0900)
KancolleSniffer/Model/QuestCountList.cs
KancolleSniffer/Model/QuestCounter.cs

index 1051a41..ea541e4 100644 (file)
@@ -64,7 +64,7 @@ namespace KancolleSniffer.Model
             {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
+            {861, new QuestSortie {Interval = Quarterly, Max = 2, Rank = "B", Maps = new[] {16}, 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
             {872, new QuestSortie {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1}, Rank = "S", Maps = new[] {722, 55, 62, 65}, Material = new[] {0, 0, 0, 4}}}, // 872: 戦果拡張任務!「Z作戦」後段作戦\r
             {873, new QuestSortie {Interval = Quarterly, MaxArray = new[] {1, 1, 1}, Rank = "A", Maps = new[] {31, 32, 33}, Material = new[] {0, 0, 0, 0}}}, // 873: 北方海域警備を実施せよ!\r
index 5440563..2e59c8e 100644 (file)
@@ -216,10 +216,16 @@ namespace KancolleSniffer.Model
             }\r
             _boss = (int)json.api_event_id == 5;\r
 \r
-            if (_quests.TryGetValue(861, out var q861) && _map == 16 && (int)json.api_event_id == 8)\r
+            if (_map != 16 || (int)json.api_event_id != 8)\r
+                return;\r
+            foreach (var count in _quests.Values.Select(q => q.Count))\r
             {\r
-                if (new ResultShipSpecs(_battleInfo).Types.Count(s => s == 10 || s == 22) == 2)\r
-                    Increment(q861.Count);\r
+                if (!(count.Spec is QuestSortie sortie))\r
+                    continue;\r
+                if (!FleetCheck(count.Id))\r
+                    continue;\r
+                if (sortie.Count(count, "S", _map, true))\r
+                    NeedSave = true;\r
             }\r
         }\r
 \r
@@ -292,6 +298,8 @@ namespace KancolleSniffer.Model
                 case 284:\r
                     return specs.Types.Count(type => type == 1 || type == 2) >= 3 &&\r
                            specs.Types.Intersect(new[] {3, 4, 7, 21}).Any();\r
+                case 861:\r
+                    return specs.Types.Count(s => s == 10 || s == 22) == 2;\r
                 case 862:\r
                     return specs.Types.Count(s => s == 3) >= 2 && specs.Types.Count(s => s == 16) >= 1;\r
                 case 873:\r