• R/O
  • HTTP
  • SSH
  • HTTPS

提交

標籤
無標籤

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

修訂8c040d7bb4f89c9b1537dfd111867168112f6fb9 (tree)
時間2019-11-17 21:44:23
作者Kazuhiro Fujieda <fujieda@user...>
CommiterKazuhiro Fujieda

Log Message

南西諸島方面「海上警備行動」発令!のカウンターを実装する

Change Summary

差異

--- a/KancolleSniffer.Test/QuestCounterTest.cs
+++ b/KancolleSniffer.Test/QuestCounterTest.cs
@@ -136,7 +136,8 @@ namespace KancolleSniffer.Test
136136 new QuestCount {Id = 893, NowArray = new[] {1, 1, 1, 1}},
137137 new QuestCount {Id = 894, NowArray = new[] {1, 1, 1, 1, 1}},
138138 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}}
140141 }
141142 };
142143 new QuestInfo().LoadState(status);
@@ -173,6 +174,9 @@ namespace KancolleSniffer.Test
173174 var q872 = status.QuestCountList.First(q => q.Id == 872);
174175 Assert.IsTrue(q872.ToString() == "4/4");
175176 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");
176180 }
177181 }
178182
@@ -603,7 +607,7 @@ namespace KancolleSniffer.Test
603607 var quest = InjectQuest(280);
604608
605609 _battleInfo.InjectResultStatus(
606- ShipStatusList(7, 1, 1, 1, 8, 8), new ShipStatus[0],
610+ ShipStatusList(7, 2, 1, 1, 8, 8), new ShipStatus[0],
607611 new ShipStatus[0], new ShipStatus[0]);
608612
609613 InjectMapNext(12, 4);
@@ -643,6 +647,36 @@ namespace KancolleSniffer.Test
643647 }
644648
645649 /// <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>
646680 /// 822: 沖ノ島海域迎撃戦
647681 /// 854: 戦果拡張任務!「Z作戦」前段作戦
648682 /// </summary>
--- a/KancolleSniffer/Model/QuestCountList.cs
+++ b/KancolleSniffer/Model/QuestCountList.cs
@@ -58,6 +58,7 @@ namespace KancolleSniffer.Model
5858 {265, new QuestSortie {Interval = Monthly, Max = 10, Rank = "A", Maps = new[] {15}, Material = new[] {0, 0, 5, 3}}}, // 265: 海上護衛強化月間
5959 {266, new QuestSpec {Interval = Monthly, Max = 1, Material = new[] {4, 4, 0, 2}}}, // 266: 「水上反撃部隊」突入せよ!
6060 {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: 南西諸島方面「海上警備行動」発令!
6162
6263 {822, new QuestSortie {Interval = Quarterly, Max = 2, Rank = "S", Maps = new[] {24}, Material = new[] {0, 0, 0, 5}}}, // 822: 沖ノ島海域迎撃戦
6364 {854, new QuestSpec {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1}, Material = new[] {0, 0, 0, 4}}}, // 854: 戦果拡張任務!「Z作戦」前段作戦
--- a/KancolleSniffer/Model/QuestCounter.cs
+++ b/KancolleSniffer/Model/QuestCounter.cs
@@ -77,7 +77,7 @@ namespace KancolleSniffer.Model
7777
7878 public override string ToString()
7979 {
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)
8181 return $"{NowArray.Count(n => n >= 1)}/{Spec.MaxArray.Length}";
8282 return NowArray != null
8383 ? string.Join(" ", NowArray.Zip(Spec.MaxArray, (n, m) => $"{n}/{m}"))
@@ -109,6 +109,10 @@ namespace KancolleSniffer.Model
109109 return string.Join(" ",
110110 new[] {"1-2", "1-3", "1-4", "2-1"}.Zip(NowArray, (map, n) => n >= 1 ? map : "")
111111 .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)));
112116 case 426:
113117 return string.Join(" ",
114118 new[] {"警備任務", "対潜警戒任務", "海上護衛任務", "強硬偵察任務"}
@@ -333,6 +337,28 @@ namespace KancolleSniffer.Model
333337 }
334338 }
335339 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;
336362 case 854:
337363 if (_boss)
338364 {