/// <summary> /// 通过槽项获取索引值 /// </summary> /// <returns>返回装备槽项的对应索引</returns> public virtual int getSlotIndexByItem(PackContItem item) { foreach (var slot in items) { if (slot.getEquip(item.GetType()) == item) { return(items.IndexOf(slot)); } } return(-1); }
public PackContItem removeItem(PackContItem contItem) { return(removeItem(contItem as T)); }
/// <summary> /// 添加/移除容器项 /// </summary> /// <param name="contItem"></param> /// <returns></returns> public bool pushItem(PackContItem contItem) { return(pushItem(contItem as T)); }
public virtual void setEquip(Type type, PackContItem equipItem = null) { }
public void setEquip(int slotIndex, Type eType, PackContItem equipItem = null) { setEquip(getSlotItem(slotIndex), eType, equipItem); }
public void setEquip(SlotContItem slotItem, Type eType, PackContItem equipItem = null) { setEquip(slotItem as T, eType, equipItem); }
/// <summary> /// 设置装备 /// </summary> /// <typeparam name="E">装备类型</typeparam> /// <param name="equipItem">装备物品</param> public void setEquip(Type eType, PackContItem equipItem = null) { setEquip(getSlotItemByEquipItem(equipItem), eType, equipItem); }
/// <summary> /// 通过槽项获取索引值 /// </summary> /// <returns>返回装备槽项的对应索引</returns> //public virtual int getSlotIndexByItem<E>(E item) where E : PackContItem, new() { // foreach (var slot in items) { // if (slot.getEquip<E>() == item) return items.IndexOf(slot); // } // return -1; //} /// <summary> /// 通过装备物品获取槽 /// </summary> /// <typeparam name="E">装备物品类型</typeparam> /// <param name="equipItem">装备物品</param> /// <returns>槽ID</returns> public abstract T getSlotItemByEquipItem(PackContItem equipItem);
/// <summary> /// 设置装备 /// </summary> /// <typeparam name="E">装备类型</typeparam> /// <param name="container">装备容器</param> /// <param name="equipItem">装备物品</param> //public void setEquip<E>(PackContainer<E> container, // E equipItem = null) where E : PackContItem, new() { // setEquip(getSlotItemByEquipItem(equipItem), container, equipItem); //} //public void setEquip<E>(T slotItem, PackContainer<E> container, // E equipItem = null) where E : PackContItem, new() { // setEquip(slotItem, equipItem); // 设置新装备 //} //public void setEquip<E>(int slotIndex, PackContainer<E> container, // E equipItem = null) where E : PackContItem, new() { // setEquip(getSlotItem(slotIndex), container, equipItem); //} public void setEquip(T slotItem, Type eType, PackContItem equipItem = null) { slotItem?.setEquip(eType, equipItem); }