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 ResetQuest()
\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
151 private JsonObject Js(object obj) => JsonObject.CreateJsonObject(obj);
\r
153 private object CreateQuestList(int[] ids) => Js(new
\r
156 ids.Select(id => new
\r
159 api_category = id / 100,
\r
163 api_get_material = new int[0],
\r
164 api_progress_flag = 0
\r
170 /// 210: 敵艦隊を10回邀撃せよ!
\r
172 /// 216: 敵艦隊主力を撃滅せよ!
\r
175 public void BattleResult_201_216_210_214()
\r
177 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
178 questInfo.InspectQuestList(CreateQuestList(new[] {201, 216, 210, 214}));
\r
180 questInfo.InspectMapStart(Js(new
\r
182 api_maparea_id = 1,
\r
183 api_mapinfo_no = 1,
\r
186 var quests = questInfo.Quests;
\r
188 PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray[0] == 1);
\r
189 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
191 PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]
\r
193 new {Id = 201, Now = 1}, new {Id = 210, Now = 1},
\r
194 new {Id = 214, Now = 0}, new {Id = 216, Now = 1}
\r
196 PAssert.That(() => quests[2].Id == 214 &&
\r
197 quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}));
\r
199 questInfo.InspectMapNext(Js(new
\r
201 api_maparea_id = 1,
\r
202 api_mapinfo_no = 1,
\r
206 questInfo.InspectBattleResult(Js(new {api_win_rank = "B"}));
\r
207 PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]
\r
209 new {Id = 201, Now = 2}, new {Id = 210, Now = 2},
\r
210 new {Id = 214, Now = 0}, new {Id = 216, Now = 2}
\r
213 PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));
\r
214 questInfo.InspectBattleResult(Js(new {api_win_rank = "C"}));
\r
215 PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]
\r
217 new {Id = 201, Now = 2}, new {Id = 210, Now = 3},
\r
218 new {Id = 214, Now = 0}, new {Id = 216, Now = 2}
\r
220 PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 2, 1}));
\r
224 /// 211: 敵空母を3隻撃沈せよ!
\r
227 /// 218: 敵補給艦を3隻撃沈せよ!
\r
230 public void BattleResult_211_212_213_218_220_221()
\r
232 var battleInfo = new BattleInfo(null, null);
\r
233 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1)) {AcceptMax = 6};
\r
234 questInfo.InspectQuestList(CreateQuestList(new[] {211, 212, 213, 218, 220, 221}));
\r
236 battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]
\r
238 new ShipStatus {NowHp = 0, MaxHp = 130, Spec = new ShipSpec {Id = 1558, ShipType = 15}},
\r
239 new ShipStatus {NowHp = 0, MaxHp = 90, Spec = new ShipSpec {Id = 1543, ShipType = 8}},
\r
240 new ShipStatus {NowHp = 0, MaxHp = 90, Spec = new ShipSpec {Id = 1543, ShipType = 8}},
\r
241 new ShipStatus {NowHp = 0, MaxHp = 96, Spec = new ShipSpec {Id = 1528, ShipType = 11}},
\r
242 new ShipStatus {NowHp = 0, MaxHp = 70, Spec = new ShipSpec {Id = 1523, ShipType = 7}},
\r
243 new ShipStatus {NowHp = 1, MaxHp = 70, Spec = new ShipSpec {Id = 1523, ShipType = 7}}
\r
244 }, new ShipStatus[0]);
\r
245 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
247 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
248 .SequenceEqual(new[]
\r
250 new {Id = 211, Now = 2}, new {Id = 212, Now = 1}, new {Id = 213, Now = 1},
\r
251 new {Id = 218, Now = 1}, new {Id = 220, Now = 2}, new {Id = 221, Now = 1}
\r
257 /// 230: 敵潜水艦を制圧せよ!
\r
260 public void BattleResult_228_230()
\r
262 var battleInfo = new BattleInfo(null, null);
\r
263 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
264 questInfo.InspectQuestList(CreateQuestList(new[] {228, 230}));
\r
266 battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]
\r
268 new ShipStatus {NowHp = 0, MaxHp = 27, Spec = new ShipSpec {Id = 1532, ShipType = 13}},
\r
269 new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}},
\r
270 new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}}
\r
271 }, new ShipStatus[0]);
\r
272 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
274 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
275 .SequenceEqual(new[]
\r
277 new {Id = 228, Now = 3}, new {Id = 230, Now = 3}
\r
282 /// 226: 南西諸島海域の制海権を握れ!
\r
285 public void BattleResult_226()
\r
287 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
288 questInfo.InspectQuestList(CreateQuestList(new[] {226}));
\r
290 questInfo.InspectMapStart(Js(new
\r
292 api_maparea_id = 2,
\r
293 api_mapinfo_no = 1,
\r
296 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
298 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
299 .SequenceEqual(new[] {new {Id = 226, Now = 0}}));
\r
300 questInfo.InspectMapNext(Js(new
\r
302 api_maparea_id = 2,
\r
303 api_mapinfo_no = 1,
\r
306 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
308 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
309 .SequenceEqual(new[] {new {Id = 226, Now = 1}}));
\r
310 questInfo.InspectMapStart(Js(new
\r
312 api_maparea_id = 2,
\r
313 api_mapinfo_no = 1,
\r
316 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
318 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
319 .SequenceEqual(new[] {new {Id = 226, Now = 1}}));
\r
323 /// // 243: 南方海域珊瑚諸島沖の制空権を握れ!
\r
326 public void BattleResult_243()
\r
328 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
329 questInfo.InspectQuestList(CreateQuestList(new[] {243}));
\r
331 questInfo.InspectMapStart(Js(new
\r
333 api_maparea_id = 5,
\r
334 api_mapinfo_no = 2,
\r
337 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
339 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
340 .SequenceEqual(new[] {new {Id = 243, Now = 0}}));
\r
342 questInfo.InspectMapNext(Js(new
\r
344 api_maparea_id = 5,
\r
345 api_mapinfo_no = 2,
\r
348 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
350 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
351 .SequenceEqual(new[] {new {Id = 243, Now = 1}}));
\r
354 private ShipStatus ShipStatus(int shipType, int specId = 0) =>
\r
355 new ShipStatus {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType}};
\r
359 /// 249: 「第五戦隊」出撃せよ!
\r
362 public void BattleResult_249()
\r
364 var battleInfo = new BattleInfo(null, null);
\r
365 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
366 questInfo.InspectQuestList(CreateQuestList(new[] {249}));
\r
368 battleInfo.InjectResultStatus(new[]
\r
370 ShipStatus(5, 319), ShipStatus(5, 192), ShipStatus(5, 194),
\r
371 ShipStatus(5, 193), ShipStatus(6, 189), ShipStatus(6, 188)
\r
372 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
373 questInfo.InspectMapNext(Js(new
\r
375 api_maparea_id = 2,
\r
376 api_mapinfo_no = 5,
\r
379 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
380 questInfo.InspectMapNext(Js(new
\r
382 api_maparea_id = 2,
\r
383 api_mapinfo_no = 5,
\r
386 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
387 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
388 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
389 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
390 questInfo.Quests[0].Count.Now = 0;
\r
392 battleInfo.Result.Friend.Main[1].NowHp = 0;
\r
393 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
394 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "那智改二轟沈");
\r
398 /// 257: 「水雷戦隊」南西へ!
\r
401 public void BattleResult_257()
\r
403 var battleInfo = new BattleInfo(null, null);
\r
404 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
405 questInfo.InspectQuestList(CreateQuestList(new[] {257}));
\r
407 battleInfo.InjectResultStatus(new[]
\r
409 ShipStatus(3), ShipStatus(2), ShipStatus(2),
\r
410 ShipStatus(2), ShipStatus(2), ShipStatus(2)
\r
411 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
412 questInfo.InspectMapNext(Js(new
\r
414 api_maparea_id = 1,
\r
415 api_mapinfo_no = 4,
\r
418 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
419 questInfo.InspectMapNext(Js(new
\r
421 api_maparea_id = 1,
\r
422 api_mapinfo_no = 4,
\r
425 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
426 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
427 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
428 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
429 questInfo.Quests[0].Count.Now = 0;
\r
431 battleInfo.Result.Friend.Main[0].NowHp = 0;
\r
432 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
433 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "軽巡轟沈");
\r
434 battleInfo.Result.Friend.Main[0].NowHp = 1;
\r
436 battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;
\r
437 battleInfo.Result.Friend.Main[1].Spec.ShipType = 3;
\r
438 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
439 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "旗艦が駆逐");
\r
440 battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;
\r
442 battleInfo.Result.Friend.Main[2].Spec.ShipType = 3;
\r
443 battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;
\r
444 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
445 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "軽巡が4隻");
\r
447 battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;
\r
448 battleInfo.Result.Friend.Main[3].Spec.ShipType = 4;
\r
449 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
450 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "駆逐軽巡以外");
\r
454 /// 257: 「水上打撃部隊」南方へ!
\r
457 public void BattleResult_259()
\r
459 var battleInfo = new BattleInfo(null, null);
\r
460 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
461 questInfo.InspectQuestList(CreateQuestList(new[] {259}));
\r
463 battleInfo.InjectResultStatus(new[]
\r
465 ShipStatus(3, 183), ShipStatus(9, 276), ShipStatus(10, 411),
\r
466 ShipStatus(10, 412), ShipStatus(5, 193), ShipStatus(5, 194)
\r
467 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
468 questInfo.InspectMapNext(Js(new
\r
470 api_maparea_id = 5,
\r
471 api_mapinfo_no = 1,
\r
474 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
475 questInfo.InspectMapNext(Js(new
\r
477 api_maparea_id = 5,
\r
478 api_mapinfo_no = 1,
\r
481 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
482 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
483 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
484 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
485 questInfo.Quests[0].Count.Now = 0;
\r
487 battleInfo.Result.Friend.Main[0].NowHp = 0;
\r
488 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
489 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "軽巡轟沈");
\r
490 battleInfo.Result.Friend.Main[0].NowHp = 1;
\r
492 battleInfo.Result.Friend.Main[4].Spec = new ShipSpec {Id = 136, ShipType = 9};
\r
493 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
494 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "戦艦4隻");
\r
495 battleInfo.Result.Friend.Main[4].Spec = new ShipSpec {Id = 193, ShipType = 5};
\r
497 battleInfo.Result.Friend.Main[0].Spec = new ShipSpec {Id = 58, ShipType = 4};
\r
498 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
499 PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "軽巡なし");
\r
503 /// 266: 「水上反撃部隊」突入せよ!
\r
506 public void BattleResult_266()
\r
508 var battleInfo = new BattleInfo(null, null);
\r
509 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
510 questInfo.InspectQuestList(CreateQuestList(new[] {266}));
\r
512 battleInfo.InjectResultStatus(new[]
\r
514 ShipStatus(2), ShipStatus(5), ShipStatus(3),
\r
515 ShipStatus(2), ShipStatus(2), ShipStatus(2)
\r
516 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
517 questInfo.InspectMapNext(Js(new
\r
519 api_maparea_id = 2,
\r
520 api_mapinfo_no = 5,
\r
523 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
524 questInfo.InspectMapNext(Js(new
\r
526 api_maparea_id = 2,
\r
527 api_mapinfo_no = 5,
\r
530 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
531 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
532 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
533 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
535 battleInfo.Result.Friend.Main[1].NowHp = 0;
\r
536 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
537 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "轟沈あり");
\r
538 battleInfo.Result.Friend.Main[1].NowHp = 1;
\r
540 battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;
\r
541 battleInfo.Result.Friend.Main[2].Spec.ShipType = 2;
\r
542 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
543 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "旗艦が軽巡");
\r
544 battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;
\r
545 battleInfo.Result.Friend.Main[2].Spec.ShipType = 3;
\r
547 battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;
\r
548 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
549 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "軽巡が2隻");
\r
554 /// 854: 戦果拡張任務!「Z作戦」前段作戦
\r
557 public void BattleResult_822_854()
\r
559 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
560 questInfo.InspectQuestList(CreateQuestList(new[] {822, 854}));
\r
562 questInfo.InspectMapNext(Js(new
\r
564 api_maparea_id = 2,
\r
565 api_mapinfo_no = 4,
\r
568 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
569 questInfo.InspectMapNext(Js(new
\r
571 api_maparea_id = 6,
\r
572 api_mapinfo_no = 1,
\r
575 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
576 questInfo.InspectMapNext(Js(new
\r
578 api_maparea_id = 6,
\r
579 api_mapinfo_no = 3,
\r
582 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
583 questInfo.InspectMapNext(Js(new
\r
585 api_maparea_id = 6,
\r
586 api_mapinfo_no = 4,
\r
589 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
590 PAssert.That(() => questInfo.Quests[1].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));
\r
591 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
592 questInfo.InspectMapNext(Js(new
\r
594 api_maparea_id = 2,
\r
595 api_mapinfo_no = 4,
\r
598 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
599 PAssert.That(() => questInfo.Quests[1].Count.NowArray.SequenceEqual(new[] {2, 1, 1, 1}));
\r
600 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
604 /// 861: 強行輸送艦隊、抜錨!
\r
607 public void MapNext_861()
\r
609 var battleInfo = new BattleInfo(null, null);
\r
610 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
611 questInfo.InspectQuestList(CreateQuestList(new[] {861}));
\r
613 battleInfo.InjectResultStatus(new[]
\r
615 ShipStatus(10), ShipStatus(22), ShipStatus(2),
\r
616 ShipStatus(2), ShipStatus(2), ShipStatus(2)
\r
617 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
619 questInfo.InspectMapNext(Js(new
\r
621 api_maparea_id = 1,
\r
622 api_mapinfo_no = 6,
\r
625 questInfo.InspectMapNext(Js(new
\r
627 api_maparea_id = 1,
\r
628 api_mapinfo_no = 6,
\r
631 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
633 battleInfo.Result.Friend.Main[1].NowHp = 0;
\r
634 questInfo.InspectMapNext(Js(new
\r
636 api_maparea_id = 1,
\r
637 api_mapinfo_no = 6,
\r
640 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "轟沈あり");
\r
641 battleInfo.Result.Friend.Main[1].NowHp = 1;
\r
643 battleInfo.Result.Friend.Main[2].Spec.ShipType = 10;
\r
644 questInfo.InspectMapNext(Js(new
\r
646 api_maparea_id = 1,
\r
647 api_mapinfo_no = 6,
\r
650 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "補給・航戦が3隻");
\r
654 /// 862: 前線の航空偵察を実施せよ!
\r
657 public void BattleResult_862()
\r
659 var battleInfo = new BattleInfo(null, null);
\r
660 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
661 questInfo.InspectQuestList(CreateQuestList(new[] {862}));
\r
663 battleInfo.InjectResultStatus(new[]
\r
665 ShipStatus(2), ShipStatus(3), ShipStatus(3),
\r
666 ShipStatus(2), ShipStatus(2), ShipStatus(16)
\r
667 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
668 questInfo.InspectMapNext(Js(new
\r
670 api_maparea_id = 6,
\r
671 api_mapinfo_no = 3,
\r
674 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
675 questInfo.InspectMapNext(Js(new
\r
677 api_maparea_id = 6,
\r
678 api_mapinfo_no = 3,
\r
681 questInfo.InspectBattleResult(Js(new {api_win_rank = "B"}));
\r
682 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
683 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
684 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
686 battleInfo.Result.Friend.Main[1].NowHp = 0;
\r
687 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
688 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "轟沈あり");
\r
689 battleInfo.Result.Friend.Main[1].NowHp = 1;
\r
691 battleInfo.Result.Friend.Main[4].Spec.ShipType = 16;
\r
692 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
693 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "水母2隻");
\r
697 /// 873: 北方海域警備を実施せよ!
\r
700 public void BattleResult_873()
\r
702 var battleInfo = new BattleInfo(null, null);
\r
703 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
704 questInfo.InspectQuestList(CreateQuestList(new[] {873}));
\r
706 battleInfo.InjectResultStatus(new[]
\r
708 ShipStatus(3), ShipStatus(2), ShipStatus(2),
\r
709 ShipStatus(2), ShipStatus(2), ShipStatus(2)
\r
710 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
711 questInfo.InspectMapNext(Js(new
\r
713 api_maparea_id = 3,
\r
714 api_mapinfo_no = 1,
\r
717 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
718 questInfo.InspectMapNext(Js(new
\r
720 api_maparea_id = 3,
\r
721 api_mapinfo_no = 1,
\r
724 questInfo.InspectBattleResult(Js(new {api_win_rank = "B"}));
\r
725 PAssert.That(() => questInfo.Quests[0].Count.NowArray[0] == 0);
\r
726 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
727 PAssert.That(() => questInfo.Quests[0].Count.NowArray[0] == 1);
\r
729 battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;
\r
730 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
731 PAssert.That(() => questInfo.Quests[0].Count.NowArray[0] == 1, "軽巡なし");
\r
732 battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;
\r
734 questInfo.InspectMapNext(Js(new
\r
736 api_maparea_id = 3,
\r
737 api_mapinfo_no = 2,
\r
740 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
741 questInfo.InspectMapNext(Js(new
\r
743 api_maparea_id = 3,
\r
744 api_mapinfo_no = 3,
\r
747 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
748 PAssert.That(() => questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1}));
\r
752 /// 875: 精鋭「三一駆」、鉄底海域に突入せよ!
\r
755 public void BattleResult_875()
\r
757 var battleInfo = new BattleInfo(null, null);
\r
758 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
759 questInfo.InspectQuestList(CreateQuestList(new[] {875}));
\r
761 battleInfo.InjectResultStatus(new[]
\r
763 ShipStatus(2, 543), ShipStatus(8, 360), ShipStatus(11, 545),
\r
764 ShipStatus(18, 467), ShipStatus(11, 261), ShipStatus(2, 344)
\r
765 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
766 questInfo.InspectMapNext(Js(new
\r
768 api_maparea_id = 5,
\r
769 api_mapinfo_no = 4,
\r
772 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
773 questInfo.InspectMapNext(Js(new
\r
775 api_maparea_id = 5,
\r
776 api_mapinfo_no = 4,
\r
779 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
780 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
781 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
782 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
784 battleInfo.Result.Friend.Main[5].NowHp = 0;
\r
785 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
786 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "朝霜改轟沈");
\r
787 battleInfo.Result.Friend.Main[5].NowHp = 1;
\r
789 battleInfo.Result.Friend.Main[0].Spec.Id = 345;
\r
790 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
791 PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "長波改二なし");
\r
792 battleInfo.Result.Friend.Main[0].Spec.Id = 543;
\r
794 battleInfo.Result.Friend.Main[5].Spec.Id = 345;
\r
795 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
796 PAssert.That(() => questInfo.Quests[0].Count.Now == 2, "高波改");
\r
797 battleInfo.Result.Friend.Main[5].Spec.Id = 359;
\r
798 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
799 PAssert.That(() => questInfo.Quests[0].Count.Now == 3, "沖波改");
\r
804 /// 303: 「演習」で練度向上!
\r
805 /// 304: 「演習」で他提督を圧倒せよ!
\r
807 /// 318: 給糧艦「伊良湖」の支援
\r
810 public void PracticeResult_303_304_302_311_318()
\r
812 var battleInfo = new BattleInfo(null, null);
\r
813 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
814 questInfo.InspectQuestList(CreateQuestList(new[] {302, 303, 304, 311, 318}));
\r
816 battleInfo.InjectResultStatus(new[]
\r
818 ShipStatus(2, 543), ShipStatus(3, 488)
\r
819 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
820 questInfo.InspectPracticeResult(Js(new {api_win_rank = "C"}));
\r
821 questInfo.InspectPracticeResult(Js(new {api_win_rank = "A"}));
\r
823 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
824 .SequenceEqual(new[]
\r
826 new {Id = 302, Now = 1}, new {Id = 303, Now = 2}, new {Id = 304, Now = 1},
\r
827 new {Id = 311, Now = 1}, new {Id = 318, Now = 0}
\r
830 battleInfo.Result.Friend.Main[0] = ShipStatus(3, 200);
\r
831 questInfo.InspectPracticeResult(Js(new {api_win_rank = "A"}));
\r
832 PAssert.That(() => questInfo.Quests[4].Count.Now == 1);
\r
833 questInfo.Quests[4].Count.Now = 3;
\r
834 questInfo.InspectQuestList(CreateQuestList(new[] {318}));
\r
835 PAssert.That(() => questInfo.Quests[4].Count.Now == 3, "進捗調節しない");
\r
839 /// 402: 「遠征」を3回成功させよう!
\r
840 /// 403: 「遠征」を10回成功させよう!
\r
841 /// 404: 大規模遠征作戦、発令!
\r
842 /// 410: 南方への輸送作戦を成功させよ!
\r
843 /// 411: 南方への鼠輸送を継続実施せよ!
\r
846 public void MissionResult_402_403_404_410_411()
\r
848 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
849 questInfo.InspectQuestList(CreateQuestList(new[] {402, 403, 404, 410, 411}));
\r
851 questInfo.InspectDeck(Js(
\r
854 new {api_id = 2, api_mission = new[] {2, 6}},
\r
855 new {api_id = 3, api_mission = new[] {2, 37}},
\r
856 new {api_id = 4, api_mission = new[] {2, 2}}
\r
858 questInfo.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));
\r
859 questInfo.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 2}));
\r
860 questInfo.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 0}));
\r
862 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
863 .SequenceEqual(new[]
\r
865 new {Id = 402, Now = 2}, new {Id = 403, Now = 2}, new {Id = 404, Now = 2},
\r
866 new {Id = 410, Now = 1}, new {Id = 411, Now = 1}
\r
871 /// 426: 海上通商航路の警戒を厳とせよ!
\r
874 public void MissionResult_426()
\r
876 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
877 questInfo.InspectQuestList(CreateQuestList(new[] {426}));
\r
879 questInfo.InspectDeck(Js(
\r
882 new {api_id = 2, api_mission = new[] {2, 3}},
\r
883 new {api_id = 3, api_mission = new[] {2, 4}},
\r
884 new {api_id = 4, api_mission = new[] {2, 5}}
\r
886 questInfo.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));
\r
887 questInfo.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));
\r
888 questInfo.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));
\r
890 questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));
\r
891 questInfo.InspectDeck(Js(
\r
894 new {api_id = 2, api_mission = new[] {2, 10}}
\r
896 questInfo.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));
\r
898 questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));
\r
902 /// 428: 近海に侵入する敵潜を制圧せよ!
\r
905 public void MissionResult_428()
\r
907 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
908 questInfo.InspectQuestList(CreateQuestList(new[] {428}));
\r
910 questInfo.InspectDeck(Js(
\r
913 new {api_id = 2, api_mission = new[] {2, 4}},
\r
914 new {api_id = 3, api_mission = new[] {2, 101}},
\r
915 new {api_id = 4, api_mission = new[] {2, 102}}
\r
917 questInfo.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));
\r
918 questInfo.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));
\r
919 questInfo.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));
\r
921 questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1}));
\r
929 public void Powerup_503_504()
\r
931 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
932 questInfo.InspectQuestList(CreateQuestList(new[] {503, 504}));
\r
934 questInfo.CountNyukyo();
\r
935 questInfo.CountCharge();
\r
937 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
938 .SequenceEqual(new[] {new {Id = 503, Now = 1}, new {Id = 504, Now = 1}}));
\r
944 /// 607: 装備「開発」集中強化!
\r
945 /// 608: 艦娘「建造」艦隊強化!
\r
950 public void Kousyou_605_606_607_608_609_619()
\r
952 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1)) {AcceptMax = 6};
\r
953 questInfo.InspectQuestList(CreateQuestList(new[] {605, 606, 607, 608, 609, 619}));
\r
955 questInfo.CountCreateItem();
\r
956 questInfo.CountCreateShip();
\r
957 questInfo.InspectDestroyShip("api%5Fship%5Fid=98159%2C98166%2C98168&api%5Fverno=1");
\r
958 questInfo.CountRemodelSlot();
\r
960 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
961 .SequenceEqual(new[]
\r
963 new {Id = 605, Now = 1}, new {Id = 606, Now = 1}, new {Id = 607, Now = 1},
\r
964 new {Id = 608, Now = 1}, new {Id = 609, Now = 3}, new {Id = 619, Now = 1}
\r
975 /// 676: 装備開発力の集中整備
\r
977 /// 678: 主力艦上戦闘機の更新
\r
981 public void DestroyItem_613_638_663_673_674_675_676_677_678()
\r
983 var itemInfo = new ItemInfo();
\r
984 var questInfo = new QuestInfo(itemInfo, null, () => new DateTime(2015, 1, 1)) {AcceptMax = 10};
\r
986 itemInfo.InjectItemSpec(new[]
\r
988 new ItemSpec {Id = 1, Name = "12cm単装砲", Type = 1},
\r
989 new ItemSpec {Id = 37, Name = "7.7mm機銃", Type = 21},
\r
990 new ItemSpec {Id = 19, Name = "九六式艦戦", Type = 6},
\r
991 new ItemSpec {Id = 4, Name = "14cm単装砲", Type = 2},
\r
992 new ItemSpec {Id = 11, Name = "15.2cm単装砲", Type = 4},
\r
993 new ItemSpec {Id = 75, Name = "ドラム缶(輸送用)", Type = 30},
\r
994 new ItemSpec {Id = 7, Name = "35.6cm連装砲", Type = 3},
\r
995 new ItemSpec {Id = 25, Name = "零式水上偵察機", Type = 10},
\r
996 new ItemSpec {Id = 13, Name = "61cm三連装魚雷", Type = 5},
\r
997 new ItemSpec {Id = 20, Name = "零式艦戦21型", Type = 6},
\r
998 new ItemSpec {Id = 28, Name = "22号水上電探", Type = 12},
\r
999 new ItemSpec {Id = 31, Name = "32号水上電探", Type = 13}
\r
1001 var items = new[] {1, 37, 19, 4, 11, 75, 7, 25, 13, 20, 28, 31};
\r
1002 itemInfo.InjectItems(items);
\r
1003 questInfo.InspectQuestList(CreateQuestList(new[]
\r
1004 {613, 638, 663, 673, 674, 675, 676, 677, 678, 680}));
\r
1005 questInfo.InspectDestroyItem(
\r
1006 $"api%5Fslotitem%5Fids={string.Join("%2C", Enumerable.Range(1, items.Length))}&api%5Fverno=1", null);
\r
1007 var scalar = new[]
\r
1009 new {Id = 613, Now = 1}, new {Id = 638, Now = 1},
\r
1010 new {Id = 663, Now = 1}, new {Id = 673, Now = 1}, new {Id = 674, Now = 1}
\r
1012 foreach (var e in scalar)
\r
1014 var c = Array.Find(questInfo.Quests, q => q.Id == e.Id).Count;
\r
1015 PAssert.That(() => c.Id == e.Id && c.Now == e.Now, $"{c.Id}");
\r
1019 new {Id = 675, NowArray = new[] {2, 1}}, new {Id = 676, NowArray = new[] {1, 1, 1}},
\r
1020 new {Id = 677, NowArray = new[] {1, 1, 1}}, new {Id = 678, NowArray = new[] {1, 1}},
\r
1021 new {Id = 680, NowArray = new[] {1, 2}}
\r
1023 foreach (var e in array)
\r
1025 var c = Array.Find(questInfo.Quests, q => q.Id == e.Id).Count;
\r
1026 PAssert.That(() => c.Id == e.Id && c.NowArray.SequenceEqual(e.NowArray), $"{c.Id}");
\r
1031 /// 702: 艦の「近代化改修」を実施せよ!
\r
1032 /// 703: 「近代化改修」を進め、戦備を整えよ!
\r
1035 public void Powerup_702_703()
\r
1037 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
1038 questInfo.InspectQuestList(CreateQuestList(new[] {702, 703}));
\r
1039 questInfo.InspectPowerup(Js(new {api_powerup_flag = 1}));
\r
1040 PAssert.That(() =>
\r
1041 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
1042 .SequenceEqual(new[] {new {Id = 702, Now = 1}, new {Id = 703, Now = 1}}));
\r
1046 public void NotImplemented()
\r
1048 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
1049 questInfo.InspectQuestList(CreateQuestList(new[] {679}));
\r
1050 PAssert.That(() => questInfo.Quests[0].Count.Spec.Material.Length == 0);
\r
1057 public void ToStringTest()
\r
1059 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
1060 var status = new Status
\r
1062 QuestCountList = new[]
\r
1064 new QuestCount {Id = 211, Now = 2},
\r
1065 new QuestCount {Id = 214, NowArray = new[] {20, 7, 10, 8}},
\r
1066 new QuestCount {Id = 854, NowArray = new[] {2, 1, 1, 1}},
\r
1067 new QuestCount {Id = 426, NowArray = new[] {1, 1, 1, 1}},
\r
1068 new QuestCount {Id = 428, NowArray = new[] {1, 1, 1}},
\r
1069 new QuestCount {Id = 873, NowArray = new[] {1, 1, 1}}
\r
1072 questInfo.LoadState(status);
\r
1073 PAssert.That(() => status.QuestCountList[0].ToString() == "2/3");
\r
1074 PAssert.That(() => status.QuestCountList[1].ToString() == "20/36 7/6 10/24 8/12");
\r
1075 var z = status.QuestCountList[2];
\r
1076 PAssert.That(() => z.ToString() == "4/4");
\r
1077 PAssert.That(() => z.ToToolTip() == "2-4 6-1 6-3 6-4");
\r
1078 z.NowArray = new[] {0, 0, 0, 0};
\r
1079 PAssert.That(() => z.ToToolTip() == "");
\r
1080 var q426 = status.QuestCountList[3];
\r
1081 PAssert.That(() => q426.ToString() == "4/4");
\r
1082 PAssert.That(() => q426.ToToolTip() == "警備任務 対潜警戒任務 海上護衛任務 強硬偵察任務");
\r
1083 var q428 = status.QuestCountList[4];
\r
1084 PAssert.That(() => q428.ToToolTip() == "対潜警戒任務1 海峡警備行動1 長時間対潜警戒1");
\r
1085 q428.NowArray = new[] {0, 1, 0};
\r
1086 PAssert.That(() => q428.ToToolTip() == "海峡警備行動1");
\r
1087 var q873 = status.QuestCountList[5];
\r
1088 PAssert.That(() => q873.ToString() == "3/3");
\r
1089 PAssert.That(() => q873.ToToolTip() == "3-1 3-2 3-3");
\r
1093 /// 状態をロードするときに獲得資材に特殊資材のリストを追加しない
\r
1096 public void LoadStateNotAppendMaterialList()
\r
1098 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
1099 var status = new Status
\r
1109 Material = new[] {0, 2000, 0, 0, 0, 0, 0, 4}
\r
1112 QuestCountList = new[]
\r
1114 new QuestCount {Id = 854, NowArray = new[] {1, 0, 1, 0}}
\r
1117 questInfo.LoadState(status);
\r
1118 PAssert.That(() => questInfo.Quests[0].Material.Length == 8);
\r