修订版 | 8c040d7bb4f89c9b1537dfd111867168112f6fb9 (tree) |
---|---|
时间 | 2019-11-17 21:44:23 |
作者 | Kazuhiro Fujieda <fujieda@user...> |
Commiter | Kazuhiro Fujieda |
南西諸島方面「海上警備行動」発令!のカウンターを実装する
@@ -136,7 +136,8 @@ namespace KancolleSniffer.Test | ||
136 | 136 | new QuestCount {Id = 893, NowArray = new[] {1, 1, 1, 1}}, |
137 | 137 | new QuestCount {Id = 894, NowArray = new[] {1, 1, 1, 1, 1}}, |
138 | 138 | new QuestCount {Id = 280, NowArray = new[] {1, 1, 1, 1}}, |
139 | - new QuestCount {Id = 872, NowArray = new[] {1, 1, 1, 1}} | |
139 | + new QuestCount {Id = 872, NowArray = new[] {1, 1, 1, 1}}, | |
140 | + new QuestCount {Id = 284, NowArray = new[] {1, 1, 1, 1}} | |
140 | 141 | } |
141 | 142 | }; |
142 | 143 | new QuestInfo().LoadState(status); |
@@ -173,6 +174,9 @@ namespace KancolleSniffer.Test | ||
173 | 174 | var q872 = status.QuestCountList.First(q => q.Id == 872); |
174 | 175 | Assert.IsTrue(q872.ToString() == "4/4"); |
175 | 176 | Assert.IsTrue(q872.ToToolTip() == "7-2M 5-5 6-2 6-5"); |
177 | + var q284 = status.QuestCountList.First(q => q.Id == 284); | |
178 | + Assert.IsTrue(q284.ToString() == "4/4"); | |
179 | + Assert.IsTrue(q284.ToToolTip() == "1-4 2-1 2-2 2-3"); | |
176 | 180 | } |
177 | 181 | } |
178 | 182 |
@@ -603,7 +607,7 @@ namespace KancolleSniffer.Test | ||
603 | 607 | var quest = InjectQuest(280); |
604 | 608 | |
605 | 609 | _battleInfo.InjectResultStatus( |
606 | - ShipStatusList(7, 1, 1, 1, 8, 8), new ShipStatus[0], | |
610 | + ShipStatusList(7, 2, 1, 1, 8, 8), new ShipStatus[0], | |
607 | 611 | new ShipStatus[0], new ShipStatus[0]); |
608 | 612 | |
609 | 613 | InjectMapNext(12, 4); |
@@ -643,6 +647,36 @@ namespace KancolleSniffer.Test | ||
643 | 647 | } |
644 | 648 | |
645 | 649 | /// <summary> |
650 | + /// // 284: 南西諸島方面「海上警備行動」発令! | |
651 | + /// </summary> | |
652 | + [TestMethod] | |
653 | + public void BattleResult_284() | |
654 | + { | |
655 | + var quest = InjectQuest(284); | |
656 | + | |
657 | + _battleInfo.InjectResultStatus( | |
658 | + ShipStatusList(7, 2, 1, 1, 8, 8), new ShipStatus[0], | |
659 | + new ShipStatus[0], new ShipStatus[0]); | |
660 | + | |
661 | + InjectMapNext(14, 4); | |
662 | + InjectBattleResult("S"); | |
663 | + InjectMapNext(14, 5); | |
664 | + InjectBattleResult("A"); | |
665 | + Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0, 0})); | |
666 | + | |
667 | + InjectBattleResult("S"); | |
668 | + InjectMapNext(21, 5); | |
669 | + InjectBattleResult("S"); | |
670 | + InjectMapNext(22, 5); | |
671 | + InjectBattleResult("S"); | |
672 | + InjectMapNext(23, 5); | |
673 | + InjectBattleResult("S"); | |
674 | + Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 1})); | |
675 | + | |
676 | + // 艦種チェックは280と共通 | |
677 | + } | |
678 | + | |
679 | + /// <summary> | |
646 | 680 | /// 822: 沖ノ島海域迎撃戦 |
647 | 681 | /// 854: 戦果拡張任務!「Z作戦」前段作戦 |
648 | 682 | /// </summary> |
@@ -58,6 +58,7 @@ namespace KancolleSniffer.Model | ||
58 | 58 | {265, new QuestSortie {Interval = Monthly, Max = 10, Rank = "A", Maps = new[] {15}, Material = new[] {0, 0, 5, 3}}}, // 265: 海上護衛強化月間 |
59 | 59 | {266, new QuestSpec {Interval = Monthly, Max = 1, Material = new[] {4, 4, 0, 2}}}, // 266: 「水上反撃部隊」突入せよ! |
60 | 60 | {280, new QuestSpec {Interval = Monthly, MaxArray = new[] {1, 1, 1, 1}, Material = new[] {0, 4, 4, 2}}}, // 280: 兵站線確保!海上警備を強化実施せよ! |
61 | + {284, new QuestSpec {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1}, Material = new[] {0, 0, 0, 4}}}, // 284: 南西諸島方面「海上警備行動」発令! | |
61 | 62 | |
62 | 63 | {822, new QuestSortie {Interval = Quarterly, Max = 2, Rank = "S", Maps = new[] {24}, Material = new[] {0, 0, 0, 5}}}, // 822: 沖ノ島海域迎撃戦 |
63 | 64 | {854, new QuestSpec {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1}, Material = new[] {0, 0, 0, 4}}}, // 854: 戦果拡張任務!「Z作戦」前段作戦 |
@@ -77,7 +77,7 @@ namespace KancolleSniffer.Model | ||
77 | 77 | |
78 | 78 | public override string ToString() |
79 | 79 | { |
80 | - if (Id == 280 || Id == 426 || Id == 854 || Id == 872 || Id == 873 || Id == 888 || Id == 894) | |
80 | + if (Id == 280 || Id == 284 || Id == 426 || Id == 854 || Id == 872 || Id == 873 || Id == 888 || Id == 894) | |
81 | 81 | return $"{NowArray.Count(n => n >= 1)}/{Spec.MaxArray.Length}"; |
82 | 82 | return NowArray != null |
83 | 83 | ? string.Join(" ", NowArray.Zip(Spec.MaxArray, (n, m) => $"{n}/{m}")) |
@@ -109,6 +109,10 @@ namespace KancolleSniffer.Model | ||
109 | 109 | return string.Join(" ", |
110 | 110 | new[] {"1-2", "1-3", "1-4", "2-1"}.Zip(NowArray, (map, n) => n >= 1 ? map : "") |
111 | 111 | .Where(s => !string.IsNullOrEmpty(s))); |
112 | + case 284: | |
113 | + return string.Join(" ", | |
114 | + new[] {"1-4", "2-1", "2-2", "2-3"}.Zip(NowArray, (map, n) => n >= 1 ? map : "") | |
115 | + .Where(s => !string.IsNullOrEmpty(s))); | |
112 | 116 | case 426: |
113 | 117 | return string.Join(" ", |
114 | 118 | new[] {"警備任務", "対潜警戒任務", "海上護衛任務", "強硬偵察任務"} |
@@ -333,6 +337,28 @@ namespace KancolleSniffer.Model | ||
333 | 337 | } |
334 | 338 | } |
335 | 339 | break; |
340 | + case 284: | |
341 | + if (_boss && rank.S && | |
342 | + specs.Types.Count(type => type == 1 || type == 2) >= 3 && | |
343 | + specs.Types.Intersect(new[] {3, 4, 7, 21}).Any()) | |
344 | + { | |
345 | + switch (_map) | |
346 | + { | |
347 | + case 14: | |
348 | + IncrementNth(count, 0); | |
349 | + break; | |
350 | + case 21: | |
351 | + IncrementNth(count, 1); | |
352 | + break; | |
353 | + case 22: | |
354 | + IncrementNth(count, 2); | |
355 | + break; | |
356 | + case 23: | |
357 | + IncrementNth(count, 3); | |
358 | + break; | |
359 | + } | |
360 | + } | |
361 | + break; | |
336 | 362 | case 854: |
337 | 363 | if (_boss) |
338 | 364 | { |