Exemplo n.º 1
0
 public void setEquip <E>(T slotItem, PackContainer <E> container, E equipItem = null) where E : PackContItem, new()
 {
     //if (slotItem == null) return;
     //var oriEquip = getEquip<E>(slotItem);
     //container.removeItem(equipItem); // 移出装备
     //container.pushItem(oriEquip); // 卸下原装备
     setEquip(slotItem, equipItem);             // 设置新装备
 }
Exemplo n.º 2
0
        /*
         * /// <summary>
         * /// 拆分物品
         * /// </summary>
         * /// <param name="item">物品</param>
         * /// <param name="count">数目</param>
         * public void splitItem(T item, int count) {
         *      if (count >= item.count) return;
         *      var copyItem = (T)item.copy(false);
         *      copyItem.setCount(count);
         *      pushItem(copyItem);
         *      item.leave(count);
         * }
         *
         * /// <summary>
         * /// 合并物品
         * /// </summary>
         * /// <param name="items">物品数组</param>
         * public void mergeItems(T[] items) {
         *      var leftIndex = 0;
         *      var leftItem = items[leftIndex];
         *      for (int i = 1; i < items.Length; i++) {
         *              var item = items[i];
         *              item.setCount(leftItem.enter(item.count));
         *              if (leftItem.isFull()) // 如果最左物品已满,切换之
         *                      leftItem = items[++leftIndex];
         *      }
         *      for (int i = items.Length - 1; i > leftIndex; --i)
         *              removeItem(items[i]);
         * }
         */

        /// <summary>
        /// 转移物品
        /// </summary>
        /// <param name="container"></param>
        public bool transferItem(PackContainer <T> container, T item)
        {
            return(container.acceptItem(prepareItem(item)));
        }
Exemplo n.º 3
0
 public void setEquip <E>(int slotIndex, PackContainer <E> container, E equipItem = null) where E : PackContItem, new()
 {
     setEquip(getSlotItem(slotIndex), container, equipItem);
 }
Exemplo n.º 4
0
 /// <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);
 }