コード例 #1
0
    IEnumerator PlayerAttack(bool special)
    {
        playerUnit.isDefending = false;
        var mydamage = playerUnit.damage;

        if (special)
        {
            mydamage *= 2;
            playerUnit.useMana(playerUnit.special_mana_cost);
            playerHUD.setMana(playerUnit.currentMana);
        }


        if (enemyUnit.isDefending)
        {
            Debug.Log("Enemy is defending");
            mydamage = mydamage / 60;
            enemyUnit.isDefending = false;
        }

        Debug.Log("Damage given: " + mydamage);

        bool isDead = enemyUnit.takeDamage(mydamage);

        enemyHUD.setHP(enemyUnit.currentHP);
        dialogueText.text = player_special_attack + " attack!";

        Handheld.Vibrate();

        var music = PlayerPrefs.GetString("Music", "Default value");

        if (music == "yes")
        {
            player_attack.Play();
        }

        attackbar.SetActive(false);
        actionbar.SetActive(true);

        yield return(new WaitForSeconds(2f));

        if (isDead)
        {
            state = BattleState.WON;
            StartCoroutine(EndBattle());
        }
        else
        {
            state = BattleState.ENEMYTURN;
            StartCoroutine(EnemyTurn());
        }


        yield return(new WaitForSeconds(2f));
    }
コード例 #2
0
    IEnumerator EnemyTurn()
    {
        enemyUnit.isDefending = false;
        int  random   = UnityEngine.Random.Range(0, 3);
        bool isDead   = false;
        var  mydamage = enemyUnit.damage;

        Debug.Log("Random is: " + random);

        if (random == 1 || random == 0)
        {
            if (random == 1)
            {
                if (enemyUnit.currentMana > enemyUnit.special_mana_cost)
                {
                    mydamage *= 2;
                    enemyUnit.useMana(enemyUnit.special_mana_cost);
                    enemyHUD.setMana(enemyUnit.currentMana);
                }
            }
            var music = PlayerPrefs.GetString("Music", "Default value");
            if (music == "yes")
            {
                enemy_attack.Play();
            }

            dialogueText.text = enemyUnit.unitName + " uses " + enemy_special_attack + "!";
            Handheld.Vibrate();

            if (playerUnit.isDefending)
            {
                playerUnit.isDefending = false;
                mydamage = mydamage / 60;
            }



            isDead = playerUnit.takeDamage(mydamage);
            playerHUD.setHP(playerUnit.currentHP);
        }

        if (random == 2)
        {
            enemyUnit.isDefending  = true;
            enemyUnit.currentMana += 30;
            if (enemyUnit.currentMana > 100)
            {
                enemyUnit.currentMana = 100;
            }
            enemyHUD.setMana(enemyUnit.currentMana);
            dialogueText.text = enemyUnit.unitName + " defense mode!";
        }



        yield return(new WaitForSeconds(1f));


        if (isDead)
        {
            state = BattleState.LOST;
            Debug.Log("Player is dead");
            StartCoroutine(EndBattle());
        }
        else
        {
            state = BattleState.PLAYERTURN;
            playerTurn();
        }
    }