public void TakeDamage(float damage) { health -= damage; if (damageParticle != null) { Instantiate(damageParticle, transform.position, Quaternion.identity); } spriteRenderer.color = Color.blue; Invoke("ChangeBackColor", 0.1f); if (health <= 0f && !preventMultiDeath) { preventMultiDeath = true; player.GetClosestRoom().enemies--; if (player.GetClosestRoom().enemies <= 0 && player.GetClosestRoom().spawnerInRoom == false) { betweenBattle.OpenPowerupScreen(); } if (enemyReward != null) { Instantiate(enemyReward, transform.position, transform.rotation); } if (giveWeapon) { int weaponIndex = UnityEngine.Random.Range(0, weaponReward.Length); Instantiate(weaponReward[weaponIndex], new Vector3(transform.position.x, transform.position.y - 3, transform.position.z), transform.rotation); } if (enemyIndex == 1) { soundLibrary.UniblobNeighSFX(); } Destroy(gameObject); } }
void WaveCompleted() { Debug.Log("Wave completed!"); state = SpawnState.COUNTING; waveCountdown = timeBetweenWaves; if (nextWave + 1 > waves.Length - 1) { //Game state complete. Now what? Fanfare? Next level? //nextWave = 0; Debug.Log("All waves complete! Looping..."); player.GetClosestRoom().spawnerInRoom = false; player.GetClosestRoom().roomCleared = true; player.GetClosestRoom().activeSpawners--; canSpawn = false; stopSpawning = true; if (player.GetClosestRoom().enemies <= 0) { betweenBattle.OpenPowerupScreen(); } } else { nextWave++; } }