Mercenary GenerateMercenary(SpawnableMercenary smerc) { Mercenary toReturn = smerc.merc.Copy(); float difficulty = SCALING_FACTOR * MarketManager.instance.GetDifficulty(); toReturn.attack += Mathf.RoundToInt(difficulty * smerc.atkScaling); toReturn.health += Mathf.RoundToInt(difficulty * smerc.hlthScaling); toReturn.attackSpeed += Mathf.RoundToInt(difficulty * smerc.spdScaling); return(toReturn); }
IEnumerator SpawningRoutine() { while (true) { SpawnableMercenary chosen = ChoseSpawnableMercenary(); float cost = chosen.cost + chosen.costScaling * SCALING_FACTOR * MarketManager.instance.GetDifficulty(); while (budget < cost) { float currentBudget = MarketManager.instance.GetDifficulty(); if (currentBudget == 0) { MarketManager.instance.EndRoundEarly(); yield break; } else { budget += Time.deltaTime * currentBudget; } yield return(0); } budget -= cost; queue.Enqueue(GenerateMercenary(chosen)); } }