Example #1
0
    // Update is called once per frame
    void Update()
    {
        if (!inCombat)
        {
            return;
        }
        //Debug.Log(player.getFullHP());
        // Wechselt die Auswahl im aktuellen Menü
        if (Input.GetKeyDown(KeyCode.DownArrow) || Input.GetKeyDown(KeyCode.S))
        {
            // Hier ist switch notwendig, weil BattleMenu.Selection nur 3 Auswahlmöglichkeiten hat
            switch (currentMenu)
            {
            case BattleMenu.Selection:
                if (currentSelection < SELECTION_AMOUNT)
                {
                    currentSelection++;
                    switchSelection();
                }
                break;

            case BattleMenu.Attacks:
                if (currentSelection < ATTACK_AMOUNT)
                {
                    currentSelection++;
                    switchSelection();
                }
                break;

            case BattleMenu.Items:
                if (currentSelection < ITEM_AMOUNT)
                {
                    currentSelection++;
                    switchSelection();
                }
                break;
            }
        }
        if (Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKeyDown(KeyCode.W))
        {
            if (currentSelection > 1)
            {
                currentSelection--;
                switchSelection();
            }
        }

        // reagiert auf Enter Eingabe
        if (isPlayersTurn && (Input.GetButtonDown("Submit") || Input.GetKeyDown(KeyCode.E)))
        {
            //prüft das aktuelle Menü
            switch (currentMenu)
            {
            case BattleMenu.Selection:
                switch (currentSelection)
                {
                case 1:
                    changeMenu(BattleMenu.Attacks);
                    switchSelection();
                    break;

                case 2:
                    changeMenu(BattleMenu.Items);
                    switchSelection();
                    break;

                case 3:
                    tryEscape();
                    break;
                }
                break;

            case BattleMenu.Attacks:
                switch (currentSelection)  // perform attack
                {
                case 1:
                    performPlayerAttack(1);
                    break;

                case 2:
                    performPlayerAttack(2);
                    break;

                case 3:
                    performPlayerAttack(3);
                    break;

                case 4:
                    performPlayerAttack(4);
                    break;
                }
                break;

            case BattleMenu.Items:
                switch (currentSelection)  // use item
                {
                case 1:
                    if (canAttack && player.getHPFlaskAmount() > 0)
                    {
                        player.useHPPotion();
                        showText(playerCombat.transform.position, player.getHPPotionRegen().ToString(), Color.green);
                        hpPotion.text     = "> " + player.getHPFlaskAmount() + "x Heiltrank";
                        playerHPText.text = "HP " + player.getHP().ToString() + "/" + player.getFullHP();
                        endTurn();
                    }
                    break;
                }
                break;
            }
        }

        // geht zum vorherigen Menü zurück
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            switch (currentMenu)
            {
            case BattleMenu.Attacks:
            case BattleMenu.Items:
                changeMenu(BattleMenu.Selection);
                switchSelection();
                break;
            }
        }
    }