OSDN Git Service

3340b90f6d11bb9f84b1d696d4224af4fb8cda92
[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 DynaJson;\r
18 using ExpressionToCodeLib;\r
19 using KancolleSniffer.Model;\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             Assert.AreEqual(3, count.Now);\r
37             count.AdjustCount(50);\r
38             Assert.AreEqual(4, count.Now);\r
39             count.AdjustCount(80);\r
40             Assert.AreEqual(6, count.Now);\r
41             count.AdjustCount(100);\r
42             Assert.AreEqual(7, count.Now);\r
43             count.Now = 14;\r
44             count.AdjustCount(100);\r
45             Assert.AreEqual(14, count.Now);\r
46             count.AdjustCount(80);\r
47             Assert.AreEqual(6, count.Now);\r
48             count.AdjustCount(50);\r
49             Assert.AreEqual(5, count.Now);\r
50             count.AdjustCount(0);\r
51             Assert.AreEqual(3, count.Now);\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             Assert.AreEqual(2, count.Now);\r
64             count.AdjustCount(50);\r
65             Assert.AreEqual(3, count.Now);\r
66             count.AdjustCount(80);\r
67             Assert.AreEqual(6, count.Now);\r
68             count.AdjustCount(100);\r
69             Assert.AreEqual(7, count.Now);\r
70             count.Now = 14;\r
71             count.AdjustCount(100);\r
72             Assert.AreEqual(14, count.Now);\r
73             count.AdjustCount(80);\r
74             Assert.AreEqual(6, count.Now);\r
75             count.AdjustCount(50);\r
76             Assert.AreEqual(5, count.Now);\r
77             count.AdjustCount(0);\r
78             Assert.AreEqual(2, count.Now);\r
79         }\r
80 \r
81         [TestMethod]\r
82         public void AdjustCountMax3WithShift2()\r
83         {\r
84             var count = new QuestCount\r
85             {\r
86                 Spec = new QuestSpec {Max = 3, Shift = 2},\r
87                 Now = 0\r
88             };\r
89             count.AdjustCount(0);\r
90             Assert.AreEqual(0, count.Now);\r
91             count.AdjustCount(50);\r
92             Assert.AreEqual(1, count.Now);\r
93             count.AdjustCount(80);\r
94             Assert.AreEqual(2, count.Now);\r
95             count.AdjustCount(100);\r
96             Assert.AreEqual(3, count.Now);\r
97             count.Now = 4;\r
98             count.AdjustCount(100);\r
99             Assert.AreEqual(4, count.Now);\r
100             count.AdjustCount(80);\r
101             Assert.AreEqual(2, count.Now);\r
102             count.AdjustCount(50);\r
103             Assert.AreEqual(1, count.Now);\r
104             count.AdjustCount(0);\r
105             Assert.AreEqual(0, count.Now);\r
106         }\r
107 \r
108         [TestMethod]\r
109         public void AdjustCount80Percent()\r
110         {\r
111             var count = new QuestCount\r
112             {\r
113                 Spec = new QuestSpec()\r
114             };\r
115             for (var shift = 0; shift <= 1; shift++)\r
116             {\r
117                 for (var max = 2; max <= 6; max++)\r
118                 {\r
119                     count.Spec.Max = max;\r
120                     count.Spec.Shift = shift;\r
121                     count.Now = 1;\r
122                     count.AdjustCount(80);\r
123                     Assert.AreEqual(count.Spec.Max - 1, count.Now);\r
124                 }\r
125             }\r
126         }\r
127 \r
128         [TestMethod]\r
129         public void AdjustCountNowArray()\r
130         {\r
131             var count = new QuestCount\r
132             {\r
133                 Spec = new QuestSpec {MaxArray = new[] {36, 6, 24, 12}},\r
134                 NowArray = new[] {1, 2, 3, 4}\r
135             };\r
136             count.AdjustCount(50);\r
137             Assert.IsTrue(count.NowArray.SequenceEqual(new[] {1, 2, 3, 4}));\r
138             count.AdjustCount(100);\r
139             Assert.IsTrue(count.NowArray.SequenceEqual(new[] {36, 6, 24, 12}));\r
140             count.NowArray = new[] {38, 12, 19, 12};\r
141             count.AdjustCount(100);\r
142             Assert.IsTrue(count.NowArray.SequenceEqual(new[] {38, 12, 24, 12}));\r
143         }\r
144 \r
145         /// <summary>\r
146         /// カウンターを文字列表記にする\r
147         /// </summary>\r
148         [TestMethod]\r
149         public void ToStringTest()\r
150         {\r
151             var status = new Status\r
152             {\r
153                 QuestCountList = new[]\r
154                 {\r
155                     new QuestCount {Id = 211, Now = 2},\r
156                     new QuestCount {Id = 214, NowArray = new[] {20, 7, 10, 8}},\r
157                     new QuestCount {Id = 854, NowArray = new[] {2, 1, 1, 1}},\r
158                     new QuestCount {Id = 426, NowArray = new[] {1, 1, 1, 1}},\r
159                     new QuestCount {Id = 428, NowArray = new[] {1, 1, 1}},\r
160                     new QuestCount {Id = 873, NowArray = new[] {1, 1, 1}},\r
161                     new QuestCount {Id = 888, NowArray = new[] {1, 1, 1}},\r
162                     new QuestCount {Id = 688, NowArray = new[] {2, 1, 2, 1}},\r
163                     new QuestCount {Id = 893, NowArray = new[] {1, 1, 1, 1}},\r
164                     new QuestCount {Id = 894, NowArray = new[] {1, 1, 1, 1, 1}},\r
165                     new QuestCount {Id = 280, NowArray = new[] {1, 1, 1, 1}},\r
166                     new QuestCount {Id = 872, NowArray = new[] {1, 1, 1, 1}},\r
167                     new QuestCount {Id = 284, NowArray = new[] {1, 1, 1, 1}},\r
168                     new QuestCount {Id = 226, Now = 2},\r
169                     new QuestCount {Id = 434, NowArray = new[] {1, 0, 1, 0, 1}},\r
170                     new QuestCount {Id = 436, NowArray = new[] {1, 0, 1, 1, 1}},\r
171                     new QuestCount {Id = 437, NowArray = new[] {1, 0, 1, 1}},\r
172                     new QuestCount {Id = 438, NowArray = new[] {1, 0, 1, 1}},\r
173                     new QuestCount {Id = 439, NowArray = new[] {1, 0, 1, 1}},\r
174                     new QuestCount {Id = 440, NowArray = new[] {1, 0, 1, 1, 1}}\r
175                 }\r
176             };\r
177             var countList = new QuestCountList();\r
178             countList.SetMissionNames(new JsonObject(new[]\r
179             {\r
180                 new {api_id = 1, api_name = "練習航海"},\r
181                 new {api_id = 2, api_name = "長距離練習航海"},\r
182                 new {api_id = 3, api_name = "警備任務"},\r
183                 new {api_id = 4, api_name = "対潜警戒任務"},\r
184                 new {api_id = 5, api_name = "海上護衛任務"},\r
185                 new {api_id = 9, api_name = "タンカー護衛任務"},\r
186                 new {api_id = 10, api_name = "強行偵察任務"},\r
187                 new {api_id = 11, api_name = "ボーキサイト輸送任務"},\r
188                 new {api_id = 40, api_name = "水上機前線輸送"},\r
189                 new {api_id = 41, api_name = "ブルネイ泊地沖哨戒"},\r
190                 new {api_id = 46, api_name = "南西海域戦闘哨戒"},\r
191                 new {api_id = 100, api_name = "兵站強化任務"},\r
192                 new {api_id = 101, api_name = "海峡警備行動"},\r
193                 new {api_id = 102, api_name = "長時間対潜警戒"},\r
194                 new {api_id = 104, api_name = "小笠原沖哨戒線"},\r
195                 new {api_id = 105, api_name = "小笠原沖戦闘哨戒"},\r
196                 new {api_id = 110, api_name = "南西方面航空偵察作戦"},\r
197                 new {api_id = 114, api_name = "南西諸島捜索撃滅戦"},\r
198                 new {api_id = 142, api_name = "強行鼠輸送作戦"}\r
199             }));\r
200             new QuestInfo(countList).LoadState(status);\r
201             Assert.AreEqual("2/3", status.QuestCountList[0].ToString());\r
202             Assert.AreEqual("20/36 7/6 10/24 8/12", status.QuestCountList[1].ToString());\r
203             var z = status.QuestCountList[2];\r
204             Assert.AreEqual("2\u200a1\u200a1\u200a1", z.ToString());\r
205             Assert.AreEqual("2-4:2 6-1:1 6-3:1 6-4:1", z.ToToolTip());\r
206             z.NowArray = new[] {0, 0, 0, 0};\r
207             Assert.AreEqual("2-4:0 6-1:0 6-3:0 6-4:0", z.ToToolTip());\r
208             var q426 = status.QuestCountList[3];\r
209             Assert.AreEqual("1\u200a1\u200a1\u200a1", q426.ToString());\r
210             Assert.AreEqual("警備任務1 対潜警戒任務1 海上護衛任務1 強行偵察任務1", q426.ToToolTip());\r
211             var q428 = status.QuestCountList[4];\r
212             Assert.AreEqual("対潜警戒任務1 海峡警備行動1 長時間対潜警戒1", q428.ToToolTip());\r
213             q428.NowArray = new[] {0, 1, 0};\r
214             Assert.AreEqual("対潜警戒任務0 海峡警備行動1 長時間対潜警戒0", q428.ToToolTip());\r
215             var q873 = status.QuestCountList[5];\r
216             Assert.AreEqual("1\u200a1\u200a1", q873.ToString());\r
217             Assert.AreEqual("3-1:1 3-2:1 3-3:1", q873.ToToolTip());\r
218             var q888 = status.QuestCountList[6];\r
219             Assert.AreEqual("1\u200a1\u200a1", q888.ToString());\r
220             Assert.AreEqual("5-1:1 5-3:1 5-4:1", q888.ToToolTip());\r
221             var q688 = status.QuestCountList[7];\r
222             Assert.AreEqual("艦戦2 艦爆1 艦攻2 水偵1", q688.ToToolTip());\r
223             var q893 = status.QuestCountList[8];\r
224             Assert.AreEqual("1-5:1 7-1:1 7-2G:1 7-2M:1", q893.ToToolTip());\r
225             var q894 = status.QuestCountList[9];\r
226             Assert.AreEqual("1\u200a1\u200a1\u200a1\u200a1", q894.ToString());\r
227             Assert.AreEqual("1-3:1 1-4:1 2-1:1 2-2:1 2-3:1", q894.ToToolTip());\r
228             var q280 = status.QuestCountList[10];\r
229             Assert.AreEqual("1\u200a1\u200a1\u200a1", q280.ToString());\r
230             Assert.AreEqual("1-2:1 1-3:1 1-4:1 2-1:1", q280.ToToolTip());\r
231             var q872 = status.QuestCountList.First(q => q.Id == 872);\r
232             Assert.AreEqual("1\u200a1\u200a1\u200a1", q872.ToString());\r
233             Assert.AreEqual("7-2M:1 5-5:1 6-2:1 6-5:1", q872.ToToolTip());\r
234             var q284 = status.QuestCountList.First(q => q.Id == 284);\r
235             Assert.AreEqual("1\u200a1\u200a1\u200a1", q284.ToString());\r
236             Assert.AreEqual("1-4:1 2-1:1 2-2:1 2-3:1", q284.ToToolTip());\r
237             var q226 = status.QuestCountList.First(q => q.Id == 226);\r
238             Assert.AreEqual("2/5", q226.ToString());\r
239             Assert.AreEqual("", q226.ToToolTip());\r
240             var q434 = status.QuestCountList.First(q => q.Id == 434);\r
241             Assert.AreEqual("1\u200a0\u200a1\u200a0\u200a1", q434.ToString());\r
242             Assert.AreEqual("警備任務1 海上護衛任務0 兵站強化任務1 海峡警備行動0 タンカー護衛任務1", q434.ToToolTip());\r
243             var q436 = status.QuestCountList.First(q => q.Id == 436);\r
244             Assert.AreEqual("1\u200a0\u200a1\u200a1\u200a1", q436.ToString());\r
245             Assert.AreEqual("練習航海1 長距離練習航海0 警備任務1 対潜警戒任務1 強行偵察任務1", q436.ToToolTip());\r
246             var q437 = status.QuestCountList.First(q => q.Id == 437);\r
247             Assert.AreEqual("1\u200a0\u200a1\u200a1", q437.ToString());\r
248             Assert.AreEqual("対潜警戒任務1 小笠原沖哨戒線0 小笠原沖戦闘哨戒1 南西方面航空偵察作戦1", q437.ToToolTip());\r
249             var q438 = status.QuestCountList.First(q => q.Id == 438);\r
250             Assert.AreEqual("1\u200a0\u200a1\u200a1", q438.ToString());\r
251             Assert.AreEqual("対潜警戒任務1 兵站強化任務0 タンカー護衛任務1 南西諸島捜索撃滅戦1", q438.ToToolTip());\r
252             var q439 = status.QuestCountList.First(q => q.Id == 439);\r
253             Assert.AreEqual("1\u200a0\u200a1\u200a1", q439.ToString());\r
254             Assert.AreEqual("海上護衛任務1 兵站強化任務0 ボーキサイト輸送任務1 南西方面航空偵察作戦1", q439.ToToolTip());\r
255             var q440 = status.QuestCountList.First(q => q.Id == 440);\r
256             Assert.AreEqual("1\u200a0\u200a1\u200a1\u200a1", q440.ToString());\r
257             Assert.AreEqual("海上護衛任務1 ブルネイ泊地沖哨戒0 南西海域戦闘哨戒1 水上機前線輸送1 強行鼠輸送作戦1", q440.ToToolTip());\r
258         }\r
259     }\r
260 \r
261     [TestClass]\r
262     public class QuestCounterTest\r
263     {\r
264         private JsonObject Js(object obj) => new JsonObject(obj);\r
265 \r
266         private object CreateQuestList(int[] ids) => Js(new\r
267         {\r
268             api_list =\r
269                 ids.Select(id => new\r
270                 {\r
271                     api_no = id,\r
272                     api_category = id / 100,\r
273                     api_type = 1,\r
274                     api_state = 2,\r
275                     api_title = "",\r
276                     api_detail = "",\r
277                     api_get_material = new int[0],\r
278                     api_progress_flag = 0\r
279                 })\r
280         });\r
281 \r
282         private QuestCount InjectQuest(int id)\r
283         {\r
284             InjectQuestList(new[] {id});\r
285             return _questInfo.Quests[0].Count;\r
286         }\r
287 \r
288         private void InjectQuestList(int[] ids)\r
289         {\r
290             _questInfo.InspectQuestList("api_tab_id=0", CreateQuestList(ids));\r
291         }\r
292 \r
293         private void InjectMapStart(int map, int eventId)\r
294         {\r
295             _questCounter.InspectMapStart(CreateMap(map, eventId));\r
296         }\r
297 \r
298         private void InjectMapNext(int map, int eventId)\r
299         {\r
300             _questCounter.InspectMapNext(CreateMap(map, eventId));\r
301         }\r
302 \r
303         private object CreateMap(int map, int eventId)\r
304         {\r
305             return Js(new\r
306             {\r
307                 api_maparea_id = map / 10,\r
308                 api_mapinfo_no = map % 10,\r
309                 api_event_id = eventId\r
310             });\r
311         }\r
312 \r
313         private void InjectBattleResult(string result)\r
314         {\r
315             _questCounter.InspectBattleResult(Js(new {api_win_rank = result}));\r
316         }\r
317 \r
318         private void InjectPracticeResult(string result)\r
319         {\r
320             _questCounter.InspectPracticeResult(Js(new {api_win_rank = result}));\r
321         }\r
322 \r
323         private ShipStatus[] ShipStatusList(params int[] shipTypes)\r
324         {\r
325             return shipTypes.Select(sType => ShipStatus(sType)).ToArray();\r
326         }\r
327 \r
328         private ShipStatus ShipStatus(int shipType, int specId = 0)\r
329         {\r
330             return new ShipStatus {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType}};\r
331         }\r
332 \r
333         private ShipStatus ShipStatus(int shipType, int shipClass, int specId)\r
334         {\r
335             return new ShipStatus\r
336                 {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType, ShipClass = shipClass}};\r
337         }\r
338 \r
339         private ShipStatus ShipStatus(string name)\r
340         {\r
341             return new ShipStatus {NowHp = 1, Spec = new ShipSpec {Name = name}};\r
342         }\r
343 \r
344 \r
345         private BattleInfo _battleInfo;\r
346         private ItemInfo _itemInfo;\r
347         private QuestInfo _questInfo;\r
348         private QuestCounter _questCounter;\r
349 \r
350         [TestInitialize]\r
351         public void Initialize()\r
352         {\r
353             _battleInfo = new BattleInfo(null, null, null);\r
354             _itemInfo = new ItemInfo(new ItemMaster(), new ItemInventory());\r
355             _questInfo = new QuestInfo(new QuestCountList(), () => new DateTime(2015, 1, 1));\r
356             _questCounter = new QuestCounter(_questInfo, _itemInfo, _battleInfo);\r
357         }\r
358 \r
359         /// <summary>\r
360         /// 201: 敵艦隊を撃滅せよ!\r
361         /// 210: 敵艦隊を10回邀撃せよ!\r
362         /// 214: あ号\r
363         /// 216: 敵艦隊主力を撃滅せよ!\r
364         /// </summary>\r
365         [TestMethod]\r
366         public void BattleResult_201_216_210_214()\r
367         {\r
368             InjectQuestList(new[] {201, 216, 210, 214});\r
369 \r
370             InjectMapStart(11, 4);\r
371             var counts = _questInfo.Quests.Select(q => q.Count).ToArray();\r
372             // 出撃カウント\r
373             Assert.AreEqual(214, counts[2].Id);\r
374             Assert.AreEqual(1, counts[2].NowArray[0]);\r
375             InjectBattleResult("S");\r
376             // 道中S勝利\r
377             PAssert.That(() => counts.Select(c => new {c.Id, c.Now}).SequenceEqual(new[]\r
378             {\r
379                 new {Id = 201, Now = 1}, new {Id = 210, Now = 1},\r
380                 new {Id = 214, Now = 0}, new {Id = 216, Now = 1}\r
381             }));\r
382             PAssert.That(() => counts[2].NowArray.SequenceEqual(new[] {1, 1, 0, 0}));\r
383 \r
384             InjectMapNext(11, 5);\r
385             // ボスB勝利\r
386             InjectBattleResult("B");\r
387             PAssert.That(() => counts.Select(c => new {c.Id, c.Now}).SequenceEqual(new[]\r
388             {\r
389                 new {Id = 201, Now = 2}, new {Id = 210, Now = 2},\r
390                 new {Id = 214, Now = 0}, new {Id = 216, Now = 2}\r
391             }));\r
392             // ボス敗北\r
393             PAssert.That(() => counts[2].NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
394             InjectBattleResult("C");\r
395             PAssert.That(() => counts.Select(c => new {c.Id, c.Now}).SequenceEqual(new[]\r
396             {\r
397                 new {Id = 201, Now = 2}, new {Id = 210, Now = 3},\r
398                 new {Id = 214, Now = 0}, new {Id = 216, Now = 2}\r
399             }));\r
400             PAssert.That(() => counts[2].NowArray.SequenceEqual(new[] {1, 1, 2, 1}));\r
401 \r
402             // 1-6 ゴール\r
403             InjectMapNext(16,8);\r
404             Assert.AreEqual(2, counts[0].Now);\r
405         }\r
406 \r
407         /// <summary>\r
408         /// 211: 敵空母を3隻撃沈せよ!\r
409         /// 212: 敵輸送船団を叩け!\r
410         /// 213: 海上通商破壊作戦\r
411         /// 218: 敵補給艦を3隻撃沈せよ!\r
412         /// </summary>\r
413         [TestMethod]\r
414         public void BattleResult_211_212_213_218_220_221()\r
415         {\r
416             InjectQuestList(new[] {211, 212, 213, 218, 220, 221});\r
417             // 補給艦1隻と空母2隻\r
418             _battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]\r
419             {\r
420                 new ShipStatus {NowHp = 0, MaxHp = 130, Spec = new ShipSpec {Id = 1558, ShipType = 15}},\r
421                 new ShipStatus {NowHp = 0, MaxHp = 90, Spec = new ShipSpec {Id = 1543, ShipType = 8}},\r
422                 new ShipStatus {NowHp = 0, MaxHp = 90, Spec = new ShipSpec {Id = 1543, ShipType = 8}},\r
423                 new ShipStatus {NowHp = 0, MaxHp = 96, Spec = new ShipSpec {Id = 1528, ShipType = 11}},\r
424                 new ShipStatus {NowHp = 0, MaxHp = 70, Spec = new ShipSpec {Id = 1523, ShipType = 7}},\r
425                 new ShipStatus {NowHp = 1, MaxHp = 70, Spec = new ShipSpec {Id = 1523, ShipType = 7}}\r
426             }, new ShipStatus[0]);\r
427             InjectBattleResult("A");\r
428             PAssert.That(() =>\r
429                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
430                     .SequenceEqual(new[]\r
431                     {\r
432                         new {Id = 211, Now = 2}, new {Id = 212, Now = 1}, new {Id = 213, Now = 1},\r
433                         new {Id = 218, Now = 1}, new {Id = 220, Now = 2}, new {Id = 221, Now = 1}\r
434                     }));\r
435         }\r
436 \r
437         /// <summary>\r
438         /// 228: 海上護衛戦\r
439         /// 230: 敵潜水艦を制圧せよ!\r
440         /// </summary>\r
441         [TestMethod]\r
442         public void BattleResult_228_230()\r
443         {\r
444             InjectQuestList(new[] {228, 230});\r
445             // 潜水艦3\r
446             _battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]\r
447             {\r
448                 new ShipStatus {NowHp = 0, MaxHp = 27, Spec = new ShipSpec {Id = 1532, ShipType = 13}},\r
449                 new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}},\r
450                 new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}}\r
451             }, new ShipStatus[0]);\r
452             InjectBattleResult("S");\r
453             PAssert.That(() =>\r
454                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
455                     .SequenceEqual(new[]\r
456                     {\r
457                         new {Id = 228, Now = 3}, new {Id = 230, Now = 3}\r
458                     }));\r
459         }\r
460 \r
461         /// <summary>\r
462         /// 226: 南西諸島海域の制海権を握れ!\r
463         /// </summary>\r
464         [TestMethod]\r
465         public void BattleResult_226()\r
466         {\r
467             var count = InjectQuest(226);\r
468 \r
469             InjectMapStart(21, 4);\r
470             InjectBattleResult("S");\r
471             Assert.AreEqual(0, count.Now);\r
472 \r
473             InjectMapNext(21, 5);\r
474             InjectBattleResult("S");\r
475             Assert.AreEqual(1, count.Now);\r
476             InjectBattleResult("B");\r
477             Assert.AreEqual(2, count.Now);\r
478         }\r
479 \r
480         /// <summary>\r
481         /// // 243: 南方海域珊瑚諸島沖の制空権を握れ!\r
482         /// </summary>\r
483         [TestMethod]\r
484         public void BattleResult_243()\r
485         {\r
486             var count = InjectQuest(243);\r
487 \r
488             InjectMapNext(52, 4);\r
489             InjectBattleResult("S");\r
490             Assert.AreEqual(0, count.Now);\r
491 \r
492             InjectMapNext(52, 5);\r
493             InjectBattleResult("A");\r
494             Assert.AreEqual(0, count.Now);\r
495             InjectBattleResult("S");\r
496             Assert.AreEqual(1, count.Now);\r
497         }\r
498 \r
499         /// <summary>\r
500         /// 249: 「第五戦隊」出撃せよ!\r
501         /// </summary>\r
502         [TestMethod]\r
503         public void BattleResult_249()\r
504         {\r
505             var count = InjectQuest(249);\r
506 \r
507             _battleInfo.InjectResultStatus(new[]\r
508             {\r
509                 ShipStatus("妙高改二"), ShipStatus("那智改二"), ShipStatus("羽黒改二"),\r
510                 ShipStatus("足柄改二"), ShipStatus("筑摩改二"), ShipStatus("利根改二")\r
511             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
512 \r
513             InjectMapNext(25, 4);\r
514             InjectBattleResult("S");\r
515             Assert.AreEqual(0, count.Now);\r
516 \r
517             InjectMapNext(25, 5);\r
518             InjectBattleResult("A");\r
519             Assert.AreEqual(0, count.Now);\r
520             InjectBattleResult("S");\r
521             Assert.AreEqual(1, count.Now);\r
522 \r
523             _battleInfo.Result.Friend.Main[3].NowHp = 0;\r
524             InjectBattleResult("S");\r
525             Assert.AreEqual(2, count.Now, "足柄改二轟沈");\r
526 \r
527             _battleInfo.Result.Friend.Main[1].NowHp = 0;\r
528             InjectBattleResult("S");\r
529             Assert.AreEqual(2, count.Now, "那智改二轟沈");\r
530         }\r
531 \r
532         /// <summary>\r
533         /// 257: 「水雷戦隊」南西へ!\r
534         /// </summary>\r
535         [TestMethod]\r
536         public void BattleResult_257()\r
537         {\r
538             var count = InjectQuest(257);\r
539 \r
540             _battleInfo.InjectResultStatus(\r
541                 ShipStatusList(3, 2, 2, 2, 2, 2), new ShipStatus[0],\r
542                 new ShipStatus[0], new ShipStatus[0]);\r
543 \r
544             InjectMapNext(14, 4);\r
545             InjectBattleResult("S");\r
546             Assert.AreEqual(0, count.Now);\r
547 \r
548             InjectMapNext(14, 5);\r
549             InjectBattleResult("A");\r
550             Assert.AreEqual(0, count.Now);\r
551             InjectBattleResult("S");\r
552             Assert.AreEqual(1, count.Now);\r
553             _questInfo.Quests[0].Count.Now = 0;\r
554 \r
555             _battleInfo.Result.Friend.Main[0].NowHp = 0;\r
556             InjectBattleResult("S");\r
557             Assert.AreEqual(0, count.Now, "軽巡轟沈");\r
558             _battleInfo.Result.Friend.Main[0].NowHp = 1;\r
559 \r
560             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;\r
561             _battleInfo.Result.Friend.Main[1].Spec.ShipType = 3;\r
562             InjectBattleResult("S");\r
563             Assert.AreEqual(0, count.Now, "旗艦が駆逐");\r
564             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
565 \r
566             _battleInfo.Result.Friend.Main[2].Spec.ShipType = 3;\r
567             _battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;\r
568             InjectBattleResult("S");\r
569             Assert.AreEqual(0, count.Now, "軽巡が4隻");\r
570 \r
571             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
572             _battleInfo.Result.Friend.Main[3].Spec.ShipType = 4;\r
573             InjectBattleResult("S");\r
574             Assert.AreEqual(0, count.Now, "駆逐軽巡以外");\r
575         }\r
576 \r
577         /// <summary>\r
578         /// 257: 「水上打撃部隊」南方へ!\r
579         /// </summary>\r
580         [TestMethod]\r
581         public void BattleResult_259()\r
582         {\r
583             var count = InjectQuest(259);\r
584 \r
585             var org = new[]\r
586             {\r
587                 ShipStatus(3, 52, 321), ShipStatus(9, 19, 276), ShipStatus(10, 26, 411),\r
588                 ShipStatus(10, 26, 412), ShipStatus(5, 29, 193), ShipStatus(5, 29, 194)\r
589             };\r
590             _battleInfo.InjectResultStatus(\r
591                 org.ToArray(), new ShipStatus[0],\r
592                 new ShipStatus[0], new ShipStatus[0]);\r
593 \r
594             InjectMapNext(51, 4);\r
595             InjectBattleResult("S");\r
596             Assert.AreEqual(0, count.Now);\r
597 \r
598             InjectMapNext(51, 5);\r
599             InjectBattleResult("A");\r
600             Assert.AreEqual(0, count.Now);\r
601             InjectBattleResult("S");\r
602             Assert.AreEqual(1, count.Now);\r
603             _questInfo.Quests[0].Count.Now = 0;\r
604 \r
605             _battleInfo.Result.Friend.Main[0].NowHp = 0;\r
606             InjectBattleResult("S");\r
607             Assert.AreEqual(0, count.Now, "軽巡轟沈");\r
608             _battleInfo.Result.Friend.Main[0].NowHp = 1;\r
609 \r
610             _battleInfo.Result.Friend.Main[4] = ShipStatus(9, 37, 136);\r
611             InjectBattleResult("S");\r
612             Assert.AreEqual(0, count.Now, "戦艦4隻");\r
613             _battleInfo.Result.Friend.Main[4] = org[4];\r
614 \r
615             _battleInfo.Result.Friend.Main[0] = ShipStatus(4, 4, 58);\r
616             InjectBattleResult("S");\r
617             Assert.AreEqual(0, count.Now, "軽巡なし");\r
618             _battleInfo.Result.Friend.Main[0] = org[0];\r
619 \r
620             _battleInfo.Result.Friend.Main[2] = ShipStatus(10, 2, 553);\r
621             InjectBattleResult("S");\r
622             Assert.AreEqual(1, count.Now, "伊勢改二");\r
623         }\r
624 \r
625         /// <summary>\r
626         /// 264: 「空母機動部隊」西へ!\r
627         /// </summary>\r
628         [TestMethod]\r
629         public void BattleResult_264()\r
630         {\r
631             var count = InjectQuest(264);\r
632 \r
633             _battleInfo.InjectResultStatus(\r
634                 ShipStatusList(7, 11, 3, 3, 2, 2), new ShipStatus[0],\r
635                 new ShipStatus[0], new ShipStatus[0]);\r
636 \r
637             InjectMapNext(42, 4);\r
638             InjectBattleResult("S");\r
639             Assert.AreEqual(0, count.Now);\r
640 \r
641             InjectMapNext(42, 5);\r
642             InjectBattleResult("A");\r
643             Assert.AreEqual(0, count.Now);\r
644             InjectBattleResult("S");\r
645             Assert.AreEqual(1, count.Now);\r
646 \r
647             _battleInfo.Result.Friend.Main[0].NowHp = 0;\r
648             InjectBattleResult("S");\r
649             Assert.AreEqual(1, count.Now, "轟沈あり");\r
650         }\r
651 \r
652         /// <summary>\r
653         /// 266: 「水上反撃部隊」突入せよ!\r
654         /// </summary>\r
655         [TestMethod]\r
656         public void BattleResult_266()\r
657         {\r
658             var count = InjectQuest(266);\r
659 \r
660             _battleInfo.InjectResultStatus(\r
661                 ShipStatusList(2, 5, 3, 2, 2, 2), new ShipStatus[0],\r
662                 new ShipStatus[0], new ShipStatus[0]);\r
663 \r
664             InjectMapNext(25, 4);\r
665             InjectBattleResult("S");\r
666             Assert.AreEqual(0, count.Now);\r
667 \r
668             InjectMapNext(25, 5);\r
669             InjectBattleResult("A");\r
670             Assert.AreEqual(0, count.Now);\r
671             InjectBattleResult("S");\r
672             Assert.AreEqual(1, count.Now);\r
673 \r
674             _battleInfo.Result.Friend.Main[1].NowHp = 0;\r
675             InjectBattleResult("S");\r
676             Assert.AreEqual(1, count.Now, "轟沈あり");\r
677             _battleInfo.Result.Friend.Main[1].NowHp = 1;\r
678 \r
679             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
680             _battleInfo.Result.Friend.Main[2].Spec.ShipType = 2;\r
681             InjectBattleResult("S");\r
682             Assert.AreEqual(1, count.Now, "旗艦が軽巡");\r
683             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;\r
684             _battleInfo.Result.Friend.Main[2].Spec.ShipType = 3;\r
685 \r
686             _battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;\r
687             InjectBattleResult("S");\r
688             Assert.AreEqual(1, count.Now, "軽巡が2隻");\r
689         }\r
690 \r
691         /// <summary>\r
692         /// 280: 兵站線確保!海上警備を強化実施せよ!\r
693         /// </summary>\r
694         [TestMethod]\r
695         public void BattleResult_280()\r
696         {\r
697             var count = InjectQuest(280);\r
698 \r
699             _battleInfo.InjectResultStatus(\r
700                 ShipStatusList(7, 2, 1, 1, 8, 8), new ShipStatus[0],\r
701                 new ShipStatus[0], new ShipStatus[0]);\r
702 \r
703             InjectMapNext(12, 4);\r
704             InjectBattleResult("S");\r
705             InjectMapNext(12, 5);\r
706             InjectBattleResult("A");\r
707             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
708 \r
709             InjectBattleResult("S");\r
710             InjectMapNext(13, 5);\r
711             InjectBattleResult("S");\r
712             InjectMapNext(14, 5);\r
713             InjectBattleResult("S");\r
714             InjectMapNext(21, 5);\r
715             InjectBattleResult("S");\r
716             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
717 \r
718             _battleInfo.Result.Friend.Main = ShipStatusList(7, 1, 1, 8, 8, 8);\r
719             InjectBattleResult("S");\r
720             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
721 \r
722             _battleInfo.Result.Friend.Main = ShipStatusList(8, 1, 1, 1, 8, 8);\r
723             InjectBattleResult("S");\r
724             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
725 \r
726             _battleInfo.Result.Friend.Main = ShipStatusList(3, 2, 1, 1, 8, 8);\r
727             InjectBattleResult("S");\r
728             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 2}));\r
729 \r
730             _battleInfo.Result.Friend.Main = ShipStatusList(2, 4, 2, 1, 8, 8);\r
731             InjectBattleResult("S");\r
732             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 3}));\r
733 \r
734             _battleInfo.Result.Friend.Main = ShipStatusList(2, 2, 21, 2, 8, 8);\r
735             InjectBattleResult("S");\r
736             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 4}));\r
737         }\r
738 \r
739         /// <summary>\r
740         /// 284: 南西諸島方面「海上警備行動」発令!\r
741         /// </summary>\r
742         [TestMethod]\r
743         public void BattleResult_284()\r
744         {\r
745             var count = InjectQuest(284);\r
746 \r
747             _battleInfo.InjectResultStatus(\r
748                 ShipStatusList(7, 2, 1, 1, 8, 8), new ShipStatus[0],\r
749                 new ShipStatus[0], new ShipStatus[0]);\r
750 \r
751             InjectMapNext(14, 4);\r
752             InjectBattleResult("S");\r
753             InjectMapNext(14, 5);\r
754             InjectBattleResult("A");\r
755             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
756 \r
757             InjectBattleResult("S");\r
758             InjectMapNext(21, 5);\r
759             InjectBattleResult("S");\r
760             InjectMapNext(22, 5);\r
761             InjectBattleResult("S");\r
762             InjectMapNext(23, 5);\r
763             InjectBattleResult("S");\r
764             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
765 \r
766             // 艦種チェックは280と共通\r
767         }\r
768 \r
769         /// <summary>\r
770         /// 822: 沖ノ島海域迎撃戦\r
771         /// 854: 戦果拡張任務!「Z作戦」前段作戦\r
772         /// </summary>\r
773         [TestMethod]\r
774         public void BattleResult_822_854()\r
775         {\r
776             InjectQuestList(new[] {822, 854});\r
777             var c822 = _questInfo.Quests[0].Count;\r
778             var c854 = _questInfo.Quests[1].Count;\r
779 \r
780             InjectMapNext(24, 4);\r
781             InjectBattleResult("S");\r
782 \r
783             PAssert.That(() => c854.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
784             Assert.AreEqual(0, c822.Now);\r
785 \r
786             InjectMapNext(24, 5);\r
787             InjectBattleResult("A");\r
788             InjectMapNext(61, 5);\r
789             InjectBattleResult("A");\r
790             InjectMapNext(63, 5);\r
791             InjectBattleResult("A");\r
792             InjectMapNext(64, 5);\r
793             InjectBattleResult("S");\r
794             PAssert.That(() => c854.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
795             Assert.AreEqual(0, c822.Now);\r
796             InjectMapNext(24, 5);\r
797             InjectBattleResult("S");\r
798             PAssert.That(() => c854.NowArray.SequenceEqual(new[] {2, 1, 1, 1}));\r
799             Assert.AreEqual(1, c822.Now);\r
800         }\r
801 \r
802         /// <summary>\r
803         /// 845: 発令!「西方海域作戦」\r
804         /// </summary>\r
805         [TestMethod]\r
806         public void BattleResult_845()\r
807         {\r
808             var count = InjectQuest(845);\r
809 \r
810             InjectMapNext(41, 4);\r
811             InjectBattleResult("S");\r
812             InjectMapNext(41, 5);\r
813             InjectBattleResult("A");\r
814             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}));\r
815 \r
816             InjectMapNext(41, 5);\r
817             InjectBattleResult("S");\r
818             InjectMapNext(42, 5);\r
819             InjectBattleResult("S");\r
820             InjectMapNext(43, 5);\r
821             InjectBattleResult("S");\r
822             InjectMapNext(44, 5);\r
823             InjectBattleResult("S");\r
824             InjectMapNext(45, 5);\r
825             InjectBattleResult("S");\r
826             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
827         }\r
828 \r
829         /// <summary>\r
830         /// 861: 強行輸送艦隊、抜錨!\r
831         /// </summary>\r
832         [TestMethod]\r
833         public void MapNext_861()\r
834         {\r
835             var count = InjectQuest(861);\r
836 \r
837             _battleInfo.InjectResultStatus(\r
838                 ShipStatusList(10, 22, 2, 2, 2, 2), new ShipStatus[0],\r
839                 new ShipStatus[0], new ShipStatus[0]);\r
840 \r
841             InjectMapNext(16, 4);\r
842             Assert.AreEqual(0, count.Now);\r
843 \r
844             InjectMapNext(16, 8);\r
845             Assert.AreEqual(1, count.Now);\r
846 \r
847             _battleInfo.Result.Friend.Main[1].NowHp = 0;\r
848             InjectMapNext(16, 8);\r
849             Assert.AreEqual(1, count.Now, "轟沈あり");\r
850             _battleInfo.Result.Friend.Main[1].NowHp = 1;\r
851 \r
852             _battleInfo.Result.Friend.Main[2].Spec.ShipType = 10;\r
853             InjectMapNext(16, 8);\r
854             Assert.AreEqual(1, count.Now, "補給・航戦が3隻");\r
855         }\r
856 \r
857         /// <summary>\r
858         /// 862: 前線の航空偵察を実施せよ!\r
859         /// </summary>\r
860         [TestMethod]\r
861         public void BattleResult_862()\r
862         {\r
863             var count = InjectQuest(862);\r
864 \r
865             _battleInfo.InjectResultStatus(\r
866                 ShipStatusList(2, 3, 3, 2, 2, 16), new ShipStatus[0],\r
867                 new ShipStatus[0], new ShipStatus[0]);\r
868 \r
869             InjectMapNext(63, 4);\r
870             InjectBattleResult("A");\r
871             Assert.AreEqual(0, count.Now);\r
872 \r
873             InjectMapNext(63, 5);\r
874             InjectBattleResult("B");\r
875             Assert.AreEqual(0, count.Now);\r
876             InjectBattleResult("A");\r
877             Assert.AreEqual(1, count.Now);\r
878 \r
879             _battleInfo.Result.Friend.Main[1].NowHp = 0;\r
880             InjectBattleResult("A");\r
881             Assert.AreEqual(1, count.Now, "轟沈あり");\r
882             _battleInfo.Result.Friend.Main[1].NowHp = 1;\r
883 \r
884             _battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;\r
885             _battleInfo.Result.Friend.Main[4].Spec.ShipType = 16;\r
886             InjectBattleResult("A");\r
887             Assert.AreEqual(2, count.Now, "軽巡3隻水母2隻");\r
888         }\r
889 \r
890         /// <summary>\r
891         /// 872: 戦果拡張任務!「Z作戦」後段作戦\r
892         /// </summary>\r
893         [TestMethod]\r
894         public void BattleResult_872()\r
895         {\r
896             var count = InjectQuest(872);\r
897 \r
898             InjectMapNext(55, 4);\r
899             InjectBattleResult("A");\r
900             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
901             InjectBattleResult("S");\r
902             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
903             InjectMapNext(55, 5);\r
904             InjectBattleResult("S");\r
905             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 1, 0, 0}));\r
906 \r
907             InjectMapNext(62, 5);\r
908             InjectBattleResult("S");\r
909             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 1, 1, 0}));\r
910             InjectMapNext(65, 5);\r
911             InjectBattleResult("S");\r
912             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 1, 1, 1}));\r
913             _questCounter.InspectMapNext(Js(new\r
914             {\r
915                 api_maparea_id = 7,\r
916                 api_mapinfo_no = 2,\r
917                 api_no = 15,\r
918                 api_event_id = 5\r
919             }));\r
920             InjectBattleResult("S");\r
921             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "7-2M");\r
922         }\r
923 \r
924         /// <summary>\r
925         /// 873: 北方海域警備を実施せよ!\r
926         /// </summary>\r
927         [TestMethod]\r
928         public void BattleResult_873()\r
929         {\r
930             var count = InjectQuest(873);\r
931 \r
932             _battleInfo.InjectResultStatus(\r
933                 ShipStatusList(3, 2, 2, 2, 2, 2), new ShipStatus[0],\r
934                 new ShipStatus[0], new ShipStatus[0]);\r
935 \r
936             InjectMapNext(31, 4);\r
937             InjectBattleResult("A");\r
938             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
939 \r
940             InjectMapNext(31, 5);\r
941             InjectBattleResult("B");\r
942             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
943             InjectBattleResult("A");\r
944             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0}));\r
945 \r
946             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;\r
947             InjectBattleResult("A");\r
948             Assert.AreEqual(1, _questInfo.Quests[0].Count.NowArray[0], "軽巡なし");\r
949             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
950 \r
951             InjectMapNext(32, 5);\r
952             InjectBattleResult("A");\r
953             InjectMapNext(33, 5);\r
954             InjectBattleResult("A");\r
955             Assert.IsTrue(_questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
956         }\r
957 \r
958         /// <summary>\r
959         /// 875: 精鋭「三一駆」、鉄底海域に突入せよ!\r
960         /// </summary>\r
961         [TestMethod]\r
962         public void BattleResult_875()\r
963         {\r
964             var count = InjectQuest(875);\r
965 \r
966             _battleInfo.InjectResultStatus(new[]\r
967             {\r
968                 ShipStatus("長波改二"), ShipStatus("Iowa改"), ShipStatus("Saratoga Mk.II"),\r
969                 ShipStatus("瑞鶴改二甲"), ShipStatus("望月改"), ShipStatus("朝霜改")\r
970             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
971 \r
972             InjectMapNext(54, 4);\r
973             InjectBattleResult("S");\r
974             Assert.AreEqual(0, count.Now);\r
975 \r
976             InjectMapNext(54, 5);\r
977             InjectBattleResult("A");\r
978             Assert.AreEqual(0, count.Now);\r
979             InjectBattleResult("S");\r
980             Assert.AreEqual(1, count.Now);\r
981 \r
982             _battleInfo.Result.Friend.Main[5].NowHp = 0;\r
983             InjectBattleResult("S");\r
984             Assert.AreEqual(1, count.Now, "朝霜改轟沈");\r
985             _battleInfo.Result.Friend.Main[5].NowHp = 1;\r
986 \r
987             _battleInfo.Result.Friend.Main[0] = ShipStatus("高波改");\r
988             InjectBattleResult("S");\r
989             Assert.AreEqual(1, count.Now, "長波改二なし");\r
990             _battleInfo.Result.Friend.Main[0] = ShipStatus("長波改二");\r
991 \r
992             _battleInfo.Result.Friend.Main[5] = ShipStatus("高波改");\r
993             InjectBattleResult("S");\r
994             Assert.AreEqual(2, count.Now, "高波改");\r
995             _battleInfo.Result.Friend.Main[5] = ShipStatus("沖波改");\r
996             InjectBattleResult("S");\r
997             Assert.AreEqual(3, count.Now, "沖波改");\r
998             _battleInfo.Result.Friend.Main[5] = ShipStatus("朝霜改二");\r
999             InjectBattleResult("S");\r
1000             Assert.AreEqual(4, count.Now, "朝霜改二");\r
1001         }\r
1002 \r
1003         /// <summary>\r
1004         /// 888: 新編成「三川艦隊」、鉄底海峡に突入せよ!\r
1005         /// </summary>\r
1006         [TestMethod]\r
1007         public void BattleResult_888()\r
1008         {\r
1009             var count = InjectQuest(888);\r
1010 \r
1011             _battleInfo.InjectResultStatus(new[]\r
1012             {\r
1013                 ShipStatus("鳥海改二"), ShipStatus("青葉改"), ShipStatus("衣笠改二"),\r
1014                 ShipStatus("加古改二"), ShipStatus("夕立改二"), ShipStatus("綾波改二")\r
1015             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1016 \r
1017             InjectMapNext(51, 4);\r
1018             InjectBattleResult("S");\r
1019             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
1020 \r
1021             InjectMapNext(51, 5);\r
1022             InjectBattleResult("A");\r
1023             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
1024             InjectBattleResult("S");\r
1025             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0}));\r
1026             _battleInfo.Result.Friend.Main[0].NowHp = 0;\r
1027             InjectBattleResult("S");\r
1028             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0}), "轟沈あり");\r
1029             _battleInfo.Result.Friend.Main[0].NowHp = 1;\r
1030 \r
1031             _battleInfo.Result.Friend.Main[0] = ShipStatus("妙高改二");\r
1032             InjectBattleResult("S");\r
1033             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0}), "三川艦隊3隻");\r
1034 \r
1035             _battleInfo.Result.Friend.Main[0] = ShipStatus("夕張改二特");\r
1036             InjectMapNext(53, 5);\r
1037             InjectBattleResult("S");\r
1038             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0}));\r
1039 \r
1040             _battleInfo.Result.Friend.Main[0] = ShipStatus("天龍改二");\r
1041             _battleInfo.Result.Friend.Main[1] = ShipStatus("古鷹改二");\r
1042             InjectMapNext(54, 5);\r
1043             InjectBattleResult("S");\r
1044             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
1045         }\r
1046 \r
1047         /// <summary>\r
1048         /// 893: 泊地周辺海域の安全確保を徹底せよ!\r
1049         /// </summary>\r
1050         [TestMethod]\r
1051         public void BattleResult_893()\r
1052         {\r
1053             var count = InjectQuest(893);\r
1054 \r
1055             InjectMapNext(15, 4);\r
1056             InjectBattleResult("S");\r
1057             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
1058 \r
1059             InjectMapNext(15, 5);\r
1060             InjectBattleResult("A");\r
1061             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "A勝利はカウントしない");\r
1062             InjectBattleResult("S");\r
1063             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "1-5");\r
1064 \r
1065             InjectMapNext(71, 5);\r
1066             InjectBattleResult("S");\r
1067             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}), "7-1");\r
1068 \r
1069             _questCounter.InspectMapNext(Js(new\r
1070             {\r
1071                 api_maparea_id = 7,\r
1072                 api_mapinfo_no = 2,\r
1073                 api_no = 7,\r
1074                 api_event_id = 5\r
1075             }));\r
1076             InjectBattleResult("S");\r
1077             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}), "7-2G");\r
1078 \r
1079             _questCounter.InspectMapNext(Js(new\r
1080             {\r
1081                 api_maparea_id = 7,\r
1082                 api_mapinfo_no = 2,\r
1083                 api_no = 15,\r
1084                 api_event_id = 5\r
1085             }));\r
1086             InjectBattleResult("S");\r
1087             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "7-2M");\r
1088         }\r
1089 \r
1090         /// <summary>\r
1091         /// 894: 空母戦力の投入による兵站線戦闘哨戒\r
1092         /// </summary>\r
1093         [TestMethod]\r
1094         public void BattleResult_894()\r
1095         {\r
1096             var count = InjectQuest(894);\r
1097             _battleInfo.InjectResultStatus(\r
1098                 ShipStatusList(2, 2, 2, 2, 2, 2),\r
1099                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1100 \r
1101             InjectMapNext(13, 5);\r
1102             InjectBattleResult("S");\r
1103             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "空母なしはカウントしない");\r
1104 \r
1105             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 7;\r
1106             InjectBattleResult("A");\r
1107             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "A勝利はカウントしない");\r
1108 \r
1109             InjectBattleResult("S");\r
1110             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "1-3");\r
1111 \r
1112             InjectMapNext(14, 4);\r
1113             InjectBattleResult("S");\r
1114             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "1-4");\r
1115 \r
1116             InjectMapNext(14, 5);\r
1117             InjectBattleResult("S");\r
1118             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0, 0}), "1-4");\r
1119 \r
1120             InjectMapNext(21, 5);\r
1121             InjectBattleResult("S");\r
1122             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}), "2-1");\r
1123 \r
1124             InjectMapNext(22, 5);\r
1125             InjectBattleResult("S");\r
1126             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 0}), "2-2");\r
1127 \r
1128             InjectMapNext(23, 5);\r
1129             InjectBattleResult("S");\r
1130             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}), "2-3");\r
1131         }\r
1132 \r
1133         /// <summary>\r
1134         /// 拡張「六水戦」、最前線へ!\r
1135         /// </summary>\r
1136         [TestMethod]\r
1137         public void BattleResult_903()\r
1138         {\r
1139             var count = InjectQuest(903);\r
1140             _battleInfo.InjectResultStatus(new[] {ShipStatus("夕張改二"), ShipStatus("睦月"), ShipStatus("綾波")},\r
1141                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1142 \r
1143             InjectMapNext(51, 5);\r
1144             InjectBattleResult("S");\r
1145             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "六水戦駆逐が1隻");\r
1146 \r
1147             _battleInfo.Result.Friend.Main[2] = ShipStatus("如月");\r
1148             InjectBattleResult("A");\r
1149             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "A勝利はカウントしない");\r
1150 \r
1151             InjectBattleResult("S");\r
1152             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "5-1");\r
1153 \r
1154             InjectMapNext(54, 4);\r
1155             InjectBattleResult("S");\r
1156             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "ボス以外はカウントしない");\r
1157 \r
1158             _battleInfo.Result.Friend.Main[0] = ShipStatus("夕張改");\r
1159             InjectBattleResult("S");\r
1160             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "旗艦が夕張改");\r
1161 \r
1162             _battleInfo.Result.Friend.Main = new[] {ShipStatus("睦月"), ShipStatus("如月"), ShipStatus("夕張改二")};\r
1163             InjectMapNext(54, 5);\r
1164             InjectBattleResult("S");\r
1165             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "旗艦が夕張改二ではない");\r
1166 \r
1167             _battleInfo.Result.Friend.Main = new[] {ShipStatus("夕張改二"), ShipStatus("弥生"), ShipStatus("卯月")};\r
1168             InjectMapNext(54, 5);\r
1169             InjectBattleResult("S");\r
1170             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}), "5-4");\r
1171 \r
1172             _battleInfo.Result.Friend.Main = new[] {ShipStatus("夕張改二"), ShipStatus("菊月"), ShipStatus("望月")};\r
1173             InjectMapNext(64, 5);\r
1174             InjectBattleResult("S");\r
1175             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}), "6-4");\r
1176 \r
1177             InjectMapNext(65, 5);\r
1178             InjectBattleResult("S");\r
1179             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "6-5");\r
1180 \r
1181             _battleInfo.Result.Friend.Main = new[] {ShipStatus("夕張改二"), ShipStatus("由良改")};\r
1182             InjectBattleResult("S");\r
1183             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "由良改");\r
1184 \r
1185             _battleInfo.Result.Friend.Main = new[] {ShipStatus("夕張改二"), ShipStatus("由良改二")};\r
1186             InjectBattleResult("S");\r
1187             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 2}), "由良改二");\r
1188         }\r
1189 \r
1190         /// <summary>\r
1191         /// 904: 精鋭「十九駆」、躍り出る!\r
1192         /// </summary>\r
1193         [TestMethod]\r
1194         public void BattleResult_904()\r
1195         {\r
1196             var count = InjectQuest(904);\r
1197             _battleInfo.InjectResultStatus(\r
1198                 new[] {ShipStatus("綾波改二"), ShipStatus("敷波")},\r
1199                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1200 \r
1201             InjectMapNext(25, 5);\r
1202             InjectBattleResult("S");\r
1203             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "敷波はカウントしない");\r
1204 \r
1205             _battleInfo.Result.Friend.Main[1] = ShipStatus("敷波改二");\r
1206             InjectBattleResult("A");\r
1207             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "A勝利はカウントしない");\r
1208 \r
1209             InjectBattleResult("S");\r
1210             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "2-5");\r
1211 \r
1212             InjectMapNext(34, 4);\r
1213             InjectBattleResult("S");\r
1214             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "ボス以外はカウントしない");\r
1215 \r
1216             InjectMapNext(34, 5);\r
1217             InjectBattleResult("S");\r
1218             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}), "3-4");\r
1219 \r
1220             InjectMapNext(45, 5);\r
1221             InjectBattleResult("S");\r
1222             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}), "4-5");\r
1223 \r
1224             InjectMapNext(53, 5);\r
1225             InjectBattleResult("S");\r
1226             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "5-3");\r
1227         }\r
1228 \r
1229         /// <summary>\r
1230         /// 905: 「海防艦」、海を護る!\r
1231         /// </summary>\r
1232         [TestMethod]\r
1233         public void BattleResult_905()\r
1234         {\r
1235             var count = InjectQuest(905);\r
1236             _battleInfo.InjectResultStatus(\r
1237                 ShipStatusList(1, 1, 1, 2, 2, 2),\r
1238                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1239 \r
1240             InjectMapNext(11, 5);\r
1241             InjectBattleResult("A");\r
1242             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "6隻はカウントしない");\r
1243 \r
1244             _battleInfo.Result.Friend.Main[5] = new ShipStatus();\r
1245             InjectBattleResult("B");\r
1246             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "B勝利はカウントしない");\r
1247 \r
1248             InjectBattleResult("A");\r
1249             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "1-1");\r
1250 \r
1251             InjectMapNext(12, 4);\r
1252             InjectBattleResult("A");\r
1253             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "ボス以外はカウントしない");\r
1254 \r
1255             InjectMapNext(12, 5);\r
1256             InjectBattleResult("A");\r
1257             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0, 0}), "1-2");\r
1258 \r
1259             _battleInfo.Result.Friend.Main[0] = ShipStatus(2);\r
1260             InjectMapNext(13, 5);\r
1261             InjectBattleResult("A");\r
1262             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0, 0}), "海防艦2隻はカウントしない");\r
1263 \r
1264             _battleInfo.Result.Friend.Main[0] = ShipStatus(1);\r
1265             InjectBattleResult("A");\r
1266             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}), "1-3");\r
1267 \r
1268             InjectMapNext(15, 5);\r
1269             InjectBattleResult("A");\r
1270             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 0}), "1-5");\r
1271 \r
1272             InjectMapNext(16, 8);\r
1273             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}), "1-6");\r
1274         }\r
1275 \r
1276         /// <summary>\r
1277         /// 912: 工作艦「明石」護衛任務\r
1278         /// </summary>\r
1279         [TestMethod]\r
1280         public void BattleResult_912()\r
1281         {\r
1282             var count = InjectQuest(912);\r
1283             _battleInfo.InjectResultStatus(\r
1284                 new[] {ShipStatus("明石"), ShipStatus(2), ShipStatus(2), ShipStatus(1)},\r
1285                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1286 \r
1287             InjectMapNext(13, 5);\r
1288             InjectBattleResult("A");\r
1289             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "駆逐艦2隻はカウントしない");\r
1290 \r
1291             _battleInfo.Result.Friend.Main[3] = ShipStatus(2);\r
1292             InjectBattleResult("B");\r
1293             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "B勝利はカウントしない");\r
1294 \r
1295             InjectBattleResult("A");\r
1296             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "1-3");\r
1297 \r
1298             InjectMapNext(21, 4);\r
1299             InjectBattleResult("A");\r
1300             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "ボス以外はカウントしない");\r
1301 \r
1302             _battleInfo.Result.Friend.Main[0] = ShipStatus(2);\r
1303             _battleInfo.Result.Friend.Main[1] = ShipStatus("明石");\r
1304             InjectMapNext(21, 5);\r
1305             InjectBattleResult("A");\r
1306             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "旗艦明石以外はカウントしない");\r
1307 \r
1308             _battleInfo.Result.Friend.Main[0] = ShipStatus("明石");\r
1309             _battleInfo.Result.Friend.Main[1] = ShipStatus(2);\r
1310             InjectBattleResult("A");\r
1311             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0, 0}), "2-1");\r
1312 \r
1313             InjectMapNext(22, 5);\r
1314             InjectBattleResult("A");\r
1315             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}), "2-2");\r
1316 \r
1317             InjectMapNext(23, 5);\r
1318             InjectBattleResult("A");\r
1319             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 0}), "2-3");\r
1320 \r
1321             InjectMapNext(16, 8);\r
1322             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}), "1-6");\r
1323         }\r
1324 \r
1325         /// <summary>\r
1326         /// 912: 重巡戦隊、西へ!\r
1327         /// </summary>\r
1328         [TestMethod]\r
1329         public void BattleResult_914()\r
1330         {\r
1331             var count = InjectQuest(914);\r
1332             _battleInfo.InjectResultStatus(\r
1333                 new[] {ShipStatus(5), ShipStatus(5), ShipStatus(5), ShipStatus(1)},\r
1334                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1335 \r
1336             InjectMapNext(41, 5);\r
1337             InjectBattleResult("A");\r
1338             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "駆逐艦なしはカウントしない");\r
1339 \r
1340             _battleInfo.Result.Friend.Main[3] = ShipStatus(2);\r
1341             InjectBattleResult("B");\r
1342             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "B勝利はカウントしない");\r
1343 \r
1344             InjectBattleResult("A");\r
1345             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "4-1");\r
1346 \r
1347             InjectMapNext(42, 4);\r
1348             InjectBattleResult("A");\r
1349             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "ボス以外はカウントしない");\r
1350 \r
1351             InjectMapNext(42, 5);\r
1352             _battleInfo.Result.Friend.Main[0] = ShipStatus(6);\r
1353             InjectBattleResult("A");\r
1354             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "重巡2隻はカウントしない");\r
1355 \r
1356             _battleInfo.Result.Friend.Main[0] = ShipStatus(5);\r
1357             InjectBattleResult("A");\r
1358             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}), "4-2");\r
1359 \r
1360             InjectMapNext(43, 5);\r
1361             InjectBattleResult("A");\r
1362             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}), "4-3");\r
1363 \r
1364             InjectMapNext(44, 5);\r
1365             InjectBattleResult("A");\r
1366             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "4-3");\r
1367         }\r
1368 \r
1369         /// <summary>\r
1370         /// 280と854以降を同時に遂行していると854以降がカウントされないことがある\r
1371         /// </summary>\r
1372         [TestMethod]\r
1373         public void BattleResult_280_854()\r
1374         {\r
1375             InjectQuestList(new[] {280, 854});\r
1376 \r
1377             _battleInfo.InjectResultStatus(\r
1378                 ShipStatusList(1, 1, 1, 1, 1, 1), new ShipStatus[0],\r
1379                 new ShipStatus[0], new ShipStatus[0]);\r
1380 \r
1381             InjectMapNext(24, 5);\r
1382             InjectBattleResult("S");\r
1383             Assert.AreEqual(1, _questInfo.Quests[1].Count.NowArray[0]);\r
1384         }\r
1385 \r
1386         /// <summary>\r
1387         /// 888と893以降を同時に遂行していると893以降がカウントされないことがある\r
1388         /// </summary>\r
1389         [TestMethod]\r
1390         public void BattleResult_888_893()\r
1391         {\r
1392             InjectQuestList(new[] {888, 893});\r
1393 \r
1394             _battleInfo.InjectResultStatus(\r
1395                 ShipStatusList(1, 1, 1, 1, 1, 1), new ShipStatus[0],\r
1396                 new ShipStatus[0], new ShipStatus[0]);\r
1397 \r
1398             InjectMapNext(71, 5);\r
1399             InjectBattleResult("S");\r
1400             Assert.AreEqual(1, _questInfo.Quests[1].Count.NowArray[1]);\r
1401         }\r
1402 \r
1403         /// <summary>\r
1404         /// 302: 大規模演習\r
1405         /// 303: 「演習」で練度向上!\r
1406         /// 304: 「演習」で他提督を圧倒せよ!\r
1407         /// 311: 精鋭艦隊演習\r
1408         /// 315: 春季大演習\r
1409         /// </summary>\r
1410         [TestMethod]\r
1411         public void PracticeResult_303_304_302_311_315()\r
1412         {\r
1413             InjectQuestList(new[] {302, 303, 304, 311, 315});\r
1414 \r
1415             _battleInfo.InjectResultStatus(new[]\r
1416             {\r
1417                 ShipStatus(2, 543), ShipStatus(3, 488)\r
1418             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1419             InjectPracticeResult("C");\r
1420             InjectPracticeResult("A");\r
1421             PAssert.That(() =>\r
1422                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
1423                     .SequenceEqual(new[]\r
1424                     {\r
1425                         new {Id = 302, Now = 1}, new {Id = 303, Now = 2}, new {Id = 304, Now = 1},\r
1426                         new {Id = 311, Now = 1}, new {Id = 315, Now = 1}\r
1427                     }));\r
1428         }\r
1429 \r
1430         /// <summary>\r
1431         /// 318: 給糧艦「伊良湖」の支援\r
1432         /// </summary>\r
1433         [TestMethod]\r
1434         public void PracticeResult_318()\r
1435         {\r
1436             var count = InjectQuest(318);\r
1437 \r
1438             _battleInfo.InjectResultStatus(new[]\r
1439             {\r
1440                 ShipStatus(2, 543), ShipStatus(3, 488)\r
1441             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1442 \r
1443             InjectPracticeResult("B");\r
1444             Assert.AreEqual(0, count.Now, "軽巡1隻");\r
1445             _battleInfo.Result.Friend.Main[0] = ShipStatus(3, 200);\r
1446             _questCounter.StartPractice("api%5Fdeck%5Fid=2");\r
1447             InjectPracticeResult("B");\r
1448             Assert.AreEqual(0, count.Now, "第2艦隊");\r
1449             _questCounter.StartPractice("api%5Fdeck%5Fid=1"); // 第一艦隊\r
1450             InjectPracticeResult("C");\r
1451             Assert.AreEqual(0, count.Now, "敗北");\r
1452             InjectPracticeResult("B");\r
1453             Assert.AreEqual(1, count.Now);\r
1454 \r
1455             count.Now = 2;\r
1456             InjectQuestList(new[] {318});\r
1457             Assert.AreEqual(2, count.Now, "進捗調節しない");\r
1458         }\r
1459 \r
1460         /// <summary>\r
1461         /// 330: 空母機動部隊、演習始め!\r
1462         /// </summary>\r
1463         [TestMethod]\r
1464         public void PracticeResult_330()\r
1465         {\r
1466             var count = InjectQuest(330);\r
1467 \r
1468             _battleInfo.InjectResultStatus(\r
1469                 ShipStatusList(18, 7, 2, 2),\r
1470                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1471             InjectPracticeResult("B");\r
1472             Assert.AreEqual(0, count.Now, "B勝利でカウントしない");\r
1473 \r
1474             InjectPracticeResult("A");\r
1475             Assert.AreEqual(1, count.Now, "装甲空母、軽空母");\r
1476 \r
1477             _battleInfo.Result.Friend.Main = ShipStatusList(11, 7, 2, 2);\r
1478             InjectPracticeResult("A");\r
1479             Assert.AreEqual(2, count.Now, "正規空母、軽空母");\r
1480 \r
1481             count.Now = 0;\r
1482             InjectPracticeResult("C");\r
1483             Assert.AreEqual(0, count.Now, "敗北");\r
1484 \r
1485             _battleInfo.Result.Friend.Main = ShipStatusList(2, 7, 11, 2);\r
1486             InjectPracticeResult("A");\r
1487             Assert.AreEqual(0, count.Now, "旗艦空母以外");\r
1488 \r
1489             _battleInfo.Result.Friend.Main = ShipStatusList(11, 2, 2, 2);\r
1490             InjectPracticeResult("A");\r
1491             Assert.AreEqual(0, count.Now, "空母一隻");\r
1492 \r
1493             _battleInfo.Result.Friend.Main = ShipStatusList(11, 7, 3, 2);\r
1494             InjectPracticeResult("A");\r
1495             Assert.AreEqual(0, count.Now, "駆逐一隻");\r
1496         }\r
1497 \r
1498         /// <summary>\r
1499         /// 337: 「十八駆」演習!\r
1500         /// </summary>\r
1501         [TestMethod]\r
1502         public void PracticeResult_337()\r
1503         {\r
1504             var count = InjectQuest(337);\r
1505 \r
1506             _battleInfo.InjectResultStatus(new[]\r
1507             {\r
1508                 ShipStatus("霰"), ShipStatus("霰"),\r
1509                 ShipStatus("陽炎"), ShipStatus("不知火"),\r
1510                 ShipStatus("黒潮")\r
1511             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1512             InjectPracticeResult("A");\r
1513             Assert.AreEqual(0, count.Now, "A");\r
1514             InjectPracticeResult("S");\r
1515             Assert.AreEqual(1, count.Now);\r
1516             _battleInfo.Result.Friend.Main[0] = ShipStatus("涼風");\r
1517             InjectPracticeResult("S");\r
1518             Assert.AreEqual(1, count.Now, "霰→涼風");\r
1519             _battleInfo.Result.Friend.Main[4] = ShipStatus("霞改二");\r
1520             InjectPracticeResult("S");\r
1521             Assert.AreEqual(2, count.Now, "黒潮→霞改二");\r
1522         }\r
1523 \r
1524         /// <summary>\r
1525         /// 339: 「十九駆」演習!\r
1526         /// </summary>\r
1527         [TestMethod]\r
1528         public void PracticeResult_339()\r
1529         {\r
1530             var count = InjectQuest(339);\r
1531 \r
1532             _battleInfo.InjectResultStatus(new[]\r
1533             {\r
1534                 ShipStatus("磯波"), ShipStatus("浦波"),\r
1535                 ShipStatus("綾波"), ShipStatus("敷波"),\r
1536                 ShipStatus("初雪")\r
1537             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1538             InjectPracticeResult("A");\r
1539             Assert.AreEqual(0, count.Now, "A");\r
1540             InjectPracticeResult("S");\r
1541             Assert.AreEqual(1, count.Now);\r
1542             _battleInfo.Result.Friend.Main[0] = ShipStatus("深雪");\r
1543             InjectPracticeResult("S");\r
1544             Assert.AreEqual(1, count.Now, "磯波→深雪");\r
1545         }\r
1546 \r
1547         /// <summary>\r
1548         /// 342: 小艦艇群演習強化任務\r
1549         /// </summary>\r
1550         [TestMethod]\r
1551         public void PracticeResult_342()\r
1552         {\r
1553             var count = InjectQuest(342);\r
1554 \r
1555             _battleInfo.InjectResultStatus(new[] {ShipStatus(1), ShipStatus(1), ShipStatus(2), ShipStatus(5)},\r
1556                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1557             InjectPracticeResult("A");\r
1558             Assert.AreEqual(0, count.Now);\r
1559 \r
1560             InjectPracticeResult("B");\r
1561             Assert.AreEqual(0, count.Now);\r
1562 \r
1563             _battleInfo.Result.Friend.Main[3] = ShipStatus(2);\r
1564             InjectPracticeResult("A");\r
1565             Assert.AreEqual(1, count.Now);\r
1566 \r
1567             _battleInfo.Result.Friend.Main[3] = ShipStatus(3);\r
1568             InjectPracticeResult("A");\r
1569             Assert.AreEqual(2, count.Now);\r
1570 \r
1571             _battleInfo.Result.Friend.Main[3] = ShipStatus(4);\r
1572             InjectPracticeResult("A");\r
1573             Assert.AreEqual(3, count.Now);\r
1574 \r
1575             _battleInfo.Result.Friend.Main[3] = ShipStatus(21);\r
1576             InjectPracticeResult("A");\r
1577             Assert.AreEqual(4, count.Now);\r
1578         }\r
1579 \r
1580         /// <summary>\r
1581         /// 345: 演習ティータイム!\r
1582         /// </summary>\r
1583         [TestMethod]\r
1584         public void PracticeResult_345()\r
1585         {\r
1586             var count = InjectQuest(345);\r
1587 \r
1588             _battleInfo.InjectResultStatus(new []{ShipStatus("Warspite"), ShipStatus("金剛"), ShipStatus("Ark Royal"), ShipStatus("Richelieu"), ShipStatus("Perth")},\r
1589                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1590             InjectPracticeResult("B");\r
1591             Assert.AreEqual(0, count.Now);\r
1592 \r
1593             InjectPracticeResult("A");\r
1594             Assert.AreEqual(0, count.Now);\r
1595 \r
1596             _battleInfo.Result.Friend.Main[3] = ShipStatus("Jervis");\r
1597             InjectPracticeResult("A");\r
1598             Assert.AreEqual(1, count.Now);\r
1599 \r
1600             _battleInfo.Result.Friend.Main[0] = ShipStatus("Janus");\r
1601             InjectPracticeResult("A");\r
1602             Assert.AreEqual(2, count.Now);\r
1603 \r
1604             _battleInfo.Result.Friend.Main[1] = ShipStatus("Richelieu");\r
1605             InjectPracticeResult("A");\r
1606             Assert.AreEqual(2, count.Now);\r
1607         }\r
1608 \r
1609         /// <summary>\r
1610         /// 346: 最精鋭!主力オブ主力、演習開始!\r
1611         /// </summary>\r
1612         [TestMethod]\r
1613         public void PracticeResult_346()\r
1614         {\r
1615             var count = InjectQuest(346);\r
1616 \r
1617             _battleInfo.InjectResultStatus(new []{ShipStatus("夕雲改二"), ShipStatus("巻雲改二"), ShipStatus("風雲改二"), ShipStatus("秋雲改")},\r
1618                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1619             InjectPracticeResult("A");\r
1620             Assert.AreEqual(0, count.Now);\r
1621 \r
1622             InjectPracticeResult("S");\r
1623             Assert.AreEqual(0, count.Now);\r
1624 \r
1625             _battleInfo.Result.Friend.Main[3] = ShipStatus("秋雲改二");\r
1626             InjectPracticeResult("S");\r
1627             Assert.AreEqual(1, count.Now);\r
1628 \r
1629             _battleInfo.Result.Friend.Main[0] = ShipStatus("綾波改二");\r
1630             InjectPracticeResult("S");\r
1631             Assert.AreEqual(1, count.Now);\r
1632         }\r
1633 \r
1634         /// <summary>\r
1635         /// 402: 「遠征」を3回成功させよう!\r
1636         /// 403: 「遠征」を10回成功させよう!\r
1637         /// 404: 大規模遠征作戦、発令!\r
1638         /// 410: 南方への輸送作戦を成功させよ!\r
1639         /// 411: 南方への鼠輸送を継続実施せよ!\r
1640         /// </summary>\r
1641         [TestMethod]\r
1642         public void MissionResult_402_403_404_410_411()\r
1643         {\r
1644             InjectQuestList(new[] {402, 403, 404, 410, 411});\r
1645 \r
1646             _questCounter.InspectDeck(Js(\r
1647                 new[]\r
1648                 {\r
1649                     new {api_id = 2, api_mission = new[] {2, 6}},\r
1650                     new {api_id = 3, api_mission = new[] {2, 37}},\r
1651                     new {api_id = 4, api_mission = new[] {2, 2}}\r
1652                 }));\r
1653             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1654             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 2}));\r
1655             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 0}));\r
1656             PAssert.That(() =>\r
1657                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
1658                     .SequenceEqual(new[]\r
1659                     {\r
1660                         new {Id = 402, Now = 2}, new {Id = 403, Now = 2}, new {Id = 404, Now = 2},\r
1661                         new {Id = 410, Now = 1}, new {Id = 411, Now = 1}\r
1662                     }));\r
1663         }\r
1664 \r
1665         /// <summary>\r
1666         /// 426: 海上通商航路の警戒を厳とせよ!\r
1667         /// </summary>\r
1668         [TestMethod]\r
1669         public void MissionResult_426()\r
1670         {\r
1671             var count = InjectQuest(426);\r
1672 \r
1673             _questCounter.InspectDeck(Js(\r
1674                 new[]\r
1675                 {\r
1676                     new {api_id = 2, api_mission = new[] {2, 3}},\r
1677                     new {api_id = 3, api_mission = new[] {2, 4}},\r
1678                     new {api_id = 4, api_mission = new[] {2, 5}}\r
1679                 }));\r
1680             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1681             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1682             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
1683             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));\r
1684             _questCounter.InspectDeck(Js(\r
1685                 new[]\r
1686                 {\r
1687                     new {api_id = 2, api_mission = new[] {2, 10}}\r
1688                 }));\r
1689             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1690             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
1691         }\r
1692 \r
1693         /// <summary>\r
1694         /// 428: 近海に侵入する敵潜を制圧せよ!\r
1695         /// </summary>\r
1696         [TestMethod]\r
1697         public void MissionResult_428()\r
1698         {\r
1699             var count = InjectQuest(428);\r
1700 \r
1701             _questCounter.InspectDeck(Js(\r
1702                 new[]\r
1703                 {\r
1704                     new {api_id = 2, api_mission = new[] {2, 4}},\r
1705                     new {api_id = 3, api_mission = new[] {2, 101}},\r
1706                     new {api_id = 4, api_mission = new[] {2, 102}}\r
1707                 }));\r
1708             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1709             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1710             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
1711             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
1712         }\r
1713 \r
1714         /// <summary>\r
1715         /// 434: 特設護衛船団司令部、活動開始!\r
1716         /// </summary>\r
1717         [TestMethod]\r
1718         public void MissionResult_434()\r
1719         {\r
1720             var count = InjectQuest(434);\r
1721 \r
1722             _questCounter.InspectDeck(Js(\r
1723                 new[]\r
1724                 {\r
1725                     new {api_id = 2, api_mission = new[] {2, 3}},\r
1726                     new {api_id = 3, api_mission = new[] {2, 5}},\r
1727                     new {api_id = 4, api_mission = new[] {2, 100}}\r
1728                 }));\r
1729             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1730             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1731             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
1732             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}));\r
1733 \r
1734             _questCounter.InspectDeck(Js(\r
1735                 new[]\r
1736                 {\r
1737                     new {api_id = 2, api_mission = new[] {2, 101}},\r
1738                     new {api_id = 3, api_mission = new[] {2, 9}}\r
1739                 }));\r
1740             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1741             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1742             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
1743         }\r
1744 \r
1745         /// <summary>\r
1746         /// 436: 練習航海及び警備任務を実施せよ!\r
1747         /// </summary>\r
1748         [TestMethod]\r
1749         public void MissionResult_436()\r
1750         {\r
1751             var count = InjectQuest(436);\r
1752 \r
1753             _questCounter.InspectDeck(Js(\r
1754                 new[]\r
1755                 {\r
1756                     new {api_id = 2, api_mission = new[] {2, 1}},\r
1757                     new {api_id = 3, api_mission = new[] {2, 2}},\r
1758                     new {api_id = 4, api_mission = new[] {2, 3}}\r
1759                 }));\r
1760             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1761             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1762             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
1763             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}));\r
1764 \r
1765             _questCounter.InspectDeck(Js(\r
1766                 new[]\r
1767                 {\r
1768                     new {api_id = 2, api_mission = new[] {2, 4}},\r
1769                     new {api_id = 3, api_mission = new[] {2, 10}}\r
1770                 }));\r
1771             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1772             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1773             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
1774         }\r
1775 \r
1776         /// <summary>\r
1777         /// 437: 小笠原沖哨戒線の強化を実施せよ!\r
1778         /// </summary>\r
1779         [TestMethod]\r
1780         public void MissionResult_437()\r
1781         {\r
1782             var count = InjectQuest(437);\r
1783 \r
1784             _questCounter.InspectDeck(Js(\r
1785                 new[]\r
1786                 {\r
1787                     new {api_id = 2, api_mission = new[] {2, 4}},\r
1788                     new {api_id = 3, api_mission = new[] {2, 104}},\r
1789                     new {api_id = 4, api_mission = new[] {2, 105}}\r
1790                 }));\r
1791             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1792             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1793             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
1794             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));\r
1795 \r
1796             _questCounter.InspectDeck(Js(\r
1797                 new[]\r
1798                 {\r
1799                     new {api_id = 2, api_mission = new[] {2, 110}}\r
1800                 }));\r
1801             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1802             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
1803         }\r
1804 \r
1805         /// <summary>\r
1806         /// 438: 南西諸島方面の海上護衛を強化せよ!\r
1807         /// </summary>\r
1808         [TestMethod]\r
1809         public void MissionResult_438()\r
1810         {\r
1811             var count = InjectQuest(438);\r
1812 \r
1813             _questCounter.InspectDeck(Js(\r
1814                 new[]\r
1815                 {\r
1816                     new {api_id = 2, api_mission = new[] {2, 4}},\r
1817                     new {api_id = 3, api_mission = new[] {2, 100}},\r
1818                     new {api_id = 4, api_mission = new[] {2, 9}}\r
1819                 }));\r
1820             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new { api_clear_result = 1 }));\r
1821             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new { api_clear_result = 1 }));\r
1822             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new { api_clear_result = 1 }));\r
1823             PAssert.That(() => count.NowArray.SequenceEqual(new[] { 1, 1, 1, 0 }));\r
1824 \r
1825             _questCounter.InspectDeck(Js(\r
1826                 new[]\r
1827                 {\r
1828                     new {api_id = 2, api_mission = new[] {2, 114}}\r
1829                 }));\r
1830             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new { api_clear_result = 1 }));\r
1831             PAssert.That(() => count.NowArray.SequenceEqual(new[] { 1, 1, 1, 1 }));\r
1832         }\r
1833 \r
1834         /// <summary>\r
1835         /// 439: 兵站強化遠征任務【基本作戦】\r
1836         /// </summary>\r
1837         [TestMethod]\r
1838         public void MissionResult_439()\r
1839         {\r
1840             var count = InjectQuest(439);\r
1841 \r
1842             _questCounter.InspectDeck(Js(\r
1843                 new[]\r
1844                 {\r
1845                     new {api_id = 2, api_mission = new[] {2, 5}},\r
1846                     new {api_id = 3, api_mission = new[] {2, 100}},\r
1847                     new {api_id = 4, api_mission = new[] {2, 11}}\r
1848                 }));\r
1849             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1850             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1851             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
1852             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));\r
1853 \r
1854             _questCounter.InspectDeck(Js(\r
1855                 new[]\r
1856                 {\r
1857                     new {api_id = 2, api_mission = new[] {2, 110}}\r
1858                 }));\r
1859             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1860             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
1861         }\r
1862 \r
1863         /// <summary>\r
1864         /// 440: 兵站強化遠征任務【拡張作戦】\r
1865         /// </summary>\r
1866         [TestMethod]\r
1867         public void MissionResult_440()\r
1868         {\r
1869             var count = InjectQuest(440);\r
1870 \r
1871             _questCounter.InspectDeck(Js(\r
1872                 new[]\r
1873                 {\r
1874                     new {api_id = 2, api_mission = new[] {2, 41}},\r
1875                     new {api_id = 3, api_mission = new[] {2, 5}},\r
1876                     new {api_id = 4, api_mission = new[] {2, 40}}\r
1877                 }));\r
1878             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1879             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1880             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
1881             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 1, 0}));\r
1882 \r
1883             _questCounter.InspectDeck(Js(\r
1884                 new[]\r
1885                 {\r
1886                     new {api_id = 2, api_mission = new[] {2, 142}},\r
1887                     new {api_id = 3, api_mission = new[] {2, 46}}\r
1888                 }));\r
1889             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1890             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new { api_clear_result = 1 }));\r
1891             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
1892         }\r
1893 \r
1894         /// <summary>\r
1895         /// 503: 艦隊大整備!\r
1896         /// 504: 艦隊酒保祭り!\r
1897         /// </summary>\r
1898         [TestMethod]\r
1899         public void PowerUp_503_504()\r
1900         {\r
1901             InjectQuestList(new[] {503, 504});\r
1902 \r
1903             _questCounter.CountNyukyo();\r
1904             _questCounter.CountCharge();\r
1905             PAssert.That(() =>\r
1906                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
1907                     .SequenceEqual(new[] {new {Id = 503, Now = 1}, new {Id = 504, Now = 1}}));\r
1908         }\r
1909 \r
1910         /// <summary>\r
1911         /// 605: 新装備「開発」指令\r
1912         /// 606: 新造艦「建造」指令\r
1913         /// 607: 装備「開発」集中強化!\r
1914         /// 608: 艦娘「建造」艦隊強化!\r
1915         /// 609: 軍縮条約対応!\r
1916         /// 619: 装備の改修強化\r
1917         /// </summary>\r
1918         [TestMethod]\r
1919         public void Kousyou_605_606_607_608_609_619()\r
1920         {\r
1921             InjectQuestList(new[] {605, 606, 607, 608, 609, 619});\r
1922 \r
1923             _questCounter.InspectCreateItem(\r
1924                 "api_verno=1&api_item1=10&api_item2=10&api_item3=30&api_item4=10&api_multiple_flag=0");\r
1925             _questCounter.InspectCreateItem(\r
1926                 "api_verno=1&api_item1=10&api_item2=10&api_item3=30&api_item4=10&api_multiple_flag=1");\r
1927             _questCounter.CountCreateShip();\r
1928             _questCounter.InspectDestroyShip("api%5Fship%5Fid=98159%2C98166%2C98168&api%5Fverno=1");\r
1929             _questCounter.CountRemodelSlot();\r
1930             PAssert.That(() =>\r
1931                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
1932                     .SequenceEqual(new[]\r
1933                     {\r
1934                         new {Id = 605, Now = 4}, new {Id = 606, Now = 1}, new {Id = 607, Now = 4},\r
1935                         new {Id = 608, Now = 1}, new {Id = 609, Now = 3}, new {Id = 619, Now = 1}\r
1936                     }));\r
1937         }\r
1938 \r
1939         /// <summary>\r
1940         /// 613: 資源の再利用\r
1941         /// 638: 対空機銃量産\r
1942         /// 643: 主力「陸攻」の調達\r
1943         /// 645: 「洋上補給」物資の調達\r
1944         /// 653: 工廠稼働!次期作戦準備!\r
1945         /// 663: 新型艤装の継続研究\r
1946         /// 673: 装備開発力の整備\r
1947         /// 674: 工廠環境の整備\r
1948         /// 675: 運用装備の統合整備\r
1949         /// 676: 装備開発力の集中整備\r
1950         /// 677: 継戦支援能力の整備\r
1951         /// 678: 主力艦上戦闘機の更新\r
1952         /// 680: 対空兵装の整備拡充\r
1953         /// 688: 航空戦力の強化\r
1954         /// </summary>\r
1955         [TestMethod]\r
1956         public void DestroyItem_613_638_643_645_653_663_673_674_675_676_677_678_680_686_688()\r
1957         {\r
1958             _itemInfo.InjectItemSpec(new[]\r
1959             {\r
1960                 new ItemSpec {Id = 1, Name = "12cm単装砲", Type = 1},\r
1961                 new ItemSpec {Id = 37, Name = "7.7mm機銃", Type = 21},\r
1962                 new ItemSpec {Id = 19, Name = "九六式艦戦", Type = 6},\r
1963                 new ItemSpec {Id = 4, Name = "14cm単装砲", Type = 2},\r
1964                 new ItemSpec {Id = 11, Name = "15.2cm単装砲", Type = 4},\r
1965                 new ItemSpec {Id = 75, Name = "ドラム缶(輸送用)", Type = 30},\r
1966                 new ItemSpec {Id = 7, Name = "35.6cm連装砲", Type = 3},\r
1967                 new ItemSpec {Id = 25, Name = "零式水上偵察機", Type = 10},\r
1968                 new ItemSpec {Id = 13, Name = "61cm三連装魚雷", Type = 5},\r
1969                 new ItemSpec {Id = 20, Name = "零式艦戦21型", Type = 6},\r
1970                 new ItemSpec {Id = 28, Name = "22号水上電探", Type = 12},\r
1971                 new ItemSpec {Id = 31, Name = "32号水上電探", Type = 13},\r
1972                 new ItemSpec {Id = 35, Name = "三式弾", Type = 18},\r
1973                 new ItemSpec {Id = 23, Name = "九九式艦爆", Type = 7},\r
1974                 new ItemSpec {Id = 16, Name = "九七式艦攻", Type = 8},\r
1975                 new ItemSpec {Id = 3, Name = "10cm連装高角砲", Type = 1},\r
1976                 new ItemSpec {Id = 121, Name = "94式高射装置", Type = 36}\r
1977             });\r
1978             var items = new[] {1, 37, 19, 4, 11, 75, 7, 25, 13, 20, 28, 31, 35, 23, 16, 3, 121};\r
1979             _itemInfo.InjectItems(items);\r
1980             var questList = new[] {613, 638, 643, 645, 653, 663, 673, 674, 675, 676, 677, 678, 680, 686, 688};\r
1981             InjectQuestList(questList);\r
1982             _questCounter.InspectDestroyItem(\r
1983                 $"api%5Fslotitem%5Fids={string.Join("%2C", Enumerable.Range(1, items.Length))}&api%5Fverno=1");\r
1984             var scalar = new[]\r
1985             {\r
1986                 new {Id = 613, Now = 1}, new {Id = 638, Now = 1}, new {Id = 643, Now = 1}, new {Id = 645, Now = 1},\r
1987                 new {Id = 653, Now = 1}, new {Id = 663, Now = 1}, new {Id = 673, Now = 2}, new {Id = 674, Now = 1}\r
1988             };\r
1989             foreach (var e in scalar)\r
1990             {\r
1991                 var c = Array.Find(_questInfo.Quests, q => q.Id == e.Id).Count;\r
1992                 Assert.AreEqual(e.Id, c.Id);\r
1993                 Assert.AreEqual(e.Now, c.Now, $"{c.Id}");\r
1994             }\r
1995             var array = new[]\r
1996             {\r
1997                 new {Id = 675, NowArray = new[] {2, 1}}, new {Id = 676, NowArray = new[] {1, 1, 1}},\r
1998                 new {Id = 677, NowArray = new[] {1, 1, 1}}, new {Id = 678, NowArray = new[] {1, 1}},\r
1999                 new {Id = 680, NowArray = new[] {1, 2}}, new {Id = 686, NowArray = new[] {1, 1}},\r
2000                 new {Id = 688, NowArray = new[] {2, 1, 1, 1}}\r
2001             };\r
2002             foreach (var e in array)\r
2003             {\r
2004                 var c = Array.Find(_questInfo.Quests, q => q.Id == e.Id).Count;\r
2005                 Assert.AreEqual(e.Id, c.Id);\r
2006                 PAssert.That(() => c.NowArray.SequenceEqual(e.NowArray), $"{c.Id}");\r
2007             }\r
2008         }\r
2009 \r
2010         /// <summary>\r
2011         /// 702: 艦の「近代化改修」を実施せよ!\r
2012         /// 703: 「近代化改修」を進め、戦備を整えよ!\r
2013         /// </summary>\r
2014         [TestMethod]\r
2015         public void PowerUp_702_703()\r
2016         {\r
2017             InjectQuestList(new[] {702, 703});\r
2018             _questCounter.InspectPowerUp(Js(new {api_powerup_flag = 1}));\r
2019             PAssert.That(() =>\r
2020                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
2021                     .SequenceEqual(new[] {new {Id = 702, Now = 1}, new {Id = 703, Now = 1}}));\r
2022         }\r
2023     }\r
2024 }