using System;\r
using System.Collections.Generic;\r
using System.Linq;\r
+using DynaJson;\r
using ExpressionToCodeLib;\r
using KancolleSniffer.Model;\r
-using KancolleSniffer.Util;\r
using Microsoft.VisualStudio.TestTools.UnitTesting;\r
\r
namespace KancolleSniffer.Test\r
public class QuestInfoTest\r
{\r
[TestMethod]\r
- public void AdjustCount()\r
- {\r
- var count = new QuestCount\r
- {\r
- Spec = new QuestSpec {Max = 7},\r
- Now = 3\r
- };\r
- count.AdjustCount(0);\r
- PAssert.That(() => count.Now == 3);\r
- count.AdjustCount(50);\r
- PAssert.That(() => count.Now == 4);\r
- count.AdjustCount(80);\r
- PAssert.That(() => count.Now == 6);\r
- count.AdjustCount(100);\r
- PAssert.That(() => count.Now == 7);\r
- count.Now = 14;\r
- count.AdjustCount(100);\r
- PAssert.That(() => count.Now == 14);\r
- count.AdjustCount(80);\r
- PAssert.That(() => count.Now == 6);\r
- count.AdjustCount(50);\r
- PAssert.That(() => count.Now == 5);\r
- count.AdjustCount(0);\r
- PAssert.That(() => count.Now == 3);\r
- }\r
-\r
- [TestMethod]\r
- public void AdjustCountWithShift()\r
- {\r
- var count = new QuestCount\r
- {\r
- Spec = new QuestSpec {Max = 7, Shift = 1},\r
- Now = 3\r
- };\r
- count.AdjustCount(0);\r
- PAssert.That(() => count.Now == 2);\r
- count.AdjustCount(50);\r
- PAssert.That(() => count.Now == 3);\r
- count.AdjustCount(80);\r
- PAssert.That(() => count.Now == 6);\r
- count.AdjustCount(100);\r
- PAssert.That(() => count.Now == 7);\r
- count.Now = 14;\r
- count.AdjustCount(100);\r
- PAssert.That(() => count.Now == 14);\r
- count.AdjustCount(80);\r
- PAssert.That(() => count.Now == 6);\r
- count.AdjustCount(50);\r
- PAssert.That(() => count.Now == 5);\r
- count.AdjustCount(0);\r
- PAssert.That(() => count.Now == 2);\r
- }\r
-\r
- [TestMethod]\r
- public void AdjustCount80Percent()\r
- {\r
- var count = new QuestCount\r
- {\r
- Spec = new QuestSpec()\r
- };\r
- for (var shift = 0; shift <= 1; shift++)\r
- {\r
- for (var max = 2; max <= 6; max++)\r
- {\r
- count.Spec.Max = max;\r
- count.Spec.Shift = shift;\r
- count.Now = 1;\r
- count.AdjustCount(80);\r
- PAssert.That(() => count.Now == count.Spec.Max - 1);\r
- }\r
- }\r
- }\r
-\r
- [TestMethod]\r
- public void AdjustCountNowArray()\r
- {\r
- var count = new QuestCount\r
- {\r
- Spec = new QuestSpec {MaxArray = new[] {36, 6, 24, 12}},\r
- NowArray = new[] {1, 2, 3, 4}\r
- };\r
- count.AdjustCount(50);\r
- PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 2, 3, 4}));\r
- count.AdjustCount(100);\r
- PAssert.That(() => count.NowArray.SequenceEqual(new[] {36, 6, 24, 12}));\r
- count.NowArray = new[] {38, 12, 19, 12};\r
- count.AdjustCount(100);\r
- PAssert.That(() => count.NowArray.SequenceEqual(new[] {38, 12, 24, 12}));\r
- }\r
-\r
- [TestMethod]\r
public void ResetQuestCount()\r
{\r
var queue = new Queue<DateTime>(new[]\r
{\r
new DateTime(2017, 11, 1, 5, 0, 0), new DateTime(2017, 11, 6, 5, 0, 0),\r
- new DateTime(2017, 12, 1, 5, 0, 0)\r
+ new DateTime(2017, 12, 1, 5, 0, 0), new DateTime(2018, 2, 1, 5, 0, 0),\r
+ new DateTime(2018, 3, 1, 5, 0, 0), new DateTime(2018, 5, 1, 5, 0, 0)\r
});\r
- var questInfo = new QuestInfo(null, null, () => queue.Dequeue());\r
+ var questInfo = MakeQuestInfo(() => queue.Dequeue());\r
var status = new Status\r
{\r
QuestCountList = new[]\r
{\r
new QuestCount {Id = 201, Now = 1}, new QuestCount {Id = 213, Now = 1},\r
- new QuestCount {Id = 265, Now = 1}, new QuestCount {Id = 822, Now = 1}\r
+ new QuestCount {Id = 265, Now = 1},\r
+ new QuestCount {Id = 436, NowArray = new[] {1, 1, 1, 1, 0}},\r
+ new QuestCount {Id = 437, NowArray = new[] {1, 1, 1, 1}},\r
+ new QuestCount {Id = 822, Now = 1},\r
+ new QuestCount {Id = 904, NowArray = new[] {1, 1, 1, 1}}\r
},\r
QuestLastReset = new DateTime(2017, 10, 31, 5, 0, 0)\r
};\r
questInfo.LoadState(status);\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(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(CreateQuestList(new[] {201}));\r
- questInfo.SaveState(status);\r
- PAssert.That(() => status.QuestCountList.Length == 0); // クォータリーが消える\r
+ CheckQuestCountList(questInfo, status, new[] {213, 436, 437, 822, 904}); // デイリーとマンスリーが消える\r
+ CheckQuestCountList(questInfo, status, new[] {436, 437, 822, 904}); // ウィークリーが消える\r
+ CheckQuestCountList(questInfo, status, new[] {436, 437, 904}); // クォータリーが消える\r
+ CheckQuestCountList(questInfo, status, new[] {436, 437}); // イヤーリー2月が消える\r
+ CheckQuestCountList(questInfo, status, new[] {437}); // イヤーリー3月が消える\r
+ CheckQuestCountList(questInfo, status, new int[0]); // イヤーリー5月が消える\r
}\r
\r
- [TestMethod]\r
- public void ResetQuestList()\r
+ private void CheckQuestCountList(QuestInfo questInfo, Status status, int[] quests)\r
{\r
- var queue = new Queue<DateTime>(new[]\r
- {\r
- new DateTime(2017, 11, 1, 5, 0, 0), new DateTime(2017, 11, 6, 5, 0, 0),\r
- new DateTime(2017, 12, 1, 5, 0, 0)\r
- });\r
- var questInfo = new QuestInfo(null, null, () => queue.Dequeue());\r
- var status = new Status\r
- {\r
- QuestList = new[]\r
- {\r
- new QuestStatus {Id = 201, Category = 2}, new QuestStatus {Id = 213, Category = 2},\r
- new QuestStatus {Id = 265, Category = 2}, new QuestStatus {Id = 822, Category = 8}\r
- },\r
- QuestLastReset = new DateTime(2017, 10, 31, 5, 0, 0)\r
- };\r
- questInfo.LoadState(status);\r
- questInfo.InspectQuestList(CreateQuestList(new int[0]));\r
- questInfo.SaveState(status);\r
- PAssert.That(() => status.QuestList.Select(q => q.Id).SequenceEqual(new[] {213, 822})); // デイリーとマンスリーが消える\r
- questInfo.InspectQuestList(CreateQuestList(new int[0]));\r
- questInfo.SaveState(status);\r
- PAssert.That(() => status.QuestList.Select(q => q.Id).SequenceEqual(new[] {822})); // ウィークリーが消える\r
- questInfo.InspectQuestList(CreateQuestList(new int[0]));\r
+ InspectQuestList(questInfo, new[] {201});\r
questInfo.SaveState(status);\r
- PAssert.That(() => status.QuestList.Length == 0); // クォータリーが消える\r
+ PAssert.That(() => status.QuestCountList.Select(qc => qc.Id).SequenceEqual(quests));\r
}\r
\r
[TestMethod]\r
{\r
new DateTime(2019, 1, 22, 4, 0, 0)\r
});\r
- var questInfo = new QuestInfo(null, null, () => queue.Dequeue());\r
+ var questInfo = MakeQuestInfo(() => queue.Dequeue());\r
var status = new Status\r
{\r
QuestCountList = new[] {new QuestCount {Id = 213, Now = 1}},\r
QuestLastReset = new DateTime(2019, 1, 20, 5, 16, 22)\r
};\r
questInfo.LoadState(status);\r
- questInfo.InspectQuestList(CreateQuestList(new[] {201}));\r
+ InspectQuestList(questInfo, new[] {201});\r
questInfo.SaveState(status);\r
PAssert.That(() => status.QuestCountList.Length == 0);\r
}\r
new DateTime(2019, 1, 27, 10, 0, 0),\r
new DateTime(2019, 1, 28, 5, 0, 0)\r
});\r
- var questInfo = new QuestInfo(null, null, () => queue.Dequeue());\r
+ var questInfo = MakeQuestInfo(() => queue.Dequeue());\r
var status = new Status\r
{\r
QuestLastReset = new DateTime(2019, 1, 27, 5, 0, 0)\r
};\r
questInfo.LoadState(status);\r
- questInfo.InspectQuestList( // 2019-1-27 10:00\r
- Js(new\r
- {\r
- api_list = new[]\r
- {\r
- new\r
- {\r
- api_no = 237,\r
- api_category = 2,\r
- api_type = 2,\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
+ InspectQuestList(questInfo, // 2019-1-27 10:00\r
+ new[] {237}); // 【節分拡張任務】南方海域 艦隊決戦\r
PAssert.That(() => questInfo.Quests[0].Id == 237);\r
- questInfo.InspectQuestList(CreateQuestList(new[] {201})); // 2019-1-28 05:00\r
+ InspectQuestList(questInfo, new[] {201}); // 2019-1-28 05:00\r
PAssert.That(() => questInfo.Quests[0].Id == 201);\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_type = 1,\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
- /// 214: あ号\r
- /// 216: 敵艦隊主力を撃滅せよ!\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_201_216_210_214()\r
- {\r
- var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {201, 216, 210, 214}));\r
-\r
- questInfo.InspectMapStart(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 1,\r
- api_event_id = 4\r
- }));\r
- var quests = questInfo.Quests;\r
- // 出撃カウント\r
- PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray[0] == 1);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- // 道中S勝利\r
- PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]\r
- {\r
- new {Id = 201, Now = 1}, new {Id = 210, Now = 1},\r
- new {Id = 214, Now = 0}, new {Id = 216, Now = 1}\r
- }));\r
- PAssert.That(() => quests[2].Id == 214 &&\r
- quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}));\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 1,\r
- api_event_id = 5\r
- }));\r
- // ボスB勝利\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "B"}));\r
- PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]\r
- {\r
- new {Id = 201, Now = 2}, new {Id = 210, Now = 2},\r
- new {Id = 214, Now = 0}, new {Id = 216, Now = 2}\r
- }));\r
- // ボス敗北\r
- PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "C"}));\r
- PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]\r
- {\r
- new {Id = 201, Now = 2}, new {Id = 210, Now = 3},\r
- new {Id = 214, Now = 0}, new {Id = 216, Now = 2}\r
- }));\r
- PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 2, 1}));\r
- }\r
-\r
- /// <summary>\r
- /// 211: 敵空母を3隻撃沈せよ!\r
- /// 212: 敵輸送船団を叩け!\r
- /// 213: 海上通商破壊作戦\r
- /// 218: 敵補給艦を3隻撃沈せよ!\r
- /// </summary>\r
- [TestMethod]\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(CreateQuestList(new[] {211, 212, 213, 218, 220, 221}));\r
- // 補給艦1隻と空母2隻\r
- battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]\r
- {\r
- new ShipStatus {NowHp = 0, MaxHp = 130, Spec = new ShipSpec {Id = 1558, ShipType = 15}},\r
- new ShipStatus {NowHp = 0, MaxHp = 90, Spec = new ShipSpec {Id = 1543, ShipType = 8}},\r
- new ShipStatus {NowHp = 0, MaxHp = 90, Spec = new ShipSpec {Id = 1543, ShipType = 8}},\r
- new ShipStatus {NowHp = 0, MaxHp = 96, Spec = new ShipSpec {Id = 1528, ShipType = 11}},\r
- new ShipStatus {NowHp = 0, MaxHp = 70, Spec = new ShipSpec {Id = 1523, ShipType = 7}},\r
- new ShipStatus {NowHp = 1, MaxHp = 70, Spec = new ShipSpec {Id = 1523, ShipType = 7}}\r
- }, new ShipStatus[0]);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() =>\r
- questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
- .SequenceEqual(new[]\r
- {\r
- new {Id = 211, Now = 2}, new {Id = 212, Now = 1}, new {Id = 213, Now = 1},\r
- new {Id = 218, Now = 1}, new {Id = 220, Now = 2}, new {Id = 221, Now = 1}\r
- }));\r
- }\r
-\r
- /// <summary>\r
- /// 228: 海上護衛戦\r
- /// 230: 敵潜水艦を制圧せよ!\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_228_230()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {228, 230}));\r
- // 潜水艦3\r
- battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]\r
- {\r
- new ShipStatus {NowHp = 0, MaxHp = 27, Spec = new ShipSpec {Id = 1532, ShipType = 13}},\r
- new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}},\r
- new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}}\r
- }, new ShipStatus[0]);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() =>\r
- questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
- .SequenceEqual(new[]\r
- {\r
- new {Id = 228, Now = 3}, new {Id = 230, Now = 3}\r
- }));\r
- }\r
-\r
- /// <summary>\r
- /// 226: 南西諸島海域の制海権を握れ!\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_226()\r
- {\r
- var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {226}));\r
-\r
- questInfo.InspectMapStart(Js(new\r
- {\r
- api_maparea_id = 2,\r
- api_mapinfo_no = 1,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 2,\r
- api_mapinfo_no = 1,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1);\r
- questInfo.InspectBattleResult(Js(new { api_win_rank = "B" }));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 2);\r
- }\r
-\r
- /// <summary>\r
- /// // 243: 南方海域珊瑚諸島沖の制空権を握れ!\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_243()\r
- {\r
- var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {243}));\r
-\r
- questInfo.InspectMapStart(Js(new\r
- {\r
- api_maparea_id = 5,\r
- api_mapinfo_no = 2,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new { api_win_rank = "S" }));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
-\r
- questInfo.InspectMapStart(Js(new\r
- {\r
- api_maparea_id = 5,\r
- api_mapinfo_no = 2,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1);\r
- }\r
-\r
- private ShipStatus ShipStatus(int shipType, int specId = 0) =>\r
- new ShipStatus {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType}};\r
-\r
-\r
- /// <summary>\r
- /// 249: 「第五戦隊」出撃せよ!\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_249()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {249}));\r
-\r
- battleInfo.InjectResultStatus(new[]\r
- {\r
- ShipStatus(5, 319), ShipStatus(5, 192), ShipStatus(5, 194),\r
- ShipStatus(5, 193), ShipStatus(6, 189), ShipStatus(6, 188)\r
- }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 2,\r
- api_mapinfo_no = 5,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 2,\r
- api_mapinfo_no = 5,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1);\r
- questInfo.Quests[0].Count.Now = 0;\r
-\r
- battleInfo.Result.Friend.Main[1].NowHp = 0;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "那智改二轟沈");\r
- }\r
-\r
- /// <summary>\r
- /// 257: 「水雷戦隊」南西へ!\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_257()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {257}));\r
-\r
- battleInfo.InjectResultStatus(new[]\r
- {\r
- ShipStatus(3), ShipStatus(2), ShipStatus(2),\r
- ShipStatus(2), ShipStatus(2), ShipStatus(2)\r
- }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 4,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 4,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1);\r
- questInfo.Quests[0].Count.Now = 0;\r
-\r
- battleInfo.Result.Friend.Main[0].NowHp = 0;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "軽巡轟沈");\r
- battleInfo.Result.Friend.Main[0].NowHp = 1;\r
-\r
- battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;\r
- battleInfo.Result.Friend.Main[1].Spec.ShipType = 3;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "旗艦が駆逐");\r
- battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
-\r
- battleInfo.Result.Friend.Main[2].Spec.ShipType = 3;\r
- battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "軽巡が4隻");\r
-\r
- battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
- battleInfo.Result.Friend.Main[3].Spec.ShipType = 4;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "駆逐軽巡以外");\r
- }\r
-\r
- private ShipStatus ShipStatus(int shipType, int shipClass, int specId) =>\r
- new ShipStatus {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType, ShipClass = shipClass}};\r
-\r
- /// <summary>\r
- /// 257: 「水上打撃部隊」南方へ!\r
- /// </summary>\r
[TestMethod]\r
- public void BattleResult_259()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {259}));\r
-\r
- var org = new[]\r
- {\r
- ShipStatus(3, 52, 321), ShipStatus(9, 19, 276), ShipStatus(10, 26, 411),\r
- ShipStatus(10, 26, 412), ShipStatus(5, 29, 193), ShipStatus(5, 29, 194)\r
- };\r
- battleInfo.InjectResultStatus(\r
- org.ToArray(), new ShipStatus[0],\r
- new ShipStatus[0], new ShipStatus[0]);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 5,\r
- api_mapinfo_no = 1,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 5,\r
- api_mapinfo_no = 1,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1);\r
- questInfo.Quests[0].Count.Now = 0;\r
-\r
- battleInfo.Result.Friend.Main[0].NowHp = 0;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "軽巡轟沈");\r
- battleInfo.Result.Friend.Main[0].NowHp = 1;\r
-\r
- battleInfo.Result.Friend.Main[4] = ShipStatus(9, 37, 136);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "戦艦4隻");\r
- battleInfo.Result.Friend.Main[4] = org[4];\r
-\r
- battleInfo.Result.Friend.Main[0] = ShipStatus(4, 4, 58);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "軽巡なし");\r
- battleInfo.Result.Friend.Main[0] = org[0];\r
-\r
- battleInfo.Result.Friend.Main[2] = ShipStatus(10, 2, 553);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "伊勢改二");\r
- }\r
-\r
- /// <summary>\r
- /// 264: 「空母機動部隊」西へ!\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_264()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {264}));\r
-\r
- battleInfo.InjectResultStatus(new[]\r
- {\r
- ShipStatus(7), ShipStatus(11), ShipStatus(3),\r
- ShipStatus(3), ShipStatus(2), ShipStatus(2)\r
- }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 4,\r
- api_mapinfo_no = 2,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 4,\r
- api_mapinfo_no = 2,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1);\r
-\r
- battleInfo.Result.Friend.Main[0].NowHp = 0;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "轟沈あり");\r
- }\r
-\r
- /// <summary>\r
- /// 266: 「水上反撃部隊」突入せよ!\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_266()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {266}));\r
-\r
- battleInfo.InjectResultStatus(new[]\r
- {\r
- ShipStatus(2), ShipStatus(5), ShipStatus(3),\r
- ShipStatus(2), ShipStatus(2), ShipStatus(2)\r
- }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 2,\r
- api_mapinfo_no = 5,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 2,\r
- api_mapinfo_no = 5,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1);\r
-\r
- battleInfo.Result.Friend.Main[1].NowHp = 0;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "轟沈あり");\r
- battleInfo.Result.Friend.Main[1].NowHp = 1;\r
-\r
- battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
- battleInfo.Result.Friend.Main[2].Spec.ShipType = 2;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "旗艦が軽巡");\r
- battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;\r
- battleInfo.Result.Friend.Main[2].Spec.ShipType = 3;\r
-\r
- battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "軽巡が2隻");\r
- }\r
-\r
- /// <summary>\r
- /// 280: 兵站線確保!海上警備を強化実施せよ!\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_280()\r
- {\r
- var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {280}));\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 2,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 2,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
-\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 3,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 4,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 2,\r
- api_mapinfo_no = 1,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
- }\r
-\r
- /// <summary>\r
- /// 822: 沖ノ島海域迎撃戦\r
- /// 854: 戦果拡張任務!「Z作戦」前段作戦\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_822_854()\r
- {\r
- var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {822, 854}));\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 2,\r
- api_mapinfo_no = 4,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new { api_win_rank = "S" }));\r
- PAssert.That(() => questInfo.Quests[1].Count.NowArray.SequenceEqual(new[] { 0, 0, 0, 0 }));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 2,\r
- api_mapinfo_no = 4,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 6,\r
- api_mapinfo_no = 1,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 6,\r
- api_mapinfo_no = 3,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 6,\r
- api_mapinfo_no = 4,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[1].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 2,\r
- api_mapinfo_no = 4,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[1].Count.NowArray.SequenceEqual(new[] {2, 1, 1, 1}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1);\r
- }\r
-\r
- /// <summary>\r
- /// 861: 強行輸送艦隊、抜錨!\r
- /// </summary>\r
- [TestMethod]\r
- public void MapNext_861()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {861}));\r
-\r
- battleInfo.InjectResultStatus(new[]\r
- {\r
- ShipStatus(10), ShipStatus(22), ShipStatus(2),\r
- ShipStatus(2), ShipStatus(2), ShipStatus(2)\r
- }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 6,\r
- api_event_id = 4\r
- }));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 6,\r
- api_event_id = 8\r
- }));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1);\r
-\r
- battleInfo.Result.Friend.Main[1].NowHp = 0;\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 6,\r
- api_event_id = 8\r
- }));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "轟沈あり");\r
- battleInfo.Result.Friend.Main[1].NowHp = 1;\r
-\r
- battleInfo.Result.Friend.Main[2].Spec.ShipType = 10;\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 6,\r
- api_event_id = 8\r
- }));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "補給・航戦が3隻");\r
- }\r
-\r
- /// <summary>\r
- /// 862: 前線の航空偵察を実施せよ!\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_862()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {862}));\r
-\r
- battleInfo.InjectResultStatus(new[]\r
- {\r
- ShipStatus(2), ShipStatus(3), ShipStatus(3),\r
- ShipStatus(2), ShipStatus(2), ShipStatus(16)\r
- }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 6,\r
- api_mapinfo_no = 3,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 6,\r
- api_mapinfo_no = 3,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "B"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1);\r
-\r
- battleInfo.Result.Friend.Main[1].NowHp = 0;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "轟沈あり");\r
- battleInfo.Result.Friend.Main[1].NowHp = 1;\r
-\r
- battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;\r
- battleInfo.Result.Friend.Main[4].Spec.ShipType = 16;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 2, "軽巡3隻水母2隻");\r
- }\r
-\r
- /// <summary>\r
- /// 873: 北方海域警備を実施せよ!\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_873()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {873}));\r
-\r
- battleInfo.InjectResultStatus(new[]\r
- {\r
- ShipStatus(3), ShipStatus(2), ShipStatus(2),\r
- ShipStatus(2), ShipStatus(2), ShipStatus(2)\r
- }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 3,\r
- api_mapinfo_no = 1,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.NowArray[0] == 0);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 3,\r
- api_mapinfo_no = 1,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "B"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.NowArray[0] == 0);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.NowArray[0] == 1);\r
-\r
- battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.NowArray[0] == 1, "軽巡なし");\r
- battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 3,\r
- api_mapinfo_no = 2,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 3,\r
- api_mapinfo_no = 3,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
- }\r
-\r
- /// <summary>\r
- /// 875: 精鋭「三一駆」、鉄底海域に突入せよ!\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_875()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {875}));\r
-\r
- battleInfo.InjectResultStatus(new[]\r
- {\r
- ShipStatus(2, 543), ShipStatus(8, 360), ShipStatus(11, 545),\r
- ShipStatus(18, 467), ShipStatus(11, 261), ShipStatus(2, 344)\r
- }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 5,\r
- api_mapinfo_no = 4,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 5,\r
- api_mapinfo_no = 4,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 0);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1);\r
-\r
- battleInfo.Result.Friend.Main[5].NowHp = 0;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "朝霜改轟沈");\r
- battleInfo.Result.Friend.Main[5].NowHp = 1;\r
-\r
- battleInfo.Result.Friend.Main[0].Spec.Id = 345;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "長波改二なし");\r
- battleInfo.Result.Friend.Main[0].Spec.Id = 543;\r
-\r
- battleInfo.Result.Friend.Main[5].Spec.Id = 345;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 2, "高波改");\r
- battleInfo.Result.Friend.Main[5].Spec.Id = 359;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 3, "沖波改");\r
- }\r
-\r
- /// <summary>\r
- /// 888: 新編成「三川艦隊」、鉄底海峡に突入せよ!\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_888()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {888}));\r
- var count = questInfo.Quests[0].Count;\r
-\r
- battleInfo.InjectResultStatus(new[]\r
- {\r
- ShipStatus(5, 427), ShipStatus(5, 264), ShipStatus(5, 142),\r
- ShipStatus(5, 417), ShipStatus(2, 144), ShipStatus(2, 195)\r
- }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 5,\r
- api_mapinfo_no = 1,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray[0] == 0);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 5,\r
- api_mapinfo_no = 1,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => count.NowArray[0] == 0);\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray[0] == 1);\r
-\r
- battleInfo.Result.Friend.Main[0].NowHp = 0;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray[0] == 1, "轟沈あり");\r
- battleInfo.Result.Friend.Main[0].NowHp = 1;\r
-\r
- battleInfo.Result.Friend.Main[0].Spec.Id = 319;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray[0] == 1, "三川艦隊3隻");\r
- battleInfo.Result.Friend.Main[0].Spec.Id = 427;\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 5,\r
- api_mapinfo_no = 3,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0}));\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 5,\r
- api_mapinfo_no = 4,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
- }\r
-\r
- /// <summary>\r
- /// 893: 泊地周辺海域の安全確保を徹底せよ!\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_893()\r
- {\r
- var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {893}));\r
- var count = questInfo.Quests[0].Count;\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 5,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new { api_win_rank = "S" }));\r
- PAssert.That(() => count.NowArray[0] == 0, "1-5");\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 5,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => count.NowArray[0] == 0, "A勝利はカウントしない");\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray[0] == 1, "1-5");\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 7,\r
- api_mapinfo_no = 1,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray[1] == 1, "7-1");\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 7,\r
- api_mapinfo_no = 2,\r
- api_no = 7,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray[2] == 1, "7-2G");\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 7,\r
- api_mapinfo_no = 2,\r
- api_no = 15,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray[3] == 1, "7-2M");\r
- }\r
-\r
- /// <summary>\r
- /// 894: 空母戦力の投入による兵站線戦闘哨戒\r
- /// </summary>\r
- [TestMethod]\r
- public void BattleResult_894()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {894}));\r
- var count = questInfo.Quests[0].Count;\r
- battleInfo.InjectResultStatus(new[]\r
- {\r
- ShipStatus(2), ShipStatus(2), ShipStatus(2),\r
- ShipStatus(2), ShipStatus(2), ShipStatus(2)\r
- }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 3,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray[0] == 0, "空母なしはカウントしない");\r
-\r
- battleInfo.Result.Friend.Main[0].Spec.ShipType = 7;\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => count.NowArray[0] == 0, "A勝利はカウントしない");\r
-\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray[0] == 1, "1-3");\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 4,\r
- api_event_id = 4\r
- }));\r
- questInfo.InspectBattleResult(Js(new { api_win_rank = "S" }));\r
- PAssert.That(() => count.NowArray[1] == 0, "1-4");\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 1,\r
- api_mapinfo_no = 4,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray[1] == 1, "1-4");\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 2,\r
- api_mapinfo_no = 1,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray[2] == 1, "2-1");\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 2,\r
- api_mapinfo_no = 2,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray[3] == 1, "2-2");\r
-\r
- questInfo.InspectMapNext(Js(new\r
- {\r
- api_maparea_id = 2,\r
- api_mapinfo_no = 3,\r
- api_event_id = 5\r
- }));\r
- questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
- PAssert.That(() => count.NowArray[4] == 1, "2-3");\r
- }\r
-\r
- /// <summary>\r
- /// 302: 大規模演習\r
- /// 303: 「演習」で練度向上!\r
- /// 304: 「演習」で他提督を圧倒せよ!\r
- /// 311: 精鋭艦隊演習\r
- /// 315: 春季大演習\r
- /// </summary>\r
- [TestMethod]\r
- public void PracticeResult_303_304_302_311_315()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {302, 303, 304, 311, 315}));\r
-\r
- battleInfo.InjectResultStatus(new[]\r
- {\r
- ShipStatus(2, 543), ShipStatus(3, 488)\r
- }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
- questInfo.InspectPracticeResult(Js(new {api_win_rank = "C"}));\r
- questInfo.InspectPracticeResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() =>\r
- questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
- .SequenceEqual(new[]\r
- {\r
- new {Id = 302, Now = 1}, new {Id = 303, Now = 2}, new {Id = 304, Now = 1},\r
- new {Id = 311, Now = 1}, new {Id = 315, Now = 1}\r
- }));\r
- }\r
-\r
- /// <summary>\r
- /// 318: 給糧艦「伊良湖」の支援\r
- /// </summary>\r
- [TestMethod]\r
- public void PracticeResult_318()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {318}));\r
- var q318 = questInfo.Quests[0];\r
-\r
- battleInfo.InjectResultStatus(new[]\r
- {\r
- ShipStatus(2, 543), ShipStatus(3, 488)\r
- }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
-\r
- questInfo.InspectPracticeResult(Js(new {api_win_rank = "B"}));\r
- PAssert.That(() => q318.Count.Now == 0, "軽巡1隻");\r
- battleInfo.Result.Friend.Main[0] = ShipStatus(3, 200);\r
- questInfo.StartPractice("api%5Fdeck%5Fid=2");\r
- questInfo.InspectPracticeResult(Js(new {api_win_rank = "B"}));\r
- PAssert.That(() => q318.Count.Now == 0, "第2艦隊");\r
- questInfo.StartPractice("api%5Fdeck%5Fid=1"); // 第一艦隊\r
- questInfo.InspectPracticeResult(Js(new {api_win_rank = "C"}));\r
- PAssert.That(() => q318.Count.Now == 0, "敗北");\r
- questInfo.InspectPracticeResult(Js(new {api_win_rank = "B"}));\r
- PAssert.That(() => q318.Count.Now == 1);\r
-\r
- q318.Count.Now = 2;\r
- questInfo.InspectQuestList(CreateQuestList(new[] {318}));\r
- PAssert.That(() => q318.Count.Now == 2, "進捗調節しない");\r
- }\r
-\r
- /// <summary>\r
- /// 330: 空母機動部隊、演習始め!\r
- /// </summary>\r
- [TestMethod]\r
- public void PracticeResult_330()\r
- {\r
- var battleInfo = new BattleInfo(null, null);\r
- var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {330}));\r
- var q330 = questInfo.Quests[0];\r
-\r
- battleInfo.InjectResultStatus(new[]\r
- {\r
- ShipStatus(18), ShipStatus(7), ShipStatus(2), ShipStatus(2)\r
- }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
- questInfo.InspectPracticeResult(Js(new {api_win_rank = "B"}));\r
- Assert.AreEqual(1, q330.Count.Now, "装甲空母、軽空母");\r
-\r
- battleInfo.Result.Friend.Main = new[] { ShipStatus(11), ShipStatus(7), ShipStatus(2), ShipStatus(2) };\r
- questInfo.InspectPracticeResult(Js(new { api_win_rank = "B" }));\r
- Assert.AreEqual(2, q330.Count.Now, "正規空母、軽空母");\r
-\r
- q330.Count.Now = 0;\r
- questInfo.InspectPracticeResult(Js(new { api_win_rank = "C" }));\r
- Assert.AreEqual(0, q330.Count.Now, "敗北");\r
-\r
- battleInfo.Result.Friend.Main = new[] {ShipStatus(2), ShipStatus(7), ShipStatus(11), ShipStatus(2)};\r
- questInfo.InspectPracticeResult(Js(new { api_win_rank = "B" }));\r
- Assert.AreEqual(0, q330.Count.Now, "旗艦空母以外");\r
-\r
- battleInfo.Result.Friend.Main = new[] { ShipStatus(11), ShipStatus(2), ShipStatus(2), ShipStatus(2) };\r
- questInfo.InspectPracticeResult(Js(new { api_win_rank = "B" }));\r
- Assert.AreEqual(0, q330.Count.Now, "空母一隻");\r
-\r
- battleInfo.Result.Friend.Main = new[] { ShipStatus(11), ShipStatus(7), ShipStatus(3), ShipStatus(2) };\r
- questInfo.InspectPracticeResult(Js(new { api_win_rank = "B" }));\r
- Assert.AreEqual(0, q330.Count.Now, "駆逐一隻");\r
- }\r
-\r
- /// <summary>\r
- /// 402: 「遠征」を3回成功させよう!\r
- /// 403: 「遠征」を10回成功させよう!\r
- /// 404: 大規模遠征作戦、発令!\r
- /// 410: 南方への輸送作戦を成功させよ!\r
- /// 411: 南方への鼠輸送を継続実施せよ!\r
- /// </summary>\r
- [TestMethod]\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(CreateQuestList(new[] {402, 403, 404, 410, 411}));\r
-\r
- questInfo.InspectDeck(Js(\r
- new[]\r
- {\r
- new {api_id = 2, api_mission = new[] {2, 6}},\r
- new {api_id = 3, api_mission = new[] {2, 37}},\r
- new {api_id = 4, api_mission = new[] {2, 2}}\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 = 2}));\r
- questInfo.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 0}));\r
- PAssert.That(() =>\r
- questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
- .SequenceEqual(new[]\r
- {\r
- new {Id = 402, Now = 2}, new {Id = 403, Now = 2}, new {Id = 404, Now = 2},\r
- new {Id = 410, Now = 1}, new {Id = 411, Now = 1}\r
- }));\r
- }\r
-\r
- /// <summary>\r
- /// 426: 海上通商航路の警戒を厳とせよ!\r
- /// </summary>\r
- [TestMethod]\r
- public void MissionResult_426()\r
- {\r
- var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\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
- }));\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.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
- PAssert.That(() =>\r
- questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));\r
- questInfo.InspectDeck(Js(\r
- new[]\r
- {\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
- questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
- }\r
-\r
- /// <summary>\r
- /// 428: 近海に侵入する敵潜を制圧せよ!\r
- /// </summary>\r
- [TestMethod]\r
- public void MissionResult_428()\r
+ public void NotImplemented()\r
{\r
- var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\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
- }));\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.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
- PAssert.That(() =>\r
- questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
+ var questInfo = MakeQuestInfo(() => new DateTime(2015, 1, 1));\r
+ InspectQuestList(questInfo, new[] {679});\r
+ PAssert.That(() => questInfo.Quests[0].Count.Spec.Material.Length == 0);\r
}\r
\r
- /// <summary>\r
- /// 503: 艦隊大整備!\r
- /// 504: 艦隊酒保祭り!\r
- /// </summary>\r
- [TestMethod]\r
- public void PowerUp_503_504()\r
- {\r
- var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {503, 504}));\r
-\r
- questInfo.CountNyukyo();\r
- questInfo.CountCharge();\r
- PAssert.That(() =>\r
- questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
- .SequenceEqual(new[] {new {Id = 503, Now = 1}, new {Id = 504, Now = 1}}));\r
- }\r
+ private JsonObject Js(object obj) => new JsonObject(obj);\r
\r
- /// <summary>\r
- /// 605: 新装備「開発」指令\r
- /// 606: 新造艦「建造」指令\r
- /// 607: 装備「開発」集中強化!\r
- /// 608: 艦娘「建造」艦隊強化!\r
- /// 609: 軍縮条約対応!\r
- /// 619: 装備の改修強化\r
- /// </summary>\r
- [TestMethod]\r
- public void Kousyou_605_606_607_608_609_619()\r
+ private object CreateQuestList(int[] ids) => Js(new\r
{\r
- var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1)) {AcceptMax = 6};\r
- questInfo.InspectQuestList(CreateQuestList(new[] {605, 606, 607, 608, 609, 619}));\r
-\r
- questInfo.CountCreateItem();\r
- questInfo.CountCreateShip();\r
- questInfo.InspectDestroyShip("api%5Fship%5Fid=98159%2C98166%2C98168&api%5Fverno=1");\r
- questInfo.CountRemodelSlot();\r
- PAssert.That(() =>\r
- questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
- .SequenceEqual(new[]\r
- {\r
- new {Id = 605, Now = 1}, new {Id = 606, Now = 1}, new {Id = 607, Now = 1},\r
- new {Id = 608, Now = 1}, new {Id = 609, Now = 3}, new {Id = 619, Now = 1}\r
- }));\r
- }\r
+ api_list = ids.Select(id => CreateQuest(id, 2))\r
+ });\r
\r
- /// <summary>\r
- /// 613: 資源の再利用\r
- /// 638: 対空機銃量産\r
- /// 643: 主力「陸攻」の調達\r
- /// 645: 「洋上補給」物資の調達\r
- /// 663: 新型艤装の継続研究\r
- /// 673: 装備開発力の整備\r
- /// 674: 工廠環境の整備\r
- /// 675: 運用装備の統合整備\r
- /// 676: 装備開発力の集中整備\r
- /// 677: 継戦支援能力の整備\r
- /// 678: 主力艦上戦闘機の更新\r
- /// 680: 対空兵装の整備拡充\r
- /// 688: 航空戦力の強化\r
- /// </summary>\r
- [TestMethod]\r
- public void DestroyItem_613_638_643_645_663_673_674_675_676_677_678_680_688()\r
+ private object CreateQuest(int id, int state)\r
{\r
- var itemInfo = new ItemInfo(new ItemMaster(), new ItemInventory());\r
- var questInfo = new QuestInfo(itemInfo, null, () => new DateTime(2015, 1, 1));\r
-\r
- itemInfo.InjectItemSpec(new[]\r
- {\r
- new ItemSpec {Id = 1, Name = "12cm単装砲", Type = 1},\r
- new ItemSpec {Id = 37, Name = "7.7mm機銃", Type = 21},\r
- new ItemSpec {Id = 19, Name = "九六式艦戦", Type = 6},\r
- new ItemSpec {Id = 4, Name = "14cm単装砲", Type = 2},\r
- new ItemSpec {Id = 11, Name = "15.2cm単装砲", Type = 4},\r
- new ItemSpec {Id = 75, Name = "ドラム缶(輸送用)", Type = 30},\r
- new ItemSpec {Id = 7, Name = "35.6cm連装砲", Type = 3},\r
- new ItemSpec {Id = 25, Name = "零式水上偵察機", Type = 10},\r
- new ItemSpec {Id = 13, Name = "61cm三連装魚雷", Type = 5},\r
- new ItemSpec {Id = 20, Name = "零式艦戦21型", Type = 6},\r
- new ItemSpec {Id = 28, Name = "22号水上電探", Type = 12},\r
- new ItemSpec {Id = 31, Name = "32号水上電探", Type = 13},\r
- new ItemSpec {Id = 35, Name = "三式弾", Type = 18},\r
- new ItemSpec {Id = 23, Name = "九九式艦爆", Type = 7},\r
- new ItemSpec {Id = 16, Name = "九七式艦攻", Type = 8}\r
- });\r
- var items = new[] {1, 37, 19, 4, 11, 75, 7, 25, 13, 20, 28, 31, 35, 23, 16};\r
- itemInfo.InjectItems(items);\r
- var questList = new[] {613, 638, 643, 645, 663, 673, 674, 675, 676, 677, 678, 680, 688};\r
- questInfo.AcceptMax = questList.Length;\r
- questInfo.InspectQuestList(CreateQuestList(questList));\r
- questInfo.InspectDestroyItem(\r
- $"api%5Fslotitem%5Fids={string.Join("%2C", Enumerable.Range(1, items.Length))}&api%5Fverno=1", null);\r
- var scalar = new[]\r
+ return new\r
{\r
- new {Id = 613, Now = 1}, new {Id = 638, Now = 1}, new {Id = 643, Now = 1}, new {Id = 645, Now = 1},\r
- new {Id = 663, Now = 1}, new {Id = 673, Now = 1}, new {Id = 674, Now = 1}\r
+ api_no = id,\r
+ api_category = id / 100,\r
+ api_type = 1,\r
+ api_state = state,\r
+ api_title = "",\r
+ api_detail = "",\r
+ api_get_material = new int[0],\r
+ api_progress_flag = 0\r
};\r
- foreach (var e in scalar)\r
- {\r
- var c = Array.Find(questInfo.Quests, q => q.Id == e.Id).Count;\r
- PAssert.That(() => c.Id == e.Id && c.Now == e.Now, $"{c.Id}");\r
- }\r
- var array = new[]\r
- {\r
- new {Id = 675, NowArray = new[] {2, 1}}, new {Id = 676, NowArray = new[] {1, 1, 1}},\r
- new {Id = 677, NowArray = new[] {1, 1, 1}}, new {Id = 678, NowArray = new[] {1, 1}},\r
- new {Id = 680, NowArray = new[] {1, 2}}, new {Id = 688, NowArray = new[] {2, 1, 1, 1}}\r
- };\r
- foreach (var e in array)\r
- {\r
- var c = Array.Find(questInfo.Quests, q => q.Id == e.Id).Count;\r
- PAssert.That(() => c.Id == e.Id && c.NowArray.SequenceEqual(e.NowArray), $"{c.Id}");\r
- }\r
}\r
\r
- /// <summary>\r
- /// 702: 艦の「近代化改修」を実施せよ!\r
- /// 703: 「近代化改修」を進め、戦備を整えよ!\r
- /// </summary>\r
- [TestMethod]\r
- public void PowerUp_702_703()\r
+ private void InspectQuestList(QuestInfo questInfo, int[] ids)\r
{\r
- var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\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
+ questInfo.InspectQuestList("api_tab_id=0", CreateQuestList(ids));\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[] {679}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Spec.Material.Length == 0);\r
- }\r
-\r
- /// <summary>\r
- /// 文字列表記にする\r
- /// </summary>\r
- [TestMethod]\r
- public void ToStringTest()\r
- {\r
- var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- var status = new Status\r
- {\r
- QuestCountList = new[]\r
- {\r
- new QuestCount {Id = 211, Now = 2},\r
- new QuestCount {Id = 214, NowArray = new[] {20, 7, 10, 8}},\r
- new QuestCount {Id = 854, NowArray = new[] {2, 1, 1, 1}},\r
- new QuestCount {Id = 426, NowArray = new[] {1, 1, 1, 1}},\r
- new QuestCount {Id = 428, NowArray = new[] {1, 1, 1}},\r
- new QuestCount {Id = 873, NowArray = new[] {1, 1, 1}},\r
- new QuestCount {Id = 888, NowArray = new[] {1, 1, 1}},\r
- new QuestCount {Id = 688, NowArray = new[] {2, 1, 2, 1}},\r
- new QuestCount {Id = 893, NowArray = new[] {1, 1, 1, 1}},\r
- new QuestCount {Id = 894, NowArray = new[] {1, 1, 1, 1, 1}},\r
- new QuestCount {Id = 280, NowArray = new[] {1, 1, 1, 1}}\r
- }\r
- };\r
- questInfo.LoadState(status);\r
- PAssert.That(() => status.QuestCountList[0].ToString() == "2/3");\r
- PAssert.That(() => status.QuestCountList[1].ToString() == "20/36 7/6 10/24 8/12");\r
- var z = status.QuestCountList[2];\r
- PAssert.That(() => z.ToString() == "4/4");\r
- PAssert.That(() => z.ToToolTip() == "2-4 6-1 6-3 6-4");\r
- z.NowArray = new[] {0, 0, 0, 0};\r
- PAssert.That(() => z.ToToolTip() == "");\r
- var q426 = status.QuestCountList[3];\r
- PAssert.That(() => q426.ToString() == "4/4");\r
- PAssert.That(() => q426.ToToolTip() == "警備任務 対潜警戒任務 海上護衛任務 強硬偵察任務");\r
- var q428 = status.QuestCountList[4];\r
- PAssert.That(() => q428.ToToolTip() == "対潜警戒任務1 海峡警備行動1 長時間対潜警戒1");\r
- q428.NowArray = new[] {0, 1, 0};\r
- PAssert.That(() => q428.ToToolTip() == "海峡警備行動1");\r
- var q873 = status.QuestCountList[5];\r
- PAssert.That(() => q873.ToString() == "3/3");\r
- PAssert.That(() => q873.ToToolTip() == "3-1 3-2 3-3");\r
- var q888 = status.QuestCountList[6];\r
- PAssert.That(() => q888.ToString() == "3/3");\r
- PAssert.That(() => q888.ToToolTip() == "5-1 5-3 5-4");\r
- var q688 = status.QuestCountList[7];\r
- PAssert.That(() => q688.ToToolTip() == "艦戦2 艦爆1 艦攻2 水偵1");\r
- var q893 = status.QuestCountList[8];\r
- PAssert.That(() => q893.ToToolTip() == "1-5:1 7-1:1 7-2G:1 7-2M:1");\r
- var q894 = status.QuestCountList[9];\r
- PAssert.That(() => q894.ToString() == "5/5");\r
- PAssert.That(() => q894.ToToolTip() == "1-3 1-4 2-1 2-2 2-3");\r
- var q280 = status.QuestCountList[10];\r
- PAssert.That(() => q280.ToString() == "4/4");\r
- PAssert.That(() => q280.ToToolTip() == "1-2 1-3 1-4 2-1");\r
- }\r
\r
/// <summary>\r
/// 状態をロードするときに獲得資材に特殊資材のリストを追加しない\r
[TestMethod]\r
public void LoadStateNotAppendMaterialList()\r
{\r
- var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
+ var questInfo = MakeQuestInfo(() => new DateTime(2015, 1, 1));\r
var status = new Status\r
{\r
QuestList = new[]\r
questInfo.LoadState(status);\r
PAssert.That(() => questInfo.Quests[0].Material.Length == 8);\r
}\r
+\r
+ private QuestInfo MakeQuestInfo(Func<DateTime> nowFunc)\r
+ {\r
+ return new QuestInfo(new QuestCountList(), nowFunc);\r
+ }\r
}\r
}
\ No newline at end of file