// procedurally generates enemies that differ in strength void proceduralGeneration(GameObject creature) { // random roulette selector [0.0, 1.0] float target = Random.value; // probability for instantiating the overpowered enemy float limit = 0.15f; // get the parameters of the enemy EnemyFollowing enemyParams = creature.GetComponent <EnemyFollowing>(); if (target < limit) { // black (overpowered enemy) creature.transform.GetComponent <Renderer>().material.color = new Color(0, 0, 0); enemyParams.Enemylife = 100; enemyParams.moveSpeed = 20; enemyParams.Damage = 9001; } else { // red (weak enemy) creature.transform.GetComponent <Renderer>().material.color = new Color(1, 0, 0); enemyParams.Enemylife = 1; enemyParams.moveSpeed = 1; enemyParams.Damage = 0.1f; } }
void proceduralEnemyGeneration(GameObject creature) { float color = Random.value; EnemyFollowing enemyParams = creature.GetComponent <EnemyFollowing>(); renders = creature.GetComponentsInChildren <Renderer> (); foreach (Renderer rend in renders) { rend.material.color = new Color(1.0f - color, color, 1.0f / color); } enemyParams.Enemylife = (int)(9 * color + 1); // [1, 10] enemyParams.moveSpeed = (int)(12 * color + 2); // [2, 10] enemyParams.Damage = 19.9f * color + 0.1f; // [0, 10] }
// Start is called before the first frame update void Start() { Physics2D.queriesStartInColliders = false; enemyscript = transform.parent.gameObject.GetComponent <Enemy>(); enemyFollowing = transform.parent.gameObject.GetComponent <EnemyFollowing>(); }