private void OnTriggerEnter2D(Collider2D collision) { if (!collision.GetComponent <PlayerAttack>()) { if (Health > 0) { EnemyDotManager enemy = collision.GetComponent <EnemyDotManager>(); if (enemy) { Health -= (int)enemy.Health; enemySpawner.AliveEnemyCount--; if (Health <= 0) { Destroy(collision.gameObject); StartCoroutine(gameOverManager.GameOver()); } } HealthBoost healthBoost = collision.GetComponent <HealthBoost>(); if (healthBoost) { Health += healthBoost.Health; } Destroy(collision.gameObject); } else { //If game is over, this destroys all game objects except player end node. Destroy(collision.gameObject); } } }
private void ConfigureNewEnemy(EnemyDotManager newEnemy) { newEnemy.SpawnHealth = Random.Range(MinEnemyHealth, MaxEnemyHealth); newEnemy.SpawnSpeed = Random.Range(MinEnemySpeed, MaxEnemySpeed); float scaleFactor = Random.Range(MinScaleFactor, MaxScaleFactor); newEnemy.transform.localScale = new Vector3(scaleFactor, scaleFactor, 1.0f); }
private void OnTriggerStay2D(Collider2D collision) { if (collision.GetComponent <PlayerHealth>() && randomFeature != RandomFeature.UnlimitedFuel) { Fuel = MaxFuel; } EnemyDotManager enemy = collision.GetComponent <EnemyDotManager>(); if (Fuel > 0 && enemy) { enemy.HitMe(Damage); Fuel--; Score += (int)(Damage * (float)scoreMultiplier); } }
private void SpawnEnemy() { if (AliveEnemyCount < MaxEnemyCount) { Vector2 spawnPos = Random.insideUnitCircle.normalized * 8.0f; //Transforming spawPos into a rectangle spawnPos.x = Mathf.Clamp(spawnPos.x, -4.2f, 4.2f); spawnPos.y = Mathf.Clamp(spawnPos.y, -6.5f, 6.5f); EnemyDotManager newEnemy = Instantiate(ChooseNewEnemy(), spawnPos, Quaternion.identity, transform).GetComponent <EnemyDotManager>(); ConfigureNewEnemy(newEnemy); AliveEnemyCount++; TotalSpawnedEnemies++; } }