From 1413b93098b14ca657b78b3d400494b437a6bed8 Mon Sep 17 00:00:00 2001 From: Kazuhiro Fujieda Date: Sat, 26 Sep 2020 18:17:36 +0900 Subject: [PATCH] =?utf8?q?=E5=8D=97=E8=A5=BF=E8=AB=B8=E5=B3=B6=E6=96=B9?= =?utf8?q?=E9=9D=A2=E3=81=AE=E6=B5=B7=E4=B8=8A=E8=AD=B7=E8=A1=9B=E3=82=92?= =?utf8?q?=E5=BC=B7=E5=8C=96=E3=81=9B=E3=82=88=EF=BC=81=E3=81=AE=E3=82=AB?= =?utf8?q?=E3=82=A6=E3=83=B3=E3=82=BF=E3=83=BC=E3=82=92=E8=BF=BD=E5=8A=A0?= =?utf8?q?=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- KancolleSniffer.Test/QuestCounterTest.cs | 38 +++++++++++++++++++++++++++++++- KancolleSniffer.Test/QuestInfoTest.cs | 17 ++++++++------ KancolleSniffer/Model/QuestCountList.cs | 2 ++ KancolleSniffer/Model/QuestInfo.cs | 4 +++- 4 files changed, 52 insertions(+), 9 deletions(-) diff --git a/KancolleSniffer.Test/QuestCounterTest.cs b/KancolleSniffer.Test/QuestCounterTest.cs index 11bb5cc..42bb19c 100644 --- a/KancolleSniffer.Test/QuestCounterTest.cs +++ b/KancolleSniffer.Test/QuestCounterTest.cs @@ -167,7 +167,8 @@ namespace KancolleSniffer.Test new QuestCount {Id = 284, NowArray = new[] {1, 1, 1, 1}}, new QuestCount {Id = 226, Now = 2}, new QuestCount {Id = 436, NowArray = new[] {1, 0, 1, 1, 1}}, - new QuestCount {Id = 437, NowArray = new[] {1, 0, 1, 1}} + new QuestCount {Id = 437, NowArray = new[] {1, 0, 1, 1}}, + new QuestCount {Id = 438, NowArray = new[] {1, 0, 1, 1}} } }; var countList = new QuestCountList(); @@ -178,12 +179,15 @@ namespace KancolleSniffer.Test new {api_id = 3, api_name = "警備任務"}, new {api_id = 4, api_name = "対潜警戒任務"}, new {api_id = 5, api_name = "海上護衛任務"}, + new {api_id = 9, api_name = "タンカー護衛任務"}, new {api_id = 10, api_name = "強行偵察任務"}, + new {api_id = 100, api_name = "兵站強化任務"}, new {api_id = 101, api_name = "海峡警備行動"}, new {api_id = 102, api_name = "長時間対潜警戒"}, new {api_id = 104, api_name = "小笠原沖哨戒線"}, new {api_id = 105, api_name = "小笠原沖戦闘哨戒"}, new {api_id = 110, api_name = "南西方面航空偵察作戦"}, + new {api_id = 114, api_name = "南西諸島捜索撃滅戦"} })); new QuestInfo(countList).LoadState(status); Assert.AreEqual("2/3", status.QuestCountList[0].ToString()); @@ -231,6 +235,9 @@ namespace KancolleSniffer.Test var q437 = status.QuestCountList.First(q => q.Id == 437); Assert.AreEqual("1\u200a0\u200a1\u200a1", q437.ToString()); Assert.AreEqual("対潜警戒任務1 小笠原沖哨戒線0 小笠原沖戦闘哨戒1 南西方面航空偵察作戦1", q437.ToToolTip()); + var q438 = status.QuestCountList.First(q => q.Id == 438); + Assert.AreEqual("1\u200a0\u200a1\u200a1", q438.ToString()); + Assert.AreEqual("対潜警戒任務1 兵站強化任務0 タンカー護衛任務1 南西諸島捜索撃滅戦1", q438.ToToolTip()); } } @@ -1694,6 +1701,35 @@ namespace KancolleSniffer.Test } /// + /// 438: 南西諸島方面の海上護衛を強化せよ! + /// + [TestMethod] + public void MissionResult_438() + { + var count = InjectQuest(438); + + _questCounter.InspectDeck(Js( + new[] + { + new {api_id = 2, api_mission = new[] {2, 4}}, + new {api_id = 3, api_mission = new[] {2, 100}}, + new {api_id = 4, api_mission = new[] {2, 9}} + })); + _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new { api_clear_result = 1 })); + _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new { api_clear_result = 1 })); + _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new { api_clear_result = 1 })); + PAssert.That(() => count.NowArray.SequenceEqual(new[] { 1, 1, 1, 0 })); + + _questCounter.InspectDeck(Js( + new[] + { + new {api_id = 2, api_mission = new[] {2, 114}} + })); + _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new { api_clear_result = 1 })); + PAssert.That(() => count.NowArray.SequenceEqual(new[] { 1, 1, 1, 1 })); + } + + /// /// 503: 艦隊大整備! /// 504: 艦隊酒保祭り! /// diff --git a/KancolleSniffer.Test/QuestInfoTest.cs b/KancolleSniffer.Test/QuestInfoTest.cs index 6f9aa26..51ceade 100644 --- a/KancolleSniffer.Test/QuestInfoTest.cs +++ b/KancolleSniffer.Test/QuestInfoTest.cs @@ -32,7 +32,8 @@ namespace KancolleSniffer.Test { new DateTime(2017, 11, 1, 5, 0, 0), new DateTime(2017, 11, 6, 5, 0, 0), new DateTime(2017, 12, 1, 5, 0, 0), new DateTime(2018, 2, 1, 5, 0, 0), - new DateTime(2018, 3, 1, 5, 0, 0), new DateTime(2018, 5, 1, 5, 0, 0) + new DateTime(2018, 3, 1, 5, 0, 0), new DateTime(2018, 5, 1, 5, 0, 0), + new DateTime(2018, 8, 1, 5, 0, 0) }); var questInfo = MakeQuestInfo(() => queue.Dequeue()); var status = new Status @@ -43,18 +44,20 @@ namespace KancolleSniffer.Test new QuestCount {Id = 265, Now = 1}, new QuestCount {Id = 436, NowArray = new[] {1, 1, 1, 1, 0}}, new QuestCount {Id = 437, NowArray = new[] {1, 1, 1, 1}}, + new QuestCount {Id = 438, NowArray = new[] {1, 1, 1, 1}}, new QuestCount {Id = 822, Now = 1}, new QuestCount {Id = 904, NowArray = new[] {1, 1, 1, 1}} }, QuestLastReset = new DateTime(2017, 10, 31, 5, 0, 0) }; questInfo.LoadState(status); - CheckQuestCountList(questInfo, status, new[] {213, 436, 437, 822, 904}); // デイリーとマンスリーが消える - CheckQuestCountList(questInfo, status, new[] {436, 437, 822, 904}); // ウィークリーが消える - CheckQuestCountList(questInfo, status, new[] {436, 437, 904}); // クォータリーが消える - CheckQuestCountList(questInfo, status, new[] {436, 437}); // イヤーリー2月が消える - CheckQuestCountList(questInfo, status, new[] {437}); // イヤーリー3月が消える - CheckQuestCountList(questInfo, status, new int[0]); // イヤーリー5月が消える + CheckQuestCountList(questInfo, status, new[] {213, 436, 437, 438, 822, 904}); // デイリーとマンスリーが消える + CheckQuestCountList(questInfo, status, new[] {436, 437, 438, 822, 904}); // ウィークリーが消える + CheckQuestCountList(questInfo, status, new[] {436, 437, 438, 904}); // クォータリーが消える + CheckQuestCountList(questInfo, status, new[] {436, 437, 438}); // イヤーリー2月が消える + CheckQuestCountList(questInfo, status, new[] {437, 438}); // イヤーリー3月が消える + CheckQuestCountList(questInfo, status, new[] {438}); // イヤーリー5月が消える + CheckQuestCountList(questInfo, status, new int[0]); // イヤーリー8月が消える } private void CheckQuestCountList(QuestInfo questInfo, Status status, int[] quests) diff --git a/KancolleSniffer/Model/QuestCountList.cs b/KancolleSniffer/Model/QuestCountList.cs index 5b752bc..b5cfbc4 100644 --- a/KancolleSniffer/Model/QuestCountList.cs +++ b/KancolleSniffer/Model/QuestCountList.cs @@ -26,6 +26,7 @@ namespace KancolleSniffer.Model private const QuestInterval Yearly2 = QuestInterval.Yearly2; private const QuestInterval Yearly3 = QuestInterval.Yearly3; private const QuestInterval Yearly5 = QuestInterval.Yearly5; + private const QuestInterval Yearly8 = QuestInterval.Yearly8; /// /// このテーブルは七四式電子観測儀を参考に作成した。 @@ -101,6 +102,7 @@ namespace KancolleSniffer.Model {428, new QuestMission {Interval = Quarterly, MaxArray = new[] {2, 2, 2}, Ids = new[] {4, 101, 102}, Material = new[] {0, 0, 0, 3}}}, // 428: 近海に侵入する敵潜を制圧せよ! {436, new QuestMission {Interval = Yearly3, MaxArray = new[] {1, 1, 1, 1, 1}, Ids = new[] {1, 2, 3, 4, 10}, Material = new [] {0, 4, 0, 0}}}, // 436: 練習航海及び警備任務を実施せよ! {437, new QuestMission {Interval = Yearly5, MaxArray = new[] {1, 1, 1, 1}, Ids = new[] {4, 104, 105, 110}, Material = new [] {0, 0, 7, 3}, Shift = 1}}, // 437: 小笠原沖哨戒線の強化を実施せよ! + {438, new QuestMission {Interval = Yearly8, MaxArray = new[] {1, 1, 1, 1}, Ids = new[] {4, 100, 9, 114}, Material = new[] {0, 0, 5, 4}, Shift = 1}}, // 438: 南西諸島方面の海上護衛を強化せよ! {503, new QuestSpec {Interval = Daily, Max = 5, Material = new[] {0, 2, 0, 0}}}, // 503: 艦隊大整備! {504, new QuestSpec {Interval = Daily, Max = 15, Material = new[] {1, 0, 1, 0}}}, // 504: 艦隊酒保祭り! diff --git a/KancolleSniffer/Model/QuestInfo.cs b/KancolleSniffer/Model/QuestInfo.cs index 10c7c33..e9dd446 100644 --- a/KancolleSniffer/Model/QuestInfo.cs +++ b/KancolleSniffer/Model/QuestInfo.cs @@ -64,7 +64,8 @@ namespace KancolleSniffer.Model Quarterly, Yearly2, Yearly3, - Yearly5 + Yearly5, + Yearly8 } public class QuestInfo : IHaveState @@ -197,6 +198,7 @@ namespace KancolleSniffer.Model QuestInterval.Yearly2 => CrossBoundary(new DateTime(_now.Year, 2, 1, 5, 0, 0)), QuestInterval.Yearly3 => CrossBoundary(new DateTime(_now.Year, 3, 1, 5, 0, 0)), QuestInterval.Yearly5 => CrossBoundary(new DateTime(_now.Year, 5, 1, 5, 0, 0)), + QuestInterval.Yearly8 => CrossBoundary(new DateTime(_now.Year, 8, 1, 5, 0, 0)), _ => false }; } -- 2.11.0