Beispiel #1
0
    void Update()
    {
        if (state == AbilityMenuState.Off)          //player select
        {
            if (playerData.state == PlayerState.ready)
            {
                changeState(AbilityMenuState.Bar);
            }
        }
        else            //game huds

        {
            int current_cost = 0;
            foreach (var abi in AbilityBarGrid.Grid)
            {
                current_cost += abi.GetComponent <ItemContainerMain> ().Ability.GetCost();
            }

            int resources = playerData.ResourceAmount - current_cost;

            //input
            if (state != AbilityMenuState.Ready)
            {
                if (Input.GetButtonDown("A_" + playerData.controllerNumber))
                {
                    sfxr.playSelect();
                    if (state == AbilityMenuState.Bar)
                    {
                        changeState(AbilityMenuState.Shop);
                    }
                    else if (state == AbilityMenuState.Shop)
                    {
                        //select item and change to current slot
                        GetSelectedBar().Ability = new AbilityItem(GetSelectedShop().Ability.Ability);
                        GetSelectedBar().Ability.Stats.Clear();
                        changeState(AbilityMenuState.Bar);
                    }
                    else if (state == AbilityMenuState.Upgrade)
                    {
                        changeState(AbilityMenuState.Bar);
                    }
                }

                if (Input.GetButtonDown("B_" + playerData.controllerNumber))
                {
                    if (state != AbilityMenuState.Bar)
                    {
                        sfxr.playCancel();
                    }
                    changeState(AbilityMenuState.Bar);
                }

                if (Input.GetButtonDown("Y_" + playerData.controllerNumber))
                {
                    if (state != AbilityMenuState.Upgrade)
                    {
                        sfxr.playSelect();
                    }
                    if (state != AbilityMenuState.Upgrade)
                    {
                        changeState(AbilityMenuState.Upgrade);
                    }
                }
            }

            if (gameController.State == GameState.Setup)
            {
                if (Input.GetButtonDown("Start_" + playerData.controllerNumber))
                {
                    sfxr.playSelect();
                    if (state == AbilityMenuState.Ready)
                    {
                        changeState(AbilityMenuState.Bar);
                    }
                    else
                    {
                        if (resources < 0)
                        {
                            menu_BG_panel.NoMoniesWarning();
                        }
                        else
                        {
                            changeState(AbilityMenuState.Ready);
                        }
                    }
                }

                //back to player activation
                if (Input.GetButtonDown("Back_" + playerData.controllerNumber))
                {
                    sfxr.playCancel();
                    if (state != AbilityMenuState.Ready && state != AbilityMenuState.Off)
                    {
                        changeState(AbilityMenuState.Off);
                    }
                    if (state == AbilityMenuState.Ready)
                    {
                        changeState(AbilityMenuState.Bar);
                    }
                }
            }

            //update bg labels
            menu_BG_panel.SetResources(resources);

            if (state == AbilityMenuState.Bar || state == AbilityMenuState.Upgrade)
            {
                menu_BG_panel.SetCost(GetSelectedBar().Ability.GetCost());
                menu_BG_panel.SetName(GetSelectedBar().Ability.GetName());
            }
            if (state == AbilityMenuState.Shop)
            {
                if (GetSelectedShop().Ability.Ability != null)
                {
                    menu_BG_panel.SetCost(GetSelectedShop().Ability.GetCost());
                    menu_BG_panel.SetName(GetSelectedShop().Ability.GetName());
                }
                else
                {
                    menu_BG_panel.SetCost(0);
                    menu_BG_panel.SetName("");
                }
            }

            //update MP & HP
            if (state == AbilityMenuState.Bar)
            {
                if (Input.GetButtonDown("X_" + playerData.controllerNumber))
                {
                    sfxr.playSelect();
                    if (swap_item == null)
                    {
                        swap_item = GetSelectedBar();
                        _Camera.selectedObjectHighlight = AbilityBarGrid.SelectedItem().gameObject;
                        swap_item.enableSwapSprite(true);
                    }
                    else
                    {
                        var s_ab = GetSelectedBar().Ability;
                        GetSelectedBar().Ability = swap_item.Ability;
                        swap_item.Ability        = s_ab;
                        disableSwap();
                    }
                }
            }
            if (state == AbilityMenuState.Ready)
            {
                if (playerData.Player != null)
                {
                    hp_slider.sliderValue = playerData.Player.HP / playerData.Player.stats.HP;
                    mp_slider.sliderValue = playerData.Player.MP / playerData.Player.stats.MP;
                }
                else
                {
                    //hp_slider.sliderValue=mp_slider.sliderValue = 0;
                    if (gameController.State == GameState.GameOn)
                    {
                        gameObject.SetActive(false);
                    }
                }
                if (gameController.State == GameState.Setup)
                {
                    if (playerData.Player == null)
                    {
                        playerManager.CreatePlayer(playerData);
                    }
                    else
                    {
                        if (Input.GetButtonDown("B_" + playerData.controllerNumber))
                        {
                            playerData.Player.Die();
                        }
                    }
                }
            }
        }
    }