public void EnemyTurn(float[] vectorAction) { if (vectorAction != null) { if (vectorAction[0] == 0) { Attack(enemyUnit, playerUnit); } else if (vectorAction[0] == 1) { Heal(enemyUnit); } agent.AddReward(enemyUnit.currentHP / enemyUnit.maxHP); agent.AddReward(-(playerUnit.currentHP / playerUnit.maxHP)); //else if (vectorAction[2] == 1) //{ // StartCoroutine(infoBarManager.UpdateText(enemyUnit.unitName + " moves left!")); // enemy.transform.Translate(new Vector3(-1, 0, 0)); // state = BattleState.PLAYERTURN; // PlayerTurn(); //} //else if (vectorAction[3] == 1) //{ // StartCoroutine(infoBarManager.UpdateText(enemyUnit.unitName + " moves right!")); // enemy.transform.Translate(new Vector3(1, 0, 0)); // state = BattleState.PLAYERTURN; // PlayerTurn(); //} //else if (vectorAction[4] == 1) //{ // StartCoroutine(infoBarManager.UpdateText(enemyUnit.unitName + " moves up!")); // enemy.transform.Translate(new Vector3(0, 1, 0)); // state = BattleState.PLAYERTURN; // PlayerTurn(); //} //else if (vectorAction[5] == 1) //{ // StartCoroutine(infoBarManager.UpdateText(enemyUnit.unitName + " moves down!")); // enemy.transform.Translate(new Vector3(0, -1, 0)); // state = BattleState.PLAYERTURN; // PlayerTurn(); //} } }
IEnumerator PlayerAttack() { bool isDead = enemyUnit.TakeDamage(playerUnit.damage); enemyHUD.SetHP(enemyUnit.currentHP); dialogueText.text = "The attack is successful!"; yield return(new WaitForSeconds(2f)); if (isDead) { state = BattleState.WON; EndBattle(); } else { state = BattleState.ENEMYTURN; agent.AddReward(-0.2f); //StartCoroutine(EnemyTurn()); //EnemyTurn(); } }