public void TestPropertiesSetAfterInstantiate() { var game = new Game(SkillLevel.Beginner); var m = new GameStartedMessage(game); Assert.AreEqual <IGame>(game, m.Game); }
public async Task <StartGameResultDTO> Handle(StartGameCommand command, CancellationToken cancellationToken) { var totalPlayers = new List <string>(command.PlayerUserIds); totalPlayers.Add(command.UserId); var game = this.gameRepository.Create(command.Title, totalPlayers); game.GameEnded += this.OnGameEnded; var friendIds = command.PlayerUserIds.Select(f => f.ToString()).ToList(); var allParticipents = new List <string>(friendIds); allParticipents.Add(command.UserId.ToString()); var users = await this.userRepository.SearchUsersAsync(allParticipents); var pushInfosOfInvitedFriends = users .Where(u => u.PushInfo != null && u.Id != command.UserId.ToString()) .Select(u => new { u.Language, u.PushInfo }) .ToList(); var message = new GameStartedMessage(game.Id, command.Title, command.PlayerUserIds); await this.notificationService.SendSignalRMessageAsync( friendIds, Constants.SignalR.NotificationHubName, HubMethodNames.GameStarted, message); var inviter = users.FirstOrDefault(u => u.Id == command.UserId.ToString()); string url = $"{Constants.Urls.ApplicationUrl}/game/play/{game.Id}"; var groupedByLanguage = pushInfosOfInvitedFriends.GroupBy(p => p.Language); foreach (var lang in groupedByLanguage) { var translatedMessage = await this.translationService.GetTranslationAsync(lang.Key, "Game.InvitationMessage", inviter.Name); this.notificationService.SendWebPushMessage( lang.Select(l => l.PushInfo), new WebPushNotificationMessage(command.Title, translatedMessage, url)); } game.Start(); return(new StartGameResultDTO(game.Id)); }
private void OnGameStarted(GameStartedMessage msg) { bool homeTeam = _locator.GetService <IGameManager>().GameConfig.HomeSquadId == 0; _yawMin = minYaw; _yawMax = maxYaw; if (!homeTeam) { _yawMin += 180f; _yawMax += 180f; } float yaw = startYaw + (homeTeam? 0f : 180f); _yaw = _yawTarget = yaw; }
private void OnGameStarted(GameStartedMessage msg) { _bus.Publish(new Navigate(this, typeof(GameUIWindow))); }