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 AdjestCountNowArray()
\r
83 var count = new QuestCount
\r
85 Spec = new QuestSpec {MaxArray = new[] {36, 6, 24, 12}},
\r
86 NowArray = new[] {1, 2, 3, 4}
\r
88 count.AdjustCount(50);
\r
89 PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 2, 3, 4}));
\r
90 count.AdjustCount(100);
\r
91 PAssert.That(() => count.NowArray.SequenceEqual(new[] {36, 6, 24, 12}));
\r
92 count.NowArray = new[] {38, 12, 19, 12};
\r
93 count.AdjustCount(100);
\r
94 PAssert.That(() => count.NowArray.SequenceEqual(new[] {38, 12, 24, 12}));
\r
98 public void ResetQuest()
\r
100 var queue = new Queue<DateTime>(new[]
\r
102 new DateTime(2017, 11, 1, 5, 0, 0), new DateTime(2017, 11, 6, 5, 0, 0),
\r
103 new DateTime(2017, 12, 1, 5, 0, 0)
\r
105 var questInfo = new QuestInfo(null, null, () => queue.Dequeue());
\r
106 var status = new Status
\r
108 QuestCountList = new[]
\r
110 new QuestCount {Id = 201, Now = 1}, new QuestCount {Id = 213, Now = 1},
\r
111 new QuestCount {Id = 265, Now = 1}, new QuestCount {Id = 822, Now = 1}
\r
113 QuestLastReset = new DateTime(2017, 10, 31, 5, 0, 0)
\r
115 questInfo.LoadState(status);
\r
116 questInfo.InspectQuestList(Js(new
\r
119 {new {api_no = 201, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0}}
\r
121 questInfo.SaveState(status);
\r
123 status.QuestCountList.Select(qc => new {qc.Id, qc.Now}).SequenceEqual(new[]
\r
124 {new {Id = 213, Now = 1}, new {Id = 822, Now = 1}})); // デイリーとマンスリーが消える
\r
125 questInfo.InspectQuestList(Js(new
\r
128 {new {api_no = 201, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0}}
\r
130 questInfo.SaveState(status);
\r
132 status.QuestCountList.Select(qc => new {qc.Id, qc.Now}).SequenceEqual(new[]
\r
133 {new {Id = 822, Now = 1}})); // ウィークリーが消える
\r
134 questInfo.InspectQuestList(Js(new
\r
137 {new {api_no = 201, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0}}
\r
139 questInfo.SaveState(status);
\r
140 PAssert.That(() => status.QuestCountList.Length == 0); // クォータリーが消える
\r
143 private JsonObject Js(object obj) => JsonObject.CreateJsonObject(obj);
\r
147 /// 210: 敵艦隊を10回邀撃せよ!
\r
149 /// 216: 敵艦隊主力を撃滅せよ!
\r
152 public void BattleResult_201_216_210_214()
\r
154 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
155 questInfo.InspectQuestList(Js(new
\r
159 new {api_no = 201, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0},
\r
160 new {api_no = 210, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0},
\r
161 new {api_no = 214, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0},
\r
162 new {api_no = 216, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0}
\r
166 questInfo.InspectMapStart(Js(new
\r
168 api_maparea_id = 1,
\r
169 api_mapinfo_no = 1,
\r
172 var quests = questInfo.Quests;
\r
174 PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray[0] == 1);
\r
175 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
177 PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]
\r
179 new {Id = 201, Now = 1}, new {Id = 210, Now = 1},
\r
180 new {Id = 214, Now = 0}, new {Id = 216, Now = 1}
\r
182 PAssert.That(() => quests[2].Id == 214 &&
\r
183 quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}));
\r
185 questInfo.InspectMapNext(Js(new
\r
187 api_maparea_id = 1,
\r
188 api_mapinfo_no = 1,
\r
192 questInfo.InspectBattleResult(Js(new {api_win_rank = "B"}));
\r
193 PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]
\r
195 new {Id = 201, Now = 2}, new {Id = 210, Now = 2},
\r
196 new {Id = 214, Now = 0}, new {Id = 216, Now = 2}
\r
199 PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));
\r
200 questInfo.InspectBattleResult(Js(new {api_win_rank = "C"}));
\r
201 PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]
\r
203 new {Id = 201, Now = 2}, new {Id = 210, Now = 3},
\r
204 new {Id = 214, Now = 0}, new {Id = 216, Now = 2}
\r
206 PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 2, 1}));
\r
210 /// 211: 敵空母を3隻撃沈せよ!
\r
213 /// 218: 敵補給艦を3隻撃沈せよ!
\r
216 public void BattleResult_211_212_218_213_220_221()
\r
218 var battleInfo = new BattleInfo(null, null);
\r
219 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1)) {AcceptMax = 6};
\r
220 questInfo.InspectQuestList(Js(new
\r
224 new {api_no = 211, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0},
\r
225 new {api_no = 212, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0},
\r
226 new {api_no = 213, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0},
\r
227 new {api_no = 218, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0},
\r
228 new {api_no = 220, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0},
\r
229 new {api_no = 221, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0}
\r
233 battleInfo.InjectEnemyResultStatus(new[]
\r
235 new ShipStatus {NowHp = 0, MaxHp = 130, Spec = new ShipSpec {Id = 1558, ShipType = 15}},
\r
236 new ShipStatus {NowHp = 0, MaxHp = 90, Spec = new ShipSpec {Id = 1543, ShipType = 8}},
\r
237 new ShipStatus {NowHp = 0, MaxHp = 90, Spec = new ShipSpec {Id = 1543, ShipType = 8}},
\r
238 new ShipStatus {NowHp = 0, MaxHp = 96, Spec = new ShipSpec {Id = 1528, ShipType = 11}},
\r
239 new ShipStatus {NowHp = 0, MaxHp = 70, Spec = new ShipSpec {Id = 1523, ShipType = 7}},
\r
240 new ShipStatus {NowHp = 1, MaxHp = 70, Spec = new ShipSpec {Id = 1523, ShipType = 7}}
\r
241 }, new ShipStatus[0]);
\r
242 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
244 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
245 .SequenceEqual(new[]
\r
247 new {Id = 211, Now = 2}, new {Id = 212, Now = 1}, new {Id = 213, Now = 1},
\r
248 new {Id = 218, Now = 1}, new {Id = 220, Now = 2}, new {Id = 221, Now = 1}
\r
254 /// 230: 敵潜水艦を制圧せよ!
\r
257 public void BattleResult_228_230()
\r
259 var battleInfo = new BattleInfo(null, null);
\r
260 var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));
\r
261 questInfo.InspectQuestList(Js(new
\r
265 new {api_no = 228, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0},
\r
266 new {api_no = 230, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0}
\r
270 battleInfo.InjectEnemyResultStatus(new[]
\r
272 new ShipStatus {NowHp = 0, MaxHp = 27, Spec = new ShipSpec {Id = 1532, ShipType = 13}},
\r
273 new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}},
\r
274 new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}}
\r
275 }, new ShipStatus[0]);
\r
276 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
278 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
279 .SequenceEqual(new[]
\r
281 new {Id = 228, Now = 3}, new {Id = 230, Now = 3}
\r
286 /// 226: 南西諸島海域の制海権を握れ!
\r
289 public void BattleResult_226()
\r
291 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
292 questInfo.InspectQuestList(Js(new
\r
296 new {api_no = 226, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0}
\r
300 questInfo.InspectMapStart(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 = 0}}));
\r
310 questInfo.InspectMapNext(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
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 = 1}}));
\r
334 /// 854: 戦果拡張任務!「Z作戦」前段作戦
\r
337 public void BattleResult_822_854()
\r
339 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
340 questInfo.InspectQuestList(Js(new
\r
344 new {api_no = 822, api_category = 8, api_state = 2, api_title = "", api_progress_flag = 0},
\r
345 new {api_no = 854, api_category = 8, api_state = 2, api_title = "", api_progress_flag = 0}
\r
349 questInfo.InspectMapNext(Js(new
\r
351 api_maparea_id = 2,
\r
352 api_mapinfo_no = 4,
\r
355 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
356 questInfo.InspectMapNext(Js(new
\r
358 api_maparea_id = 6,
\r
359 api_mapinfo_no = 1,
\r
362 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
363 questInfo.InspectMapNext(Js(new
\r
365 api_maparea_id = 6,
\r
366 api_mapinfo_no = 3,
\r
369 questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
370 questInfo.InspectMapNext(Js(new
\r
372 api_maparea_id = 6,
\r
373 api_mapinfo_no = 4,
\r
376 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
377 PAssert.That(() => questInfo.Quests[1].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));
\r
378 PAssert.That(() => questInfo.Quests[0].Count.Now == 0);
\r
379 questInfo.InspectMapNext(Js(new
\r
381 api_maparea_id = 2,
\r
382 api_mapinfo_no = 4,
\r
385 questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
386 PAssert.That(() => questInfo.Quests[1].Count.NowArray.SequenceEqual(new[] {2, 1, 1, 1}));
\r
387 PAssert.That(() => questInfo.Quests[0].Count.Now == 1);
\r
392 /// 303: 「演習」で練度向上!
\r
393 /// 304: 「演習」で他提督を圧倒せよ!
\r
397 public void PracticeResult_303_304_302_311()
\r
399 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
400 questInfo.InspectQuestList(Js(new
\r
404 new {api_no = 302, api_category = 3, api_state = 2, api_title = "", api_progress_flag = 0},
\r
405 new {api_no = 303, api_category = 3, api_state = 2, api_title = "", api_progress_flag = 0},
\r
406 new {api_no = 304, api_category = 3, api_state = 2, api_title = "", api_progress_flag = 0},
\r
407 new {api_no = 311, api_category = 3, api_state = 2, api_title = "", api_progress_flag = 0}
\r
411 questInfo.InspectPracticeResult(Js(new {api_win_rank = "C"}));
\r
412 questInfo.InspectPracticeResult(Js(new {api_win_rank = "A"}));
\r
414 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
415 .SequenceEqual(new[]
\r
417 new {Id = 302, Now = 1}, new {Id = 303, Now = 2}, new {Id = 304, Now = 1},
\r
418 new {Id = 311, Now = 1}
\r
423 /// 402: 「遠征」を3回成功させよう!
\r
424 /// 403: 「遠征」を10回成功させよう!
\r
425 /// 404: 大規模遠征作戦、発令!
\r
426 /// 410: 南方への輸送作戦を成功させよ!
\r
427 /// 411: 南方への鼠輸送を継続実施せよ!
\r
430 public void MissionResult_402_403_404_410_411()
\r
432 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
433 questInfo.InspectQuestList(Js(new
\r
437 new {api_no = 402, api_category = 4, api_state = 2, api_title = "", api_progress_flag = 0},
\r
438 new {api_no = 403, api_category = 4, api_state = 2, api_title = "", api_progress_flag = 0},
\r
439 new {api_no = 404, api_category = 4, api_state = 2, api_title = "", api_progress_flag = 0},
\r
440 new {api_no = 410, api_category = 4, api_state = 2, api_title = "", api_progress_flag = 0},
\r
441 new {api_no = 411, api_category = 4, api_state = 2, api_title = "", api_progress_flag = 0}
\r
445 questInfo.InspectDeck(Js(
\r
448 new {api_id = 2, api_mission = new[] {2, 6}},
\r
449 new {api_id = 3, api_mission = new[] {2, 37}},
\r
450 new {api_id = 4, api_mission = new[] {2, 2}}
\r
452 questInfo.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));
\r
453 questInfo.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 2}));
\r
454 questInfo.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 0}));
\r
456 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
457 .SequenceEqual(new[]
\r
459 new {Id = 402, Now = 2}, new {Id = 403, Now = 2}, new {Id = 404, Now = 2},
\r
460 new {Id = 410, Now = 1}, new {Id = 411, Now = 1}
\r
469 public void Powerup_503_504()
\r
471 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
472 questInfo.InspectQuestList(Js(new
\r
476 new {api_no = 503, api_category = 5, api_state = 2, api_title = "", api_progress_flag = 0},
\r
477 new {api_no = 504, api_category = 5, api_state = 2, api_title = "", api_progress_flag = 0}
\r
481 questInfo.CountNyukyo();
\r
482 questInfo.CountCharge();
\r
484 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
485 .SequenceEqual(new[] {new {Id = 503, Now = 1}, new {Id = 504, Now = 1}}));
\r
491 /// 607: 装備「開発」集中強化!
\r
492 /// 608: 艦娘「建造」艦隊強化!
\r
497 public void Kousyou_605_606_607_608_609_619()
\r
499 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1)) {AcceptMax = 6};
\r
500 questInfo.InspectQuestList(Js(new
\r
504 new {api_no = 605, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},
\r
505 new {api_no = 606, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},
\r
506 new {api_no = 607, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},
\r
507 new {api_no = 608, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},
\r
508 new {api_no = 609, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},
\r
509 new {api_no = 619, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0}
\r
513 questInfo.CountCreateItem();
\r
514 questInfo.CountCreateShip();
\r
515 questInfo.InspectDestroyShip("api%5Fship%5Fid=98159%2C98166%2C98168&api%5Fverno=1");
\r
516 questInfo.CountRemodelSlot();
\r
518 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
519 .SequenceEqual(new[]
\r
521 new {Id = 605, Now = 1}, new {Id = 606, Now = 1}, new {Id = 607, Now = 1},
\r
522 new {Id = 608, Now = 1}, new {Id = 609, Now = 3}, new {Id = 619, Now = 1}
\r
532 /// 676: 装備開発力の集中整備
\r
536 public void DestroyItem_613_638_673_674_675_676_677()
\r
538 var itemInfo = new ItemInfo();
\r
539 var questInfo = new QuestInfo(itemInfo, null, () => new DateTime(2015, 1, 1)) {AcceptMax = 7};
\r
541 itemInfo.InjectItemSpec(new[]
\r
543 new ItemSpec {Id = 1, Name = "12cm単装砲", Type = 1},
\r
544 new ItemSpec {Id = 37, Name = "7.7mm機銃", Type = 21},
\r
545 new ItemSpec {Id = 19, Name = "九六式艦戦", Type = 6},
\r
546 new ItemSpec {Id = 4, Name = "14cm単装砲", Type = 2},
\r
547 new ItemSpec {Id = 11, Name = "15.2cm単装砲", Type = 4},
\r
548 new ItemSpec {Id = 75, Name = "ドラム缶(輸送用)", Type = 30},
\r
549 new ItemSpec {Id = 7, Name = "35.6cm連装砲", Type = 3},
\r
550 new ItemSpec {Id = 25, Name = "零式水上偵察機", Type = 10},
\r
551 new ItemSpec {Id = 13, Name = "61cm三連装魚雷", Type = 5}
\r
553 itemInfo.InjectItems(new[] {1, 37, 19, 4, 11, 75, 7, 25, 13});
\r
554 questInfo.InspectQuestList(Js(new
\r
558 new {api_no = 613, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},
\r
559 new {api_no = 638, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},
\r
560 new {api_no = 673, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},
\r
561 new {api_no = 674, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},
\r
562 new {api_no = 675, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},
\r
563 new {api_no = 676, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},
\r
564 new {api_no = 677, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0}
\r
567 questInfo.InspectDestroyItem("api%5Fslotitem%5Fids=1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9&api%5Fverno=1", null);
\r
569 questInfo.Quests.Select(q => new {q.Id, q.Count.Now}).Take(4).SequenceEqual(new[]
\r
571 new {Id = 613, Now = 1}, new {Id = 638, Now = 1},
\r
572 new {Id = 673, Now = 1}, new {Id = 674, Now = 1}
\r
574 var q675 = questInfo.Quests[4];
\r
575 PAssert.That(() => q675.Id == 675 && q675.Count.NowArray.SequenceEqual(new[] {1, 1}));
\r
576 var q676 = questInfo.Quests[5];
\r
577 PAssert.That(() => q676.Id == 676 && q676.Count.NowArray.SequenceEqual(new[] {1, 1, 1}));
\r
578 var q677 = questInfo.Quests[6];
\r
579 PAssert.That(() => q677.Id == 677 && q677.Count.NowArray.SequenceEqual(new[] {1, 1, 1}));
\r
583 /// 702: 艦の「近代化改修」を実施せよ!
\r
584 /// 703: 「近代化改修」を進め、戦備を整えよ!
\r
587 public void Powerup_702_703()
\r
589 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
591 questInfo.InspectQuestList(Js(new
\r
595 new {api_no = 702, api_category = 7, api_state = 2, api_title = "", api_progress_flag = 0},
\r
596 new {api_no = 703, api_category = 7, api_state = 2, api_title = "", api_progress_flag = 0}
\r
599 questInfo.InspectPowerup(Js(new {api_powerup_flag = 1}));
\r
601 questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
602 .SequenceEqual(new[] {new {Id = 702, Now = 1}, new {Id = 703, Now = 1}}));
\r
609 public void ToStringTest()
\r
611 var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));
\r
612 var status = new Status
\r
614 QuestCountList = new[]
\r
616 new QuestCount {Id = 211, Now = 2},
\r
617 new QuestCount {Id = 214, NowArray = new[] {20, 7, 10, 8}},
\r
618 new QuestCount {Id = 854, NowArray = new[] {1, 1, 1, 1}}
\r
621 questInfo.LoadState(status);
\r
622 PAssert.That(() => status.QuestCountList[0].ToString() == "2/3");
\r
623 PAssert.That(() => status.QuestCountList[1].ToString() == "20/36 7/6 10/24 8/12");
\r
624 var z = status.QuestCountList[2];
\r
625 PAssert.That(() => z.ToString() == "4/4");
\r
626 PAssert.That(() => z.ToToolTip() == "2-4 6-1 6-3 6-4");
\r
627 z.NowArray = new[] {0, 0, 0, 0};
\r
628 PAssert.That(() => z.ToToolTip() == "");
\r