public void AddEnemy(Enemy enemy) { if (Enemies.Count >= (RoomRect.Width - 2)*(RoomRect.Height - 2)) return; Enemies.Add(enemy); // Prevent Overlap enemy.Layer -= Enemies.Count*0.1; }
public void SpawnEnemies(Player player, GameObjectManager manager) { var temp = new Enemy[Enemies.Count]; Enemies.CopyTo(temp); foreach (var enemy in temp) { var position = GetRandomPointInDistance(player.Position, 4); var relativePos = position - (Vector)RoomRect.TopLeft; if (_occupied[(int) relativePos.X, (int) relativePos.Y]) { enemy.Kill(); continue; } _occupied[(int) relativePos.X, (int) relativePos.Y] = true; enemy.Position = position; manager.AddObject(enemy); enemy.Draw(); } }
public void OnDeath(Enemy thisEnemy) { if (Death != null) Death(this); }