string generateRandomEnemy() { float rate = Random.Range(0.0f, 1.0f); MONSTERS m = generateMonsterBasedOnPercentage(rate); return(monstersToSpawn.Length == 0 ? convertEnumToString(0) : convertEnumToString(m)); }
string convertEnumToString(MONSTERS m) { switch (m) { case MONSTERS.MUSHROOM: return(Pool.MUSHROOM); case MONSTERS.ZOMBIE: return(Pool.ZOMBIE); case MONSTERS.RANGED_SLIME: return(Pool.RANGED_SLIME); default: return(Pool.MUSHROOM); } }
MONSTERS generateMonsterBasedOnPercentage(float rate) { MONSTERS chosenMonster = monstersToSpawn[0].tag; float accumulatedChance = accumulatedMonsterChances(); float percentage = 0; foreach (Monsters m in monstersToSpawn) { percentage += m.percentage / accumulatedChance; if (percentage > rate) { chosenMonster = m.tag; break; } } return(chosenMonster); }