QuestLastReset = new DateTime(2017, 10, 31, 5, 0, 0)\r
};\r
questInfo.LoadState(status);\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {new {api_no = 201, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}}\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {201}));\r
questInfo.SaveState(status);\r
PAssert.That(() =>\r
status.QuestCountList.Select(qc => new {qc.Id, qc.Now}).SequenceEqual(new[]\r
{new {Id = 213, Now = 1}, new {Id = 822, Now = 1}})); // デイリーとマンスリーが消える\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {new {api_no = 201, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}}\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {201}));\r
questInfo.SaveState(status);\r
PAssert.That(() =>\r
status.QuestCountList.Select(qc => new {qc.Id, qc.Now}).SequenceEqual(new[]\r
{new {Id = 822, Now = 1}})); // ウィークリーが消える\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {new {api_no = 201, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}}\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {201}));\r
questInfo.SaveState(status);\r
PAssert.That(() => status.QuestCountList.Length == 0); // クォータリーが消える\r
}\r
\r
private JsonObject Js(object obj) => JsonObject.CreateJsonObject(obj);\r
\r
+ private object CreateQuestList(int[] ids) => Js(new\r
+ {\r
+ api_list =\r
+ ids.Select(id => new\r
+ {\r
+ api_no = id,\r
+ api_category = id / 100,\r
+ api_state = 2,\r
+ api_title = "",\r
+ api_detail = "",\r
+ api_get_material = new int[0],\r
+ api_progress_flag = 0\r
+ })\r
+ });\r
+\r
/// <summary>\r
/// 201: 敵艦隊を撃滅せよ!\r
/// 210: 敵艦隊を10回邀撃せよ!\r
public void BattleResult_201_216_210_214()\r
{\r
var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new {api_no = 201, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 210, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 214, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 216, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}\r
- }\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {201, 216, 210, 214}));\r
\r
questInfo.InspectMapStart(Js(new\r
{\r
/// 218: 敵補給艦を3隻撃沈せよ!\r
/// </summary>\r
[TestMethod]\r
- public void BattleResult_211_212_218_213_220_221()\r
+ public void BattleResult_211_212_213_218_220_221()\r
{\r
var battleInfo = new BattleInfo(null, null);\r
var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1)) {AcceptMax = 6};\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new {api_no = 211, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 212, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 213, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 218, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 220, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 221, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}\r
- }\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {211, 212, 213, 218, 220, 221}));\r
// 補給艦1隻と空母2隻\r
battleInfo.InjectEnemyResultStatus(new[]\r
{\r
{\r
var battleInfo = new BattleInfo(null, null);\r
var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new {api_no = 228, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 230, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}\r
- }\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {228, 230}));\r
// 潜水艦3\r
battleInfo.InjectEnemyResultStatus(new[]\r
{\r
public void BattleResult_226()\r
{\r
var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new {api_no = 226, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}\r
- }\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {226}));\r
\r
questInfo.InspectMapStart(Js(new\r
{\r
public void BattleResult_243()\r
{\r
var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new {api_no = 243, api_category = 2, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}\r
- }\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {243}));\r
\r
questInfo.InspectMapStart(Js(new\r
{\r
public void BattleResult_822_854()\r
{\r
var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new {api_no = 822, api_category = 8, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 854, api_category = 8, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}\r
- }\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {822, 854}));\r
\r
questInfo.InspectMapNext(Js(new\r
{\r
public void PracticeResult_303_304_302_311()\r
{\r
var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new {api_no = 302, api_category = 3, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 303, api_category = 3, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 304, api_category = 3, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 311, api_category = 3, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}\r
- }\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {302, 303, 304, 311}));\r
\r
questInfo.InspectPracticeResult(Js(new {api_win_rank = "C"}));\r
questInfo.InspectPracticeResult(Js(new {api_win_rank = "A"}));\r
public void MissionResult_402_403_404_410_411()\r
{\r
var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new {api_no = 402, api_category = 4, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 403, api_category = 4, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 404, api_category = 4, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 410, api_category = 4, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 411, api_category = 4, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}\r
- }\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {402, 403, 404, 410, 411}));\r
\r
questInfo.InspectDeck(Js(\r
new[]\r
public void MissionResult_426()\r
{\r
var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new {api_no = 426, api_category = 4, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- }\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {426}));\r
\r
questInfo.InspectDeck(Js(\r
new[]\r
{\r
new {api_id = 2, api_mission = new[] {2, 3}},\r
new {api_id = 3, api_mission = new[] {2, 4}},\r
- new {api_id = 4, api_mission = new[] {2, 5}},\r
+ new {api_id = 4, api_mission = new[] {2, 5}}\r
}));\r
questInfo.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
questInfo.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
questInfo.InspectDeck(Js(\r
new[]\r
{\r
- new {api_id = 2, api_mission = new[] {2, 10}},\r
+ new {api_id = 2, api_mission = new[] {2, 10}}\r
}));\r
questInfo.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
PAssert.That(() =>\r
public void MissionResult_428()\r
{\r
var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new {api_no = 428, api_category = 4, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- }\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {428}));\r
\r
questInfo.InspectDeck(Js(\r
new[]\r
{\r
new {api_id = 2, api_mission = new[] {2, 4}},\r
new {api_id = 3, api_mission = new[] {2, 101}},\r
- new {api_id = 4, api_mission = new[] {2, 102}},\r
+ new {api_id = 4, api_mission = new[] {2, 102}}\r
}));\r
questInfo.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
questInfo.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
public void Powerup_503_504()\r
{\r
var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new {api_no = 503, api_category = 5, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 504, api_category = 5, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}\r
- }\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {503, 504}));\r
\r
questInfo.CountNyukyo();\r
questInfo.CountCharge();\r
public void Kousyou_605_606_607_608_609_619()\r
{\r
var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1)) {AcceptMax = 6};\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new {api_no = 605, api_category = 6, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 606, api_category = 6, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 607, api_category = 6, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 608, api_category = 6, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 609, api_category = 6, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 619, api_category = 6, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}\r
- }\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {605, 606, 607, 608, 609, 619}));\r
\r
questInfo.CountCreateItem();\r
questInfo.CountCreateShip();\r
new ItemSpec {Id = 13, Name = "61cm三連装魚雷", Type = 5}\r
});\r
itemInfo.InjectItems(new[] {1, 37, 19, 4, 11, 75, 7, 25, 13});\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new {api_no = 613, api_category = 6, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 638, api_category = 6, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 663, api_category = 6, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 673, api_category = 6, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 674, api_category = 6, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 675, api_category = 6, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 676, api_category = 6, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 677, api_category = 6, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}\r
- }\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {613, 638, 663, 673, 674, 675, 676, 677}));\r
questInfo.InspectDestroyItem("api%5Fslotitem%5Fids=1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9&api%5Fverno=1", null);\r
PAssert.That(() =>\r
questInfo.Quests.Select(q => new {q.Id, q.Count.Now}).Take(5).SequenceEqual(new[]\r
public void Powerup_702_703()\r
{\r
var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
-\r
- questInfo.InspectQuestList(Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new {api_no = 702, api_category = 7, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0},\r
- new {api_no = 703, api_category = 7, api_state = 2, api_title = "", api_detail = "", api_progress_flag = 0}\r
- }\r
- }));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {702, 703}));\r
questInfo.InspectPowerup(Js(new {api_powerup_flag = 1}));\r
PAssert.That(() =>\r
questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
.SequenceEqual(new[] {new {Id = 702, Now = 1}, new {Id = 703, Now = 1}}));\r
}\r
\r
+ [TestMethod]\r
+ public void NotImplemented()\r
+ {\r
+ var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {318}));\r
+ PAssert.That(() => questInfo.Quests[0].Count.Spec.Material.Length == 0);\r
+ }\r
+\r
/// <summary>\r
/// 文字列表記にする\r
/// </summary>\r
public int Category { get; set; }\r
public string Name { get; set; }\r
public string Detail { get; set; }\r
+ public int[] Material { get; set; }\r
public int Progress { get; set; }\r
\r
[XmlIgnore]\r
\r
[XmlIgnore]\r
public Color Color { get; set; }\r
+\r
+ public string ToToolTip() =>\r
+ Detail +\r
+ (Material == null || Material.All(x => x == 0)\r
+ ? ""\r
+ : "\r\n" + string.Join(" ",\r
+ new[] {"燃", "弾", "鋼", "ボ", "建造", "修復", "開発", "改修"}\r
+ .Zip(Material, (m, num) => num == 0 ? "" : m + num)\r
+ .Where(s => !string.IsNullOrEmpty(s))));\r
}\r
\r
public enum QuestInterval\r
public int[] MaxArray { get; set; }\r
public bool AdjustCount { get; set; } = true;\r
public int Shift { get; set; }\r
+ public int[] Material { get; set; }\r
}\r
\r
public class QuestSortie : QuestSpec\r
{\r
case 426:\r
return string.Join(" ",\r
- new[] {"警備任務", "対潜警戒任務", "海上護衛任務", "強硬偵察任務"}.Zip(NowArray, (mission, n) => n >= 1 ? mission : "")\r
+ new[] {"警備任務", "対潜警戒任務", "海上護衛任務", "強硬偵察任務"}\r
+ .Zip(NowArray, (mission, n) => n >= 1 ? mission : "")\r
.Where(s => !string.IsNullOrEmpty(s)));\r
case 428:\r
return string.Join(" ",\r
/// </summary>\r
private static readonly Dictionary<int, QuestSpec> QuestSpecs = new Dictionary<int, QuestSpec>\r
{\r
- {201, new QuestSortie {Interval = Daily, Max = 1, Rank = "B"}}, // 201: 敵艦隊を撃滅せよ!\r
- {216, new QuestSortie {Interval = Daily, Max = 1, Rank = "B"}}, // 216: 敵艦隊主力を撃滅せよ!\r
- {210, new QuestSortie {Interval = Daily, Max = 10}}, // 210: 敵艦隊を10回邀撃せよ!\r
- {211, new QuestEnemyType {Interval = Daily, Max = 3, EnemyType = new[] {7, 11}}}, // 211: 敵空母を3隻撃沈せよ!\r
- {212, new QuestEnemyType {Interval = Daily, Max = 5, EnemyType = new[] {15}}}, // 212: 敵輸送船団を叩け!\r
- {218, new QuestEnemyType {Interval = Daily, Max = 3, EnemyType = new[] {15}}}, // 218: 敵補給艦を3隻撃沈せよ!\r
- {226, new QuestSortie {Interval = Daily, Max = 5, Rank = "B", Maps = new[] {21, 22, 23, 24, 25}}}, // 226: 南西諸島海域の制海権を握れ!\r
- {230, new QuestEnemyType {Interval = Daily, Max = 6, EnemyType = new[] {13}}}, // 230: 敵潜水艦を制圧せよ!\r
-\r
- {213, new QuestEnemyType {Interval = Weekly, Max = 20, EnemyType = new[] {15}}}, // 213: 海上通商破壊作戦\r
- {214, new QuestSpec {Interval = Weekly, MaxArray = new[] {36, 6, 24, 12}}}, // 214: あ号作戦\r
- {220, new QuestEnemyType {Interval = Weekly, Max = 20, EnemyType = new[] {7, 11}}}, // 220: い号作戦\r
- {221, new QuestEnemyType {Interval = Weekly, Max = 50, EnemyType = new[] {15}}}, // 221: ろ号作戦\r
- {228, new QuestEnemyType {Interval = Weekly, Max = 15, EnemyType = new[] {13}}}, // 228: 海上護衛戦\r
- {229, new QuestSortie {Interval = Weekly, Max = 12, Rank = "B", Maps = new[] {41, 42, 43, 44, 45}}}, // 229: 敵東方艦隊を撃滅せよ!\r
- {241, new QuestSortie {Interval = Weekly, Max = 5, Rank = "B", Maps = new[] {33, 34, 35}}}, // 241: 敵北方艦隊主力を撃滅せよ!\r
- {242, new QuestSortie {Interval = Weekly, Max = 1, Rank = "B", Maps = new[] {44}}}, // 242: 敵東方中枢艦隊を撃破せよ!\r
- {243, new QuestSortie {Interval = Weekly, Max = 2, Rank = "S", Maps = new[] {52}}}, // 243: 南方海域珊瑚諸島沖の制空権を握れ!\r
- {256, new QuestSortie {Interval = Monthly, Max = 3, Rank = "S", Maps = new[] {61}}}, // 256: 「潜水艦隊」出撃せよ!\r
- {261, new QuestSortie {Interval = Weekly, Max = 3, Rank = "A", Maps = new[] {15}}}, // 261: 海上輸送路の安全確保に努めよ!\r
- {265, new QuestSortie {Interval = Monthly, Max = 10, Rank = "A", Maps = new[] {15}}}, // 265: 海上護衛強化月間\r
-\r
- {822, new QuestSortie {Interval = Quarterly, Max = 2, Rank = "S", Maps = new[] {24}}}, // 822: 沖ノ島海域迎撃戦\r
- {854, new QuestSpec {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1}}}, // 854: 戦果拡張任務!「Z作戦」前段作戦\r
-\r
- {303, new QuestPractice {Interval = Daily, Max = 3, Win = false}}, // 303: 「演習」で練度向上!\r
- {304, new QuestPractice {Interval = Daily, Max = 5, Win = true}}, // 304: 「演習」で他提督を圧倒せよ!\r
- {302, new QuestPractice {Interval = Weekly, Max = 20, Win = true}}, // 302: 大規模演習\r
- {311, new QuestPractice {Interval = Daily, Max = 7, Win = true}}, // 311: 精鋭艦隊演習\r
-\r
- {402, new QuestMission {Interval = Daily, Max = 3}}, // 402: 「遠征」を3回成功させよう!\r
- {403, new QuestMission {Interval = Daily, Max = 10}}, // 403: 「遠征」を10回成功させよう!\r
- {404, new QuestMission {Interval = Weekly, Max = 30}}, // 404: 大規模遠征作戦、発令!\r
- {410, new QuestMission {Interval = Weekly, Max = 1, Ids = new[] {37, 38}}}, // 410: 南方への輸送作戦を成功させよ!\r
- {411, new QuestMission {Interval = Weekly, Max = 6, Shift = 1, Ids = new[] {37, 38}}}, // 411: 南方への鼠輸送を継続実施せよ!\r
- {424, new QuestMission {Interval = Monthly, Max = 4, Shift = 1, Ids = new[] {5}}}, // 424: 輸送船団護衛を強化せよ!\r
- {426, new QuestSpec {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1}}}, // 426: 海上通商航路の警戒を厳とせよ!\r
- {428, new QuestSpec {Interval = Quarterly, MaxArray = new[] {2, 2, 2}}}, // 428: 近海に侵入する敵潜を制圧せよ!\r
-\r
- {503, new QuestSpec {Interval = Daily, Max = 5}}, // 503: 艦隊大整備!\r
- {504, new QuestSpec {Interval = Daily, Max = 15}}, // 504: 艦隊酒保祭り!\r
-\r
- {605, new QuestSpec {Interval = Daily, Max = 1}}, // 605: 新装備「開発」指令\r
- {606, new QuestSpec {Interval = Daily, Max = 1}}, // 606: 新造艦「建造」指令\r
- {607, new QuestSpec {Interval = Daily, Max = 3, Shift = 1}}, // 607: 装備「開発」集中強化!\r
- {608, new QuestSpec {Interval = Daily, Max = 3, Shift = 1}}, // 608: 艦娘「建造」艦隊強化!\r
- {609, new QuestSpec {Interval = Daily, Max = 2}}, // 609: 軍縮条約対応!\r
- {619, new QuestSpec {Interval = Daily, Max = 1}}, // 619: 装備の改修強化\r
-\r
- {613, new QuestSpec {Interval = Weekly, Max = 24}}, // 613: 資源の再利用\r
- {638, new QuestDestroyItem {Interval = Weekly, Max = 6, Items = new[] {21}}}, // 638: 対空機銃量産\r
- {663, new QuestDestroyItem {Interval = Quarterly, Max = 10, Items = new[] {3}} }, // 663: 新型艤装の継続研究\r
- {673, new QuestDestroyItem {Interval = Daily, Max = 4, Items = new[] {1}, Shift = 1}}, // 673: 装備開発力の整備\r
- {674, new QuestDestroyItem {Interval = Daily, Max = 3, Items = new[] {21}, Shift = 2}}, // 674: 工廠環境の整備\r
- {675, new QuestSpec {Interval = Quarterly, MaxArray = new[] {6, 4}}}, // 675: 運用装備の統合整備\r
- {676, new QuestSpec {Interval = Weekly, MaxArray = new[] {3, 3, 1}}}, // 676: 装備開発力の集中整備\r
- {677, new QuestSpec {Interval = Weekly, MaxArray = new[] {4, 2, 3}}}, // 677: 継戦支援能力の整備\r
-\r
- {702, new QuestPowerup {Interval = Daily, Max = 2}}, // 702: 艦の「近代化改修」を実施せよ!\r
- {703, new QuestPowerup {Interval = Weekly, Max = 15}} // 703: 「近代化改修」を進め、戦備を整えよ!\r
+ {201, new QuestSortie {Interval = Daily, Max = 1, Rank = "B", Material = new[] {0, 0, 1, 0}}}, // 201: 敵艦隊を撃滅せよ!\r
+ {216, new QuestSortie {Interval = Daily, Max = 1, Rank = "B", Material = new[] {0, 1, 1, 0}}}, // 216: 敵艦隊主力を撃滅せよ!\r
+ {210, new QuestSortie {Interval = Daily, Max = 10, Material = new[] {0, 0, 1, 0}}}, // 210: 敵艦隊を10回邀撃せよ!\r
+ {211, new QuestEnemyType {Interval = Daily, Max = 3, EnemyType = new[] {7, 11}, Material = new[] {0, 2, 0, 0}}}, // 211: 敵空母を3隻撃沈せよ!\r
+ {212, new QuestEnemyType {Interval = Daily, Max = 5, EnemyType = new[] {15}, Material = new[] {0, 0, 2, 0}}}, // 212: 敵輸送船団を叩け!\r
+ {218, new QuestEnemyType {Interval = Daily, Max = 3, EnemyType = new[] {15}, Material = new[] {0, 1, 1, 0}}}, // 218: 敵補給艦を3隻撃沈せよ!\r
+ {226, new QuestSortie {Interval = Daily, Max = 5, Rank = "B", Maps = new[] {21, 22, 23, 24, 25}, Material = new[] {1, 1, 0, 0}}}, // 226: 南西諸島海域の制海権を握れ!\r
+ {230, new QuestEnemyType {Interval = Daily, Max = 6, EnemyType = new[] {13}, Material = new[] {0, 1, 0, 0}}}, // 230: 敵潜水艦を制圧せよ!\r
+\r
+ {213, new QuestEnemyType {Interval = Weekly, Max = 20, EnemyType = new[] {15}, Material = new[] {0, 0, 3, 0}}}, // 213: 海上通商破壊作戦\r
+ {214, new QuestSpec {Interval = Weekly, MaxArray = new[] {36, 6, 24, 12}, Material = new[] {2, 0, 2, 0}}}, // 214: あ号作戦\r
+ {220, new QuestEnemyType {Interval = Weekly, Max = 20, EnemyType = new[] {7, 11}, Material = new[] {0, 2, 0, 0}}}, // 220: い号作戦\r
+ {221, new QuestEnemyType {Interval = Weekly, Max = 50, EnemyType = new[] {15}, Material = new[] {0, 3, 0, 0}}}, // 221: ろ号作戦\r
+ {228, new QuestEnemyType {Interval = Weekly, Max = 15, EnemyType = new[] {13}, Material = new[] {0, 2, 0, 1}}}, // 228: 海上護衛戦\r
+ {229, new QuestSortie {Interval = Weekly, Max = 12, Rank = "B", Maps = new[] {41, 42, 43, 44, 45}, Material = new[] {0, 0, 2, 0}}}, // 229: 敵東方艦隊を撃滅せよ!\r
+ {241, new QuestSortie {Interval = Weekly, Max = 5, Rank = "B", Maps = new[] {33, 34, 35}, Material = new[] {0, 0, 3, 3}}}, // 241: 敵北方艦隊主力を撃滅せよ!\r
+ {242, new QuestSortie {Interval = Weekly, Max = 1, Rank = "B", Maps = new[] {44}, Material = new[] {0, 1, 1, 0}}}, // 242: 敵東方中枢艦隊を撃破せよ!\r
+ {243, new QuestSortie {Interval = Weekly, Max = 2, Rank = "S", Maps = new[] {52}, Material = new[] {0, 0, 2, 2}}}, // 243: 南方海域珊瑚諸島沖の制空権を握れ!\r
+ {256, new QuestSortie {Interval = Monthly, Max = 3, Rank = "S", Maps = new[] {61}, Material = new[] {0, 0, 0, 0}}}, // 256: 「潜水艦隊」出撃せよ!\r
+ {261, new QuestSortie {Interval = Weekly, Max = 3, Rank = "A", Maps = new[] {15}, Material = new[] {0, 0, 0, 3}}}, // 261: 海上輸送路の安全確保に努めよ!\r
+ {265, new QuestSortie {Interval = Monthly, Max = 10, Rank = "A", Maps = new[] {15}, Material = new[] {0, 0, 5, 3}}}, // 265: 海上護衛強化月間\r
+\r
+ {822, new QuestSortie {Interval = Quarterly, Max = 2, Rank = "S", Maps = new[] {24}, Material = new[] {0, 0, 0, 5}}}, // 822: 沖ノ島海域迎撃戦\r
+ {854, new QuestSpec {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1}, Material = new[] {0, 0, 0, 4}}}, // 854: 戦果拡張任務!「Z作戦」前段作戦\r
+\r
+ {303, new QuestPractice {Interval = Daily, Max = 3, Win = false, Material = new[] {1, 0, 0, 0}}}, // 303: 「演習」で練度向上!\r
+ {304, new QuestPractice {Interval = Daily, Max = 5, Win = true, Material = new[] {0, 0, 1, 0}}}, // 304: 「演習」で他提督を圧倒せよ!\r
+ {302, new QuestPractice {Interval = Weekly, Max = 20, Win = true, Material = new[] {0, 0, 2, 1}}}, // 302: 大規模演習\r
+ {311, new QuestPractice {Interval = Daily, Max = 7, Win = true, Material = new[] {0, 2, 0, 0}}}, // 311: 精鋭艦隊演習\r
+\r
+ {402, new QuestMission {Interval = Daily, Max = 3, Material = new[] {0, 0, 1, 0}}}, // 402: 「遠征」を3回成功させよう!\r
+ {403, new QuestMission {Interval = Daily, Max = 10, Material = new[] {0, 0, 0, 0}}}, // 403: 「遠征」を10回成功させよう!\r
+ {404, new QuestMission {Interval = Weekly, Max = 30, Material = new[] {0, 0, 3, 0}}}, // 404: 大規模遠征作戦、発令!\r
+ {410, new QuestMission {Interval = Weekly, Max = 1, Ids = new[] {37, 38}, Material = new[] {0, 0, 0, 0}}}, // 410: 南方への輸送作戦を成功させよ!\r
+ {411, new QuestMission {Interval = Weekly, Max = 6, Shift = 1, Ids = new[] {37, 38}, Material = new[] {0, 0, 2, 1}}}, // 411: 南方への鼠輸送を継続実施せよ!\r
+ {424, new QuestMission {Interval = Monthly, Max = 4, Shift = 1, Ids = new[] {5}, Material = new[] {0, 0, 0, 0}}}, // 424: 輸送船団護衛を強化せよ!\r
+ {426, new QuestSpec {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1}, Material = new[] {0, 0, 4, 0}}}, // 426: 海上通商航路の警戒を厳とせよ!\r
+ {428, new QuestSpec {Interval = Quarterly, MaxArray = new[] {2, 2, 2}, Material = new[] {0, 0, 0, 3}}}, // 428: 近海に侵入する敵潜を制圧せよ!\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
+\r
+ {605, new QuestSpec {Interval = Daily, Max = 1, Material = new[] {1, 0, 1, 0}}}, // 605: 新装備「開発」指令\r
+ {606, new QuestSpec {Interval = Daily, Max = 1, Material = new[] {0, 1, 1, 0}}}, // 606: 新造艦「建造」指令\r
+ {607, new QuestSpec {Interval = Daily, Max = 3, Shift = 1, Material = new[] {0, 0, 2, 0}}}, // 607: 装備「開発」集中強化!\r
+ {608, new QuestSpec {Interval = Daily, Max = 3, Shift = 1, Material = new[] {1, 0, 2, 0}}}, // 608: 艦娘「建造」艦隊強化!\r
+ {609, new QuestSpec {Interval = Daily, Max = 2, Material = new[] {0, 1, 0, 0}}}, // 609: 軍縮条約対応!\r
+ {619, new QuestSpec {Interval = Daily, Max = 1, Material = new[] {0, 0, 0, 1}}}, // 619: 装備の改修強化\r
+\r
+ {613, new QuestSpec {Interval = Weekly, Max = 24, Material = new[] {0, 0, 0, 0}}}, // 613: 資源の再利用\r
+ {638, new QuestDestroyItem {Interval = Weekly, Max = 6, Items = new[] {21}, Material = new[] {0, 0, 2, 1}}}, // 638: 対空機銃量産\r
+ {663, new QuestDestroyItem {Interval = Quarterly, Max = 10, Items = new[] {3}, Material = new[] {0, 0, 3, 0}}}, // 663: 新型艤装の継続研究\r
+ {673, new QuestDestroyItem {Interval = Daily, Max = 4, Items = new[] {1}, Shift = 1, Material = new[] {0, 0, 1, 0}}}, // 673: 装備開発力の整備\r
+ {674, new QuestDestroyItem {Interval = Daily, Max = 3, Items = new[] {21}, Shift = 2, Material = new[] {0, 1, 1, 0}}}, // 674: 工廠環境の整備\r
+ {675, new QuestSpec {Interval = Quarterly, MaxArray = new[] {6, 4}, Material = new[] {0, 0, 0, 0}}}, // 675: 運用装備の統合整備\r
+ {676, new QuestSpec {Interval = Weekly, MaxArray = new[] {3, 3, 1}, Material = new[] {0, 1, 7, 0}}}, // 676: 装備開発力の集中整備\r
+ {677, new QuestSpec {Interval = Weekly, MaxArray = new[] {4, 2, 3}, Material = new[] {0, 5, 0, 0}}}, // 677: 継戦支援能力の整備\r
+\r
+ {702, new QuestPowerup {Interval = Daily, Max = 2, Material = new[] {0, 1, 0, 0}}}, // 702: 艦の「近代化改修」を実施せよ!\r
+ {703, new QuestPowerup {Interval = Weekly, Max = 15, Material = new[] {1, 0, 2, 0}}} // 703: 「近代化改修」を進め、戦備を整えよ!\r
};\r
// @formatter:on\r
\r
Spec = spec\r
};\r
}\r
- return new QuestCount {Spec = new QuestSpec {AdjustCount = false}};\r
+ return new QuestCount {Spec = new QuestSpec {Material = new int[0], AdjustCount = false}};\r
}\r
\r
public void Remove(int id)\r
var cat = (int)entry.api_category;\r
var name = (string)entry.api_title;\r
var detail = ((string)entry.api_detail).Replace("<br>", "\r\n");\r
+ var material = (int[])entry.api_get_material;\r
\r
switch (progress)\r
{\r
progress = 100;\r
goto case 2;\r
case 2:\r
- AddQuest(id, cat, name, detail, progress, true);\r
+ AddQuest(id, cat, name, detail, material, progress, true);\r
break;\r
}\r
}\r
}\r
}\r
\r
- private void AddQuest(int id, int category, string name, string detail, int progress, bool adjustCount)\r
+ private void AddQuest(int id, int category, string name, string detail, int[] material, int progress,\r
+ bool adjustCount)\r
{\r
var count = _countList.GetCount(id);\r
if (adjustCount)\r
Category = category,\r
Name = name,\r
Detail = detail,\r
+ Material = material?.Concat(count.Spec.Material).ToArray(),\r
Count = count,\r
Progress = progress,\r
Color = category <= _color.Length ? _color[category - 1] : Control.DefaultBackColor\r
{\r
_quests.Clear();\r
foreach (var q in status.QuestList)\r
- AddQuest(q.Id, q.Category, q.Name, q.Detail, q.Progress, false);\r
+ AddQuest(q.Id, q.Category, q.Name, q.Detail, q.Material, q.Progress, false);\r
}\r
}\r
}\r