Beispiel #1
0
        public WarSorter(GameState state, WarForcesTable forcesAllocator, IEnumerable <AttackMove> attackMoves)
        {
            Dictionary <Province, List <AttackMove> > byTargetTable = SortByTarget(attackMoves);
            IEnumerable <FinalWarsSetup> finalWars = GetFinalWars(state, byTargetTable, forcesAllocator).ToArray();

            FinalWars = finalWars.ToArray();
        }
Beispiel #2
0
    public WarsResolver(GameState state, IEnumerable <AttackMove> attackMoves)
    {
        WarForcesTable warForcesTable = new WarForcesTable(state, attackMoves);
        WarSorter      warSorter      = new WarSorter(state, warForcesTable, attackMoves);

        Wars = warSorter.FinalWars.SelectMany(item => item.Wars).ToArray();

        NewGameState = GetNewGameState(state, Wars);
    }
Beispiel #3
0
        private IEnumerable <FactionArmies> GetAttackersForProvince(Province defender, IEnumerable <AttackMove> invaders, WarForcesTable forcesTable)
        {
            IEnumerable <IEnumerable <AttackMove> > invadersByFaction = GetInvadersByFaction(invaders).ToArray();

            foreach (IEnumerable <AttackMove> invadingFaction in invadersByFaction)
            {
                FactionArmies retItem = forcesTable.GetForcesFor(invadingFaction);
                yield return(retItem);
            }
        }
Beispiel #4
0
 private IEnumerable <FinalWarsSetup> GetFinalWars(GameState state, Dictionary <Province, List <AttackMove> > byTargetTable, WarForcesTable forcesTable)
 {
     foreach (KeyValuePair <Province, List <AttackMove> > item in byTargetTable)
     {
         FactionArmies defender = forcesTable.GetForcesFor(item.Key);
         IEnumerable <FactionArmies> invaders = GetAttackersForProvince(item.Key, item.Value, forcesTable).ToArray();
         ProvinceState  locationState         = state.GetProvinceState(item.Key);
         FinalWarsSetup retItem = new FinalWarsSetup(locationState, defender, invaders);
         yield return(retItem);
     }
 }