IEnumerator SetupBattle() { var petLevel = Controller.instance.data.productionUpgradeLevel; for (int i = 0; i < 3; i++) { //int friendlyLevel = ((petLevel[friendlyMonsterStatsList[0].MonsterID] + petLevel[friendlyMonsterStatsList[1].MonsterID] + petLevel[friendlyMonsterStatsList[2].MonsterID]) * 1) / 3; GameObject friendlyGO = Instantiate(friendlyPrefab, playerBattleStations[i]); MonsterStats friendlyUnit = friendlyGO.GetComponent <MonsterStats>(); friendlyUnit.MonsterID = TeamSelectManager.instance.ChosenMonsters[i]; friendlyUnit.MonsterMaxHP = (int)(Math.Pow(Controller.instance.data.productionUpgradeLevel[friendlyUnit.MonsterID], 1.1) * 5); friendlyUnit.MonsterCurrentHP = (int)(Math.Pow(Controller.instance.data.productionUpgradeLevel[friendlyUnit.MonsterID], 1.1) * 5); friendlyUnit.MonsterAttackPower = (int)(Math.Pow(Controller.instance.data.productionUpgradeLevel[friendlyUnit.MonsterID], 1.1) * 1.3 + 1); friendlyUnit.MonsterAnimator.runtimeAnimatorController = friendlyAnimators[friendlyUnit.MonsterID].runtimeAnimatorController; friendlyUnit.MonsterHPText.text = $"HP {friendlyUnit.MonsterCurrentHP}/{friendlyUnit.MonsterMaxHP}"; friendlyUnit.hpSlider.maxValue = friendlyUnit.MonsterMaxHP; friendlyUnit.hpSlider.value = friendlyUnit.MonsterCurrentHP; friendlyMonsterStatsList.Add(friendlyUnit); allUnits.Add(friendlyGO); } for (int i = 0; i < 3; i++) { int enemyType = Random.Range(0, 4); int enemyLevel = ((petLevel[friendlyMonsterStatsList[0].MonsterID] + petLevel[friendlyMonsterStatsList[1].MonsterID] + petLevel[friendlyMonsterStatsList[2].MonsterID]) * 5) / 12 + (i - 1); GameObject enemyGO = Instantiate(enemyPrefab, enemyBattleStation); MonsterStats enemyUnit = enemyGO.GetComponent <MonsterStats>(); enemyUnit.MonsterMaxHP = (int)(Math.Pow(enemyLevel, 1.1) * 5) + 1; enemyUnit.MonsterCurrentHP = (int)(Math.Pow(enemyLevel, 1.1) * 5) + 1; enemyUnit.MonsterAttackPower = (int)(Math.Pow(enemyLevel, 1.1) * 1 + 0); enemyUnit.MonsterAnimator.runtimeAnimatorController = enemyAnimators[enemyType].runtimeAnimatorController; enemyUnit.hpSlider.maxValue = enemyUnit.MonsterMaxHP; enemyUnit.hpSlider.value = enemyUnit.MonsterCurrentHP; enemyUnit.MonsterHPText.text = $"HP {enemyUnit.MonsterCurrentHP}/{enemyUnit.MonsterMaxHP}"; enemyUnit.Monster.SetActive(false); enemyMonsterStatsList.Add(enemyUnit); allUnits.Add(enemyGO); } enemyMonsterStatsList[0].Monster.SetActive(true); currentEnemy = 0; currentFriendly = 0; friendlyAlive = new[] { true, true, true }; enemyAlive = new[] { true, true, true }; outcomeReward = (int)Controller.instance.AutoClicksPerSecond() * 100; battleHUD.SetBattleHUD(); battleHUD.currentEnemyText.text = $"Enemy {currentEnemy + 1} / 3"; yield return(new WaitForSeconds(2f)); state = BattleState.PLAYERTURN; StartCoroutine(PlayerTurn()); }