public void EquipArmor(Armor armorToEquip, int inventoryIndex)
    {
        if (HasArmorEquipped(armorToEquip.ArmorType))
        {
            var currentEquipped = GetEquippedArmorByType(armorToEquip.ArmorType);
            if (currentEquipped == armorToEquip)
            {
                return;
            }
            equippedArmor.Remove(currentEquipped);
            inventory.RemoveItemAtIndex(inventoryIndex);

            OnArmorUnequippedCallback?.Invoke(currentEquipped);
            inventory.AddItemById(currentEquipped.Id);
            equippedArmor.Add(armorToEquip);
        }
        else
        {
            equippedArmor.Add(armorToEquip);
            inventory.RemoveItemAtIndex(inventoryIndex);
        }

        SoundManager.Instance.PlaySound(SoundManager.Sound.EQUIP);
        OnItemChanged?.Invoke();
        OnArmorEquippedCallback?.Invoke(armorToEquip);
    }
Esempio n. 2
0
            public static void PostTellEquip(PlayerEquipment __instance, ushort __state, Transform[] ___thirdSlots,
                                             CSteamID steamID, ushort id)
            {
                if (!__instance.channel.checkServer(steamID))
                {
                    return;
                }

                if (___thirdSlots == null)
                {
                    return;
                }

                if (__state == 0 && id == 0)
                {
                    return;
                }

                if (__state != 0)
                {
                    OnItemUnequipped?.Invoke(__instance.player);
                }

                if (id != 0 && __instance.asset != null)
                {
                    var type = Assets.useableTypes.getType(__instance.asset.useable);

                    if (type != null && typeof(Useable).IsAssignableFrom(type))
                    {
                        OnItemEquipped?.Invoke(__instance.player);
                    }
                }
            }
Esempio n. 3
0
 //Custom events
 private void OnItemEquippedEvent()
 {
     if (!Item.IsAir)
     {
         OnItemEquipped?.Invoke(this);
     }
 }
Esempio n. 4
0
 private void EquipFromInventory(Item item)
 {
     if (item is EquippableItem)
     {
         MoveItemToEquippmentInventory((EquippableItem)item);
         OnItemEquipped?.Invoke((EquippableItem)item);
     }
 }
Esempio n. 5
0
            public static void PostTellEquip(PlayerEquipment __instance, ushort __state)
            {
                if (__state == 0 && __instance.itemID == 0)
                {
                    return;
                }

                if (__state != 0)
                {
                    OnItemUnequipped?.Invoke(__instance.player);
                }

                if (__instance.useable != null)
                {
                    OnItemEquipped?.Invoke(__instance.player);
                }
            }
Esempio n. 6
0
 public void ItemEquipped(Item item, Guid itemInstanceId)
 {
     OnItemEquipped?.Invoke(item, itemInstanceId);
 }
Esempio n. 7
0
 public void ItemEquipped(long id, Equipment.EquipmentSlot slot, BigInteger amount)
 {
     OnItemEquipped?.Invoke(id, slot, amount);
 }