public void Start() { _state = BattleState.InGame; _round = 0; _winner = null; NextRound(); }
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) )); }
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; }
public void Surrender() { if (_state != BattleState.InGame) { return; } _winner = GetCurrentArmy() == _attacker ? _target : _attacker; Stop(); }
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); }
public virtual bool Use(BattleUnitsStack source, BattleArmy target) => false;
public virtual bool Use(BattleArmy source, IList <BattleUnitsStack> targets) => false;
public virtual bool Use(BattleArmy source, BattleArmy target) => false;