Ejemplo n.º 1
0
        /// <summary>
        /// Move a thing from container.
        /// </summary>
        private void MoveItemFromContainer()
        {
            int           containerIndex = posFrom.y - CONTAINER_HEADER;
            Container     container      = player.GetContainerByIndex(containerIndex);
            List <Player> affected       = container.GetViewers();

            if (itemToMove.IsOfType(Constants.TYPE_STACKABLE) &&
                itemToMove.Count != count)
            {
                itemToMove.Count -= count;
                itemToMove        = Item.CreateItem(itemToMove.ItemID);
                itemToMove.Count  = count;
                container.UpdateContainerToViewers();
            }
            else
            {
                container.RemoveItem(itemToMove);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Move the specified thing to container.
        /// </summary>
        /// <param name="thingToMove">Thing to move.</param>
        private void MoveItemToContainer()
        {
            int       containerIndex = posTo.y - CONTAINER_HEADER;
            int       itemIndex      = posTo.z;
            Container container      = player.GetContainerByIndex(containerIndex);
            Item      containerItem  = container.GetItemByIndex(itemIndex);

            bool addItem = true;

            if (containerItem != null && containerItem.IsOfType(Constants.
                                                                TYPE_STACKABLE) && containerItem.ItemID == itemToMove.ItemID)
            {
                if (containerItem.Count + itemToMove.Count > MAX_STACK_COUNT)
                {
                    byte countRemainder = (byte)(MAX_STACK_COUNT - containerItem.Count);
                    containerItem.Count += countRemainder;
                    itemToMove.Count    -= countRemainder;
                }
                else
                {
                    containerItem.Count += itemToMove.Count;
                    addItem              = false;
                }
            }

            if (containerItem != null &&
                containerItem.IsOfType(Constants.TYPE_CONTAINER))
            {
                List <Player> affected =
                    containerItem.AddItem(itemToMove);
            }
            else
            {
                if (addItem)
                {
                    container.AddItem(itemToMove);
                }
                else
                {
                    container.UpdateContainerToViewers();
                }
            }
        }