Example #1
0
        public void Start()
        {
            _state  = BattleState.InGame;
            _round  = 0;
            _winner = null;

            NextRound();
        }
Example #2
0
 public bool Use(BattleArmy source, SkillTarget target)
 {
     return(target.Match(
                battle => Use(source, battle),
                army => Use(source, army),
                list => Use(source, list),
                stack => Use(source, stack)
                ));
 }
Example #3
0
        public Battle(Army attacker, Army target)
        {
            _attacker = new BattleArmy(attacker, this);
            _target   = new BattleArmy(target, this);

            _state  = BattleState.None;
            _round  = 0;
            _winner = null;

            _currentStacks = null;
        }
Example #4
0
        public void Surrender()
        {
            if (_state != BattleState.InGame)
            {
                return;
            }

            _winner = GetCurrentArmy() == _attacker ? _target : _attacker;

            Stop();
        }
Example #5
0
        public bool TryToStop()
        {
            if (_attacker.GetAliveStacks().Count == 0)
            {
                _winner = _target;
                Stop();

                return(true);
            }

            if (_target.GetAliveStacks().Count == 0)
            {
                _winner = _attacker;
                Stop();

                return(true);
            }

            return(false);
        }
Example #6
0
 public virtual bool Use(BattleUnitsStack source, BattleArmy target) => false;
Example #7
0
 public virtual bool Use(BattleArmy source, IList <BattleUnitsStack> targets) => false;
Example #8
0
 public virtual bool Use(BattleArmy source, BattleArmy target) => false;