using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class BattleSystem : MonoBehaviour
{
public GameObject playerPrefab;
public GameObject enemyPrefab;
public Transform playerBattleStation;
public Transform enemyBattleStation;
public Text dialogueText;
//need to store playerGO in a unit variable
Unit playerUnit;
Unit enemyUnit;
public AdventureHUD playerHUD;
public AdventureHUD enemyHUD;
public GameObject attackButton;
//on start
void Start() {
dialogueText.text = "Press Start!";
StartCoroutine(SetupBattle());
// }
//public OnClick() {
StartCoroutine(PlayerTeam());
StartCoroutine(EnemyTeam());
}
IEnumerator SetupBattle() {
//a reference to the thing we're spawning in by adding a GameObject
GameObject playerGO = Instantiate(playerPrefab, playerBattleStation);
playerUnit = playerGO.GetComponent<Unit>();
GameObject enemyGO = Instantiate(enemyPrefab, enemyBattleStation);
enemyUnit = enemyGO.GetComponent<Unit>();
playerHUD.SetHUD(playerUnit);
enemyHUD.SetHUD(enemyUnit);
Debug.Log("setup working");
yield return new WaitForSeconds(1f);
//StartCoroutine(PlayerTeam());
//StartCoroutine(EnemyTeam());
}
IEnumerator EnemyTeam() {
while (true) {
// dialogueText.text = enemyUnit.unitName + " attacks!";
yield return new WaitForSeconds(Random.Range(.1f, 1f));
bool isDead = playerUnit.TakeDamage(enemyUnit.damage);
playerHUD.SetHP(playerUnit.currentHP);
yield return new WaitForSeconds(Random.Range(.1f, 1f));
Debug.Log("enemyteam working");
if (isDead) {
dialogueText.text = "you won!";
enemyHUD.SetHP(enemyUnit.maxHP);
playerHUD.SetHP(playerUnit.maxHP);
} else {
StartCoroutine(EnemyTeam());
}
}
}
IEnumerator PlayerTeam() {
while (true) {
yield return new WaitForSeconds(Random.Range(.1f, 1f));
bool isDead = enemyUnit.TakeDamage(playerUnit.damage);
enemyHUD.SetHP(enemyUnit.currentHP);
yield return new WaitForSeconds(Random.Range(.1f, 1f));
Debug.Log("playerteam working");
if (isDead) {
dialogueText.text = "you dead!";
enemyHUD.SetHP(enemyUnit.maxHP);
playerHUD.SetHP(playerUnit.maxHP);
} else {
StartCoroutine(PlayerTeam()); }
}
}