Пример #1
0
 public int Contains(OwnedItemInformation modified)
 {
     foreach (OwnedItemInformation item in containerItems)
     {
         if (item.IsSameItemAs(modified))
         {
             return(item.Amount);
         }
     }
     return(0);
 }
Пример #2
0
 void ModifiedItem(OwnedItemInformation data, bool isSave)
 {
     if (isSave == true)
     {
         ItemManipulationServices.MoveItem(new MoveItemsRequest(new MoveItemsRequest.MoveOrder(data.StackLocationId, data.Amount, Location)), x =>
         {
             data.StackLocationId = x.UpdatedStackIds[0].StackId;
             data.IsLocked        = false;
         });
     }
 }
Пример #3
0
 public ItemDataDisplay FindDisplayMatch(OwnedItemInformation item)
 {
     foreach (ItemDataDisplay itemDisplay in currentDisplayObjects)
     {
         if (itemDisplay.itemObject.itemData == item)
         {
             return(itemDisplay);
         }
     }
     return(null);
 }
Пример #4
0
 public virtual void ModifiedItem(OwnedItemInformation itemData, bool isSaving)
 {
     foreach (ItemDataDisplay display in currentDisplayObjects)
     {
         if (display.itemObject.itemData.IsSameItemAs(itemData))
         {
             display.SetAmountText(display.itemObject.itemData.Amount.ToString());
             return;
         }
     }
 }
Пример #5
0
        public void Remove(OwnedItemInformation itemData, bool isMoving, int amount = -1)
        {
            if (ItemContainerStackRestrictor.Restrictor != null)
            {
                if (restriction.IsRestricted(ContainerAction.remove))
                {
                    return;
                }
            }

            RemoveItem(itemData, isMoving, amount);
        }
Пример #6
0
        public virtual void RemovedItem(OwnedItemInformation itemData, int amount, bool arg3)
        {
            ItemDataDisplay selected = FindDisplayMatch(itemData);

            if (selected != null)
            {
                if (itemData.Amount <= 0)
                {
                    currentDisplayObjects.Remove(selected);
                    Destroy(selected.gameObject);
                }
            }
        }
Пример #7
0
        public virtual void AddedItem(OwnedItemInformation itemData, bool isSaving)
        {
            GameObject      newItem    = GameObject.Instantiate(CloudGoodsSettings.DefaultUIItem) as GameObject;
            ItemDataDisplay newDisplay = newItem.GetComponent <ItemDataDisplay>();

            newDisplay.itemObject = newItem.GetComponent <ItemDataComponent>();
            newItem.GetComponent <ItemDataComponent>().itemData = itemData;
            newItem.name = itemData.Information.Name;
            newItem.transform.SetParent(ChildTarget);
            newItem.transform.localPosition = Vector3.zero;
            newItem.transform.localScale    = Vector3.one;
            currentDisplayObjects.Add(newDisplay);
        }
Пример #8
0
        public void AddItem(OwnedItemInformation addItem, int amount, bool isSave)
        {
            if (IsSwapNeeded())
            {
                //Should only swap single item in container (first item in container items list)
                OwnedItemInformation swapItem = itemContainer.containerItems[swapIndex];

                ItemContainerManager.MoveItem(swapItem, addItem.OwnerContainer);
                AddItemToContainer(addItem, amount, isSave);
            }
            else
            {
                AddItemToContainer(addItem, amount, isSave);
            }
        }
Пример #9
0
        public ContainerMoveState GetContainerAddState(OwnedItemInformation itemData)
        {
            if (ContainerAddRestrictions.Count > 0)
            {
                foreach (IContainerRestriction newRestriction in ContainerAddRestrictions)
                {
                    if (newRestriction.IsRestricted(ContainerAction.add, itemData))
                    {
                        return(new ContainerMoveState(ContainerMoveState.ActionState.No));
                    }
                }
            }

            return(MyContainerAddState(itemData));
        }
        public static ContainerMoveState.ActionState RemoveItem(OwnedItemInformation RemoveItemData, ItemContainer TargetContainer)
        {
            if (RemoveItemData.IsLocked)
            {
                return(ContainerMoveState.ActionState.No);
            }

            if (TargetContainer.GetContainerRemoveState(RemoveItemData).ContainerActionState == ContainerMoveState.ActionState.Remove)
            {
                TargetContainer.Remove(RemoveItemData, false, RemoveItemData.Amount);
                return(ContainerMoveState.ActionState.Remove);
            }

            return(ContainerMoveState.ActionState.No);
        }
        private bool AddToExistingStack(OwnedItemInformation data, int amount, bool isSave)
        {
            foreach (OwnedItemInformation item in ItemContainer.containerItems)
            {
                if (item.Information.Id.Equals(data.Information.Id))
                {
                    ItemContainer.ModifiedItemEvent(data, isSave);

                    item.Amount  = item.Amount + amount;
                    data.Amount -= amount;

                    return(true);
                }
            }

            return(false);
        }
Пример #12
0
        void AddItemToContainer(OwnedItemInformation addItem, int amount, bool isSave)
        {
            if (amount == -1)
            {
                amount = addItem.Amount;
                addItem.OwnerContainer = itemContainer;

                itemContainer.containerItems.Add(addItem);
                itemContainer.AddItemEvent(addItem, isSave);
            }
            else
            {
                addItem.Amount         = amount;
                addItem.OwnerContainer = itemContainer;

                itemContainer.containerItems.Add(addItem);
                itemContainer.AddItemEvent(addItem, isSave);
            }
        }
Пример #13
0
        protected void RemoveItem(OwnedItemInformation modified, bool isMoving, int amount = -1)
        {
            foreach (OwnedItemInformation item in containerItems)
            {
                if (item.IsSameItemAs(modified))
                {
                    if (amount == -1 || item.Amount <= amount)
                    {
                        containerItems.Remove(item);
                    }

                    modified.Amount -= amount;

                    RemoveItemEvent(item, amount, isMoving);
                    return;
                }
            }
            return;
        }
Пример #14
0
        protected ContainerMoveState MyContainerAddState(OwnedItemInformation modified)
        {
            int addAbleAmount = modified.Amount;

            if (IsItemQuantityLimited == true)
            {
                foreach (OwnedItemInformation item in containerItems)
                {
                    if (item.IsSameItemAs(modified))
                    {
                        return(new ContainerMoveState(ContainerMoveState.ActionState.No, 0));
                    }
                }

                if (addAbleAmount >= ItemQuantityLimit)
                {
                    addAbleAmount = ItemQuantityLimit;
                }
            }

            return(new ContainerMoveState(ContainerMoveState.ActionState.Add, addAbleAmount));
        }
Пример #15
0
 public virtual void SetData(OwnedItemInformation itemData)
 {
 }
Пример #16
0
 public void Add(OwnedItemInformation itemData, int amount = -1, bool isSave = true)
 {
     ContainerAddAction.AddItem(itemData, amount, isSave);
 }
Пример #17
0
        public string Setup()
        {
            item = GetComponent <ItemDataComponent>().itemData;
            string formated = "";


            foreach (DisaplyOption selectedOption in displayOptions)
            {
                switch (selectedOption)
                {
                case DisaplyOption.name:
                    if (isQualityColorUsed)
                    {
                        formated += item.Information.Name;    //.ToRichColor(ItemQuailityColorSelector.GetColorForItem(item));
                    }
                    else
                    {
                        formated += item.Information.Name;
                    }
                    break;

                case DisaplyOption.stats:
                //foreach (KeyValuePair<string, string> pair in item.Information.)
                //{
                //    if (pair.Key == "Not Available") continue;

                //    formated = string.Format("{0}\n{1}: {2}", formated, pair.Key, pair.Value.ToString()/*.ToRichColor(Color.yellow)*/);
                //}
                //break;
                case DisaplyOption.quantity:
                    formated = string.Format("{0}\n{1}", formated, item.Amount);
                    break;

                case DisaplyOption.description:
                    if (!string.IsNullOrEmpty(item.Information.Description))
                    {
                        formated = string.Format("{0}\n{1}", formated, item.Information.Description);
                    }
                    break;

                case DisaplyOption.tag:

                    string tags = "";
                    foreach (ItemInformation.Tag tg in item.Information.Tags)
                    {
                        if (string.IsNullOrEmpty(tags))
                        {
                            tags = tg.Name;
                        }
                        else
                        {
                            tags = string.Format("{0}, {1}", tags, tg);
                        }
                    }
                    if (item.Information.Tags.Count == 0)
                    {
                        if (ShowBlankLineForEmptySelection)
                        {
                            formated = string.Format("{0}\n");
                        }
                    }
                    else
                    {
                        formated = string.Format("{0}\n{1}", formated, tags);
                    }
                    break;

                case DisaplyOption.behaviour:

                    foreach (ItemInformation.Behaviour behaviour in item.Information.Behaviours)
                    {
                        formated = string.Format("{0}\n{1}", formated, behaviour.Name);
                    }

                    if (item.Information.Behaviours.Count == 0 && ShowBlankLineForEmptySelection)
                    {
                        formated = string.Format("{0}\n", formated);
                    }
                    break;

                case DisaplyOption.behaviourWithDescription:
                    foreach (ItemInformation.Behaviour behaviour in item.Information.Behaviours)
                    {
                        formated = string.Format("{0}\n{1}: {2}", formated, behaviour.Name /*.ToRichColor(Color.white)*/, behaviour.Id /*.ToRichColor(Color.grey)*/);
                    }
                    if (item.Information.Behaviours.Count == 0 && ShowBlankLineForEmptySelection)
                    {
                        formated = string.Format("{0}\n", formated);
                    }
                    break;

                case DisaplyOption.space:
                    formated = string.Format("{0}\n", formated);
                    break;

                case DisaplyOption.varianceID:
                    formated = string.Format("{0}\n{1}", formated, item.Information.Id);
                    break;

                case DisaplyOption.itemID:
                    formated = string.Format("{0}\n{1}", formated, item.Information.CollectionId);
                    break;

                case DisaplyOption.classID:
                    formated = string.Format("{0}\n{1}", formated, item.Information.ClassId);
                    break;

                case DisaplyOption.energy:
                    formated = string.Format("{0}\n{1}", formated, item.Information.Energy);
                    break;

                case DisaplyOption.stackID:
                    formated = string.Format("{0}\n{1}", formated, item.StackLocationId.ToString());
                    break;

                default: break;
                }
            }
            return(formated);
        }
        public static ContainerMoveState.ActionState MoveItem(OwnedItemInformation movingItemData, ItemContainer targetContainer)
        {
            try
            {
                if (movingItemData.IsLocked)
                {
                    return(ContainerMoveState.ActionState.No);
                }

                if (movingItemData == null)
                {
                    throw new Exception("Can Not Move null item");
                }

                if (targetContainer == null)
                {
                    throw new Exception("Can not move item to null container");
                }

                ContainerMoveState targetAddState = targetContainer.GetContainerAddState(movingItemData);

                switch (targetAddState.ContainerActionState)
                {
                case ContainerMoveState.ActionState.Add:

                    OwnedItemInformation newItemData = new OwnedItemInformation();
                    newItemData.Amount          = movingItemData.Amount;
                    newItemData.Information     = movingItemData.Information;
                    newItemData.OwnerContainer  = movingItemData.OwnerContainer;
                    newItemData.StackLocationId = movingItemData.StackLocationId;
                    newItemData.Location        = movingItemData.Location;

                    if (movingItemData.OwnerContainer != null)
                    {
                        if (RemoveItem(movingItemData, movingItemData.OwnerContainer) == ContainerMoveState.ActionState.No)
                        {
                            return(ContainerMoveState.ActionState.No);
                        }
                    }


                    targetContainer.Add(newItemData, targetAddState.PossibleAddAmount);

                    break;

                case ContainerMoveState.ActionState.No:
                    break;

                default:
                    break;
                }

                return(targetAddState.ContainerActionState);
            }
            catch (Exception e)
            {
                Debug.LogError(e.Message);

                return(ContainerMoveState.ActionState.No);
            }
        }