Esempio n. 1
0
 public MapConfiguration(MapDimensions dimensions, IMap map, ICombatantDatabase combatantDatabase, int chapterNumber, string id)
 {
     Dimensions    = dimensions;
     Map           = map;
     Combatants    = combatantDatabase;
     ChapterNumber = chapterNumber;
     Id            = id;
 }
Esempio n. 2
0
        public Battle(IMap map, IRandomizer randomizer, ICombatantDatabase combatants, List <ArmyType> turnOrder, List <IObjective> objectives,
                      MapConfig mapConfig)
        {
            TurnNumber            = 0;
            EventTileWalkedSignal = new Signal <string>();
            Objectives            = objectives;
            Map         = map;
            _randomizer = randomizer;
            _combatants = combatants;

            map.EventTileTriggeredSignal.AddListener(_relayEvent);

            var skillDatabase = new SkillDatabase(map);

            _forecaster = new FightForecaster(map, skillDatabase);
            _finalizer  = new FightFinalizer(skillDatabase);
            _turnOrder  = turnOrder
                          .Where(army => combatants.GetCombatantsByArmy(army).Count > 0)
                          .ToList();

            foreach (var combatant in combatants.GetAllCombatants())
            {
                RegisterCombatant(combatant, map);
            }

            foreach (var eventTile in mapConfig.EventTiles)
            {
                Map.AddEventTile(eventTile);
            }

            var firstArmy = _turnOrder[0];

            _currentTurn = new Turn(_combatants, firstArmy);

            _eventsByTurn = mapConfig.TurnEvents
                            .GroupBy(evt => evt.ActivationTurn)
                            .ToDictionary(x => x.Key, x => x.ToList());
        }
Esempio n. 3
0
 public Turn(ICombatantDatabase combatantDatabase, ArmyType army)
 {
     Army        = army;
     _combatants = combatantDatabase.GetCombatantsByArmy(army);
     _combatants.ForEach(AddNewCombatant);
 }