void UpdatePlayerInventory(EventUpdatePlayerInventory wearableEvent) { var id = GetName(wearableEvent.combinedWearable); var wearable = wearableEvent.combinedWearable; if (!CombinedWearableExists(id)) { wearable = GenerateNewCombinedWearable(wearable); combinedWearableDataToSave.Add(id, inventoryData.StatList(wearable)); temporaryData.Add(id, inventoryData.StatList(wearable)); } wearable.Amount += wearableEvent.addOrSubtractAmount; EventBroker.Instance().SendMessage(new EventUpdateAmount(id, wearable.Amount)); if (CombinedWearableAmountIsZero(wearable)) { if (!Predefined(id)) { combinedWearableDataToSave.Remove(id); temporaryData.Remove(id); UpdateHud(wearable); saveHandler.Save(this); EventBroker.Instance().SendMessage(new EventDestroyCombinedWearable(id)); return; } } wearable.ShouldBeInteractable(); AssignNewValues(id, wearable); wearable.ReduceAlpha(); UpdateHud(wearable); combinedWearableDataToSave[id] = temporaryData[id]; EventBroker.Instance().SendMessage(new EventSortInventory()); EventBroker.Instance().SendMessage(new EventUpdateAmount(id, Convert.ToInt32(temporaryData[id][InventoryData.Amount]))); saveHandler.Save(this); }
void OnEventUpdateInventory(EventUpdatePlayerInventory eventUpdatePlayerInventory) => CloseThis();