new QuestCount {Id = 280, NowArray = new[] {1, 1, 1, 1}},\r
new QuestCount {Id = 872, NowArray = new[] {1, 1, 1, 1}},\r
new QuestCount {Id = 284, NowArray = new[] {1, 1, 1, 1}},\r
- new QuestCount {Id = 226, Now = 2}\r
+ new QuestCount {Id = 226, Now = 2},\r
+ new QuestCount {Id = 436, NowArray = new[] {1, 0, 1, 1, 1}},\r
}\r
};\r
new QuestInfo().LoadState(status);\r
var q226 = status.QuestCountList.First(q => q.Id == 226);\r
Assert.AreEqual("2/5", q226.ToString());\r
Assert.AreEqual("", q226.ToToolTip());\r
+ var q436 = status.QuestCountList.First(q => q.Id == 436);\r
+ Assert.AreEqual("1\u200a0\u200a1\u200a1\u200a1", q436.ToString());\r
+ Assert.AreEqual("練習航海1 長距離練習航海0 警備任務1 対潜警戒任務1 強行偵察任務1", q436.ToToolTip());\r
}\r
}\r
\r
}\r
\r
/// <summary>\r
+ /// 436: 練習航海及び警備任務を実施せよ!\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void MissionResult_436()\r
+ {\r
+ var count = InjectQuest(436);\r
+\r
+ _questCounter.InspectDeck(Js(\r
+ new[]\r
+ {\r
+ new {api_id = 2, api_mission = new[] {2, 1}},\r
+ new {api_id = 3, api_mission = new[] {2, 2}},\r
+ new {api_id = 4, api_mission = new[] {2, 3}}\r
+ }));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}));\r
+\r
+ _questCounter.InspectDeck(Js(\r
+ new[]\r
+ {\r
+ new {api_id = 2, api_mission = new[] {2, 4}},\r
+ new {api_id = 3, api_mission = new[] {2, 10}}\r
+ }));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
+ }\r
+\r
+ /// <summary>\r
/// 503: 艦隊大整備!\r
/// 504: 艦隊酒保祭り!\r
/// </summary>\r
private const QuestInterval Weekly = QuestInterval.Weekly;\r
private const QuestInterval Monthly = QuestInterval.Monthly;\r
private const QuestInterval Quarterly = QuestInterval.Quarterly;\r
- private const QuestInterval Yearly = QuestInterval.Yearly;\r
+ private const QuestInterval Yearly2 = QuestInterval.Yearly2;\r
+ private const QuestInterval Yearly3 = QuestInterval.Yearly3;\r
\r
/// <summary>\r
/// このテーブルは七四式電子観測儀を参考に作成した。\r
{893, new QuestSortie {Interval = Quarterly, MaxArray = new[] {3, 3, 3, 3}, Rank = "S", Maps = new[] {15, 71, 721, 722}, Material = new[] {0, 0, 0, 0}}}, // 893: 泊地周辺海域の安全確保を徹底せよ!\r
{894, new QuestSortie {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1, 1}, Rank = "S", Maps = new[] {13, 14, 21, 22, 23}, Material = new[] {0, 0, 0, 0}}}, // 894: 空母戦力の投入による兵站線戦闘哨戒\r
{903, new QuestSortie {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1}, Rank = "S", Maps = new[] {51, 54, 64, 65}, Material = new[] {0, 10, 0, 0}}}, // 903: 拡張「六水戦」、最前線へ!\r
- {904, new QuestSortie {Interval = Yearly, MaxArray = new[] {1, 1, 1, 1}, Rank = "S", Maps = new[] {25, 34, 45, 53}, Material = new[] {0, 8, 10, 4}}}, // 904: 精鋭「十九駆」、躍り出る!\r
- {905, new QuestSortie {Interval = Yearly, MaxArray = new[] {1, 1, 1, 1, 1}, Rank = "A", Maps = new[] {11, 12, 13, 15, 16}, Material = new[] {0, 6, 8, 0}}}, // 905: 「海防艦」、海を護る!\r
+ {904, new QuestSortie {Interval = Yearly2, MaxArray = new[] {1, 1, 1, 1}, Rank = "S", Maps = new[] {25, 34, 45, 53}, Material = new[] {0, 8, 10, 4}}}, // 904: 精鋭「十九駆」、躍り出る!\r
+ {905, new QuestSortie {Interval = Yearly2, MaxArray = new[] {1, 1, 1, 1, 1}, Rank = "A", Maps = new[] {11, 12, 13, 15, 16}, Material = new[] {0, 6, 8, 0}}}, // 905: 「海防艦」、海を護る!\r
\r
{303, new QuestPractice {Interval = Daily, Max = 3, Rank = "E", Material = new[] {1, 0, 0, 0}}}, // 303: 「演習」で練度向上!\r
{304, new QuestPractice {Interval = Daily, Max = 5, Rank = "B", Material = new[] {0, 0, 1, 0}}}, // 304: 「演習」で他提督を圧倒せよ!\r
{424, new QuestMission {Interval = Monthly, Max = 4, Shift = 1, Ids = new[] {5}, Material = new[] {0, 0, 0, 0}}}, // 424: 輸送船団護衛を強化せよ!\r
{426, new QuestMission {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1}, Ids = new[] {3, 4, 5, 10}, Material = new[] {0, 0, 4, 0}}}, // 426: 海上通商航路の警戒を厳とせよ!\r
{428, new QuestMission {Interval = Quarterly, MaxArray = new[] {2, 2, 2}, Ids = new[] {4, 101, 102}, Material = new[] {0, 0, 0, 3}}}, // 428: 近海に侵入する敵潜を制圧せよ!\r
+ {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: 練習航海及び警備任務を実施せよ!\r
\r
{503, new QuestSpec {Interval = Daily, Max = 5, Material = new[] {0, 2, 0, 0}}}, // 503: 艦隊大整備!\r
{504, new QuestSpec {Interval = Daily, Max = 15, Material = new[] {1, 0, 1, 0}}}, // 504: 艦隊酒保祭り!\r
Weekly,\r
Monthly,\r
Quarterly,\r
- Yearly\r
+ Yearly2,\r
+ Yearly3\r
}\r
\r
public class QuestInfo : IHaveState\r
private readonly QuestInterval[] _intervals =\r
{\r
QuestInterval.Daily, QuestInterval.Weekly, QuestInterval.Monthly,\r
- QuestInterval.Other, QuestInterval.Quarterly, QuestInterval.Yearly\r
+ QuestInterval.Other, QuestInterval.Quarterly, QuestInterval.Yearly2\r
};\r
\r
private readonly int[] _progress = {0, 50, 80};\r
QuestInterval.Weekly => CrossBoundary(LastMonday.AddHours(5)),\r
QuestInterval.Monthly => CrossBoundary(new DateTime(_now.Year, _now.Month, 1, 5, 0, 0)),\r
QuestInterval.Quarterly => CrossBoundary(QuarterlyBoundary.AddHours(5)),\r
- QuestInterval.Yearly => CrossBoundary(new DateTime(_now.Year, 2, 1, 5, 0, 0)),\r
+ QuestInterval.Yearly2 => CrossBoundary(new DateTime(_now.Year, 2, 1, 5, 0, 0)),\r
_ => false\r
};\r
}\r