Ejemplo n.º 1
0
    ///<summary>
    /// Item object possible click actions switch.
    ///</summary>
    private void ItemButtonAction(InventoryItemInstance instance, Constants.ItemInteraction interaction)
    {
        switch (interaction)
        {
        case Constants.ItemInteraction.AddToCart:
        {
            BeginAddItemToCurentOrder(instance);
            break;
        }

        case Constants.ItemInteraction.RemoveFromCart:
        {
            RemoveItemFromCurentOrder(instance);
            break;
        }

        case Constants.ItemInteraction.NoInteraction:
        {
            break;
        }

        default:
        {
            break;
        }
        }
    }
Ejemplo n.º 2
0
    ///<summary>
    ///Updates the item object's interface and assigns its button and double click actions.
    ///</summary>
    public void UpdateItemObject(Constants.ItemInteraction interactionType, InventoryItemInstance instance, UnityAction clickAction, UnityAction doubleAction)
    {
        switch (interactionType)
        {
        case Constants.ItemInteraction.NoInteraction:
        {
            isDoubleClickEditable = false;
            stockLabelText.text   = Constants.AMMOUNT_LABEL;
            editButton.gameObject.SetActive(false);
            break;
        }

        case Constants.ItemInteraction.AddToCart:
        {
            isDoubleClickEditable = true;
            stockLabelText.text   = Constants.STOCK_LABEL;
            editButton.gameObject.SetActive(true);
            addToCartImage.SetActive(true);
            removeCartImage.SetActive(false);
            break;
        }

        case Constants.ItemInteraction.RemoveFromCart:
        {
            isDoubleClickEditable = false;
            stockLabelText.text   = Constants.AMMOUNT_LABEL;
            editButton.gameObject.SetActive(true);
            addToCartImage.SetActive(false);
            removeCartImage.SetActive(true);
            break;
        }

        default:
        {
            break;
        }
        }

        ID = instance.Item.Name.ToLower();
        itemNameText.text = instance.Item.Name;
        stockText.text    = instance.Quantity.ToString();

        priceText.text = (instance.discount > 0) ?
                         Constants.DIDSCOUNT_OLD_BEGIN + Constants.CURENCY_SYMBOL + instance.Item.BasePrice + " -" + instance.discount + Constants.PERCENT + Constants.DIDSCOUNT_OLD_END + Constants.NEWLINE +
                         Constants.DIDSCOUNT_NEW_BEGIN + Constants.CURENCY_SYMBOL + instance.DiscountedPrice.ToString(Constants.CURENCY_FORMAT) + Constants.DIDSCOUNT_NEW_END :

                         Constants.CURENCY_SYMBOL + instance.DiscountedPrice.ToString(Constants.CURENCY_FORMAT);

        editButton.onClick.AddListener(clickAction);
        doubleClickAction = doubleAction;
        gameObject.SetActive(true);
    }
Ejemplo n.º 3
0
    ///<summary>
    /// Creates the item objects from the given <paramref name="itemList"/> if they do not already exist in the provided <paramref name="spawnedList"/>, and disables ones that are not present.
    /// Objects are instantiated into the apropriate <paramref name="parentTransform"/>, and the <paramref name="interaction"/> enum determines the possible functions of the updated objects.
    ///</summary>
    internal void UpdateItemObjects(
        Constants.ItemInteraction interaction,
        RectTransform parentTransform,
        List <InventoryItemInstance> itemList,
        List <ItemObject> spawnedList,
        bool destroyObjects,
        UnityAction <InventoryItemInstance, Constants.ItemInteraction> buttonAction,
        UnityAction <InventoryItemInstance> doubleClickAction
        )
    {
        if (spawnedList != null)
        {
            foreach (ItemObject item in spawnedList)
            {
                if (!destroyObjects)
                {
                    item.gameObject.SetActive(false);
                }
                else
                {
                    Destroy(item.gameObject);
                }
            }

            if (destroyObjects)
            {
                spawnedList.Clear();
            }
        }

        foreach (InventoryItemInstance itemInstance in itemList)
        {
            if (spawnedList != null)
            {
                if (!spawnedList.Exists(i => i.ID.Equals(itemInstance.Item.ID)))
                {
                    ItemObject newItemObject = Instantiate(itemObjectPrefab, parentTransform).GetComponent <ItemObject>();
                    newItemObject.UpdateItemObject(interaction, itemInstance, () => buttonAction(itemInstance, interaction), () => doubleClickAction(itemInstance));
                    spawnedList.Add(newItemObject);
                }
                else
                {
                    spawnedList.Find(i => i.ID.Equals(itemInstance.Item.ID)).UpdateItemObject(interaction, itemInstance, () => buttonAction(itemInstance, interaction), () => doubleClickAction(itemInstance));
                }
            }
            else
            {
                ItemObject newItemObject = Instantiate(itemObjectPrefab, parentTransform).GetComponent <ItemObject>();
                newItemObject.UpdateItemObject(interaction, itemInstance, () => buttonAction(itemInstance, interaction), () => doubleClickAction(itemInstance));
            }
        }
    }