OSDN Git Service

補強増設スロットの装備状況が装備一覧に反映されないのを直す
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer / ShipInfo.cs
index 5e39aa3..215446e 100644 (file)
@@ -52,6 +52,7 @@ namespace KancolleSniffer
         public ShipStatus()\r
         {\r
             Id = -1;\r
+            Fleet = -1;\r
             Spec = new ShipSpec();\r
             OnSlot = new int[0];\r
             Slot = new ItemStatus[0];\r
@@ -200,7 +201,9 @@ namespace KancolleSniffer
 \r
         public object Clone()\r
         {\r
-            return MemberwiseClone();\r
+            var r = (ShipStatus)MemberwiseClone();\r
+            r.Slot = r.Slot.ToArray(); // 戦闘中のダメコンの消費が見えないように複製する\r
+            return r;\r
         }\r
     }\r
 \r
@@ -250,7 +253,6 @@ namespace KancolleSniffer
         private int _hqLevel;\r
         private readonly List<int> _escapedShips = new List<int>();\r
         private int _combinedFleetType;\r
-        private readonly int[][] _presetDeck = new int[8][];\r
 \r
         public ShipInfo(ItemInfo itemInfo)\r
         {\r
@@ -298,7 +300,7 @@ namespace KancolleSniffer
                 InspectDeck(json.api_deck_data);\r
                 InspectShipData(json.api_ship_data);\r
             }\r
-            else if (json.api_ship()) // getship\r
+            else if (json.api_ship()) // getshipとpowerup\r
             {\r
                 InspectShipData(new[] {json.api_ship});\r
             }\r
@@ -430,7 +432,7 @@ namespace KancolleSniffer
             foreach (var ship in ships)\r
                 _shipInfo.Remove(int.Parse(ship));\r
             InspectDeck(json.api_deck);\r
-            InspectShip(json.api_ship);\r
+            InspectShip(json);\r
         }\r
 \r
         public void InspectSlotExchange(string request, dynamic json)\r
@@ -458,32 +460,12 @@ namespace KancolleSniffer
             _shipInfo.Remove(ship);\r
         }\r
 \r
-        public void InspectPresetDeck(dynamic json)\r
-        {\r
-            foreach (KeyValuePair<string, dynamic> entry in json.api_deck)\r
-                InspectPresetRegister(entry.Value);\r
-        }\r
-\r
-        public void InspectPresetRegister(dynamic json)\r
-        {\r
-            var no = (int)json.api_preset_no - 1;\r
-            _presetDeck[no] = json.api_ship;\r
-        }\r
-\r
-        public void InspectPresetDelete(string request)\r
-        {\r
-            var values = HttpUtility.ParseQueryString(request);\r
-            _presetDeck[int.Parse(values["api_preset_no"]) - 1] = null;\r
-        }\r
-\r
         public void InspectCombined(string request)\r
         {\r
             var values = HttpUtility.ParseQueryString(request);\r
             _combinedFleetType = int.Parse(values["api_combined_type"]);\r
         }\r
 \r
-        public int[][] PresetDeck => _presetDeck;\r
-\r
         public void InspectMapStart(string request)\r
         {\r
             var values = HttpUtility.ParseQueryString(request);\r
@@ -527,6 +509,16 @@ namespace KancolleSniffer
             return s;\r
         }\r
 \r
+        public void SetItemHolder()\r
+        {\r
+            foreach (var ship in _shipInfo.Values)\r
+            {\r
+                foreach (var item in ship.Slot)\r
+                    _itemInfo.GetStatus(item.Id).Holder = ship;\r
+                _itemInfo.GetStatus(ship.SlotEx.Id).Holder = ship;\r
+            }\r
+        }\r
+\r
         public ShipSpec GetSpec(int id) => _shipMaster[id];\r
 \r
         public bool InMission(int fleet) => _inMission[fleet];\r