1 // Copyright (C) 2019 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
17 using ExpressionToCodeLib;
\r
18 using KancolleSniffer.Model;
\r
19 using KancolleSniffer.Util;
\r
20 using Microsoft.VisualStudio.TestTools.UnitTesting;
\r
22 namespace KancolleSniffer.Test
\r
25 public class QuestCountTest
\r
28 public void AdjustCount()
\r
30 var count = new QuestCount
\r
32 Spec = new QuestSpec {Max = 7},
\r
35 count.AdjustCount(0);
\r
36 PAssert.That(() => count.Now == 3);
\r
37 count.AdjustCount(50);
\r
38 PAssert.That(() => count.Now == 4);
\r
39 count.AdjustCount(80);
\r
40 PAssert.That(() => count.Now == 6);
\r
41 count.AdjustCount(100);
\r
42 PAssert.That(() => count.Now == 7);
\r
44 count.AdjustCount(100);
\r
45 PAssert.That(() => count.Now == 14);
\r
46 count.AdjustCount(80);
\r
47 PAssert.That(() => count.Now == 6);
\r
48 count.AdjustCount(50);
\r
49 PAssert.That(() => count.Now == 5);
\r
50 count.AdjustCount(0);
\r
51 PAssert.That(() => count.Now == 3);
\r
55 public void AdjustCountWithShift()
\r
57 var count = new QuestCount
\r
59 Spec = new QuestSpec {Max = 7, Shift = 1},
\r
62 count.AdjustCount(0);
\r
63 PAssert.That(() => count.Now == 2);
\r
64 count.AdjustCount(50);
\r
65 PAssert.That(() => count.Now == 3);
\r
66 count.AdjustCount(80);
\r
67 PAssert.That(() => count.Now == 6);
\r
68 count.AdjustCount(100);
\r
69 PAssert.That(() => count.Now == 7);
\r
71 count.AdjustCount(100);
\r
72 PAssert.That(() => count.Now == 14);
\r
73 count.AdjustCount(80);
\r
74 PAssert.That(() => count.Now == 6);
\r
75 count.AdjustCount(50);
\r
76 PAssert.That(() => count.Now == 5);
\r
77 count.AdjustCount(0);
\r
78 PAssert.That(() => count.Now == 2);
\r
82 public void AdjustCount80Percent()
\r
84 var count = new QuestCount
\r
86 Spec = new QuestSpec()
\r
88 for (var shift = 0; shift <= 1; shift++)
\r
90 for (var max = 2; max <= 6; max++)
\r
92 count.Spec.Max = max;
\r
93 count.Spec.Shift = shift;
\r
95 count.AdjustCount(80);
\r
96 PAssert.That(() => count.Now == count.Spec.Max - 1);
\r
102 public void AdjustCountNowArray()
\r
104 var count = new QuestCount
\r
106 Spec = new QuestSpec {MaxArray = new[] {36, 6, 24, 12}},
\r
107 NowArray = new[] {1, 2, 3, 4}
\r
109 count.AdjustCount(50);
\r
110 PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 2, 3, 4}));
\r
111 count.AdjustCount(100);
\r
112 PAssert.That(() => count.NowArray.SequenceEqual(new[] {36, 6, 24, 12}));
\r
113 count.NowArray = new[] {38, 12, 19, 12};
\r
114 count.AdjustCount(100);
\r
115 PAssert.That(() => count.NowArray.SequenceEqual(new[] {38, 12, 24, 12}));
\r
122 public void ToStringTest()
\r
124 var status = new Status
\r
126 QuestCountList = new[]
\r
128 new QuestCount {Id = 211, Now = 2},
\r
129 new QuestCount {Id = 214, NowArray = new[] {20, 7, 10, 8}},
\r
130 new QuestCount {Id = 854, NowArray = new[] {2, 1, 1, 1}},
\r
131 new QuestCount {Id = 426, NowArray = new[] {1, 1, 1, 1}},
\r
132 new QuestCount {Id = 428, NowArray = new[] {1, 1, 1}},
\r
133 new QuestCount {Id = 873, NowArray = new[] {1, 1, 1}},
\r
134 new QuestCount {Id = 888, NowArray = new[] {1, 1, 1}},
\r
135 new QuestCount {Id = 688, NowArray = new[] {2, 1, 2, 1}},
\r
136 new QuestCount {Id = 893, NowArray = new[] {1, 1, 1, 1}},
\r
137 new QuestCount {Id = 894, NowArray = new[] {1, 1, 1, 1, 1}},
\r
138 new QuestCount {Id = 280, NowArray = new[] {1, 1, 1, 1}}
\r
141 new QuestInfo().LoadState(status);
\r
142 PAssert.That(() => status.QuestCountList[0].ToString() == "2/3");
\r
143 PAssert.That(() => status.QuestCountList[1].ToString() == "20/36 7/6 10/24 8/12");
\r
144 var z = status.QuestCountList[2];
\r
145 PAssert.That(() => z.ToString() == "4/4");
\r
146 PAssert.That(() => z.ToToolTip() == "2-4 6-1 6-3 6-4");
\r
147 z.NowArray = new[] {0, 0, 0, 0};
\r
148 PAssert.That(() => z.ToToolTip() == "");
\r
149 var q426 = status.QuestCountList[3];
\r
150 PAssert.That(() => q426.ToString() == "4/4");
\r
151 PAssert.That(() => q426.ToToolTip() == "警備任務 対潜警戒任務 海上護衛任務 強硬偵察任務");
\r
152 var q428 = status.QuestCountList[4];
\r
153 PAssert.That(() => q428.ToToolTip() == "対潜警戒任務1 海峡警備行動1 長時間対潜警戒1");
\r
154 q428.NowArray = new[] {0, 1, 0};
\r
155 PAssert.That(() => q428.ToToolTip() == "海峡警備行動1");
\r
156 var q873 = status.QuestCountList[5];
\r
157 PAssert.That(() => q873.ToString() == "3/3");
\r
158 PAssert.That(() => q873.ToToolTip() == "3-1 3-2 3-3");
\r
159 var q888 = status.QuestCountList[6];
\r
160 PAssert.That(() => q888.ToString() == "3/3");
\r
161 PAssert.That(() => q888.ToToolTip() == "5-1 5-3 5-4");
\r
162 var q688 = status.QuestCountList[7];
\r
163 PAssert.That(() => q688.ToToolTip() == "艦戦2 艦爆1 艦攻2 水偵1");
\r
164 var q893 = status.QuestCountList[8];
\r
165 PAssert.That(() => q893.ToToolTip() == "1-5:1 7-1:1 7-2G:1 7-2M:1");
\r
166 var q894 = status.QuestCountList[9];
\r
167 PAssert.That(() => q894.ToString() == "5/5");
\r
168 PAssert.That(() => q894.ToToolTip() == "1-3 1-4 2-1 2-2 2-3");
\r
169 var q280 = status.QuestCountList[10];
\r
170 PAssert.That(() => q280.ToString() == "4/4");
\r
171 PAssert.That(() => q280.ToToolTip() == "1-2 1-3 1-4 2-1");
\r
176 public class QuestCounterTest
\r
178 private JsonObject Js(object obj) => JsonObject.CreateJsonObject(obj);
\r
180 private object CreateQuestList(int[] ids) => Js(new
\r
183 ids.Select(id => new
\r
186 api_category = id / 100,
\r
191 api_get_material = new int[0],
\r
192 api_progress_flag = 0
\r
196 private ShipStatus[] ShipStatusList(params int[] shipTypes)
\r
198 return shipTypes.Select(sType => ShipStatus(sType)).ToArray();
\r
201 private ShipStatus ShipStatus(int shipType, int specId = 0)
\r
203 return new ShipStatus {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType}};
\r
206 private BattleInfo _battleInfo;
\r
207 private ItemInfo _itemInfo;
\r
208 private QuestInfo _questInfo;
\r
209 private QuestCounter _questCounter;
\r
212 public void Initialize()
\r
214 _battleInfo = new BattleInfo(null, null);
\r
215 _itemInfo = new ItemInfo(new ItemMaster(), new ItemInventory());
\r
216 _questInfo = new QuestInfo(() => new DateTime(2015, 1, 1)) {AcceptMax = 10};
\r
217 _questCounter = new QuestCounter(_questInfo, _itemInfo, _battleInfo);
\r
222 /// 210: 敵艦隊を10回邀撃せよ!
\r
224 /// 216: 敵艦隊主力を撃滅せよ!
\r
227 public void BattleResult_201_216_210_214()
\r
229 _questInfo.InspectQuestList(CreateQuestList(new[] {201, 216, 210, 214}));
\r
231 _questCounter.InspectMapStart(Js(new
\r
233 api_maparea_id = 1,
\r
234 api_mapinfo_no = 1,
\r
237 var quests = _questInfo.Quests;
\r
239 PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray[0] == 1);
\r
240 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
242 PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]
\r
244 new {Id = 201, Now = 1}, new {Id = 210, Now = 1},
\r
245 new {Id = 214, Now = 0}, new {Id = 216, Now = 1}
\r
247 PAssert.That(() => quests[2].Id == 214 &&
\r
248 quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}));
\r
250 _questCounter.InspectMapNext(Js(new
\r
252 api_maparea_id = 1,
\r
253 api_mapinfo_no = 1,
\r
257 _questCounter.InspectBattleResult(Js(new {api_win_rank = "B"}));
\r
258 PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]
\r
260 new {Id = 201, Now = 2}, new {Id = 210, Now = 2},
\r
261 new {Id = 214, Now = 0}, new {Id = 216, Now = 2}
\r
264 PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));
\r
265 _questCounter.InspectBattleResult(Js(new {api_win_rank = "C"}));
\r
266 PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]
\r
268 new {Id = 201, Now = 2}, new {Id = 210, Now = 3},
\r
269 new {Id = 214, Now = 0}, new {Id = 216, Now = 2}
\r
271 PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 2, 1}));
\r
275 /// 211: 敵空母を3隻撃沈せよ!
\r
278 /// 218: 敵補給艦を3隻撃沈せよ!
\r
281 public void BattleResult_211_212_213_218_220_221()
\r
283 _questInfo.InspectQuestList(CreateQuestList(new[] {211, 212, 213, 218, 220, 221}));
\r
285 _battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]
\r
287 new ShipStatus {NowHp = 0, MaxHp = 130, Spec = new ShipSpec {Id = 1558, ShipType = 15}},
\r
288 new ShipStatus {NowHp = 0, MaxHp = 90, Spec = new ShipSpec {Id = 1543, ShipType = 8}},
\r
289 new ShipStatus {NowHp = 0, MaxHp = 90, Spec = new ShipSpec {Id = 1543, ShipType = 8}},
\r
290 new ShipStatus {NowHp = 0, MaxHp = 96, Spec = new ShipSpec {Id = 1528, ShipType = 11}},
\r
291 new ShipStatus {NowHp = 0, MaxHp = 70, Spec = new ShipSpec {Id = 1523, ShipType = 7}},
\r
292 new ShipStatus {NowHp = 1, MaxHp = 70, Spec = new ShipSpec {Id = 1523, ShipType = 7}}
\r
293 }, new ShipStatus[0]);
\r
294 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
296 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
297 .SequenceEqual(new[]
\r
299 new {Id = 211, Now = 2}, new {Id = 212, Now = 1}, new {Id = 213, Now = 1},
\r
300 new {Id = 218, Now = 1}, new {Id = 220, Now = 2}, new {Id = 221, Now = 1}
\r
306 /// 230: 敵潜水艦を制圧せよ!
\r
309 public void BattleResult_228_230()
\r
311 _questInfo.InspectQuestList(CreateQuestList(new[] {228, 230}));
\r
313 _battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]
\r
315 new ShipStatus {NowHp = 0, MaxHp = 27, Spec = new ShipSpec {Id = 1532, ShipType = 13}},
\r
316 new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}},
\r
317 new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}}
\r
318 }, new ShipStatus[0]);
\r
319 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
321 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
322 .SequenceEqual(new[]
\r
324 new {Id = 228, Now = 3}, new {Id = 230, Now = 3}
\r
329 /// 226: 南西諸島海域の制海権を握れ!
\r
332 public void BattleResult_226()
\r
334 _questInfo.InspectQuestList(CreateQuestList(new[] {226}));
\r
336 _questCounter.InspectMapStart(Js(new
\r
338 api_maparea_id = 2,
\r
339 api_mapinfo_no = 1,
\r
342 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
343 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
345 _questCounter.InspectMapNext(Js(new
\r
347 api_maparea_id = 2,
\r
348 api_mapinfo_no = 1,
\r
351 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
352 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1);
\r
353 _questCounter.InspectBattleResult(Js(new {api_win_rank = "B"}));
\r
354 PAssert.That(() => _questInfo.Quests[0].Count.Now == 2);
\r
358 /// // 243: 南方海域珊瑚諸島沖の制空権を握れ!
\r
361 public void BattleResult_243()
\r
363 _questInfo.InspectQuestList(CreateQuestList(new[] {243}));
\r
365 _questCounter.InspectMapStart(Js(new
\r
367 api_maparea_id = 5,
\r
368 api_mapinfo_no = 2,
\r
371 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
372 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
374 _questCounter.InspectMapStart(Js(new
\r
376 api_maparea_id = 5,
\r
377 api_mapinfo_no = 2,
\r
380 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
381 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
382 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
383 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1);
\r
387 /// 249: 「第五戦隊」出撃せよ!
\r
390 public void BattleResult_249()
\r
392 _questInfo.InspectQuestList(CreateQuestList(new[] {249}));
\r
394 _battleInfo.InjectResultStatus(new[]
\r
396 ShipStatus(5, 319), ShipStatus(5, 192), ShipStatus(5, 194),
\r
397 ShipStatus(5, 193), ShipStatus(6, 189), ShipStatus(6, 188)
\r
398 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
400 _questCounter.InspectMapNext(Js(new
\r
402 api_maparea_id = 2,
\r
403 api_mapinfo_no = 5,
\r
406 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
407 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
409 _questCounter.InspectMapNext(Js(new
\r
411 api_maparea_id = 2,
\r
412 api_mapinfo_no = 5,
\r
415 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
416 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
417 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
418 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1);
\r
419 _questInfo.Quests[0].Count.Now = 0;
\r
421 _battleInfo.Result.Friend.Main[1].NowHp = 0;
\r
422 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
423 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0, "那智改二轟沈");
\r
427 /// 257: 「水雷戦隊」南西へ!
\r
430 public void BattleResult_257()
\r
432 _questInfo.InspectQuestList(CreateQuestList(new[] {257}));
\r
434 _battleInfo.InjectResultStatus(
\r
435 ShipStatusList(3, 2, 2, 2, 2, 2), new ShipStatus[0],
\r
436 new ShipStatus[0], new ShipStatus[0]);
\r
438 _questCounter.InspectMapNext(Js(new
\r
440 api_maparea_id = 1,
\r
441 api_mapinfo_no = 4,
\r
444 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
445 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
447 _questCounter.InspectMapNext(Js(new
\r
449 api_maparea_id = 1,
\r
450 api_mapinfo_no = 4,
\r
453 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
454 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
455 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
456 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1);
\r
457 _questInfo.Quests[0].Count.Now = 0;
\r
459 _battleInfo.Result.Friend.Main[0].NowHp = 0;
\r
460 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
461 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0, "軽巡轟沈");
\r
462 _battleInfo.Result.Friend.Main[0].NowHp = 1;
\r
464 _battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;
\r
465 _battleInfo.Result.Friend.Main[1].Spec.ShipType = 3;
\r
466 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
467 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0, "旗艦が駆逐");
\r
468 _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;
\r
470 _battleInfo.Result.Friend.Main[2].Spec.ShipType = 3;
\r
471 _battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;
\r
472 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
473 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0, "軽巡が4隻");
\r
475 _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;
\r
476 _battleInfo.Result.Friend.Main[3].Spec.ShipType = 4;
\r
477 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
478 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0, "駆逐軽巡以外");
\r
481 private ShipStatus ShipStatus(int shipType, int shipClass, int specId) =>
\r
482 new ShipStatus {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType, ShipClass = shipClass}};
\r
485 /// 257: 「水上打撃部隊」南方へ!
\r
488 public void BattleResult_259()
\r
490 _questInfo.InspectQuestList(CreateQuestList(new[] {259}));
\r
494 ShipStatus(3, 52, 321), ShipStatus(9, 19, 276), ShipStatus(10, 26, 411),
\r
495 ShipStatus(10, 26, 412), ShipStatus(5, 29, 193), ShipStatus(5, 29, 194)
\r
497 _battleInfo.InjectResultStatus(
\r
498 org.ToArray(), new ShipStatus[0],
\r
499 new ShipStatus[0], new ShipStatus[0]);
\r
501 _questCounter.InspectMapNext(Js(new
\r
503 api_maparea_id = 5,
\r
504 api_mapinfo_no = 1,
\r
507 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
508 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
510 _questCounter.InspectMapNext(Js(new
\r
512 api_maparea_id = 5,
\r
513 api_mapinfo_no = 1,
\r
516 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
517 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
518 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
519 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1);
\r
520 _questInfo.Quests[0].Count.Now = 0;
\r
522 _battleInfo.Result.Friend.Main[0].NowHp = 0;
\r
523 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
524 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0, "軽巡轟沈");
\r
525 _battleInfo.Result.Friend.Main[0].NowHp = 1;
\r
527 _battleInfo.Result.Friend.Main[4] = ShipStatus(9, 37, 136);
\r
528 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
529 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0, "戦艦4隻");
\r
530 _battleInfo.Result.Friend.Main[4] = org[4];
\r
532 _battleInfo.Result.Friend.Main[0] = ShipStatus(4, 4, 58);
\r
533 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
534 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0, "軽巡なし");
\r
535 _battleInfo.Result.Friend.Main[0] = org[0];
\r
537 _battleInfo.Result.Friend.Main[2] = ShipStatus(10, 2, 553);
\r
538 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
539 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1, "伊勢改二");
\r
543 /// 264: 「空母機動部隊」西へ!
\r
546 public void BattleResult_264()
\r
548 _questInfo.InspectQuestList(CreateQuestList(new[] {264}));
\r
550 _battleInfo.InjectResultStatus(
\r
551 ShipStatusList(7, 11, 3, 3, 2, 2), new ShipStatus[0],
\r
552 new ShipStatus[0], new ShipStatus[0]);
\r
554 _questCounter.InspectMapNext(Js(new
\r
556 api_maparea_id = 4,
\r
557 api_mapinfo_no = 2,
\r
560 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
561 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
563 _questCounter.InspectMapNext(Js(new
\r
565 api_maparea_id = 4,
\r
566 api_mapinfo_no = 2,
\r
569 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
570 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
571 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
572 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1);
\r
574 _battleInfo.Result.Friend.Main[0].NowHp = 0;
\r
575 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
576 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1, "轟沈あり");
\r
580 /// 266: 「水上反撃部隊」突入せよ!
\r
583 public void BattleResult_266()
\r
585 _questInfo.InspectQuestList(CreateQuestList(new[] {266}));
\r
587 _battleInfo.InjectResultStatus(
\r
588 ShipStatusList(2, 5, 3, 2, 2, 2), new ShipStatus[0],
\r
589 new ShipStatus[0], new ShipStatus[0]);
\r
591 _questCounter.InspectMapNext(Js(new
\r
593 api_maparea_id = 2,
\r
594 api_mapinfo_no = 5,
\r
597 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
598 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
600 _questCounter.InspectMapNext(Js(new
\r
602 api_maparea_id = 2,
\r
603 api_mapinfo_no = 5,
\r
606 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
607 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
608 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
609 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1);
\r
611 _battleInfo.Result.Friend.Main[1].NowHp = 0;
\r
612 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
613 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1, "轟沈あり");
\r
614 _battleInfo.Result.Friend.Main[1].NowHp = 1;
\r
616 _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;
\r
617 _battleInfo.Result.Friend.Main[2].Spec.ShipType = 2;
\r
618 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
619 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1, "旗艦が軽巡");
\r
620 _battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;
\r
621 _battleInfo.Result.Friend.Main[2].Spec.ShipType = 3;
\r
623 _battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;
\r
624 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
625 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1, "軽巡が2隻");
\r
629 /// 280: 兵站線確保!海上警備を強化実施せよ!
\r
632 public void BattleResult_280()
\r
634 _questInfo.InspectQuestList(CreateQuestList(new[] {280}));
\r
636 _battleInfo.InjectResultStatus(
\r
637 ShipStatusList(7, 1, 1, 1, 8, 8), new ShipStatus[0],
\r
638 new ShipStatus[0], new ShipStatus[0]);
\r
640 _questCounter.InspectMapNext(Js(new
\r
642 api_maparea_id = 1,
\r
643 api_mapinfo_no = 2,
\r
646 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
647 _questCounter.InspectMapNext(Js(new
\r
649 api_maparea_id = 1,
\r
650 api_mapinfo_no = 2,
\r
653 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
654 PAssert.That(() => _questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));
\r
656 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
657 _questCounter.InspectMapNext(Js(new
\r
659 api_maparea_id = 1,
\r
660 api_mapinfo_no = 3,
\r
663 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
664 _questCounter.InspectMapNext(Js(new
\r
666 api_maparea_id = 1,
\r
667 api_mapinfo_no = 4,
\r
670 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
671 _questCounter.InspectMapNext(Js(new
\r
673 api_maparea_id = 2,
\r
674 api_mapinfo_no = 1,
\r
677 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
678 PAssert.That(() => _questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));
\r
680 _battleInfo.Result.Friend.Main = ShipStatusList(7, 1, 1, 8, 8, 8);
\r
681 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
682 PAssert.That(() => _questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));
\r
684 _battleInfo.Result.Friend.Main = ShipStatusList(8, 1, 1, 1, 8, 8);
\r
685 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
686 PAssert.That(() => _questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));
\r
688 _battleInfo.Result.Friend.Main = ShipStatusList(3, 2, 1, 1, 8, 8);
\r
689 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
690 PAssert.That(() => _questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 2}));
\r
692 _battleInfo.Result.Friend.Main = ShipStatusList(2, 4, 2, 1, 8, 8);
\r
693 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
694 PAssert.That(() => _questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 3}));
\r
696 _battleInfo.Result.Friend.Main = ShipStatusList(2, 2, 21, 2, 8, 8);
\r
697 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
698 PAssert.That(() => _questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 4}));
\r
703 /// 854: 戦果拡張任務!「Z作戦」前段作戦
\r
706 public void BattleResult_822_854()
\r
708 _questInfo.InspectQuestList(CreateQuestList(new[] {822, 854}));
\r
710 _questCounter.InspectMapNext(Js(new
\r
712 api_maparea_id = 2,
\r
713 api_mapinfo_no = 4,
\r
716 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
717 PAssert.That(() => _questInfo.Quests[1].Count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));
\r
718 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
720 _questCounter.InspectMapNext(Js(new
\r
722 api_maparea_id = 2,
\r
723 api_mapinfo_no = 4,
\r
726 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
727 _questCounter.InspectMapNext(Js(new
\r
729 api_maparea_id = 6,
\r
730 api_mapinfo_no = 1,
\r
733 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
734 _questCounter.InspectMapNext(Js(new
\r
736 api_maparea_id = 6,
\r
737 api_mapinfo_no = 3,
\r
740 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
741 _questCounter.InspectMapNext(Js(new
\r
743 api_maparea_id = 6,
\r
744 api_mapinfo_no = 4,
\r
747 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
748 PAssert.That(() => _questInfo.Quests[1].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));
\r
749 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
750 _questCounter.InspectMapNext(Js(new
\r
752 api_maparea_id = 2,
\r
753 api_mapinfo_no = 4,
\r
756 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
757 PAssert.That(() => _questInfo.Quests[1].Count.NowArray.SequenceEqual(new[] {2, 1, 1, 1}));
\r
758 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1);
\r
762 /// 861: 強行輸送艦隊、抜錨!
\r
765 public void MapNext_861()
\r
767 _questInfo.InspectQuestList(CreateQuestList(new[] {861}));
\r
769 _battleInfo.InjectResultStatus(
\r
770 ShipStatusList(10, 22, 2, 2, 2, 2), new ShipStatus[0],
\r
771 new ShipStatus[0], new ShipStatus[0]);
\r
773 _questCounter.InspectMapNext(Js(new
\r
775 api_maparea_id = 1,
\r
776 api_mapinfo_no = 6,
\r
779 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
781 _questCounter.InspectMapNext(Js(new
\r
783 api_maparea_id = 1,
\r
784 api_mapinfo_no = 6,
\r
787 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1);
\r
789 _battleInfo.Result.Friend.Main[1].NowHp = 0;
\r
790 _questCounter.InspectMapNext(Js(new
\r
792 api_maparea_id = 1,
\r
793 api_mapinfo_no = 6,
\r
796 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1, "轟沈あり");
\r
797 _battleInfo.Result.Friend.Main[1].NowHp = 1;
\r
799 _battleInfo.Result.Friend.Main[2].Spec.ShipType = 10;
\r
800 _questCounter.InspectMapNext(Js(new
\r
802 api_maparea_id = 1,
\r
803 api_mapinfo_no = 6,
\r
806 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1, "補給・航戦が3隻");
\r
810 /// 862: 前線の航空偵察を実施せよ!
\r
813 public void BattleResult_862()
\r
815 _questInfo.InspectQuestList(CreateQuestList(new[] {862}));
\r
817 _battleInfo.InjectResultStatus(
\r
818 ShipStatusList(2, 3, 3, 2, 2, 16), new ShipStatus[0],
\r
819 new ShipStatus[0], new ShipStatus[0]);
\r
821 _questCounter.InspectMapNext(Js(new
\r
823 api_maparea_id = 6,
\r
824 api_mapinfo_no = 3,
\r
827 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
828 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
830 _questCounter.InspectMapNext(Js(new
\r
832 api_maparea_id = 6,
\r
833 api_mapinfo_no = 3,
\r
836 _questCounter.InspectBattleResult(Js(new {api_win_rank = "B"}));
\r
837 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
838 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
839 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1);
\r
841 _battleInfo.Result.Friend.Main[1].NowHp = 0;
\r
842 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
843 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1, "轟沈あり");
\r
844 _battleInfo.Result.Friend.Main[1].NowHp = 1;
\r
846 _battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;
\r
847 _battleInfo.Result.Friend.Main[4].Spec.ShipType = 16;
\r
848 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
849 PAssert.That(() => _questInfo.Quests[0].Count.Now == 2, "軽巡3隻水母2隻");
\r
853 /// 873: 北方海域警備を実施せよ!
\r
856 public void BattleResult_873()
\r
858 _questInfo.InspectQuestList(CreateQuestList(new[] {873}));
\r
860 _battleInfo.InjectResultStatus(
\r
861 ShipStatusList(3, 2, 2, 2, 2, 2), new ShipStatus[0],
\r
862 new ShipStatus[0], new ShipStatus[0]);
\r
864 _questCounter.InspectMapNext(Js(new
\r
866 api_maparea_id = 3,
\r
867 api_mapinfo_no = 1,
\r
870 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
871 PAssert.That(() => _questInfo.Quests[0].Count.NowArray[0] == 0);
\r
873 _questCounter.InspectMapNext(Js(new
\r
875 api_maparea_id = 3,
\r
876 api_mapinfo_no = 1,
\r
879 _questCounter.InspectBattleResult(Js(new {api_win_rank = "B"}));
\r
880 PAssert.That(() => _questInfo.Quests[0].Count.NowArray[0] == 0);
\r
881 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
882 PAssert.That(() => _questInfo.Quests[0].Count.NowArray[0] == 1);
\r
884 _battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;
\r
885 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
886 PAssert.That(() => _questInfo.Quests[0].Count.NowArray[0] == 1, "軽巡なし");
\r
887 _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;
\r
889 _questCounter.InspectMapNext(Js(new
\r
891 api_maparea_id = 3,
\r
892 api_mapinfo_no = 2,
\r
895 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
896 _questCounter.InspectMapNext(Js(new
\r
898 api_maparea_id = 3,
\r
899 api_mapinfo_no = 3,
\r
902 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
903 PAssert.That(() => _questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1}));
\r
907 /// 875: 精鋭「三一駆」、鉄底海域に突入せよ!
\r
910 public void BattleResult_875()
\r
912 _questInfo.InspectQuestList(CreateQuestList(new[] {875}));
\r
914 _battleInfo.InjectResultStatus(new[]
\r
916 ShipStatus(2, 543), ShipStatus(8, 360), ShipStatus(11, 545),
\r
917 ShipStatus(18, 467), ShipStatus(11, 261), ShipStatus(2, 344)
\r
918 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
920 _questCounter.InspectMapNext(Js(new
\r
922 api_maparea_id = 5,
\r
923 api_mapinfo_no = 4,
\r
926 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
927 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
929 _questCounter.InspectMapNext(Js(new
\r
931 api_maparea_id = 5,
\r
932 api_mapinfo_no = 4,
\r
935 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
936 PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);
\r
937 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
938 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1);
\r
940 _battleInfo.Result.Friend.Main[5].NowHp = 0;
\r
941 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
942 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1, "朝霜改轟沈");
\r
943 _battleInfo.Result.Friend.Main[5].NowHp = 1;
\r
945 _battleInfo.Result.Friend.Main[0].Spec.Id = 345;
\r
946 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
947 PAssert.That(() => _questInfo.Quests[0].Count.Now == 1, "長波改二なし");
\r
948 _battleInfo.Result.Friend.Main[0].Spec.Id = 543;
\r
950 _battleInfo.Result.Friend.Main[5].Spec.Id = 345;
\r
951 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
952 PAssert.That(() => _questInfo.Quests[0].Count.Now == 2, "高波改");
\r
953 _battleInfo.Result.Friend.Main[5].Spec.Id = 359;
\r
954 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
955 PAssert.That(() => _questInfo.Quests[0].Count.Now == 3, "沖波改");
\r
959 /// 888: 新編成「三川艦隊」、鉄底海峡に突入せよ!
\r
962 public void BattleResult_888()
\r
964 _questInfo.InspectQuestList(CreateQuestList(new[] {888}));
\r
965 var count = _questInfo.Quests[0].Count;
\r
967 _battleInfo.InjectResultStatus(new[]
\r
969 ShipStatus(5, 427), ShipStatus(5, 264), ShipStatus(5, 142),
\r
970 ShipStatus(5, 417), ShipStatus(2, 144), ShipStatus(2, 195)
\r
971 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
973 _questCounter.InspectMapNext(Js(new
\r
975 api_maparea_id = 5,
\r
976 api_mapinfo_no = 1,
\r
979 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
980 PAssert.That(() => count.NowArray[0] == 0);
\r
982 _questCounter.InspectMapNext(Js(new
\r
984 api_maparea_id = 5,
\r
985 api_mapinfo_no = 1,
\r
988 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
989 PAssert.That(() => count.NowArray[0] == 0);
\r
990 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
991 PAssert.That(() => count.NowArray[0] == 1);
\r
993 _battleInfo.Result.Friend.Main[0].NowHp = 0;
\r
994 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
995 PAssert.That(() => count.NowArray[0] == 1, "轟沈あり");
\r
996 _battleInfo.Result.Friend.Main[0].NowHp = 1;
\r
998 _battleInfo.Result.Friend.Main[0].Spec.Id = 319;
\r
999 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1000 PAssert.That(() => count.NowArray[0] == 1, "三川艦隊3隻");
\r
1001 _battleInfo.Result.Friend.Main[0].Spec.Id = 427;
\r
1003 _questCounter.InspectMapNext(Js(new
\r
1005 api_maparea_id = 5,
\r
1006 api_mapinfo_no = 3,
\r
1009 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1010 PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0}));
\r
1012 _questCounter.InspectMapNext(Js(new
\r
1014 api_maparea_id = 5,
\r
1015 api_mapinfo_no = 4,
\r
1018 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1019 PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1}));
\r
1023 /// 893: 泊地周辺海域の安全確保を徹底せよ!
\r
1026 public void BattleResult_893()
\r
1028 _questInfo.InspectQuestList(CreateQuestList(new[] {893}));
\r
1029 var count = _questInfo.Quests[0].Count;
\r
1031 _questCounter.InspectMapNext(Js(new
\r
1033 api_maparea_id = 1,
\r
1034 api_mapinfo_no = 5,
\r
1037 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1038 PAssert.That(() => count.NowArray[0] == 0, "1-5");
\r
1040 _questCounter.InspectMapNext(Js(new
\r
1042 api_maparea_id = 1,
\r
1043 api_mapinfo_no = 5,
\r
1046 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
1047 PAssert.That(() => count.NowArray[0] == 0, "A勝利はカウントしない");
\r
1048 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1049 PAssert.That(() => count.NowArray[0] == 1, "1-5");
\r
1051 _questCounter.InspectMapNext(Js(new
\r
1053 api_maparea_id = 7,
\r
1054 api_mapinfo_no = 1,
\r
1057 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1058 PAssert.That(() => count.NowArray[1] == 1, "7-1");
\r
1060 _questCounter.InspectMapNext(Js(new
\r
1062 api_maparea_id = 7,
\r
1063 api_mapinfo_no = 2,
\r
1067 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1068 PAssert.That(() => count.NowArray[2] == 1, "7-2G");
\r
1070 _questCounter.InspectMapNext(Js(new
\r
1072 api_maparea_id = 7,
\r
1073 api_mapinfo_no = 2,
\r
1077 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1078 PAssert.That(() => count.NowArray[3] == 1, "7-2M");
\r
1082 /// 894: 空母戦力の投入による兵站線戦闘哨戒
\r
1085 public void BattleResult_894()
\r
1087 _questInfo.InspectQuestList(CreateQuestList(new[] {894}));
\r
1088 var count = _questInfo.Quests[0].Count;
\r
1089 _battleInfo.InjectResultStatus(
\r
1090 ShipStatusList(2, 2, 2, 2, 2, 2),
\r
1091 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
1093 _questCounter.InspectMapNext(Js(new
\r
1095 api_maparea_id = 1,
\r
1096 api_mapinfo_no = 3,
\r
1099 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1100 PAssert.That(() => count.NowArray[0] == 0, "空母なしはカウントしない");
\r
1102 _battleInfo.Result.Friend.Main[0].Spec.ShipType = 7;
\r
1103 _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));
\r
1104 PAssert.That(() => count.NowArray[0] == 0, "A勝利はカウントしない");
\r
1106 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1107 PAssert.That(() => count.NowArray[0] == 1, "1-3");
\r
1109 _questCounter.InspectMapNext(Js(new
\r
1111 api_maparea_id = 1,
\r
1112 api_mapinfo_no = 4,
\r
1115 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1116 PAssert.That(() => count.NowArray[1] == 0, "1-4");
\r
1118 _questCounter.InspectMapNext(Js(new
\r
1120 api_maparea_id = 1,
\r
1121 api_mapinfo_no = 4,
\r
1124 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1125 PAssert.That(() => count.NowArray[1] == 1, "1-4");
\r
1127 _questCounter.InspectMapNext(Js(new
\r
1129 api_maparea_id = 2,
\r
1130 api_mapinfo_no = 1,
\r
1133 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1134 PAssert.That(() => count.NowArray[2] == 1, "2-1");
\r
1136 _questCounter.InspectMapNext(Js(new
\r
1138 api_maparea_id = 2,
\r
1139 api_mapinfo_no = 2,
\r
1142 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1143 PAssert.That(() => count.NowArray[3] == 1, "2-2");
\r
1145 _questCounter.InspectMapNext(Js(new
\r
1147 api_maparea_id = 2,
\r
1148 api_mapinfo_no = 3,
\r
1151 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1152 PAssert.That(() => count.NowArray[4] == 1, "2-3");
\r
1156 /// 280と854以降を同時に遂行していると854以降がカウントされないことがある
\r
1159 public void BattleResult_280_854()
\r
1161 _questInfo.InspectQuestList(CreateQuestList(new[] {280, 854}));
\r
1163 _battleInfo.InjectResultStatus(
\r
1164 ShipStatusList(1, 1, 1, 1, 1, 1), new ShipStatus[0],
\r
1165 new ShipStatus[0], new ShipStatus[0]);
\r
1167 _questCounter.InspectMapNext(Js(new
\r
1169 api_maparea_id = 2,
\r
1170 api_mapinfo_no = 4,
\r
1173 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1174 PAssert.That(() => _questInfo.Quests[1].Count.NowArray[0] == 1);
\r
1178 /// 888と893以降を同時に遂行していると893以降がカウントされないことがある
\r
1181 public void BattleResult_888_893()
\r
1183 _questInfo.InspectQuestList(CreateQuestList(new []{888, 893}));
\r
1185 _battleInfo.InjectResultStatus(
\r
1186 ShipStatusList(1, 1, 1, 1, 1, 1), new ShipStatus[0],
\r
1187 new ShipStatus[0], new ShipStatus[0]);
\r
1189 _questCounter.InspectMapNext(Js(new
\r
1191 api_maparea_id = 7,
\r
1192 api_mapinfo_no = 1,
\r
1196 _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));
\r
1197 PAssert.That(() => _questInfo.Quests[1].Count.NowArray[1] == 1);
\r
1202 /// 303: 「演習」で練度向上!
\r
1203 /// 304: 「演習」で他提督を圧倒せよ!
\r
1208 public void PracticeResult_303_304_302_311_315()
\r
1210 _questInfo.InspectQuestList(CreateQuestList(new[] {302, 303, 304, 311, 315}));
\r
1212 _battleInfo.InjectResultStatus(new[]
\r
1214 ShipStatus(2, 543), ShipStatus(3, 488)
\r
1215 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
1216 _questCounter.InspectPracticeResult(Js(new {api_win_rank = "C"}));
\r
1217 _questCounter.InspectPracticeResult(Js(new {api_win_rank = "A"}));
\r
1218 PAssert.That(() =>
\r
1219 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
1220 .SequenceEqual(new[]
\r
1222 new {Id = 302, Now = 1}, new {Id = 303, Now = 2}, new {Id = 304, Now = 1},
\r
1223 new {Id = 311, Now = 1}, new {Id = 315, Now = 1}
\r
1228 /// 318: 給糧艦「伊良湖」の支援
\r
1231 public void PracticeResult_318()
\r
1233 _questInfo.InspectQuestList(CreateQuestList(new[] {318}));
\r
1234 var q318 = _questInfo.Quests[0];
\r
1236 _battleInfo.InjectResultStatus(new[]
\r
1238 ShipStatus(2, 543), ShipStatus(3, 488)
\r
1239 }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
1241 _questCounter.InspectPracticeResult(Js(new {api_win_rank = "B"}));
\r
1242 PAssert.That(() => q318.Count.Now == 0, "軽巡1隻");
\r
1243 _battleInfo.Result.Friend.Main[0] = ShipStatus(3, 200);
\r
1244 _questCounter.StartPractice("api%5Fdeck%5Fid=2");
\r
1245 _questCounter.InspectPracticeResult(Js(new {api_win_rank = "B"}));
\r
1246 PAssert.That(() => q318.Count.Now == 0, "第2艦隊");
\r
1247 _questCounter.StartPractice("api%5Fdeck%5Fid=1"); // 第一艦隊
\r
1248 _questCounter.InspectPracticeResult(Js(new {api_win_rank = "C"}));
\r
1249 PAssert.That(() => q318.Count.Now == 0, "敗北");
\r
1250 _questCounter.InspectPracticeResult(Js(new {api_win_rank = "B"}));
\r
1251 PAssert.That(() => q318.Count.Now == 1);
\r
1253 q318.Count.Now = 2;
\r
1254 _questInfo.InspectQuestList(CreateQuestList(new[] {318}));
\r
1255 PAssert.That(() => q318.Count.Now == 2, "進捗調節しない");
\r
1259 /// 330: 空母機動部隊、演習始め!
\r
1262 public void PracticeResult_330()
\r
1264 _questInfo.InspectQuestList(CreateQuestList(new[] {330}));
\r
1265 var q330 = _questInfo.Quests[0];
\r
1267 _battleInfo.InjectResultStatus(
\r
1268 ShipStatusList(18, 7, 2, 2),
\r
1269 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);
\r
1270 _questCounter.InspectPracticeResult(Js(new {api_win_rank = "B"}));
\r
1271 Assert.AreEqual(1, q330.Count.Now, "装甲空母、軽空母");
\r
1273 _battleInfo.Result.Friend.Main = ShipStatusList(11, 7, 2, 2);
\r
1274 _questCounter.InspectPracticeResult(Js(new {api_win_rank = "B"}));
\r
1275 Assert.AreEqual(2, q330.Count.Now, "正規空母、軽空母");
\r
1277 q330.Count.Now = 0;
\r
1278 _questCounter.InspectPracticeResult(Js(new {api_win_rank = "C"}));
\r
1279 Assert.AreEqual(0, q330.Count.Now, "敗北");
\r
1281 _battleInfo.Result.Friend.Main = ShipStatusList(2, 7, 11, 2);
\r
1282 _questCounter.InspectPracticeResult(Js(new {api_win_rank = "B"}));
\r
1283 Assert.AreEqual(0, q330.Count.Now, "旗艦空母以外");
\r
1285 _battleInfo.Result.Friend.Main = ShipStatusList(11, 2, 2, 2);
\r
1286 _questCounter.InspectPracticeResult(Js(new {api_win_rank = "B"}));
\r
1287 Assert.AreEqual(0, q330.Count.Now, "空母一隻");
\r
1289 _battleInfo.Result.Friend.Main = ShipStatusList(11, 7, 3, 2);
\r
1290 _questCounter.InspectPracticeResult(Js(new {api_win_rank = "B"}));
\r
1291 Assert.AreEqual(0, q330.Count.Now, "駆逐一隻");
\r
1295 /// 402: 「遠征」を3回成功させよう!
\r
1296 /// 403: 「遠征」を10回成功させよう!
\r
1297 /// 404: 大規模遠征作戦、発令!
\r
1298 /// 410: 南方への輸送作戦を成功させよ!
\r
1299 /// 411: 南方への鼠輸送を継続実施せよ!
\r
1302 public void MissionResult_402_403_404_410_411()
\r
1304 _questInfo.InspectQuestList(CreateQuestList(new[] {402, 403, 404, 410, 411}));
\r
1306 _questCounter.InspectDeck(Js(
\r
1309 new {api_id = 2, api_mission = new[] {2, 6}},
\r
1310 new {api_id = 3, api_mission = new[] {2, 37}},
\r
1311 new {api_id = 4, api_mission = new[] {2, 2}}
\r
1313 _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));
\r
1314 _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 2}));
\r
1315 _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 0}));
\r
1316 PAssert.That(() =>
\r
1317 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
1318 .SequenceEqual(new[]
\r
1320 new {Id = 402, Now = 2}, new {Id = 403, Now = 2}, new {Id = 404, Now = 2},
\r
1321 new {Id = 410, Now = 1}, new {Id = 411, Now = 1}
\r
1326 /// 426: 海上通商航路の警戒を厳とせよ!
\r
1329 public void MissionResult_426()
\r
1331 _questInfo.InspectQuestList(CreateQuestList(new[] {426}));
\r
1333 _questCounter.InspectDeck(Js(
\r
1336 new {api_id = 2, api_mission = new[] {2, 3}},
\r
1337 new {api_id = 3, api_mission = new[] {2, 4}},
\r
1338 new {api_id = 4, api_mission = new[] {2, 5}}
\r
1340 _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));
\r
1341 _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));
\r
1342 _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));
\r
1343 PAssert.That(() =>
\r
1344 _questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));
\r
1345 _questCounter.InspectDeck(Js(
\r
1348 new {api_id = 2, api_mission = new[] {2, 10}}
\r
1350 _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));
\r
1351 PAssert.That(() =>
\r
1352 _questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));
\r
1356 /// 428: 近海に侵入する敵潜を制圧せよ!
\r
1359 public void MissionResult_428()
\r
1361 _questInfo.InspectQuestList(CreateQuestList(new[] {428}));
\r
1363 _questCounter.InspectDeck(Js(
\r
1366 new {api_id = 2, api_mission = new[] {2, 4}},
\r
1367 new {api_id = 3, api_mission = new[] {2, 101}},
\r
1368 new {api_id = 4, api_mission = new[] {2, 102}}
\r
1370 _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));
\r
1371 _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));
\r
1372 _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));
\r
1373 PAssert.That(() =>
\r
1374 _questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1}));
\r
1382 public void PowerUp_503_504()
\r
1384 _questInfo.InspectQuestList(CreateQuestList(new[] {503, 504}));
\r
1386 _questCounter.CountNyukyo();
\r
1387 _questCounter.CountCharge();
\r
1388 PAssert.That(() =>
\r
1389 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
1390 .SequenceEqual(new[] {new {Id = 503, Now = 1}, new {Id = 504, Now = 1}}));
\r
1394 /// 605: 新装備「開発」指令
\r
1395 /// 606: 新造艦「建造」指令
\r
1396 /// 607: 装備「開発」集中強化!
\r
1397 /// 608: 艦娘「建造」艦隊強化!
\r
1402 public void Kousyou_605_606_607_608_609_619()
\r
1404 _questInfo.InspectQuestList(CreateQuestList(new[] {605, 606, 607, 608, 609, 619}));
\r
1406 _questCounter.CountCreateItem();
\r
1407 _questCounter.CountCreateShip();
\r
1408 _questCounter.InspectDestroyShip("api%5Fship%5Fid=98159%2C98166%2C98168&api%5Fverno=1");
\r
1409 _questCounter.CountRemodelSlot();
\r
1410 PAssert.That(() =>
\r
1411 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
1412 .SequenceEqual(new[]
\r
1414 new {Id = 605, Now = 1}, new {Id = 606, Now = 1}, new {Id = 607, Now = 1},
\r
1415 new {Id = 608, Now = 1}, new {Id = 609, Now = 3}, new {Id = 619, Now = 1}
\r
1422 /// 643: 主力「陸攻」の調達
\r
1423 /// 645: 「洋上補給」物資の調達
\r
1424 /// 663: 新型艤装の継続研究
\r
1427 /// 675: 運用装備の統合整備
\r
1428 /// 676: 装備開発力の集中整備
\r
1429 /// 677: 継戦支援能力の整備
\r
1430 /// 678: 主力艦上戦闘機の更新
\r
1431 /// 680: 対空兵装の整備拡充
\r
1435 public void DestroyItem_613_638_643_645_663_673_674_675_676_677_678_680_688()
\r
1437 _itemInfo.InjectItemSpec(new[]
\r
1439 new ItemSpec {Id = 1, Name = "12cm単装砲", Type = 1},
\r
1440 new ItemSpec {Id = 37, Name = "7.7mm機銃", Type = 21},
\r
1441 new ItemSpec {Id = 19, Name = "九六式艦戦", Type = 6},
\r
1442 new ItemSpec {Id = 4, Name = "14cm単装砲", Type = 2},
\r
1443 new ItemSpec {Id = 11, Name = "15.2cm単装砲", Type = 4},
\r
1444 new ItemSpec {Id = 75, Name = "ドラム缶(輸送用)", Type = 30},
\r
1445 new ItemSpec {Id = 7, Name = "35.6cm連装砲", Type = 3},
\r
1446 new ItemSpec {Id = 25, Name = "零式水上偵察機", Type = 10},
\r
1447 new ItemSpec {Id = 13, Name = "61cm三連装魚雷", Type = 5},
\r
1448 new ItemSpec {Id = 20, Name = "零式艦戦21型", Type = 6},
\r
1449 new ItemSpec {Id = 28, Name = "22号水上電探", Type = 12},
\r
1450 new ItemSpec {Id = 31, Name = "32号水上電探", Type = 13},
\r
1451 new ItemSpec {Id = 35, Name = "三式弾", Type = 18},
\r
1452 new ItemSpec {Id = 23, Name = "九九式艦爆", Type = 7},
\r
1453 new ItemSpec {Id = 16, Name = "九七式艦攻", Type = 8}
\r
1455 var items = new[] {1, 37, 19, 4, 11, 75, 7, 25, 13, 20, 28, 31, 35, 23, 16};
\r
1456 _itemInfo.InjectItems(items);
\r
1457 var questList = new[] {613, 638, 643, 645, 663, 673, 674, 675, 676, 677, 678, 680, 688};
\r
1458 _questInfo.AcceptMax = questList.Length;
\r
1459 _questInfo.InspectQuestList(CreateQuestList(questList));
\r
1460 _questCounter.InspectDestroyItem(
\r
1461 $"api%5Fslotitem%5Fids={string.Join("%2C", Enumerable.Range(1, items.Length))}&api%5Fverno=1", null);
\r
1462 var scalar = new[]
\r
1464 new {Id = 613, Now = 1}, new {Id = 638, Now = 1}, new {Id = 643, Now = 1}, new {Id = 645, Now = 1},
\r
1465 new {Id = 663, Now = 1}, new {Id = 673, Now = 1}, new {Id = 674, Now = 1}
\r
1467 foreach (var e in scalar)
\r
1469 var c = Array.Find(_questInfo.Quests, q => q.Id == e.Id).Count;
\r
1470 PAssert.That(() => c.Id == e.Id && c.Now == e.Now, $"{c.Id}");
\r
1474 new {Id = 675, NowArray = new[] {2, 1}}, new {Id = 676, NowArray = new[] {1, 1, 1}},
\r
1475 new {Id = 677, NowArray = new[] {1, 1, 1}}, new {Id = 678, NowArray = new[] {1, 1}},
\r
1476 new {Id = 680, NowArray = new[] {1, 2}}, new {Id = 688, NowArray = new[] {2, 1, 1, 1}}
\r
1478 foreach (var e in array)
\r
1480 var c = Array.Find(_questInfo.Quests, q => q.Id == e.Id).Count;
\r
1481 PAssert.That(() => c.Id == e.Id && c.NowArray.SequenceEqual(e.NowArray), $"{c.Id}");
\r
1486 /// 702: 艦の「近代化改修」を実施せよ!
\r
1487 /// 703: 「近代化改修」を進め、戦備を整えよ!
\r
1490 public void PowerUp_702_703()
\r
1492 _questInfo.InspectQuestList(CreateQuestList(new[] {702, 703}));
\r
1493 _questCounter.InspectPowerUp(Js(new {api_powerup_flag = 1}));
\r
1494 PAssert.That(() =>
\r
1495 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})
\r
1496 .SequenceEqual(new[] {new {Id = 702, Now = 1}, new {Id = 703, Now = 1}}));
\r