Ejemplo n.º 1
0
    public void ScrollButtons(Vector2 moveValue, Vector2 incrementValue, int VisibleButton, int MovedInvsButton, int ItemIndexModifier, Vector2 InvsDestination)
    {
        List <GameObject> _Buttons = new List <GameObject>();
        List <Item>       _Items   = new List <Item>();

        switch (currentMenu)
        {
        case ListType.Items:
            _Buttons = ButtonsHor;
            _Items   = Items;
            break;

        case ListType.Combat:
            break;

        case ListType.KeyItems:
            _Buttons = ButtonsHor;
            _Items   = KeyItems;
            break;
        }

        InventoryItemButton newItemButton = _Buttons[VisibleButton].GetComponent <InventoryItemButton>();

        if (VisibleButton == 8)
        { // right or up
            if (newItemButton.itemIndex < _Items.Count)

            {
                newItemButton.item = _Items[newItemButton.itemIndex];
            }
            else
            {
                //already hit minimum
                newItemButton.item      = _Items[0];
                newItemButton.itemIndex = 0;
            }
        }
        else

        { //left or down
            if (newItemButton.itemIndex >= 0)
            {
                newItemButton.item = _Items[newItemButton.itemIndex];
            }
            else
            {
                //already passed minimum

                newItemButton.item      = _Items[_Items.Count - 1];
                newItemButton.itemIndex = _Items.Count - 1;
            }
        }

        newItemButton.SetGraphic();


        // StartCoroutine(LockInputTimer(Speed * 2));
        //StartCoroutine(LockButtons(_Buttons));
        for (int i = 0; i < _Buttons.Count; i++)
        {
            if (i == MovedInvsButton)
            {
                continue;
            }
            //if (i == VisibleButton) ButtonOpacity(_Buttons[i], 1f);

            LeanTween.moveLocal(_Buttons[i], new Vector2(moveValue.x, moveValue.y), Speed);
            moveValue.x += incrementValue.x;
            moveValue.y += incrementValue.y;
        }

        LeanTween.moveLocal(_Buttons[MovedInvsButton], InvsDestination, 0.0f);
        GameObject button = _Buttons[MovedInvsButton];

        _Buttons.RemoveAt(MovedInvsButton);
        if (VisibleButton == 8)
        { //Right
            _Buttons.Add(button);
        }
        else
        {//left
            _Buttons.Insert(0, button);
        }

        InventoryItemButton movedButton = _Buttons[VisibleButton].GetComponent <InventoryItemButton>();

        movedButton.item = null;
        movedButton.SetGraphic();
        movedButton.itemIndex = newItemButton.itemIndex + ItemIndexModifier;
        StartCoroutine(DelayedFunction(RedoButtonIndex, Speed + 0.001f));

        //ButtonOpacity(_Buttons[MovedInvsButton], 0f);
    }
Ejemplo n.º 2
0
    public void CreateButtons(ListType listType, bool Horizontal = true)
    {
        EventSystem.current.SetSelectedGameObject(null);


        List <GameObject> Buttons = new List <GameObject>();
        List <Item>       _Items  = new List <Item>();

        Buttons = ButtonsHor;

        switch (listType)
        {
        case ListType.Items:
            Buttons       = ButtonsHor;
            currentMenu   = ListType.Items;
            MenuName.text = "Items";
            _Items        = Items;
            break;

        case ListType.Combat:
            MenuName.text = "Weapons";
            _Items        = CombatItems;
            currentMenu   = ListType.Combat;
            break;

        case ListType.KeyItems:
            MenuName.text = "Key Items";

            Buttons     = ButtonsHor;
            _Items      = KeyItems;
            currentMenu = ListType.KeyItems;
            break;
        }
        //LeanTween.value(FG.gameObject, (Color x) => FG.color = x, FG.color, FGtarget, duration);
        LeanTween.value(MenuName.gameObject, (float x) => MenuName.maxVisibleCharacters = (int)x, 0, MenuName.text.Length, 0.3f);

        int q     = -150;
        int t     = 0;
        int index = 0;

        bool StopContinueOnce = true;

        for (int i = 0; i <= 8; i++)
        {
            Buttons[i].SetActive(true);
            InventoryItemButton Button = Buttons[i].GetComponent <InventoryItemButton>();
            Button.buttonIndex = i;

            if (i == 0 || i == 8 || i >= _Items.Count)
            {
                Button.item = null;
                Button.SetGraphic();


                if (_Items.Count < 8)
                {
                    Buttons[i].SetActive(false);
                }

                if (i >= _Items.Count && _Items.Count < 8 && StopContinueOnce)
                {
                    StopContinueOnce = false;
                    Buttons[i].SetActive(true);
                }
                else
                {
                    //ButtonOpacity(Buttons[i], 0f);

                    /*
                     * Color BGtarget = Button.GetComponent<Image>().color;
                     * BGtarget.a = 0;
                     * Image BG = Button.GetComponent<Image>();
                     * BG.color = BGtarget;
                     *
                     * Image FG = Button.transform.GetChild(0).GetComponent<Image>();
                     * Color FGtarget = FG.color;
                     * FGtarget.a = 0;
                     * FG.color = FGtarget;
                     */
                    continue;
                }
            }

            Button.transform.position = CenterPoint.transform.position;
            //ButtonOpacity(Buttons[i], 1f);
            if (Horizontal)
            {
                LeanTween.moveLocalX(Button.gameObject, q, 0.3f).setEase(LeanTweenType.easeOutQuad).setDelay(0.3f);
            }
            else
            {
                LeanTween.moveLocalY(Button.gameObject, q, 0.3f).setEase(LeanTweenType.easeOutQuad).setDelay(0.3f);
            }


            if (Horizontal)
            {
                q += 50;
            }
            else
            {
                q += 50;
            }
            Button.item      = _Items[t];
            Button.itemIndex = t;
            t++;
            Button.SetGraphic();
            if (i < 5)
            {
                index++;
            }
        }

        if (currentMenu == ListType.Combat)
        {
            SelectedItem = index;
        }
        else
        {
            SelectedWeapon = index;
        }

        StartCoroutine(DelayedFunction(Buttons[index].GetComponent <Button>().Select, 0.4f));
        //StartCoroutine( DelayedFunction(Buttons[index].GetComponent<InventoryItemButton>().OnSelect(null), 0.3f));
        //Buttons[index].GetComponent<Button>().Select();
        //Buttons[index].GetComponent<InventoryItemButton>().OnSelect(null);
    }