Example #1
0
        private async Task DealDamageToUser(User user, Attack attack, User target, string channel)
        {
            var message = attack.Status.ToMessage(_userService.Mention(user), _userService.Mention(target), attack.Damage);

            await _slack.BroadcastMessage(message, channel);

            if (target.IsDead() && await _userService.HandleDeath(target, channel))
            {
                _eventDispatcher.OnDeathByUser(target, user);
                await _userService.AddExperience(user, KillExperienceGain, channel);
            }

            _statsRepository.UpdateHealth(target.Id, target.Health);
        }