}\r
\r
/// <summary>\r
+ /// 近代化改修が二重に行われた場合に対応する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void DuplicatedPowerup()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "powerup_002");\r
+ PAssert.That(() => sniffer.Item.NowShips == 218);\r
+ }\r
+\r
+ /// <summary>\r
/// 改修による資材の減少をすぐに反映する\r
/// </summary>\r
[TestMethod]\r
public void InspectPowerup(string request, dynamic json)\r
{\r
var values = HttpUtility.ParseQueryString(request);\r
- var ships = values["api_id_items"].Split(',');\r
+ var ships = values["api_id_items"].Split(',').Select(int.Parse).ToArray();\r
+ if (!_shipInfo.ContainsKey(ships[0])) // 二重に実行された場合\r
+ return;\r
_itemInfo.NowShips -= ships.Length;\r
- _itemInfo.DeleteItems(ships.SelectMany(s => _shipInfo[int.Parse(s)].Slot).ToArray());\r
- foreach (var ship in ships)\r
- _shipInfo.Remove(int.Parse(ship));\r
+ _itemInfo.DeleteItems(ships.SelectMany(id => _shipInfo[id].Slot).ToArray());\r
+ foreach (var id in ships)\r
+ _shipInfo.Remove(id);\r
InspectDeck(json.api_deck);\r
InspectShip(json);\r
}\r