From: Kazuhiro Fujieda Date: Mon, 11 Dec 2017 11:51:55 +0000 (+0900) Subject: 解体の一括解体と装備保管に対応する X-Git-Tag: v9.37~1 X-Git-Url: http://git.osdn.net/view?p=kancollesniffer%2FKancolleSniffer.git;a=commitdiff_plain;h=7adeba32af9cf19c7174215aadc2f8fce8f4bbb4 解体の一括解体と装備保管に対応する --- diff --git a/KancolleSniffer.Test/SnifferTest.cs b/KancolleSniffer.Test/SnifferTest.cs index 31c8199..480ac46 100644 --- a/KancolleSniffer.Test/SnifferTest.cs +++ b/KancolleSniffer.Test/SnifferTest.cs @@ -647,5 +647,18 @@ namespace KancolleSniffer.Test SniffLogFile(sniffer, "nyukyo_001"); PAssert.That(() => sniffer.RepairList.Length == 1); } + + /// + /// 一括解体する(装備保管なしとあり) + /// + [TestMethod] + public void DestroyShip() + { + var sniffer = new Sniffer(); + SniffLogFile(sniffer, "destroyship_001"); + PAssert.That(() => sniffer.Item.NowShips == 250); + PAssert.That(() => sniffer.Item.NowEquips == 1118); + PAssert.That(() => sniffer.Material.Current.Take(4).SequenceEqual(new[] {285615, 286250, 291010, 284744})); + } } } \ No newline at end of file diff --git a/KancolleSniffer.Test/logs b/KancolleSniffer.Test/logs index c3b3e41..db10704 160000 --- a/KancolleSniffer.Test/logs +++ b/KancolleSniffer.Test/logs @@ -1 +1 @@ -Subproject commit c3b3e410489d0b02b9a6cb5a1e261c5b5f596c13 +Subproject commit db107042fc086e42a82afb693c2a5052993a82fd diff --git a/KancolleSniffer/ShipInfo.cs b/KancolleSniffer/ShipInfo.cs index 1950b27..6dc696b 100644 --- a/KancolleSniffer/ShipInfo.cs +++ b/KancolleSniffer/ShipInfo.cs @@ -298,13 +298,17 @@ namespace KancolleSniffer public void InspectDestroyShip(string request, dynamic json) { var values = HttpUtility.ParseQueryString(request); - var ship = int.Parse(values["api_ship_id"]); - _itemInfo.NowShips--; - _itemInfo.DeleteItems(_shipInfo[ship].Slot); - var of = FindFleet(ship, out var oi); - if (of != -1) - WithdrowShip(of, oi); - _shipInfo.Remove(ship); + var delitem = int.Parse(values["api_slot_dest_flag"] ?? "0") == 1; + foreach (var ship in values["api_ship_id"].Split(',').Select(int.Parse)) + { + _itemInfo.NowShips--; + if (delitem) + _itemInfo.DeleteItems(_shipInfo[ship].Slot); + var of = FindFleet(ship, out var oi); + if (of != -1) + WithdrowShip(of, oi); + _shipInfo.Remove(ship); + } } public void InspectCombined(string request)