コード例 #1
0
ファイル: PrepareCombat.cs プロジェクト: ofaura/GameDesign
    void SelectCard(string taste)
    {
        GameObject tmp = GameObject.Find(taste);

        GameObject enemyGO   = GameObject.Find("Enemy");
        Adventurer enemyUnit = enemyGO.GetComponent <Adventurer>();

        //We reveal the minion chosen by the enemy
        enemyUnit.ChooseMinion();

        prefabs[index].transform.GetChild(1).gameObject.SetActive(true);
        tmp.GetComponent <Button>().interactable = false;

        playerUnit.selected_minion.transform.position = playerBattleStation.transform.position;

        b.state = BattleState.PLAYERTURN;
    }
コード例 #2
0
ファイル: BattleSystem.cs プロジェクト: ofaura/GameDesign
    IEnumerator PlayerAttack()
    {
        if (bot_vs_bot && !playerAttack) //If the combat is simulated or spected by the player
        {
            enemyUnit.ChooseMinion();
            playerUnit.ChooseMinion(true);
        }

        if (playerUnit.selected_minion.speed >= enemyUnit.selected_minion.speed || playerAttack)
        {
            float damage_taken = enemyUnit.selected_minion.CalculateTakenDamage(playerUnit.selected_minion);
            enemyUnit.currentHP -= damage_taken;

            bool isDead = false;
            if (enemyUnit.currentHP <= 0)
            {
                isDead = true;
            }
            else
            {
                isDead = false;
            }

            enemyHUD.SetHP(enemyUnit.currentHP);
            dialogueText.text = playerUnit.selected_minion.name + ", attack!";


            if (extracting_simulation_data)
            {
                yield return(new WaitForSeconds(0f));
            }

            else
            {
                yield return(new WaitForSeconds(2f));
            }

            if (isDead)
            {
                state = BattleState.WON;
                enemyUnit.RestMinion();

                EndBattle();
                yield break;
            }

            if (playerAttack)
            {
                state = BattleState.ENDTURN;
                StartCoroutine(EndTurn());
            }

            else
            {
                state = BattleState.ENEMYTURN;
                StartCoroutine(EnemyTurn());
            }

            playerAttack = false;
        }

        else
        {
            state = BattleState.ENEMYTURN;
            StartCoroutine(EnemyTurn());
        }
    }