/// <summary> /// Unequips armor items from the player and drops them to the loot bag according to the rules set. /// </summary> protected void DropArmorItems() { for (int i = EquipItems.Count - 1; i >= 0; i--) { if (playerDB.maxLootItems > 0 && lootBagItems.Count >= playerDB.maxLootItems) { return; } CharacterItem unEquipItem = EquipItems[i]; if (unEquipItem.IsEmptySlot()) { continue; } if (ShouldDrop(unEquipItem)) { EquipItems.RemoveAt(i); this.AddOrSetNonEquipItems(unEquipItem); this.FillEmptySlots(true); DropInventoryItem(unEquipItem); } this.FillEmptySlots(); } }
public void RemoveItemFromEquip(Item item) { KeyValuePair <Item, int> itemToRemove = new KeyValuePair <Item, int>(); foreach (KeyValuePair <Item, int> kvp in EquipItems) { if (kvp.Key == item) { itemToRemove = kvp; break; } } EquipItems.Remove(itemToRemove); }
/* Creates a new EquipItems with the specified ItemType and adds it to the list.*/ private static void Equip(int id, int type, string itemName, Sprite sprite, bool isStackable, bool isQuestItem, string flavorText, int attack, int defence, int hp, float defencePen, float mastery) { ItemObject item = new EquipItems(); InitializeBaseItem(item, id, type, itemName, sprite, isStackable, isQuestItem, flavorText); (item as EquipItems).attack = attack; (item as EquipItems).defence = defence; (item as EquipItems).hp = hp; (item as EquipItems).defencePen = defencePen; (item as EquipItems).mastery = mastery; itemList.Add(id, item); }
public void UnequipAll() { CharacterItem[] equipment = EquipItems.ToArray(); for (int i = 0; i < equipment.Length; i++) { if (equipment[i].GetArmorItem() != null) { RequestUnEquipItem(InventoryType.EquipItems, equipment[i].equipSlotIndex, 0); } } for (int i = 0; i < SelectableWeaponSets.Count; i++) { if (SelectableWeaponSets[i].rightHand.GetWeaponItem() != null) { RequestUnEquipItem(InventoryType.EquipWeaponRight, 0, (byte)i); } if (SelectableWeaponSets[i].leftHand.GetWeaponItem() != null) { RequestUnEquipItem(InventoryType.EquipWeaponLeft, 0, (byte)i); } } ; }