public void AdvanceGame() { IEnumerable <PlayerMove> moves = Factions.Factions.SelectMany(item => item.GetMoves()).ToArray(); GameTurnMoves turnMoves = new GameTurnMoves(moves); _mainManager.AdvanceGame(turnMoves); }
public GameTurnTransition GetNextState(GameTurnMoves moves) { WarsResolver postWars = new WarsResolver(this, moves.ArmyMoves); UpgradeMovesResolver postUpgrades = new UpgradeMovesResolver(postWars.NewGameState, moves.Upgrades); MergerMovesResolver postMergers = new MergerMovesResolver(postUpgrades.NewGameState, moves.Mergers); GameTurnTransition transition = new GameTurnTransition( this, postWars.NewGameState, postUpgrades.NewGameState, postMergers.NewGameState, postMergers.MergeTable, postWars.Wars); return(transition); }
public void AdvanceGame(GameTurnMoves moves) { GameTurnTransition newState = CurrentState.GetNextState(moves); _turns.Add(newState); IEnumerable <Faction> survivingFactions = newState.AfterEverything.GetSurvivingFactions(); if (survivingFactions.Count() < 2) { HandleGameConclusion(survivingFactions); } DisplayManager.UpdateDisplayWrappers(CurrentState); _provinceNeighbors = new ProvinceNeighborsTable(CurrentState); InteractionManager.Factions.RenewBuilders(survivingFactions); InteractionManager.Timeline.SetToMax(TurnsCount); }