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)); } }
public PlayerRoundPhase(GameState state) { this.state = state; }
public InitializationPhase(GameState state, GamePhaseManager gamePhaseManager) { this.state = state; this.gamePhaseManager = gamePhaseManager; }
public MobileInstance PickNextMobile(GameState gameState) { return gameState.Mobiles.MinBy(mobile => mobile.RoundDelay); }
public MobileInstance GetMobileById(GameState gameState, int mobileId) { return gameState.Mobiles.First(mobile => mobile.Id == mobileId); }