From 90fdecebf7fb39ea9d929155409774cc8ab7e1c0 Mon Sep 17 00:00:00 2001 From: Kazuhiro Fujieda Date: Sat, 23 May 2020 22:00:50 +0900 Subject: [PATCH] =?utf8?q?=E5=B0=8F=E7=AC=A0=E5=8E=9F=E6=B2=96=E5=93=A8?= =?utf8?q?=E6=88=92=E7=B7=9A=E3=81=AE=E5=BC=B7=E5=8C=96=E3=82=92=E5=AE=9F?= =?utf8?q?=E6=96=BD=E3=81=9B=E3=82=88=EF=BC=81=E3=81=AE=E3=82=AB=E3=82=A6?= =?utf8?q?=E3=83=B3=E3=82=BF=E3=83=BC=E3=82=92=E5=AE=9F=E8=A3=85=E3=81=99?= =?utf8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- KancolleSniffer.Test/QuestCounterTest.cs | 29 +++++++++++++++++++++++++++++ KancolleSniffer.Test/QuestInfoTest.cs | 32 +++++++++++++++----------------- KancolleSniffer/Model/QuestCountList.cs | 2 ++ KancolleSniffer/Model/QuestInfo.cs | 4 +++- 4 files changed, 49 insertions(+), 18 deletions(-) diff --git a/KancolleSniffer.Test/QuestCounterTest.cs b/KancolleSniffer.Test/QuestCounterTest.cs index 0f3dbca..5d9755e 100644 --- a/KancolleSniffer.Test/QuestCounterTest.cs +++ b/KancolleSniffer.Test/QuestCounterTest.cs @@ -1637,6 +1637,35 @@ namespace KancolleSniffer.Test } /// + /// 437: 小笠原沖哨戒線の強化を実施せよ! + /// + [TestMethod] + public void MissionResult_437() + { + var count = InjectQuest(437); + + _questCounter.InspectDeck(Js( + new[] + { + new {api_id = 2, api_mission = new[] {2, 4}}, + new {api_id = 3, api_mission = new[] {2, 104}}, + new {api_id = 4, api_mission = new[] {2, 105}} + })); + _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, 110}} + })); + _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 8e9a1f0..abc5fb0 100644 --- a/KancolleSniffer.Test/QuestInfoTest.cs +++ b/KancolleSniffer.Test/QuestInfoTest.cs @@ -32,7 +32,7 @@ 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, 3, 1, 5, 0, 0), new DateTime(2018, 5, 1, 5, 0, 0) }); var questInfo = new QuestInfo(() => queue.Dequeue()); var status = new Status @@ -42,28 +42,26 @@ namespace KancolleSniffer.Test new QuestCount {Id = 201, Now = 1}, new QuestCount {Id = 213, Now = 1}, 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 = 822, Now = 1}, - new QuestCount {Id = 904, NowArray = new[] {1, 1, 1, 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月が消える + } + + private void CheckQuestCountList(QuestInfo questInfo, Status status, int[] quests) + { questInfo.InspectQuestList(CreateQuestList(new[] {201})); questInfo.SaveState(status); - PAssert.That(() => - status.QuestCountList.Select(qc => qc.Id).SequenceEqual(new[] {213, 436, 822, 904})); // デイリーとマンスリーが消える - questInfo.InspectQuestList(CreateQuestList(new[] {201})); - questInfo.SaveState(status); - PAssert.That(() => - status.QuestCountList.Select(qc => qc.Id).SequenceEqual(new[] {436, 822, 904})); // ウィークリーが消える - questInfo.InspectQuestList(CreateQuestList(new[] {201})); - questInfo.SaveState(status); - PAssert.That(() => status.QuestCountList.Select(qc => qc.Id).SequenceEqual(new[] {436, 904})); // クォータリーが消える - questInfo.InspectQuestList(CreateQuestList(new[] {201})); - questInfo.SaveState(status); - PAssert.That(() => status.QuestCountList.Select(qc => qc.Id).SequenceEqual(new[] {436})); // イヤーリー2月が消える - questInfo.InspectQuestList(CreateQuestList(new[] {201})); - questInfo.SaveState(status); - PAssert.That(() => status.QuestCountList.Length == 0); // イヤーリー3月が消える + PAssert.That(() => status.QuestCountList.Select(qc => qc.Id).SequenceEqual(quests)); } [TestMethod] diff --git a/KancolleSniffer/Model/QuestCountList.cs b/KancolleSniffer/Model/QuestCountList.cs index d0d2c0e..53183f4 100644 --- a/KancolleSniffer/Model/QuestCountList.cs +++ b/KancolleSniffer/Model/QuestCountList.cs @@ -25,6 +25,7 @@ namespace KancolleSniffer.Model private const QuestInterval Quarterly = QuestInterval.Quarterly; private const QuestInterval Yearly2 = QuestInterval.Yearly2; private const QuestInterval Yearly3 = QuestInterval.Yearly3; + private const QuestInterval Yearly5 = QuestInterval.Yearly5; /// /// このテーブルは七四式電子観測儀を参考に作成した。 @@ -99,6 +100,7 @@ namespace KancolleSniffer.Model {426, new QuestMission {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1}, Ids = new[] {3, 4, 5, 10}, Material = new[] {0, 0, 4, 0}}}, // 426: 海上通商航路の警戒を厳とせよ! {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: 小笠原沖哨戒線の強化を実施せよ! {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 21c43f3..acb0490 100644 --- a/KancolleSniffer/Model/QuestInfo.cs +++ b/KancolleSniffer/Model/QuestInfo.cs @@ -64,7 +64,8 @@ namespace KancolleSniffer.Model Monthly, Quarterly, Yearly2, - Yearly3 + Yearly3, + Yearly5 } public class QuestInfo : IHaveState @@ -222,6 +223,7 @@ namespace KancolleSniffer.Model QuestInterval.Quarterly => CrossBoundary(QuarterlyBoundary.AddHours(5)), 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)), _ => false }; } -- 2.11.0