OSDN Git Service

装備一覧が何も変化がなくても更新されるのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 22 Mar 2020 11:41:46 +0000 (20:41 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 22 Mar 2020 11:41:46 +0000 (20:41 +0900)
KancolleSniffer/Model/ItemInfo.cs
KancolleSniffer/Model/ItemMaster.cs

index 7694521..1952309 100644 (file)
@@ -131,19 +131,12 @@ namespace KancolleSniffer.Model
 \r
         public string GetUseItemName(int id) => _itemMaster.GetUseItemName(id);\r
 \r
-        private const int EmergencyRepairId = 91;\r
-\r
         private IEnumerable<ItemStatus> UseItemList =>\r
             Enumerable.Repeat(new ItemStatus\r
             {\r
-                Spec = new ItemSpec\r
-                {\r
-                    Type = 31,\r
-                    Id = 10000 + EmergencyRepairId,\r
-                    Name = _itemMaster.GetUseItemName(EmergencyRepairId)\r
-                },\r
+                Spec = GetSpecByItemId(ItemMaster.EmergencyRepairSpecId),\r
                 Holder = new ShipStatus()\r
-            }, _useItem.TryGetValue(EmergencyRepairId, out var count) ? count : 0);\r
+            }, _useItem.TryGetValue(ItemMaster.EmergencyRepairId, out var count) ? count : 0);\r
 \r
         public void InjectItemSpec(IEnumerable<ItemSpec> specs)\r
         {\r
index 69fe6d6..c0bfc2c 100644 (file)
@@ -21,6 +21,9 @@ namespace KancolleSniffer.Model
         private readonly Dictionary<int, ItemSpec> _itemSpecs = new Dictionary<int, ItemSpec>();\r
         private readonly Dictionary<int, string> _useItemName = new Dictionary<int, string>();\r
 \r
+        public const int EmergencyRepairId = 91;\r
+        public const int EmergencyRepairSpecId = 10091;\r
+\r
         public AdditionalData AdditionalData { get; set; }\r
 \r
         public void InspectMaster(dynamic json)\r
@@ -54,7 +57,19 @@ namespace KancolleSniffer.Model
             }\r
             _itemSpecs[-1] = _itemSpecs[0] = new ItemSpec();\r
             foreach (var entry in json.api_mst_useitem)\r
-                _useItemName[(int)entry.api_id] = entry.api_name;\r
+            {\r
+                var id = (int)entry.api_id;\r
+                _useItemName[id] = entry.api_name;\r
+            }\r
+            if (_useItemName.ContainsKey(EmergencyRepairId))\r
+            {\r
+                _itemSpecs[EmergencyRepairSpecId] = new ItemSpec\r
+                {\r
+                    Type = 31,\r
+                    Id = EmergencyRepairSpecId,\r
+                    Name = _useItemName[EmergencyRepairId]\r
+                };\r
+            }\r
         }\r
 \r
         public ItemSpec this[int id]\r