private void ResolveAttackPhase(IBattleable a, IBattleable b) { ResolveAttack(a, b); if (b.IsAlive()) { ResolveAttack(b, a); } }
public BattleResult Resolve() { while (_attacker.IsAlive() && _defender.IsAlive()) { _round++; if (AttackerHasInitiative()) { ResolveAttackPhase(_attacker, _defender); } else { ResolveAttackPhase(_defender, _attacker); } } return(new BattleResult(_attacker, _defender, _log)); }