OSDN Git Service

集中開発に対応する
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer.Test / QuestCounterTest.cs
1 // Copyright (C) 2019 Kazuhiro Fujieda <fujieda@users.osdn.me>\r
2 //\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
6 //\r
7 //    http://www.apache.org/licenses/LICENSE-2.0\r
8 //\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
14 \r
15 using System;\r
16 using System.Linq;\r
17 using ExpressionToCodeLib;\r
18 using KancolleSniffer.Model;\r
19 using KancolleSniffer.Util;\r
20 using Microsoft.VisualStudio.TestTools.UnitTesting;\r
21 \r
22 namespace KancolleSniffer.Test\r
23 {\r
24     [TestClass]\r
25     public class QuestCountTest\r
26     {\r
27         [TestMethod]\r
28         public void AdjustCount()\r
29         {\r
30             var count = new QuestCount\r
31             {\r
32                 Spec = new QuestSpec {Max = 7},\r
33                 Now = 3\r
34             };\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
43             count.Now = 14;\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
52         }\r
53 \r
54         [TestMethod]\r
55         public void AdjustCountWithShift()\r
56         {\r
57             var count = new QuestCount\r
58             {\r
59                 Spec = new QuestSpec {Max = 7, Shift = 1},\r
60                 Now = 3\r
61             };\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
70             count.Now = 14;\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
79         }\r
80 \r
81         [TestMethod]\r
82         public void AdjustCount80Percent()\r
83         {\r
84             var count = new QuestCount\r
85             {\r
86                 Spec = new QuestSpec()\r
87             };\r
88             for (var shift = 0; shift <= 1; shift++)\r
89             {\r
90                 for (var max = 2; max <= 6; max++)\r
91                 {\r
92                     count.Spec.Max = max;\r
93                     count.Spec.Shift = shift;\r
94                     count.Now = 1;\r
95                     count.AdjustCount(80);\r
96                     PAssert.That(() => count.Now == count.Spec.Max - 1);\r
97                 }\r
98             }\r
99         }\r
100 \r
101         [TestMethod]\r
102         public void AdjustCountNowArray()\r
103         {\r
104             var count = new QuestCount\r
105             {\r
106                 Spec = new QuestSpec {MaxArray = new[] {36, 6, 24, 12}},\r
107                 NowArray = new[] {1, 2, 3, 4}\r
108             };\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
116         }\r
117 \r
118         /// <summary>\r
119         /// カウンターを文字列表記にする\r
120         /// </summary>\r
121         [TestMethod]\r
122         public void ToStringTest()\r
123         {\r
124             var status = new Status\r
125             {\r
126                 QuestCountList = new[]\r
127                 {\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
139                 }\r
140             };\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
172         }\r
173     }\r
174 \r
175     [TestClass]\r
176     public class QuestCounterTest\r
177     {\r
178         private JsonObject Js(object obj) => JsonObject.CreateJsonObject(obj);\r
179 \r
180         private object CreateQuestList(int[] ids) => Js(new\r
181         {\r
182             api_list =\r
183                 ids.Select(id => new\r
184                 {\r
185                     api_no = id,\r
186                     api_category = id / 100,\r
187                     api_type = 1,\r
188                     api_state = 2,\r
189                     api_title = "",\r
190                     api_detail = "",\r
191                     api_get_material = new int[0],\r
192                     api_progress_flag = 0\r
193                 })\r
194         });\r
195 \r
196         private ShipStatus[] ShipStatusList(params int[] shipTypes)\r
197         {\r
198             return shipTypes.Select(sType => ShipStatus(sType)).ToArray();\r
199         }\r
200 \r
201         private ShipStatus ShipStatus(int shipType, int specId = 0)\r
202         {\r
203             return new ShipStatus {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType}};\r
204         }\r
205 \r
206         private BattleInfo _battleInfo;\r
207         private ItemInfo _itemInfo;\r
208         private QuestInfo _questInfo;\r
209         private QuestCounter _questCounter;\r
210 \r
211         [TestInitialize]\r
212         public void Initialize()\r
213         {\r
214             _battleInfo = new BattleInfo(null, 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
218         }\r
219 \r
220         /// <summary>\r
221         /// 201: 敵艦隊を撃滅せよ!\r
222         /// 210: 敵艦隊を10回邀撃せよ!\r
223         /// 214: あ号\r
224         /// 216: 敵艦隊主力を撃滅せよ!\r
225         /// </summary>\r
226         [TestMethod]\r
227         public void BattleResult_201_216_210_214()\r
228         {\r
229             _questInfo.InspectQuestList(CreateQuestList(new[] {201, 216, 210, 214}));\r
230 \r
231             _questCounter.InspectMapStart(Js(new\r
232             {\r
233                 api_maparea_id = 1,\r
234                 api_mapinfo_no = 1,\r
235                 api_event_id = 4\r
236             }));\r
237             var quests = _questInfo.Quests;\r
238             // 出撃カウント\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
241             // 道中S勝利\r
242             PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]\r
243             {\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
246             }));\r
247             PAssert.That(() => quests[2].Id == 214 &&\r
248                                quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}));\r
249 \r
250             _questCounter.InspectMapNext(Js(new\r
251             {\r
252                 api_maparea_id = 1,\r
253                 api_mapinfo_no = 1,\r
254                 api_event_id = 5\r
255             }));\r
256             // ボスB勝利\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
259             {\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
262             }));\r
263             // ボス敗北\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
267             {\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
270             }));\r
271             PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray.SequenceEqual(new[] {1, 1, 2, 1}));\r
272         }\r
273 \r
274         /// <summary>\r
275         /// 211: 敵空母を3隻撃沈せよ!\r
276         /// 212: 敵輸送船団を叩け!\r
277         /// 213: 海上通商破壊作戦\r
278         /// 218: 敵補給艦を3隻撃沈せよ!\r
279         /// </summary>\r
280         [TestMethod]\r
281         public void BattleResult_211_212_213_218_220_221()\r
282         {\r
283             _questInfo.InspectQuestList(CreateQuestList(new[] {211, 212, 213, 218, 220, 221}));\r
284             // 補給艦1隻と空母2隻\r
285             _battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]\r
286             {\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
295             PAssert.That(() =>\r
296                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
297                     .SequenceEqual(new[]\r
298                     {\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
301                     }));\r
302         }\r
303 \r
304         /// <summary>\r
305         /// 228: 海上護衛戦\r
306         /// 230: 敵潜水艦を制圧せよ!\r
307         /// </summary>\r
308         [TestMethod]\r
309         public void BattleResult_228_230()\r
310         {\r
311             _questInfo.InspectQuestList(CreateQuestList(new[] {228, 230}));\r
312             // 潜水艦3\r
313             _battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]\r
314             {\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
320             PAssert.That(() =>\r
321                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
322                     .SequenceEqual(new[]\r
323                     {\r
324                         new {Id = 228, Now = 3}, new {Id = 230, Now = 3}\r
325                     }));\r
326         }\r
327 \r
328         /// <summary>\r
329         /// 226: 南西諸島海域の制海権を握れ!\r
330         /// </summary>\r
331         [TestMethod]\r
332         public void BattleResult_226()\r
333         {\r
334             _questInfo.InspectQuestList(CreateQuestList(new[] {226}));\r
335 \r
336             _questCounter.InspectMapStart(Js(new\r
337             {\r
338                 api_maparea_id = 2,\r
339                 api_mapinfo_no = 1,\r
340                 api_event_id = 4\r
341             }));\r
342             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
343             PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);\r
344 \r
345             _questCounter.InspectMapNext(Js(new\r
346             {\r
347                 api_maparea_id = 2,\r
348                 api_mapinfo_no = 1,\r
349                 api_event_id = 5\r
350             }));\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
355         }\r
356 \r
357         /// <summary>\r
358         /// // 243: 南方海域珊瑚諸島沖の制空権を握れ!\r
359         /// </summary>\r
360         [TestMethod]\r
361         public void BattleResult_243()\r
362         {\r
363             _questInfo.InspectQuestList(CreateQuestList(new[] {243}));\r
364 \r
365             _questCounter.InspectMapStart(Js(new\r
366             {\r
367                 api_maparea_id = 5,\r
368                 api_mapinfo_no = 2,\r
369                 api_event_id = 4\r
370             }));\r
371             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
372             PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);\r
373 \r
374             _questCounter.InspectMapStart(Js(new\r
375             {\r
376                 api_maparea_id = 5,\r
377                 api_mapinfo_no = 2,\r
378                 api_event_id = 5\r
379             }));\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
384         }\r
385 \r
386         /// <summary>\r
387         /// 249: 「第五戦隊」出撃せよ!\r
388         /// </summary>\r
389         [TestMethod]\r
390         public void BattleResult_249()\r
391         {\r
392             _questInfo.InspectQuestList(CreateQuestList(new[] {249}));\r
393 \r
394             _battleInfo.InjectResultStatus(new[]\r
395             {\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
399 \r
400             _questCounter.InspectMapNext(Js(new\r
401             {\r
402                 api_maparea_id = 2,\r
403                 api_mapinfo_no = 5,\r
404                 api_event_id = 4\r
405             }));\r
406             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
407             PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);\r
408 \r
409             _questCounter.InspectMapNext(Js(new\r
410             {\r
411                 api_maparea_id = 2,\r
412                 api_mapinfo_no = 5,\r
413                 api_event_id = 5\r
414             }));\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
420 \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
424         }\r
425 \r
426         /// <summary>\r
427         /// 257: 「水雷戦隊」南西へ!\r
428         /// </summary>\r
429         [TestMethod]\r
430         public void BattleResult_257()\r
431         {\r
432             _questInfo.InspectQuestList(CreateQuestList(new[] {257}));\r
433 \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
437 \r
438             _questCounter.InspectMapNext(Js(new\r
439             {\r
440                 api_maparea_id = 1,\r
441                 api_mapinfo_no = 4,\r
442                 api_event_id = 4\r
443             }));\r
444             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
445             PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);\r
446 \r
447             _questCounter.InspectMapNext(Js(new\r
448             {\r
449                 api_maparea_id = 1,\r
450                 api_mapinfo_no = 4,\r
451                 api_event_id = 5\r
452             }));\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
458 \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
463 \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
469 \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
474 \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
479         }\r
480 \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
483 \r
484         /// <summary>\r
485         /// 257: 「水上打撃部隊」南方へ!\r
486         /// </summary>\r
487         [TestMethod]\r
488         public void BattleResult_259()\r
489         {\r
490             _questInfo.InspectQuestList(CreateQuestList(new[] {259}));\r
491 \r
492             var org = new[]\r
493             {\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
496             };\r
497             _battleInfo.InjectResultStatus(\r
498                 org.ToArray(), new ShipStatus[0],\r
499                 new ShipStatus[0], new ShipStatus[0]);\r
500 \r
501             _questCounter.InspectMapNext(Js(new\r
502             {\r
503                 api_maparea_id = 5,\r
504                 api_mapinfo_no = 1,\r
505                 api_event_id = 4\r
506             }));\r
507             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
508             PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);\r
509 \r
510             _questCounter.InspectMapNext(Js(new\r
511             {\r
512                 api_maparea_id = 5,\r
513                 api_mapinfo_no = 1,\r
514                 api_event_id = 5\r
515             }));\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
521 \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
526 \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
531 \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
536 \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
540         }\r
541 \r
542         /// <summary>\r
543         /// 264: 「空母機動部隊」西へ!\r
544         /// </summary>\r
545         [TestMethod]\r
546         public void BattleResult_264()\r
547         {\r
548             _questInfo.InspectQuestList(CreateQuestList(new[] {264}));\r
549 \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
553 \r
554             _questCounter.InspectMapNext(Js(new\r
555             {\r
556                 api_maparea_id = 4,\r
557                 api_mapinfo_no = 2,\r
558                 api_event_id = 4\r
559             }));\r
560             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
561             PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);\r
562 \r
563             _questCounter.InspectMapNext(Js(new\r
564             {\r
565                 api_maparea_id = 4,\r
566                 api_mapinfo_no = 2,\r
567                 api_event_id = 5\r
568             }));\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
573 \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
577         }\r
578 \r
579         /// <summary>\r
580         /// 266: 「水上反撃部隊」突入せよ!\r
581         /// </summary>\r
582         [TestMethod]\r
583         public void BattleResult_266()\r
584         {\r
585             _questInfo.InspectQuestList(CreateQuestList(new[] {266}));\r
586 \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
590 \r
591             _questCounter.InspectMapNext(Js(new\r
592             {\r
593                 api_maparea_id = 2,\r
594                 api_mapinfo_no = 5,\r
595                 api_event_id = 4\r
596             }));\r
597             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
598             PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);\r
599 \r
600             _questCounter.InspectMapNext(Js(new\r
601             {\r
602                 api_maparea_id = 2,\r
603                 api_mapinfo_no = 5,\r
604                 api_event_id = 5\r
605             }));\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
610 \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
615 \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
622 \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
626         }\r
627 \r
628         /// <summary>\r
629         /// 280: 兵站線確保!海上警備を強化実施せよ!\r
630         /// </summary>\r
631         [TestMethod]\r
632         public void BattleResult_280()\r
633         {\r
634             _questInfo.InspectQuestList(CreateQuestList(new[] {280}));\r
635 \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
639 \r
640             _questCounter.InspectMapNext(Js(new\r
641             {\r
642                 api_maparea_id = 1,\r
643                 api_mapinfo_no = 2,\r
644                 api_event_id = 4\r
645             }));\r
646             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
647             _questCounter.InspectMapNext(Js(new\r
648             {\r
649                 api_maparea_id = 1,\r
650                 api_mapinfo_no = 2,\r
651                 api_event_id = 5\r
652             }));\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
655 \r
656             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
657             _questCounter.InspectMapNext(Js(new\r
658             {\r
659                 api_maparea_id = 1,\r
660                 api_mapinfo_no = 3,\r
661                 api_event_id = 5\r
662             }));\r
663             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
664             _questCounter.InspectMapNext(Js(new\r
665             {\r
666                 api_maparea_id = 1,\r
667                 api_mapinfo_no = 4,\r
668                 api_event_id = 5\r
669             }));\r
670             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
671             _questCounter.InspectMapNext(Js(new\r
672             {\r
673                 api_maparea_id = 2,\r
674                 api_mapinfo_no = 1,\r
675                 api_event_id = 5\r
676             }));\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
679 \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
683 \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
687 \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
691 \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
695 \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
699         }\r
700 \r
701         /// <summary>\r
702         /// 822: 沖ノ島海域迎撃戦\r
703         /// 854: 戦果拡張任務!「Z作戦」前段作戦\r
704         /// </summary>\r
705         [TestMethod]\r
706         public void BattleResult_822_854()\r
707         {\r
708             _questInfo.InspectQuestList(CreateQuestList(new[] {822, 854}));\r
709 \r
710             _questCounter.InspectMapNext(Js(new\r
711             {\r
712                 api_maparea_id = 2,\r
713                 api_mapinfo_no = 4,\r
714                 api_event_id = 4\r
715             }));\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
719 \r
720             _questCounter.InspectMapNext(Js(new\r
721             {\r
722                 api_maparea_id = 2,\r
723                 api_mapinfo_no = 4,\r
724                 api_event_id = 5\r
725             }));\r
726             _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
727             _questCounter.InspectMapNext(Js(new\r
728             {\r
729                 api_maparea_id = 6,\r
730                 api_mapinfo_no = 1,\r
731                 api_event_id = 5\r
732             }));\r
733             _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
734             _questCounter.InspectMapNext(Js(new\r
735             {\r
736                 api_maparea_id = 6,\r
737                 api_mapinfo_no = 3,\r
738                 api_event_id = 5\r
739             }));\r
740             _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
741             _questCounter.InspectMapNext(Js(new\r
742             {\r
743                 api_maparea_id = 6,\r
744                 api_mapinfo_no = 4,\r
745                 api_event_id = 5\r
746             }));\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
751             {\r
752                 api_maparea_id = 2,\r
753                 api_mapinfo_no = 4,\r
754                 api_event_id = 5\r
755             }));\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
759         }\r
760 \r
761         /// <summary>\r
762         /// 861: 強行輸送艦隊、抜錨!\r
763         /// </summary>\r
764         [TestMethod]\r
765         public void MapNext_861()\r
766         {\r
767             _questInfo.InspectQuestList(CreateQuestList(new[] {861}));\r
768 \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
772 \r
773             _questCounter.InspectMapNext(Js(new\r
774             {\r
775                 api_maparea_id = 1,\r
776                 api_mapinfo_no = 6,\r
777                 api_event_id = 4\r
778             }));\r
779             PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);\r
780 \r
781             _questCounter.InspectMapNext(Js(new\r
782             {\r
783                 api_maparea_id = 1,\r
784                 api_mapinfo_no = 6,\r
785                 api_event_id = 8\r
786             }));\r
787             PAssert.That(() => _questInfo.Quests[0].Count.Now == 1);\r
788 \r
789             _battleInfo.Result.Friend.Main[1].NowHp = 0;\r
790             _questCounter.InspectMapNext(Js(new\r
791             {\r
792                 api_maparea_id = 1,\r
793                 api_mapinfo_no = 6,\r
794                 api_event_id = 8\r
795             }));\r
796             PAssert.That(() => _questInfo.Quests[0].Count.Now == 1, "轟沈あり");\r
797             _battleInfo.Result.Friend.Main[1].NowHp = 1;\r
798 \r
799             _battleInfo.Result.Friend.Main[2].Spec.ShipType = 10;\r
800             _questCounter.InspectMapNext(Js(new\r
801             {\r
802                 api_maparea_id = 1,\r
803                 api_mapinfo_no = 6,\r
804                 api_event_id = 8\r
805             }));\r
806             PAssert.That(() => _questInfo.Quests[0].Count.Now == 1, "補給・航戦が3隻");\r
807         }\r
808 \r
809         /// <summary>\r
810         /// 862: 前線の航空偵察を実施せよ!\r
811         /// </summary>\r
812         [TestMethod]\r
813         public void BattleResult_862()\r
814         {\r
815             _questInfo.InspectQuestList(CreateQuestList(new[] {862}));\r
816 \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
820 \r
821             _questCounter.InspectMapNext(Js(new\r
822             {\r
823                 api_maparea_id = 6,\r
824                 api_mapinfo_no = 3,\r
825                 api_event_id = 4\r
826             }));\r
827             _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
828             PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);\r
829 \r
830             _questCounter.InspectMapNext(Js(new\r
831             {\r
832                 api_maparea_id = 6,\r
833                 api_mapinfo_no = 3,\r
834                 api_event_id = 5\r
835             }));\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
840 \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
845 \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
850         }\r
851 \r
852         /// <summary>\r
853         /// 873: 北方海域警備を実施せよ!\r
854         /// </summary>\r
855         [TestMethod]\r
856         public void BattleResult_873()\r
857         {\r
858             _questInfo.InspectQuestList(CreateQuestList(new[] {873}));\r
859 \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
863 \r
864             _questCounter.InspectMapNext(Js(new\r
865             {\r
866                 api_maparea_id = 3,\r
867                 api_mapinfo_no = 1,\r
868                 api_event_id = 4\r
869             }));\r
870             _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
871             PAssert.That(() => _questInfo.Quests[0].Count.NowArray[0] == 0);\r
872 \r
873             _questCounter.InspectMapNext(Js(new\r
874             {\r
875                 api_maparea_id = 3,\r
876                 api_mapinfo_no = 1,\r
877                 api_event_id = 5\r
878             }));\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
883 \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
888 \r
889             _questCounter.InspectMapNext(Js(new\r
890             {\r
891                 api_maparea_id = 3,\r
892                 api_mapinfo_no = 2,\r
893                 api_event_id = 5\r
894             }));\r
895             _questCounter.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
896             _questCounter.InspectMapNext(Js(new\r
897             {\r
898                 api_maparea_id = 3,\r
899                 api_mapinfo_no = 3,\r
900                 api_event_id = 5\r
901             }));\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
904         }\r
905 \r
906         /// <summary>\r
907         /// 875: 精鋭「三一駆」、鉄底海域に突入せよ!\r
908         /// </summary>\r
909         [TestMethod]\r
910         public void BattleResult_875()\r
911         {\r
912             _questInfo.InspectQuestList(CreateQuestList(new[] {875}));\r
913 \r
914             _battleInfo.InjectResultStatus(new[]\r
915             {\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
919 \r
920             _questCounter.InspectMapNext(Js(new\r
921             {\r
922                 api_maparea_id = 5,\r
923                 api_mapinfo_no = 4,\r
924                 api_event_id = 4\r
925             }));\r
926             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
927             PAssert.That(() => _questInfo.Quests[0].Count.Now == 0);\r
928 \r
929             _questCounter.InspectMapNext(Js(new\r
930             {\r
931                 api_maparea_id = 5,\r
932                 api_mapinfo_no = 4,\r
933                 api_event_id = 5\r
934             }));\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
939 \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
944 \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
949 \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
956         }\r
957 \r
958         /// <summary>\r
959         /// 888: 新編成「三川艦隊」、鉄底海峡に突入せよ!\r
960         /// </summary>\r
961         [TestMethod]\r
962         public void BattleResult_888()\r
963         {\r
964             _questInfo.InspectQuestList(CreateQuestList(new[] {888}));\r
965             var count = _questInfo.Quests[0].Count;\r
966 \r
967             _battleInfo.InjectResultStatus(new[]\r
968             {\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
972 \r
973             _questCounter.InspectMapNext(Js(new\r
974             {\r
975                 api_maparea_id = 5,\r
976                 api_mapinfo_no = 1,\r
977                 api_event_id = 4\r
978             }));\r
979             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
980             PAssert.That(() => count.NowArray[0] == 0);\r
981 \r
982             _questCounter.InspectMapNext(Js(new\r
983             {\r
984                 api_maparea_id = 5,\r
985                 api_mapinfo_no = 1,\r
986                 api_event_id = 5\r
987             }));\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
992 \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
997 \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
1002 \r
1003             _questCounter.InspectMapNext(Js(new\r
1004             {\r
1005                 api_maparea_id = 5,\r
1006                 api_mapinfo_no = 3,\r
1007                 api_event_id = 5\r
1008             }));\r
1009             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1010             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0}));\r
1011 \r
1012             _questCounter.InspectMapNext(Js(new\r
1013             {\r
1014                 api_maparea_id = 5,\r
1015                 api_mapinfo_no = 4,\r
1016                 api_event_id = 5\r
1017             }));\r
1018             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1019             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
1020         }\r
1021 \r
1022         /// <summary>\r
1023         /// 893: 泊地周辺海域の安全確保を徹底せよ!\r
1024         /// </summary>\r
1025         [TestMethod]\r
1026         public void BattleResult_893()\r
1027         {\r
1028             _questInfo.InspectQuestList(CreateQuestList(new[] {893}));\r
1029             var count = _questInfo.Quests[0].Count;\r
1030 \r
1031             _questCounter.InspectMapNext(Js(new\r
1032             {\r
1033                 api_maparea_id = 1,\r
1034                 api_mapinfo_no = 5,\r
1035                 api_event_id = 4\r
1036             }));\r
1037             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1038             PAssert.That(() => count.NowArray[0] == 0, "1-5");\r
1039 \r
1040             _questCounter.InspectMapNext(Js(new\r
1041             {\r
1042                 api_maparea_id = 1,\r
1043                 api_mapinfo_no = 5,\r
1044                 api_event_id = 5\r
1045             }));\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
1050 \r
1051             _questCounter.InspectMapNext(Js(new\r
1052             {\r
1053                 api_maparea_id = 7,\r
1054                 api_mapinfo_no = 1,\r
1055                 api_event_id = 5\r
1056             }));\r
1057             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1058             PAssert.That(() => count.NowArray[1] == 1, "7-1");\r
1059 \r
1060             _questCounter.InspectMapNext(Js(new\r
1061             {\r
1062                 api_maparea_id = 7,\r
1063                 api_mapinfo_no = 2,\r
1064                 api_no = 7,\r
1065                 api_event_id = 5\r
1066             }));\r
1067             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1068             PAssert.That(() => count.NowArray[2] == 1, "7-2G");\r
1069 \r
1070             _questCounter.InspectMapNext(Js(new\r
1071             {\r
1072                 api_maparea_id = 7,\r
1073                 api_mapinfo_no = 2,\r
1074                 api_no = 15,\r
1075                 api_event_id = 5\r
1076             }));\r
1077             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1078             PAssert.That(() => count.NowArray[3] == 1, "7-2M");\r
1079         }\r
1080 \r
1081         /// <summary>\r
1082         /// 894: 空母戦力の投入による兵站線戦闘哨戒\r
1083         /// </summary>\r
1084         [TestMethod]\r
1085         public void BattleResult_894()\r
1086         {\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
1092 \r
1093             _questCounter.InspectMapNext(Js(new\r
1094             {\r
1095                 api_maparea_id = 1,\r
1096                 api_mapinfo_no = 3,\r
1097                 api_event_id = 5\r
1098             }));\r
1099             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1100             PAssert.That(() => count.NowArray[0] == 0, "空母なしはカウントしない");\r
1101 \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
1105 \r
1106             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1107             PAssert.That(() => count.NowArray[0] == 1, "1-3");\r
1108 \r
1109             _questCounter.InspectMapNext(Js(new\r
1110             {\r
1111                 api_maparea_id = 1,\r
1112                 api_mapinfo_no = 4,\r
1113                 api_event_id = 4\r
1114             }));\r
1115             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1116             PAssert.That(() => count.NowArray[1] == 0, "1-4");\r
1117 \r
1118             _questCounter.InspectMapNext(Js(new\r
1119             {\r
1120                 api_maparea_id = 1,\r
1121                 api_mapinfo_no = 4,\r
1122                 api_event_id = 5\r
1123             }));\r
1124             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1125             PAssert.That(() => count.NowArray[1] == 1, "1-4");\r
1126 \r
1127             _questCounter.InspectMapNext(Js(new\r
1128             {\r
1129                 api_maparea_id = 2,\r
1130                 api_mapinfo_no = 1,\r
1131                 api_event_id = 5\r
1132             }));\r
1133             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1134             PAssert.That(() => count.NowArray[2] == 1, "2-1");\r
1135 \r
1136             _questCounter.InspectMapNext(Js(new\r
1137             {\r
1138                 api_maparea_id = 2,\r
1139                 api_mapinfo_no = 2,\r
1140                 api_event_id = 5\r
1141             }));\r
1142             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1143             PAssert.That(() => count.NowArray[3] == 1, "2-2");\r
1144 \r
1145             _questCounter.InspectMapNext(Js(new\r
1146             {\r
1147                 api_maparea_id = 2,\r
1148                 api_mapinfo_no = 3,\r
1149                 api_event_id = 5\r
1150             }));\r
1151             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1152             PAssert.That(() => count.NowArray[4] == 1, "2-3");\r
1153         }\r
1154 \r
1155         /// <summary>\r
1156         /// 280と854以降を同時に遂行していると854以降がカウントされないことがある\r
1157         /// </summary>\r
1158         [TestMethod]\r
1159         public void BattleResult_280_854()\r
1160         {\r
1161             _questInfo.InspectQuestList(CreateQuestList(new[] {280, 854}));\r
1162 \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
1166 \r
1167             _questCounter.InspectMapNext(Js(new\r
1168             {\r
1169                 api_maparea_id = 2,\r
1170                 api_mapinfo_no = 4,\r
1171                 api_event_id = 5\r
1172             }));\r
1173             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1174             PAssert.That(() => _questInfo.Quests[1].Count.NowArray[0] == 1);\r
1175         }\r
1176 \r
1177         /// <summary>\r
1178         /// 888と893以降を同時に遂行していると893以降がカウントされないことがある\r
1179         /// </summary>\r
1180         [TestMethod]\r
1181         public void BattleResult_888_893()\r
1182         {\r
1183             _questInfo.InspectQuestList(CreateQuestList(new []{888, 893}));\r
1184 \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
1188 \r
1189             _questCounter.InspectMapNext(Js(new\r
1190             {\r
1191                 api_maparea_id = 7,\r
1192                 api_mapinfo_no = 1,\r
1193                 api_event_id = 5\r
1194 \r
1195             }));\r
1196             _questCounter.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
1197             PAssert.That(() => _questInfo.Quests[1].Count.NowArray[1] == 1);\r
1198         }\r
1199 \r
1200         /// <summary>\r
1201         /// 302: 大規模演習\r
1202         /// 303: 「演習」で練度向上!\r
1203         /// 304: 「演習」で他提督を圧倒せよ!\r
1204         /// 311: 精鋭艦隊演習\r
1205         /// 315: 春季大演習\r
1206         /// </summary>\r
1207         [TestMethod]\r
1208         public void PracticeResult_303_304_302_311_315()\r
1209         {\r
1210             _questInfo.InspectQuestList(CreateQuestList(new[] {302, 303, 304, 311, 315}));\r
1211 \r
1212             _battleInfo.InjectResultStatus(new[]\r
1213             {\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
1221                     {\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
1224                     }));\r
1225         }\r
1226 \r
1227         /// <summary>\r
1228         /// 318: 給糧艦「伊良湖」の支援\r
1229         /// </summary>\r
1230         [TestMethod]\r
1231         public void PracticeResult_318()\r
1232         {\r
1233             _questInfo.InspectQuestList(CreateQuestList(new[] {318}));\r
1234             var q318 = _questInfo.Quests[0];\r
1235 \r
1236             _battleInfo.InjectResultStatus(new[]\r
1237             {\r
1238                 ShipStatus(2, 543), ShipStatus(3, 488)\r
1239             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1240 \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
1252 \r
1253             q318.Count.Now = 2;\r
1254             _questInfo.InspectQuestList(CreateQuestList(new[] {318}));\r
1255             PAssert.That(() => q318.Count.Now == 2, "進捗調節しない");\r
1256         }\r
1257 \r
1258         /// <summary>\r
1259         /// 330: 空母機動部隊、演習始め!\r
1260         /// </summary>\r
1261         [TestMethod]\r
1262         public void PracticeResult_330()\r
1263         {\r
1264             _questInfo.InspectQuestList(CreateQuestList(new[] {330}));\r
1265             var q330 = _questInfo.Quests[0];\r
1266 \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
1272 \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
1276 \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
1280 \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
1284 \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
1288 \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
1292         }\r
1293 \r
1294         /// <summary>\r
1295         /// 402: 「遠征」を3回成功させよう!\r
1296         /// 403: 「遠征」を10回成功させよう!\r
1297         /// 404: 大規模遠征作戦、発令!\r
1298         /// 410: 南方への輸送作戦を成功させよ!\r
1299         /// 411: 南方への鼠輸送を継続実施せよ!\r
1300         /// </summary>\r
1301         [TestMethod]\r
1302         public void MissionResult_402_403_404_410_411()\r
1303         {\r
1304             _questInfo.InspectQuestList(CreateQuestList(new[] {402, 403, 404, 410, 411}));\r
1305 \r
1306             _questCounter.InspectDeck(Js(\r
1307                 new[]\r
1308                 {\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
1312                 }));\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
1319                     {\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
1322                     }));\r
1323         }\r
1324 \r
1325         /// <summary>\r
1326         /// 426: 海上通商航路の警戒を厳とせよ!\r
1327         /// </summary>\r
1328         [TestMethod]\r
1329         public void MissionResult_426()\r
1330         {\r
1331             _questInfo.InspectQuestList(CreateQuestList(new[] {426}));\r
1332 \r
1333             _questCounter.InspectDeck(Js(\r
1334                 new[]\r
1335                 {\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
1339                 }));\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
1346                 new[]\r
1347                 {\r
1348                     new {api_id = 2, api_mission = new[] {2, 10}}\r
1349                 }));\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
1353         }\r
1354 \r
1355         /// <summary>\r
1356         /// 428: 近海に侵入する敵潜を制圧せよ!\r
1357         /// </summary>\r
1358         [TestMethod]\r
1359         public void MissionResult_428()\r
1360         {\r
1361             _questInfo.InspectQuestList(CreateQuestList(new[] {428}));\r
1362 \r
1363             _questCounter.InspectDeck(Js(\r
1364                 new[]\r
1365                 {\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
1369                 }));\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
1375         }\r
1376 \r
1377         /// <summary>\r
1378         /// 503: 艦隊大整備!\r
1379         /// 504: 艦隊酒保祭り!\r
1380         /// </summary>\r
1381         [TestMethod]\r
1382         public void PowerUp_503_504()\r
1383         {\r
1384             _questInfo.InspectQuestList(CreateQuestList(new[] {503, 504}));\r
1385 \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
1391         }\r
1392 \r
1393         /// <summary>\r
1394         /// 605: 新装備「開発」指令\r
1395         /// 606: 新造艦「建造」指令\r
1396         /// 607: 装備「開発」集中強化!\r
1397         /// 608: 艦娘「建造」艦隊強化!\r
1398         /// 609: 軍縮条約対応!\r
1399         /// 619: 装備の改修強化\r
1400         /// </summary>\r
1401         [TestMethod]\r
1402         public void Kousyou_605_606_607_608_609_619()\r
1403         {\r
1404             _questInfo.InspectQuestList(CreateQuestList(new[] {605, 606, 607, 608, 609, 619}));\r
1405 \r
1406             _questCounter.InspectCreateItem("api_verno=1&api_item1=10&api_item2=10&api_item3=30&api_item4=10&api_multiple_flag=0");\r
1407             _questCounter.InspectCreateItem("api_verno=1&api_item1=10&api_item2=10&api_item3=30&api_item4=10&api_multiple_flag=1");\r
1408             _questCounter.CountCreateShip();\r
1409             _questCounter.InspectDestroyShip("api%5Fship%5Fid=98159%2C98166%2C98168&api%5Fverno=1");\r
1410             _questCounter.CountRemodelSlot();\r
1411             PAssert.That(() =>\r
1412                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
1413                     .SequenceEqual(new[]\r
1414                     {\r
1415                         new {Id = 605, Now = 4}, new {Id = 606, Now = 1}, new {Id = 607, Now = 4},\r
1416                         new {Id = 608, Now = 1}, new {Id = 609, Now = 3}, new {Id = 619, Now = 1}\r
1417                     }));\r
1418         }\r
1419 \r
1420         /// <summary>\r
1421         /// 613: 資源の再利用\r
1422         /// 638: 対空機銃量産\r
1423         /// 643: 主力「陸攻」の調達\r
1424         /// 645: 「洋上補給」物資の調達\r
1425         /// 663: 新型艤装の継続研究\r
1426         /// 673: 装備開発力の整備\r
1427         /// 674: 工廠環境の整備\r
1428         /// 675: 運用装備の統合整備\r
1429         /// 676: 装備開発力の集中整備\r
1430         /// 677: 継戦支援能力の整備\r
1431         /// 678: 主力艦上戦闘機の更新\r
1432         /// 680: 対空兵装の整備拡充\r
1433         /// 688: 航空戦力の強化\r
1434         /// </summary>\r
1435         [TestMethod]\r
1436         public void DestroyItem_613_638_643_645_663_673_674_675_676_677_678_680_688()\r
1437         {\r
1438             _itemInfo.InjectItemSpec(new[]\r
1439             {\r
1440                 new ItemSpec {Id = 1, Name = "12cm単装砲", Type = 1},\r
1441                 new ItemSpec {Id = 37, Name = "7.7mm機銃", Type = 21},\r
1442                 new ItemSpec {Id = 19, Name = "九六式艦戦", Type = 6},\r
1443                 new ItemSpec {Id = 4, Name = "14cm単装砲", Type = 2},\r
1444                 new ItemSpec {Id = 11, Name = "15.2cm単装砲", Type = 4},\r
1445                 new ItemSpec {Id = 75, Name = "ドラム缶(輸送用)", Type = 30},\r
1446                 new ItemSpec {Id = 7, Name = "35.6cm連装砲", Type = 3},\r
1447                 new ItemSpec {Id = 25, Name = "零式水上偵察機", Type = 10},\r
1448                 new ItemSpec {Id = 13, Name = "61cm三連装魚雷", Type = 5},\r
1449                 new ItemSpec {Id = 20, Name = "零式艦戦21型", Type = 6},\r
1450                 new ItemSpec {Id = 28, Name = "22号水上電探", Type = 12},\r
1451                 new ItemSpec {Id = 31, Name = "32号水上電探", Type = 13},\r
1452                 new ItemSpec {Id = 35, Name = "三式弾", Type = 18},\r
1453                 new ItemSpec {Id = 23, Name = "九九式艦爆", Type = 7},\r
1454                 new ItemSpec {Id = 16, Name = "九七式艦攻", Type = 8}\r
1455             });\r
1456             var items = new[] {1, 37, 19, 4, 11, 75, 7, 25, 13, 20, 28, 31, 35, 23, 16};\r
1457             _itemInfo.InjectItems(items);\r
1458             var questList = new[] {613, 638, 643, 645, 663, 673, 674, 675, 676, 677, 678, 680, 688};\r
1459             _questInfo.AcceptMax = questList.Length;\r
1460             _questInfo.InspectQuestList(CreateQuestList(questList));\r
1461             _questCounter.InspectDestroyItem(\r
1462                 $"api%5Fslotitem%5Fids={string.Join("%2C", Enumerable.Range(1, items.Length))}&api%5Fverno=1", null);\r
1463             var scalar = new[]\r
1464             {\r
1465                 new {Id = 613, Now = 1}, new {Id = 638, Now = 1}, new {Id = 643, Now = 1}, new {Id = 645, Now = 1},\r
1466                 new {Id = 663, Now = 1}, new {Id = 673, Now = 1}, new {Id = 674, Now = 1}\r
1467             };\r
1468             foreach (var e in scalar)\r
1469             {\r
1470                 var c = Array.Find(_questInfo.Quests, q => q.Id == e.Id).Count;\r
1471                 PAssert.That(() => c.Id == e.Id && c.Now == e.Now, $"{c.Id}");\r
1472             }\r
1473             var array = new[]\r
1474             {\r
1475                 new {Id = 675, NowArray = new[] {2, 1}}, new {Id = 676, NowArray = new[] {1, 1, 1}},\r
1476                 new {Id = 677, NowArray = new[] {1, 1, 1}}, new {Id = 678, NowArray = new[] {1, 1}},\r
1477                 new {Id = 680, NowArray = new[] {1, 2}}, new {Id = 688, NowArray = new[] {2, 1, 1, 1}}\r
1478             };\r
1479             foreach (var e in array)\r
1480             {\r
1481                 var c = Array.Find(_questInfo.Quests, q => q.Id == e.Id).Count;\r
1482                 PAssert.That(() => c.Id == e.Id && c.NowArray.SequenceEqual(e.NowArray), $"{c.Id}");\r
1483             }\r
1484         }\r
1485 \r
1486         /// <summary>\r
1487         /// 702: 艦の「近代化改修」を実施せよ!\r
1488         /// 703: 「近代化改修」を進め、戦備を整えよ!\r
1489         /// </summary>\r
1490         [TestMethod]\r
1491         public void PowerUp_702_703()\r
1492         {\r
1493             _questInfo.InspectQuestList(CreateQuestList(new[] {702, 703}));\r
1494             _questCounter.InspectPowerUp(Js(new {api_powerup_flag = 1}));\r
1495             PAssert.That(() =>\r
1496                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
1497                     .SequenceEqual(new[] {new {Id = 702, Now = 1}, new {Id = 703, Now = 1}}));\r
1498         }\r
1499     }\r
1500 }