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); }