public virtual void StopPart() { IsActive = false; if (Exit) { Exit.Open(); } if (OnPartStop != null) { OnPartStop(); } foreach (var item in WinConditions) { item.Stop(); Game.Instance.RemoveCondition(item); } Events.Instance.Unregister(this); foreach (var enemy in SpawnedEnemies) { enemy.Kill(); } SpawnedEnemies.Clear(); }
private void SpawnEnemy() { Enemy tempEnemy; int k = UnityEngine.Random.Range(0, enemyTypes.Length); int t = UnityEngine.Random.Range(0, EnemySpawners.Length); SpawnedEnemies.Add(tempEnemy = Instantiate(enemyTypes[k], EnemySpawners[t].position, Quaternion.identity).GetComponent <Enemy>()); tempEnemy.gameObject.layer = 11; }
public void SpawnEnemy() { Enemy currentEnemy = SetEnemyType(); currentEnemy = Instantiate(currentEnemy, spawnPoint.transform.position, Quaternion.identity); SetLevel(currentEnemy); currentEnemy.transform.SetParent(this.gameObject.transform); SpawnedEnemies.Add(currentEnemy); OnEnemySpawned?.Invoke(currentEnemy); }
private void Spawn(object sender, EventArgs args) { if (sender != null) { Enemy enemy = (Enemy)sender; //The line below would randomly cause crashes...can leave enemies in list anyways // unspawnEnemies.Remove(enemy); SpawnedEnemies.Add(enemy); OnSpawnEnemy.Invoke(this, enemy); } }
private void RemoveEnemy(object sender, EventArgs args) { Enemy enemy = (Enemy)sender; if (enemy.Done) { if (unspawnEnemies.Contains(enemy)) { unspawnEnemies.Remove(enemy); } if (SpawnedEnemies.Contains(enemy)) { SpawnedEnemies.Remove(enemy); } } }