public MDRItemSlot Create(MDRItemInstance item = null, ItemLocation restriction = ItemLocation.Any, MDRCharacter character = null) { MDRItemSlot result = new MDRItemSlot(); result._itemInstance = item; result.Restriction = restriction; result.Character = character; return(result); }
/** Adds given item to the correct inventory slot (of the right type). Returns the slot used if sucessful */ override public MDRItemSlot ReceiveItem(MDRItemInstance item) { MDRItemSlot freeSlot = NextFreeSlot(); if (freeSlot != null) { freeSlot.ItemInstance = item; } return(freeSlot); }
/** Adds given item to inventory. Returns the slot used if sucessful */ virtual public MDRItemSlot ReceiveItem(MDRItemInstance item) { MDRItemSlot freeSlot = NextFreeSlot(); if (freeSlot != null) { freeSlot.ItemInstance = item; } if (OnInventoryChanged != null) { OnInventoryChanged(); } return(freeSlot); }
public MDRInventory(int maxSlots, MDRCharacter character = null) { Slot = new MDRItemSlot[maxSlots]; for (int lp = 0; lp < maxSlots; lp++) { Slot[lp] = new MDRItemSlot(); Slot[lp].Character = character; Slot[lp].OnAfterSetItem += delegate { if (OnInventoryChanged != null) { OnInventoryChanged(); } }; } }
/** Update players stats when equipment changes */ protected void DoEquipmentChanged(MDRItemSlot source, MDRItemInstance item) { // if paired item was two handed then unequip paired item if ((item != null) && (source.PairedSlot != null) && (!source.PairedSlot.IsEmpty) && (source.PairedSlot.ItemInstance.Item.Hands == 2)) { _character.UnequipItem(source.PairedSlot); } // if we are two handed unequip paired item if ((source.PairedSlot != null) && !(item == null) && (item.Item.Hands == 2)) { _character.UnequipItem(source.PairedSlot); } _character.ApplyChanges(); }