Exemple #1
0
        protected override void OnSlotChanged(SyncDictionaryItemSlot.Operation op, int key, ItemSlotData itemSlotData)
        {
            base.OnSlotChanged(op, key, itemSlotData);
            if (itemSlotData.SlotType == ItemSlotType.Any)
            {
                return;
            }
            SlotReferences.TryGetValue(itemSlotData.SlotType, out var equipmentSlotReference);
            InventorySlots.TryGetValue(key, out var itemSlot);
            var equipableSlot = itemSlot as SlotEquipable;

            switch (op)
            {
            case SyncDictionaryItemSlot.Operation.OP_ADD:
                InventorySlots.Add(key, new SlotEquipable(equipmentSlotReference.SlotTransform, itemSlotData, key));
                return;

            case SyncDictionaryItemSlot.Operation.OP_REMOVE:
                InventorySlots.Remove(key);
                return;
            }
            if (equipableSlot == null)
            {
                return;
            }
            equipableSlot.SlotData = itemSlotData;
            equipableSlot.OnSlotChange();

            EquipmentSlotChanged(itemSlotData, equipableSlot);
        }
Exemple #2
0
    public void TestRemove()
    {
        _slots.Add(_i1);

        Assert.NotNull(_slots.Get(InventorySlots.SlotType.BODY));

        _slots.Remove(InventorySlots.SlotType.BODY);

        Assert.Null(_slots.Get(InventorySlots.SlotType.BODY));
    }
    /// <summary>
    /// Removes the item.
    /// </summary>
    /// <param name="slotType">Slot type.</param>
    public void RemoveItem(InventorySlots.SlotType slotType)
    {
        Item item = _inventorySlots.Remove(slotType);

        DecrementAllAttributesText(item);
    }