private async Task Attack(Army defensiveArmy, IAttackChanceService attackChanceService, Func <Log, Task> logger) { if (attackChanceService.IsSuccessful(this)) { await defensiveArmy.AttackedBy(this, logger); await LogAction(Log.CreateAttackLog(Battle, this, defensiveArmy), logger); } }
public BattleSimulatorService( IAttackStrategyComposite attackStrategyComposite, IBattleService battleService, IAttackChanceService attackChanceService, IUnitOfWork unitOfWork, IBattleLogRepository battleLogRepository) { _attackStrategyComposite = attackStrategyComposite; _battleService = battleService; _attackChanceService = attackChanceService; _unitOfWork = unitOfWork; _battleLogRepository = battleLogRepository; }
public async Task NexAction( Army defensiveArmy, IAttackChanceService attackChanceService, Func <Log, Task> logger) { if (IsDead) { return; } if (LastLog == null || LastLog.LogType == LogType.Reload) { await Attack(defensiveArmy, attackChanceService, logger); } else { await Reload(logger); } }