public BattleInterruptController(Battlefield field, Int32 treshold)
        {
            _field = field;
            _treshold = treshold;

            _redsPreviousMovCount = _field.Reds.Count;
            _whitesPreviousMoveCount = _field.Whites.Count;
        }
        public ActionCommand(UnitKeeper target, Battlefield field)
            : base()
        {
            _target = target;

            _isDeadly = (_target.Changed != null && _target.Changed.Health == 0) ? true : false;

            _allies = field.FindAllies(_target.Original);
            if (_allies == null)
                throw new InvalidOperationException("Allies were not found.");

            _index = _allies.FindIndex(original => original == _target.Original);
        }
Esempio n. 3
0
        public Battle()
        {
            _field = new Battlefield();
            _field.Status = Battlefield.BattleStatus.Active;

            _commandManager = new CommandManager(_field);
            _commandManager.CommandEvent += HandleCommand;

            _availableStrategies = new List<MilitaryStrategy>(3);
            LoadAvailableStrategies();
            if (_availableStrategies.Count == 0)
                throw new Exception("No available strategies.");

            _currentStrategy = _availableStrategies[0];

            _interrupt = new BattleInterruptController(_field, 10);
        }
 public WallOnWallStrategy(CommandManager commandManager, Battlefield field)
     : base(commandManager, field)
 {
 }
 public FightCommand(UnitKeeper target, Battlefield field)
     : base(target, field)
 {
 }
 public CommandManager(Battlefield field)
 {
     _done = new Stack<Command>();
     _undone = new Stack<Command>();
 }
 protected MilitaryStrategy(CommandManager commandManager, Battlefield field)
 {
     _commandManager = commandManager;
     _field = field;
 }
 public OneOnOneStrategy(CommandManager commandManager, Battlefield field)
     : base(commandManager, field)
 {
 }
 public SpecialActionCommand(UnitKeeper target, Battlefield field)
     : base(target, field)
 {
 }
 public GameOverCommand(Battlefield field, String message)
     : base()
 {
     _field = field;
     _message = message;
 }