Пример #1
0
        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);
        }
Пример #2
0
 void OnEventUpdateInventory(EventUpdatePlayerInventory eventUpdatePlayerInventory)
 => CloseThis();