예제 #1
0
 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);
     }
 }
예제 #2
0
 public BattleSimulatorService(
     IAttackStrategyComposite attackStrategyComposite,
     IBattleService battleService,
     IAttackChanceService attackChanceService,
     IUnitOfWork unitOfWork,
     IBattleLogRepository battleLogRepository)
 {
     _attackStrategyComposite = attackStrategyComposite;
     _battleService           = battleService;
     _attackChanceService     = attackChanceService;
     _unitOfWork          = unitOfWork;
     _battleLogRepository = battleLogRepository;
 }
예제 #3
0
        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);
            }
        }