_questCounter.InspectPowerUp("api_id=4&api_id_items=5,6,7", Js(new {api_powerup_flag = 1}));\r
Assert.AreEqual(1, q715.Now);\r
}\r
+\r
+ /// <summary>\r
+ /// 716: 「軽巡」級の改修工事を実施せよ!\r
+ /// 717: 続:「軽巡」級の改修工事を実施せよ!\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void PowerUp_716_717()\r
+ {\r
+ var ships = new[]\r
+ {\r
+ ShipStatus(3), ShipStatus(3), ShipStatus(4), ShipStatus(21),\r
+ ShipStatus(5), ShipStatus(6), ShipStatus(6)\r
+ };\r
+ _shipInventory.Add(ships.Select((s, i) =>\r
+ {\r
+ s.Id = i + 1;\r
+ return s;\r
+ }));\r
+\r
+ var q716 = InjectQuest(716);\r
+ _questCounter.InspectPowerUp("api_id=1&api_id_items=2,3", Js(new {api_powerup_flag = 1}));\r
+ Assert.AreEqual(0, q716.Now);\r
+ _questCounter.InspectPowerUp("api_id=1&api_id_items=2,3,5", Js(new {api_powerup_flag = 1}));\r
+ Assert.AreEqual(0, q716.Now);\r
+ _questCounter.InspectPowerUp("api_id=5&api_id_items=2,3,4", Js(new {api_powerup_flag = 1}));\r
+ Assert.AreEqual(0, q716.Now);\r
+ _questCounter.InspectPowerUp("api_id=1&api_id_items=2,3,4", Js(new {api_powerup_flag = 1}));\r
+ Assert.AreEqual(1, q716.Now);\r
+\r
+ var q717 = InjectQuest(717);\r
+ _questCounter.InspectPowerUp("api_id=1&api_id_items=3,4,5", Js(new {api_powerup_flag = 1}));\r
+ Assert.AreEqual(0, q717.Now);\r
+ _questCounter.InspectPowerUp("api_id=1&api_id_items=5,6,7", Js(new {api_powerup_flag = 1}));\r
+ Assert.AreEqual(1, q717.Now);\r
+ }\r
+\r
}\r
}
\ No newline at end of file
{703, new QuestPowerUp {Interval = Weekly, Max = 15, Material = new[] {1, 0, 2, 0}}}, // 703: 「近代化改修」を進め、戦備を整えよ!\r
{714, new QuestPowerUp {Interval = Yearly11, Max = 2, Material = new[] {0, 2, 2, 0}}}, // 714: 「駆逐艦」の改修工事を実施せよ!\r
{715, new QuestPowerUp {Interval = Yearly11, Max = 2, Material = new[] {0, 2, 3, 2}}}, // 715: 続:「駆逐艦」の改修工事を実施せよ!\r
+ {716, new QuestPowerUp {Interval = Yearly2, Max = 2, Material = new[] {0, 2, 3, 0}}}, // 716: 「軽巡」級の改修工事を実施せよ!\r
+ {717, new QuestPowerUp {Interval = Yearly2, Max = 2, Material = new[] {0, 0, 4, 2}}}, // 717: 続:「軽巡」級の改修工事を実施せよ!\r
};\r
// @formatter:on\r
\r
{\r
if ((int)json.api_powerup_flag == 0)\r
return;\r
+ var values = HttpUtility.ParseQueryString(request);\r
foreach (var quest in _quests.Values)\r
{\r
var count = quest.Count;\r
continue;\r
if (quest.Id == 714 || quest.Id == 715)\r
{\r
- var values = HttpUtility.ParseQueryString(request);\r
- if (_shipInventory[int.Parse(values["api_id"])].Spec.ShipType != 2)\r
+ if (ShipTypeById(values["api_id"]) != 2)\r
return;\r
- var ships = values["api_id_items"].Split(',').Select(id => _shipInventory[int.Parse(id)]).ToArray();\r
- var type = quest.Id == 714 ? 2 : quest.Id == 715 ? 3 : -1;\r
- if (ships.Count(s => s.Spec.ShipType == type) < 3)\r
+ var ships = values["api_id_items"].Split(',').Select(ShipTypeById).ToArray();\r
+ var required = quest.Id == 714 ? 2 : quest.Id == 715 ? 3 : -1;\r
+ if (ships.Count(type => type == required) < 3)\r
return;\r
}\r
+ if (quest.Id == 716 || quest.Id == 717)\r
+ {\r
+ if (!new[] {3, 4, 21}.Contains(ShipTypeById(values["api_id"])))\r
+ return;\r
+ var ships = values["api_id_items"].Split(',').Select(ShipTypeById).ToArray();\r
+ if (quest.Id == 716)\r
+ {\r
+ if (ships.Count(type => new[] {3, 4, 21}.Contains(type)) < 3)\r
+ return;\r
+ }\r
+ else\r
+ {\r
+ if (ships.Count(type => new[] {5, 6}.Contains(type)) < 3)\r
+ return;\r
+ }\r
+ }\r
Increment(count);\r
}\r
}\r
\r
+ private int ShipTypeById(string id)\r
+ {\r
+ return _shipInventory[int.Parse(id)].Spec.ShipType;\r
+ }\r
+\r
private void Increment(QuestCount count)\r
{\r
Add(count, 1);\r