public void AdvanceGame()
    {
        IEnumerable <PlayerMove> moves     = Factions.Factions.SelectMany(item => item.GetMoves()).ToArray();
        GameTurnMoves            turnMoves = new GameTurnMoves(moves);

        _mainManager.AdvanceGame(turnMoves);
    }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    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);
    }