Пример #1
0
        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;
        }
Пример #2
0
        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();
            }
        }
Пример #3
0
 public void OnDeath(Enemy thisEnemy)
 {
     if (Death != null)
         Death(this);
 }