1 // Copyright (C) 2017 Kazuhiro Fujieda <fujieda@users.osdn.me>
\r
3 // Licensed under the Apache License, Version 2.0 (the "License");
\r
4 // you may not use this file except in compliance with the License.
\r
5 // You may obtain a copy of the License at
\r
7 // http://www.apache.org/licenses/LICENSE-2.0
\r
9 // Unless required by applicable law or agreed to in writing, software
\r
10 // distributed under the License is distributed on an "AS IS" BASIS,
\r
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
12 // See the License for the specific language governing permissions and
\r
13 // limitations under the License.
\r
16 using System.Collections.Generic;
\r
18 using ExpressionToCodeLib;
\r
19 using Microsoft.VisualStudio.TestTools.UnitTesting;
\r
21 namespace KancolleSniffer.Test
\r
24 public class QuestInfoTest
\r
27 public void AdjustCount()
\r
29 var count = new QuestCount
\r
31 Spec = new QuestSpec {Max = 7},
\r
34 count.AdjustCount(0);
\r
35 PAssert.That(() => count.Now == 3);
\r
36 count.AdjustCount(50);
\r
37 PAssert.That(() => count.Now == 4);
\r
38 count.AdjustCount(80);
\r
39 PAssert.That(() => count.Now == 6);
\r
40 count.AdjustCount(100);
\r
41 PAssert.That(() => count.Now == 7);
\r
43 count.AdjustCount(100);
\r
44 PAssert.That(() => count.Now == 14);
\r
45 count.AdjustCount(80);
\r
46 PAssert.That(() => count.Now == 6);
\r
47 count.AdjustCount(50);
\r
48 PAssert.That(() => count.Now == 5);
\r
49 count.AdjustCount(0);
\r
50 PAssert.That(() => count.Now == 3);
\r
54 public void AdjustCountWithShift()
\r
56 var count = new QuestCount
\r
58 Spec = new QuestSpec {Max = 7, Shift = 1},
\r
61 count.AdjustCount(0);
\r
62 PAssert.That(() => count.Now == 2);
\r
63 count.AdjustCount(50);
\r
64 PAssert.That(() => count.Now == 3);
\r
65 count.AdjustCount(80);
\r
66 PAssert.That(() => count.Now == 6);
\r
67 count.AdjustCount(100);
\r
68 PAssert.That(() => count.Now == 7);
\r
70 count.AdjustCount(100);
\r
71 PAssert.That(() => count.Now == 14);
\r
72 count.AdjustCount(80);
\r
73 PAssert.That(() => count.Now == 6);
\r
74 count.AdjustCount(50);
\r
75 PAssert.That(() => count.Now == 5);
\r
76 count.AdjustCount(0);
\r
77 PAssert.That(() => count.Now == 2);
\r
81 public void AdjustCount80Percent()
\r
83 var count = new QuestCount
\r
85 Spec = new QuestSpec()
\r
87 for (var shift = 0; shift <= 1; shift++)
\r
89 for (var max = 2; max <= 6; max++)
\r
91 count.Spec.Max = max;
\r
92 count.Spec.Shift = shift;
\r
94 count.AdjustCount(80);
\r
95 PAssert.That(() => count.Now == count.Spec.Max - 1);
\r
101 public void AdjestCountNowArray()
\r
103 var count = new QuestCount
\r
105 Spec = new QuestSpec {MaxArray = new[] {36, 6, 24, 12}},
\r
106 NowArray = new[] {1, 2, 3, 4}
\r
108 count.AdjustCount(50);
\r
109 PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 2, 3, 4}));
\r
110 count.AdjustCount(100);
\r
111 PAssert.That(() => count.NowArray.SequenceEqual(new[] {36, 6, 24, 12}));
\r
112 count.NowArray = new[] {38, 12, 19, 12};
\r
113 count.AdjustCount(100);
\r
114 PAssert.That(() => count.NowArray.SequenceEqual(new[] {38, 12, 24, 12}));
\r
118 public void ResetQuestCount()
\r
120 var queue = new Queue<DateTime>(new[]
\r
122 new DateTime(2017, 11, 1, 5, 0, 0), new DateTime(2017, 11, 6, 5, 0, 0),
\r
123 new DateTime(2017, 12, 1, 5, 0, 0)
\r
125 var questInfo = new QuestInfo(null, null, () => queue.Dequeue());
\r
126 var status = new Status
\r
128 QuestCountList = new[]
\r
130 new QuestCount {Id = 201, Now = 1}, new QuestCount {Id = 213, Now = 1},
\r
131 new QuestCount {Id = 265, Now = 1}, new QuestCount {Id = 822, Now = 1}
\r
133 QuestLastReset = new DateTime(2017, 10, 31, 5, 0, 0)
\r
135 questInfo.LoadState(status);
\r
136 questInfo.InspectQuestList(CreateQuestList(new[] {201}));
\r
137 questInfo.SaveState(status);
\r
139 status.QuestCountList.Select(qc => new {qc.Id, qc.Now}).SequenceEqual(new[]
\r
140 {new {Id = 213, Now = 1}, new {Id = 822, Now = 1}})); // デイリーとマンスリーが消える
\r
141 questInfo.InspectQuestList(CreateQuestList(new[] {201}));
\r
142 questInfo.SaveState(status);
\r
144 status.QuestCountList.Select(qc => new {qc.Id, qc.Now}).SequenceEqual(new[]
\r
145 {new {Id = 822, Now = 1}})); // ウィークリーが消える
\r
146 questInfo.InspectQuestList(CreateQuestList(new[] {201}));
\r
147 questInfo.SaveState(status);
\r
148 PAssert.That(() => status.QuestCountList.Length == 0); // クォータリーが消える
\r
152 public void ResetQuestList()
\r
154 var queue = new Queue<DateTime>(new[]
\r
156 new DateTime(2017, 11, 1, 5, 0, 0), new DateTime(2017, 11, 6, 5, 0, 0),
\r
157 new DateTime(2017, 12, 1, 5, 0, 0)
\r
159 var questInfo = new QuestInfo(null, null, () => queue.Dequeue());
\r
160 var status = new Status
\r
164 new QuestStatus{Id = 201, Category = 2}, new QuestStatus{Id = 213, Category = 2},
\r
165 new QuestStatus{Id = 265, Category = 2}, new QuestStatus{Id = 822, Category = 8}
\r
167 QuestLastReset = new DateTime(2017, 10, 31, 5, 0, 0)
\r
169 questInfo.LoadState(status);
\r
170 questInfo.InspectQuestList(CreateQuestList(new int[0]));
\r
171 questInfo.SaveState(status);
\r
172 PAssert.That(() => status.QuestList.Select(q => q.Id).SequenceEqual(new []{213, 822})); // デイリーとマンスリーが消える
\r
173 questInfo.InspectQuestList(CreateQuestList(new int[0]));
\r
174 questInfo.SaveState(status);
\r
175 PAssert.That(() => status.QuestList.Select(q => q.Id).SequenceEqual(new []{822})); // ウィークリーが消える
\r
176 questInfo.InspectQuestList(CreateQuestList(new int[0]));
\r
177 questInfo.SaveState(status);
\r
178 PAssert.That(() => status.QuestList.Length == 0); // クォータリーが消える
\r
181 private JsonObject Js(object obj) => JsonObject.CreateJsonObject(obj);
\r
183 private object CreateQuestList(int[] ids) => Js(new
\r
186 ids.Select(id => new
\r
189 api_category = id / 100,
\r
193 api_get_material = new int[0],
\r
194 api_progress_flag = 0
\r
200 /// 210: 敵艦隊を10回邀撃せよ!
\r
202 /// 216: 敵艦隊主力を撃滅せよ!
\r
205 public void BattleResult_201_216_210_214()
\r
207 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
208 questInfo.InspectQuestList(CreateQuestList(new[] {201, 216, 210, 214}));
\r
210 questInfo.InspectMapStart(Js(new
\r
212 api_maparea_id = 1,
\r
213 api_mapinfo_no = 1,
\r
216 var quests = questInfo.Quests;
\r
218 PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray[0] == 1);
\r
219 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
221 PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]
\r
223 new {Id = 201, Now = 1}, new {Id = 210, Now = 1},
\r
224 new {Id = 214, Now = 0}, new {Id = 216, Now = 1}
\r
226 PAssert.That(() => quests[2].Id == 214 &&
\r
227 quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}));
\r
229 questInfo.InspectMapNext(Js(new
\r
231 api_maparea_id = 1,
\r
232 api_mapinfo_no = 1,
\r
236 questInfo.InspectBattleResult(Js(new {api_win_rank = "B"}));
\r
237 PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]
\r
239 new {Id = 201, Now = 2}, new {Id = 210, Now = 2},
\r
240 new {Id = 214, Now = 0}, new {Id = 216, Now = 2}
\r
243 PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));
\r
244 questInfo.InspectBattleResult(Js(new {api_win_rank = "C"}));
\r
245 PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]
\r
247 new {Id = 201, Now = 2}, new {Id = 210, Now = 3},
\r
248 new {Id = 214, Now = 0}, new {Id = 216, Now = 2}
\r
250 PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 2, 1}));
\r
254 /// 211: 敵空母を3隻撃沈せよ!
\r
257 /// 218: 敵補給艦を3隻撃沈せよ!
\r
260 public void BattleResult_211_212_213_218_220_221()
\r
262 var battleInfo = new BattleInfo(null, null);
\r
263 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1)) {AcceptMax = 6};
\r
264 questInfo.InspectQuestList(CreateQuestList(new[] {211, 212, 213, 218, 220, 221}));
\r
266 battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]
\r
268 new ShipStatus {NowHp = 0, MaxHp = 130, Spec = new ShipSpec {Id = 1558, ShipType = 15}},
\r
269 new ShipStatus {NowHp = 0, MaxHp = 90, Spec = new ShipSpec {Id = 1543, ShipType = 8}},
\r
270 new ShipStatus {NowHp = 0, MaxHp = 90, Spec = new ShipSpec {Id = 1543, ShipType = 8}},
\r
271 new ShipStatus {NowHp = 0, MaxHp = 96, Spec = new ShipSpec {Id = 1528, ShipType = 11}},
\r
272 new ShipStatus {NowHp = 0, MaxHp = 70, Spec = new ShipSpec {Id = 1523, ShipType = 7}},
\r
273 new ShipStatus {NowHp = 1, MaxHp = 70, Spec = new ShipSpec {Id = 1523, ShipType = 7}}
\r
274 }, new ShipStatus[0]);
\r
275 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
277 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
278 .SequenceEqual(new[]
\r
280 new {Id = 211, Now = 2}, new {Id = 212, Now = 1}, new {Id = 213, Now = 1},
\r
281 new {Id = 218, Now = 1}, new {Id = 220, Now = 2}, new {Id = 221, Now = 1}
\r
287 /// 230: 敵潜水艦を制圧せよ!
\r
290 public void BattleResult_228_230()
\r
292 var battleInfo = new BattleInfo(null, null);
\r
293 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
294 questInfo.InspectQuestList(CreateQuestList(new[] {228, 230}));
\r
296 battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]
\r
298 new ShipStatus {NowHp = 0, MaxHp = 27, Spec = new ShipSpec {Id = 1532, ShipType = 13}},
\r
299 new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}},
\r
300 new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}}
\r
301 }, new ShipStatus[0]);
\r
302 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
304 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
305 .SequenceEqual(new[]
\r
307 new {Id = 228, Now = 3}, new {Id = 230, Now = 3}
\r
312 /// 226: 南西諸島海域の制海権を握れ!
\r
315 public void BattleResult_226()
\r
317 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
318 questInfo.InspectQuestList(CreateQuestList(new[] {226}));
\r
320 questInfo.InspectMapStart(Js(new
\r
322 api_maparea_id = 2,
\r
323 api_mapinfo_no = 1,
\r
326 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
328 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
329 .SequenceEqual(new[] {new {Id = 226, Now = 0}}));
\r
330 questInfo.InspectMapNext(Js(new
\r
332 api_maparea_id = 2,
\r
333 api_mapinfo_no = 1,
\r
336 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
338 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
339 .SequenceEqual(new[] {new {Id = 226, Now = 1}}));
\r
340 questInfo.InspectMapStart(Js(new
\r
342 api_maparea_id = 2,
\r
343 api_mapinfo_no = 1,
\r
346 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
348 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
349 .SequenceEqual(new[] {new {Id = 226, Now = 1}}));
\r
353 /// // 243: 南方海域珊瑚諸島沖の制空権を握れ!
\r
356 public void BattleResult_243()
\r
358 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
359 questInfo.InspectQuestList(CreateQuestList(new[] {243}));
\r
361 questInfo.InspectMapStart(Js(new
\r
363 api_maparea_id = 5,
\r
364 api_mapinfo_no = 2,
\r
367 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
369 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
370 .SequenceEqual(new[] {new {Id = 243, Now = 0}}));
\r
372 questInfo.InspectMapNext(Js(new
\r
374 api_maparea_id = 5,
\r
375 api_mapinfo_no = 2,
\r
378 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
380 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
381 .SequenceEqual(new[] {new {Id = 243, Now = 1}}));
\r
384 private ShipStatus ShipStatus(int shipType, int specId = 0) =>
\r
385 new ShipStatus {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType}};
\r
389 /// 249: 「第五戦隊」出撃せよ!
\r
392 public void BattleResult_249()
\r
394 var battleInfo = new BattleInfo(null, null);
\r
395 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
396 questInfo.InspectQuestList(CreateQuestList(new[] {249}));
\r
398 battleInfo.InjectResultStatus(new[]
\r
400 ShipStatus(5, 319), ShipStatus(5, 192), ShipStatus(5, 194),
\r
401 ShipStatus(5, 193), ShipStatus(6, 189), ShipStatus(6, 188)
\r
402 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
403 questInfo.InspectMapNext(Js(new
\r
405 api_maparea_id = 2,
\r
406 api_mapinfo_no = 5,
\r
409 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
410 questInfo.InspectMapNext(Js(new
\r
412 api_maparea_id = 2,
\r
413 api_mapinfo_no = 5,
\r
416 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
417 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
418 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
419 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
420 questInfo.Quests[0].Count.Now = 0;
\r
422 battleInfo.Result.Friend.Main[1].NowHp = 0;
\r
423 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
424 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "那智改二轟沈");
\r
428 /// 257: 「水雷戦隊」南西へ!
\r
431 public void BattleResult_257()
\r
433 var battleInfo = new BattleInfo(null, null);
\r
434 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
435 questInfo.InspectQuestList(CreateQuestList(new[] {257}));
\r
437 battleInfo.InjectResultStatus(new[]
\r
439 ShipStatus(3), ShipStatus(2), ShipStatus(2),
\r
440 ShipStatus(2), ShipStatus(2), ShipStatus(2)
\r
441 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
442 questInfo.InspectMapNext(Js(new
\r
444 api_maparea_id = 1,
\r
445 api_mapinfo_no = 4,
\r
448 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
449 questInfo.InspectMapNext(Js(new
\r
451 api_maparea_id = 1,
\r
452 api_mapinfo_no = 4,
\r
455 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
456 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
457 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
458 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
459 questInfo.Quests[0].Count.Now = 0;
\r
461 battleInfo.Result.Friend.Main[0].NowHp = 0;
\r
462 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
463 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "軽巡轟沈");
\r
464 battleInfo.Result.Friend.Main[0].NowHp = 1;
\r
466 battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;
\r
467 battleInfo.Result.Friend.Main[1].Spec.ShipType = 3;
\r
468 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
469 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "旗艦が駆逐");
\r
470 battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;
\r
472 battleInfo.Result.Friend.Main[2].Spec.ShipType = 3;
\r
473 battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;
\r
474 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
475 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "軽巡が4隻");
\r
477 battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;
\r
478 battleInfo.Result.Friend.Main[3].Spec.ShipType = 4;
\r
479 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
480 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "駆逐軽巡以外");
\r
484 /// 257: 「水上打撃部隊」南方へ!
\r
487 public void BattleResult_259()
\r
489 var battleInfo = new BattleInfo(null, null);
\r
490 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
491 questInfo.InspectQuestList(CreateQuestList(new[] {259}));
\r
493 battleInfo.InjectResultStatus(new[]
\r
495 ShipStatus(3, 183), ShipStatus(9, 276), ShipStatus(10, 411),
\r
496 ShipStatus(10, 412), ShipStatus(5, 193), ShipStatus(5, 194)
\r
497 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
498 questInfo.InspectMapNext(Js(new
\r
500 api_maparea_id = 5,
\r
501 api_mapinfo_no = 1,
\r
504 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
505 questInfo.InspectMapNext(Js(new
\r
507 api_maparea_id = 5,
\r
508 api_mapinfo_no = 1,
\r
511 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
512 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
513 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
514 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
515 questInfo.Quests[0].Count.Now = 0;
\r
517 battleInfo.Result.Friend.Main[0].NowHp = 0;
\r
518 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
519 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "軽巡轟沈");
\r
520 battleInfo.Result.Friend.Main[0].NowHp = 1;
\r
522 battleInfo.Result.Friend.Main[4].Spec = new ShipSpec {Id = 136, ShipType = 9};
\r
523 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
524 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "戦艦4隻");
\r
525 battleInfo.Result.Friend.Main[4].Spec = new ShipSpec {Id = 193, ShipType = 5};
\r
527 battleInfo.Result.Friend.Main[0].Spec = new ShipSpec {Id = 58, ShipType = 4};
\r
528 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
529 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "軽巡なし");
\r
533 /// 264: 「空母機動部隊」西へ!
\r
536 public void BattleResult_264()
\r
538 var battleInfo = new BattleInfo(null, null);
\r
539 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
540 questInfo.InspectQuestList(CreateQuestList(new[] {264}));
\r
542 battleInfo.InjectResultStatus(new[]
\r
544 ShipStatus(7), ShipStatus(11), ShipStatus(3),
\r
545 ShipStatus(3), ShipStatus(2), ShipStatus(2)
\r
546 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
547 questInfo.InspectMapNext(Js(new
\r
549 api_maparea_id = 4,
\r
550 api_mapinfo_no = 2,
\r
553 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
554 questInfo.InspectMapNext(Js(new
\r
556 api_maparea_id = 4,
\r
557 api_mapinfo_no = 2,
\r
560 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
561 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
562 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
563 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
565 battleInfo.Result.Friend.Main[0].NowHp = 0;
\r
566 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
567 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "轟沈あり");
\r
571 /// 266: 「水上反撃部隊」突入せよ!
\r
574 public void BattleResult_266()
\r
576 var battleInfo = new BattleInfo(null, null);
\r
577 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
578 questInfo.InspectQuestList(CreateQuestList(new[] {266}));
\r
580 battleInfo.InjectResultStatus(new[]
\r
582 ShipStatus(2), ShipStatus(5), ShipStatus(3),
\r
583 ShipStatus(2), ShipStatus(2), ShipStatus(2)
\r
584 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
585 questInfo.InspectMapNext(Js(new
\r
587 api_maparea_id = 2,
\r
588 api_mapinfo_no = 5,
\r
591 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
592 questInfo.InspectMapNext(Js(new
\r
594 api_maparea_id = 2,
\r
595 api_mapinfo_no = 5,
\r
598 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
599 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
600 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
601 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
603 battleInfo.Result.Friend.Main[1].NowHp = 0;
\r
604 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
605 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "轟沈あり");
\r
606 battleInfo.Result.Friend.Main[1].NowHp = 1;
\r
608 battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;
\r
609 battleInfo.Result.Friend.Main[2].Spec.ShipType = 2;
\r
610 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
611 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "旗艦が軽巡");
\r
612 battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;
\r
613 battleInfo.Result.Friend.Main[2].Spec.ShipType = 3;
\r
615 battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;
\r
616 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
617 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "軽巡が2隻");
\r
622 /// 854: 戦果拡張任務!「Z作戦」前段作戦
\r
625 public void BattleResult_822_854()
\r
627 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
628 questInfo.InspectQuestList(CreateQuestList(new[] {822, 854}));
\r
630 questInfo.InspectMapNext(Js(new
\r
632 api_maparea_id = 2,
\r
633 api_mapinfo_no = 4,
\r
636 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
637 questInfo.InspectMapNext(Js(new
\r
639 api_maparea_id = 6,
\r
640 api_mapinfo_no = 1,
\r
643 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
644 questInfo.InspectMapNext(Js(new
\r
646 api_maparea_id = 6,
\r
647 api_mapinfo_no = 3,
\r
650 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
651 questInfo.InspectMapNext(Js(new
\r
653 api_maparea_id = 6,
\r
654 api_mapinfo_no = 4,
\r
657 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
658 PAssert.That(() => questInfo.Quests[1].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));
\r
659 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
660 questInfo.InspectMapNext(Js(new
\r
662 api_maparea_id = 2,
\r
663 api_mapinfo_no = 4,
\r
666 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
667 PAssert.That(() => questInfo.Quests[1].Count.NowArray.SequenceEqual(new[] {2, 1, 1, 1}));
\r
668 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
672 /// 861: 強行輸送艦隊、抜錨!
\r
675 public void MapNext_861()
\r
677 var battleInfo = new BattleInfo(null, null);
\r
678 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
679 questInfo.InspectQuestList(CreateQuestList(new[] {861}));
\r
681 battleInfo.InjectResultStatus(new[]
\r
683 ShipStatus(10), ShipStatus(22), ShipStatus(2),
\r
684 ShipStatus(2), ShipStatus(2), ShipStatus(2)
\r
685 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
687 questInfo.InspectMapNext(Js(new
\r
689 api_maparea_id = 1,
\r
690 api_mapinfo_no = 6,
\r
693 questInfo.InspectMapNext(Js(new
\r
695 api_maparea_id = 1,
\r
696 api_mapinfo_no = 6,
\r
699 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
701 battleInfo.Result.Friend.Main[1].NowHp = 0;
\r
702 questInfo.InspectMapNext(Js(new
\r
704 api_maparea_id = 1,
\r
705 api_mapinfo_no = 6,
\r
708 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "轟沈あり");
\r
709 battleInfo.Result.Friend.Main[1].NowHp = 1;
\r
711 battleInfo.Result.Friend.Main[2].Spec.ShipType = 10;
\r
712 questInfo.InspectMapNext(Js(new
\r
714 api_maparea_id = 1,
\r
715 api_mapinfo_no = 6,
\r
718 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "補給・航戦が3隻");
\r
722 /// 862: 前線の航空偵察を実施せよ!
\r
725 public void BattleResult_862()
\r
727 var battleInfo = new BattleInfo(null, null);
\r
728 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
729 questInfo.InspectQuestList(CreateQuestList(new[] {862}));
\r
731 battleInfo.InjectResultStatus(new[]
\r
733 ShipStatus(2), ShipStatus(3), ShipStatus(3),
\r
734 ShipStatus(2), ShipStatus(2), ShipStatus(16)
\r
735 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
736 questInfo.InspectMapNext(Js(new
\r
738 api_maparea_id = 6,
\r
739 api_mapinfo_no = 3,
\r
742 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
743 questInfo.InspectMapNext(Js(new
\r
745 api_maparea_id = 6,
\r
746 api_mapinfo_no = 3,
\r
749 questInfo.InspectBattleResult(Js(new {api_win_rank = "B"}));
\r
750 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
751 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
752 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
754 battleInfo.Result.Friend.Main[1].NowHp = 0;
\r
755 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
756 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "轟沈あり");
\r
757 battleInfo.Result.Friend.Main[1].NowHp = 1;
\r
759 battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;
\r
760 battleInfo.Result.Friend.Main[4].Spec.ShipType = 16;
\r
761 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
762 PAssert.That(() => questInfo.Quests[0].Count.Now == 2, "軽巡3隻水母2隻");
\r
766 /// 873: 北方海域警備を実施せよ!
\r
769 public void BattleResult_873()
\r
771 var battleInfo = new BattleInfo(null, null);
\r
772 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
773 questInfo.InspectQuestList(CreateQuestList(new[] {873}));
\r
775 battleInfo.InjectResultStatus(new[]
\r
777 ShipStatus(3), ShipStatus(2), ShipStatus(2),
\r
778 ShipStatus(2), ShipStatus(2), ShipStatus(2)
\r
779 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
780 questInfo.InspectMapNext(Js(new
\r
782 api_maparea_id = 3,
\r
783 api_mapinfo_no = 1,
\r
786 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
787 questInfo.InspectMapNext(Js(new
\r
789 api_maparea_id = 3,
\r
790 api_mapinfo_no = 1,
\r
793 questInfo.InspectBattleResult(Js(new {api_win_rank = "B"}));
\r
794 PAssert.That(() => questInfo.Quests[0].Count.NowArray[0] == 0);
\r
795 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
796 PAssert.That(() => questInfo.Quests[0].Count.NowArray[0] == 1);
\r
798 battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;
\r
799 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
800 PAssert.That(() => questInfo.Quests[0].Count.NowArray[0] == 1, "軽巡なし");
\r
801 battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;
\r
803 questInfo.InspectMapNext(Js(new
\r
805 api_maparea_id = 3,
\r
806 api_mapinfo_no = 2,
\r
809 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
810 questInfo.InspectMapNext(Js(new
\r
812 api_maparea_id = 3,
\r
813 api_mapinfo_no = 3,
\r
816 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
817 PAssert.That(() => questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1}));
\r
821 /// 875: 精鋭「三一駆」、鉄底海域に突入せよ!
\r
824 public void BattleResult_875()
\r
826 var battleInfo = new BattleInfo(null, null);
\r
827 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
828 questInfo.InspectQuestList(CreateQuestList(new[] {875}));
\r
830 battleInfo.InjectResultStatus(new[]
\r
832 ShipStatus(2, 543), ShipStatus(8, 360), ShipStatus(11, 545),
\r
833 ShipStatus(18, 467), ShipStatus(11, 261), ShipStatus(2, 344)
\r
834 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
835 questInfo.InspectMapNext(Js(new
\r
837 api_maparea_id = 5,
\r
838 api_mapinfo_no = 4,
\r
841 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
842 questInfo.InspectMapNext(Js(new
\r
844 api_maparea_id = 5,
\r
845 api_mapinfo_no = 4,
\r
848 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
849 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
850 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
851 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
853 battleInfo.Result.Friend.Main[5].NowHp = 0;
\r
854 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
855 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "朝霜改轟沈");
\r
856 battleInfo.Result.Friend.Main[5].NowHp = 1;
\r
858 battleInfo.Result.Friend.Main[0].Spec.Id = 345;
\r
859 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
860 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "長波改二なし");
\r
861 battleInfo.Result.Friend.Main[0].Spec.Id = 543;
\r
863 battleInfo.Result.Friend.Main[5].Spec.Id = 345;
\r
864 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
865 PAssert.That(() => questInfo.Quests[0].Count.Now == 2, "高波改");
\r
866 battleInfo.Result.Friend.Main[5].Spec.Id = 359;
\r
867 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
868 PAssert.That(() => questInfo.Quests[0].Count.Now == 3, "沖波改");
\r
873 /// 303: 「演習」で練度向上!
\r
874 /// 304: 「演習」で他提督を圧倒せよ!
\r
876 /// 318: 給糧艦「伊良湖」の支援
\r
879 public void PracticeResult_303_304_302_311_315_318()
\r
881 var battleInfo = new BattleInfo(null, null);
\r
882 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1)) {AcceptMax = 6};
\r
883 questInfo.InspectQuestList(CreateQuestList(new[] {302, 303, 304, 311, 315, 318}));
\r
885 battleInfo.InjectResultStatus(new[]
\r
887 ShipStatus(2, 543), ShipStatus(3, 488)
\r
888 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
889 questInfo.InspectPracticeResult(Js(new {api_win_rank = "C"}));
\r
890 questInfo.InspectPracticeResult(Js(new {api_win_rank = "A"}));
\r
892 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
893 .SequenceEqual(new[]
\r
895 new {Id = 302, Now = 1}, new {Id = 303, Now = 2}, new {Id = 304, Now = 1},
\r
896 new {Id = 311, Now = 1}, new {Id = 315, Now = 1}, new {Id = 318, Now = 0}
\r
899 battleInfo.Result.Friend.Main[0] = ShipStatus(3, 200);
\r
900 questInfo.InspectPracticeResult(Js(new {api_win_rank = "A"}));
\r
901 var q318 = questInfo.Quests[5];
\r
902 PAssert.That(() => q318.Count.Now == 1);
\r
903 q318.Count.Now = 3;
\r
904 questInfo.InspectQuestList(CreateQuestList(new[] {318}));
\r
905 PAssert.That(() => q318.Count.Now == 3, "進捗調節しない");
\r
909 /// 402: 「遠征」を3回成功させよう!
\r
910 /// 403: 「遠征」を10回成功させよう!
\r
911 /// 404: 大規模遠征作戦、発令!
\r
912 /// 410: 南方への輸送作戦を成功させよ!
\r
913 /// 411: 南方への鼠輸送を継続実施せよ!
\r
916 public void MissionResult_402_403_404_410_411()
\r
918 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
919 questInfo.InspectQuestList(CreateQuestList(new[] {402, 403, 404, 410, 411}));
\r
921 questInfo.InspectDeck(Js(
\r
924 new {api_id = 2, api_mission = new[] {2, 6}},
\r
925 new {api_id = 3, api_mission = new[] {2, 37}},
\r
926 new {api_id = 4, api_mission = new[] {2, 2}}
\r
928 questInfo.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));
\r
929 questInfo.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 2}));
\r
930 questInfo.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 0}));
\r
932 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
933 .SequenceEqual(new[]
\r
935 new {Id = 402, Now = 2}, new {Id = 403, Now = 2}, new {Id = 404, Now = 2},
\r
936 new {Id = 410, Now = 1}, new {Id = 411, Now = 1}
\r
941 /// 426: 海上通商航路の警戒を厳とせよ!
\r
944 public void MissionResult_426()
\r
946 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
947 questInfo.InspectQuestList(CreateQuestList(new[] {426}));
\r
949 questInfo.InspectDeck(Js(
\r
952 new {api_id = 2, api_mission = new[] {2, 3}},
\r
953 new {api_id = 3, api_mission = new[] {2, 4}},
\r
954 new {api_id = 4, api_mission = new[] {2, 5}}
\r
956 questInfo.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));
\r
957 questInfo.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));
\r
958 questInfo.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));
\r
960 questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));
\r
961 questInfo.InspectDeck(Js(
\r
964 new {api_id = 2, api_mission = new[] {2, 10}}
\r
966 questInfo.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));
\r
968 questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));
\r
972 /// 428: 近海に侵入する敵潜を制圧せよ!
\r
975 public void MissionResult_428()
\r
977 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
978 questInfo.InspectQuestList(CreateQuestList(new[] {428}));
\r
980 questInfo.InspectDeck(Js(
\r
983 new {api_id = 2, api_mission = new[] {2, 4}},
\r
984 new {api_id = 3, api_mission = new[] {2, 101}},
\r
985 new {api_id = 4, api_mission = new[] {2, 102}}
\r
987 questInfo.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));
\r
988 questInfo.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));
\r
989 questInfo.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));
\r
991 questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1}));
\r
999 public void Powerup_503_504()
\r
1001 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
1002 questInfo.InspectQuestList(CreateQuestList(new[] {503, 504}));
\r
1004 questInfo.CountNyukyo();
\r
1005 questInfo.CountCharge();
\r
1006 PAssert.That(() =>
\r
1007 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
1008 .SequenceEqual(new[] {new {Id = 503, Now = 1}, new {Id = 504, Now = 1}}));
\r
1012 /// 605: 新装備「開発」指令
\r
1013 /// 606: 新造艦「建造」指令
\r
1014 /// 607: 装備「開発」集中強化!
\r
1015 /// 608: 艦娘「建造」艦隊強化!
\r
1020 public void Kousyou_605_606_607_608_609_619()
\r
1022 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1)) {AcceptMax = 6};
\r
1023 questInfo.InspectQuestList(CreateQuestList(new[] {605, 606, 607, 608, 609, 619}));
\r
1025 questInfo.CountCreateItem();
\r
1026 questInfo.CountCreateShip();
\r
1027 questInfo.InspectDestroyShip("api%5Fship%5Fid=98159%2C98166%2C98168&api%5Fverno=1");
\r
1028 questInfo.CountRemodelSlot();
\r
1029 PAssert.That(() =>
\r
1030 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
1031 .SequenceEqual(new[]
\r
1033 new {Id = 605, Now = 1}, new {Id = 606, Now = 1}, new {Id = 607, Now = 1},
\r
1034 new {Id = 608, Now = 1}, new {Id = 609, Now = 3}, new {Id = 619, Now = 1}
\r
1041 /// 643: 主力「陸攻」の調達
\r
1042 /// 645: 「洋上補給」物資の調達
\r
1043 /// 663: 新型艤装の継続研究
\r
1046 /// 675: 運用装備の統合整備
\r
1047 /// 676: 装備開発力の集中整備
\r
1048 /// 677: 継戦支援能力の整備
\r
1049 /// 678: 主力艦上戦闘機の更新
\r
1050 /// 680: 対空兵装の整備拡充
\r
1053 public void DestroyItem_613_638_643_645_663_673_674_675_676_677_678()
\r
1055 var itemInfo = new ItemInfo();
\r
1056 var questInfo = new QuestInfo(itemInfo, null, () => new DateTime(2015, 1, 1)) {AcceptMax = 12};
\r
1058 itemInfo.InjectItemSpec(new[]
\r
1060 new ItemSpec {Id = 1, Name = "12cm単装砲", Type = 1},
\r
1061 new ItemSpec {Id = 37, Name = "7.7mm機銃", Type = 21},
\r
1062 new ItemSpec {Id = 19, Name = "九六式艦戦", Type = 6},
\r
1063 new ItemSpec {Id = 4, Name = "14cm単装砲", Type = 2},
\r
1064 new ItemSpec {Id = 11, Name = "15.2cm単装砲", Type = 4},
\r
1065 new ItemSpec {Id = 75, Name = "ドラム缶(輸送用)", Type = 30},
\r
1066 new ItemSpec {Id = 7, Name = "35.6cm連装砲", Type = 3},
\r
1067 new ItemSpec {Id = 25, Name = "零式水上偵察機", Type = 10},
\r
1068 new ItemSpec {Id = 13, Name = "61cm三連装魚雷", Type = 5},
\r
1069 new ItemSpec {Id = 20, Name = "零式艦戦21型", Type = 6},
\r
1070 new ItemSpec {Id = 28, Name = "22号水上電探", Type = 12},
\r
1071 new ItemSpec {Id = 31, Name = "32号水上電探", Type = 13},
\r
1072 new ItemSpec {Id = 35, Name = "三式弾", Type = 18}
\r
1074 var items = new[] {1, 37, 19, 4, 11, 75, 7, 25, 13, 20, 28, 31, 35};
\r
1075 itemInfo.InjectItems(items);
\r
1076 questInfo.InspectQuestList(CreateQuestList(new[]
\r
1077 {613, 638, 643, 645, 663, 673, 674, 675, 676, 677, 678, 680}));
\r
1078 questInfo.InspectDestroyItem(
\r
1079 $"api%5Fslotitem%5Fids={string.Join("%2C", Enumerable.Range(1, items.Length))}&api%5Fverno=1", null);
\r
1080 var scalar = new[]
\r
1083 new {Id = 613, Now = 1}, new {Id = 638, Now = 1}, new {Id = 643, Now = 1}, new {Id = 645, Now = 1},
\r
1084 new {Id = 663, Now = 1}, new {Id = 673, Now = 1}, new {Id = 674, Now = 1}
\r
1086 foreach (var e in scalar)
\r
1088 var c = Array.Find(questInfo.Quests, q => q.Id == e.Id).Count;
\r
1089 PAssert.That(() => c.Id == e.Id && c.Now == e.Now, $"{c.Id}");
\r
1093 new {Id = 675, NowArray = new[] {2, 1}}, new {Id = 676, NowArray = new[] {1, 1, 1}},
\r
1094 new {Id = 677, NowArray = new[] {1, 1, 1}}, new {Id = 678, NowArray = new[] {1, 1}},
\r
1095 new {Id = 680, NowArray = new[] {1, 2}}
\r
1097 foreach (var e in array)
\r
1099 var c = Array.Find(questInfo.Quests, q => q.Id == e.Id).Count;
\r
1100 PAssert.That(() => c.Id == e.Id && c.NowArray.SequenceEqual(e.NowArray), $"{c.Id}");
\r
1105 /// 702: 艦の「近代化改修」を実施せよ!
\r
1106 /// 703: 「近代化改修」を進め、戦備を整えよ!
\r
1109 public void Powerup_702_703()
\r
1111 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
1112 questInfo.InspectQuestList(CreateQuestList(new[] {702, 703}));
\r
1113 questInfo.InspectPowerup(Js(new {api_powerup_flag = 1}));
\r
1114 PAssert.That(() =>
\r
1115 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
1116 .SequenceEqual(new[] {new {Id = 702, Now = 1}, new {Id = 703, Now = 1}}));
\r
1120 public void NotImplemented()
\r
1122 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
1123 questInfo.InspectQuestList(CreateQuestList(new[] {679}));
\r
1124 PAssert.That(() => questInfo.Quests[0].Count.Spec.Material.Length == 0);
\r
1131 public void ToStringTest()
\r
1133 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
1134 var status = new Status
\r
1136 QuestCountList = new[]
\r
1138 new QuestCount {Id = 211, Now = 2},
\r
1139 new QuestCount {Id = 214, NowArray = new[] {20, 7, 10, 8}},
\r
1140 new QuestCount {Id = 854, NowArray = new[] {2, 1, 1, 1}},
\r
1141 new QuestCount {Id = 426, NowArray = new[] {1, 1, 1, 1}},
\r
1142 new QuestCount {Id = 428, NowArray = new[] {1, 1, 1}},
\r
1143 new QuestCount {Id = 873, NowArray = new[] {1, 1, 1}}
\r
1146 questInfo.LoadState(status);
\r
1147 PAssert.That(() => status.QuestCountList[0].ToString() == "2/3");
\r
1148 PAssert.That(() => status.QuestCountList[1].ToString() == "20/36 7/6 10/24 8/12");
\r
1149 var z = status.QuestCountList[2];
\r
1150 PAssert.That(() => z.ToString() == "4/4");
\r
1151 PAssert.That(() => z.ToToolTip() == "2-4 6-1 6-3 6-4");
\r
1152 z.NowArray = new[] {0, 0, 0, 0};
\r
1153 PAssert.That(() => z.ToToolTip() == "");
\r
1154 var q426 = status.QuestCountList[3];
\r
1155 PAssert.That(() => q426.ToString() == "4/4");
\r
1156 PAssert.That(() => q426.ToToolTip() == "警備任務 対潜警戒任務 海上護衛任務 強硬偵察任務");
\r
1157 var q428 = status.QuestCountList[4];
\r
1158 PAssert.That(() => q428.ToToolTip() == "対潜警戒任務1 海峡警備行動1 長時間対潜警戒1");
\r
1159 q428.NowArray = new[] {0, 1, 0};
\r
1160 PAssert.That(() => q428.ToToolTip() == "海峡警備行動1");
\r
1161 var q873 = status.QuestCountList[5];
\r
1162 PAssert.That(() => q873.ToString() == "3/3");
\r
1163 PAssert.That(() => q873.ToToolTip() == "3-1 3-2 3-3");
\r
1167 /// 状態をロードするときに獲得資材に特殊資材のリストを追加しない
\r
1170 public void LoadStateNotAppendMaterialList()
\r
1172 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
1173 var status = new Status
\r
1183 Material = new[] {0, 2000, 0, 0, 0, 0, 0, 4}
\r
1186 QuestCountList = new[]
\r
1188 new QuestCount {Id = 854, NowArray = new[] {1, 0, 1, 0}}
\r
1191 questInfo.LoadState(status);
\r
1192 PAssert.That(() => questInfo.Quests[0].Material.Length == 8);
\r