{\r
private readonly ItemMaster _itemMaster;\r
private readonly ItemInventory _itemInventory;\r
+ private readonly Dictionary<int, int> _useItem = new Dictionary<int, int>();\r
+\r
public AlarmCounter Counter { get; }\r
\r
public ItemInfo(ItemMaster itemMaster, ItemInventory itemInventory)\r
}\r
}\r
\r
+ public void InspectUseItem(dynamic json)\r
+ {\r
+ foreach (var entry in json)\r
+ {\r
+ _useItem[(int)entry.api_id] = (int)entry.api_count;\r
+ }\r
+ }\r
+\r
public void InspectCreateItem(dynamic json)\r
{\r
\r
item.Holder = new ShipStatus();\r
}\r
\r
- public ItemStatus[] ItemList => _itemInventory.AllItems.ToArray();\r
+ public ItemStatus[] ItemList => _itemInventory.AllItems.Concat(UseItemList).ToArray();\r
\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
+ Holder = new ShipStatus()\r
+ }, _useItem.TryGetValue(EmergencyRepairId, out var count) ? count : 0);\r
+\r
public void InjectItemSpec(IEnumerable<ItemSpec> specs)\r
{\r
foreach (var spec in specs)\r
set => _itemSpecs[id] = value;\r
}\r
\r
- public string GetUseItemName(int id) => _useItemName[id];\r
+ public string GetUseItemName(int id) => _useItemName.TryGetValue(id, out var name) ? name : "";\r
}\r
}
\ No newline at end of file
if (url.EndsWith("api_get_member/require_info"))\r
{\r
_itemInfo.InspectSlotItem(data.api_slot_item, true);\r
+ _itemInfo.InspectUseItem(data.api_useitem);\r
_dockInfo.InspectKDock(data.api_kdock);\r
return Update.None;\r
}\r
_itemInfo.InspectSlotItem(data, true);\r
return Update.Item;\r
}\r
+ if (url.EndsWith("api_get_member/useitem"))\r
+ {\r
+ _itemInfo.InspectUseItem(data);\r
+ return Update.Item;\r
+ }\r
if (url.EndsWith("api_get_member/kdock"))\r
{\r
_dockInfo.InspectKDock(data);\r