예제 #1
0
 public void SpawnMobiles(GameState state)
 {
     var mobiles = state.Mobiles;
      var spawnXs = state.Map.InitialSpawnXs.Shuffle().Take(mobiles.Count).ToArray();
      for (var i = 0; i < mobiles.Count; i++) {
     var mobile = mobiles[i];
     var spawnX = spawnXs[i];
     int spawnY;
     if (!state.Map.TryFindTopmostPixel(spawnX, out spawnY)) {
        throw GameExceptions.BadSpawn(state.Map, spawnX);
     }
     state.PushEvent(new SpawnEvent(mobile.Id, spawnX, spawnY, true));
      }
 }
예제 #2
0
        public void SpawnMobiles(GameState state)
        {
            var mobiles = state.Mobiles;
            var spawnXs = state.Map.InitialSpawnXs.Shuffle().Take(mobiles.Count).ToArray();

            for (var i = 0; i < mobiles.Count; i++)
            {
                var mobile = mobiles[i];
                var spawnX = spawnXs[i];
                int spawnY;
                if (!state.Map.TryFindTopmostPixel(spawnX, out spawnY))
                {
                    throw GameExceptions.BadSpawn(state.Map, spawnX);
                }
                state.PushEvent(new SpawnEvent(mobile.Id, spawnX, spawnY, true));
            }
        }