示例#1
0
    public GameViewModel()
    {
        m_mainViewModel = new MainMenuViewModel(this);
        m_mainViewModel.OnOpenNewGameCommand += MainViewModel_OnOpenNewGameCommand;
        m_mainViewModel.OnOpenOptionsCommand += MainViewModel_OnOpenOptionsCommand;
        m_mainViewModel.OnLoadGameCommand    += MainViewModel_OnLoadGameCommand;

        m_newGameViewModel = new NewGameViewModel(this);
        m_newGameViewModel.OnCloseNewGameCommand   += NewGameViewModel_OnCloseNewGameCommand;
        m_newGameViewModel.OnStartGameCommand      += NewGameViewModel_OnStartGameCommand;
        m_newGameViewModel.OnDisplayDurationChange += NewGameViewModel_OnDisplayDurationChange;
        m_newGameViewModel.OnPlayerCountChange     += NewGameViewModel_OnPlayerCountChange;
        m_newGameViewModel.OnSessionNameChange     += NewGameViewModel_OnSessionNameChange;
        m_newGameViewModel.OnSearchedCountChange   += NewGameViewModel_OnSearchedCountChange;;

        m_optionsViewModel = new OptionsViewModel(this);
        m_optionsViewModel.OnCloseOptionsCommand += OptionsViewModel_OnCloseOptionsCommand;

        m_syllablesInputViewModel = new SyllablesInputViewModel(this);
        m_syllablesInputViewModel.OnAcceptCommand += SyllablesViewModel_OnAcceptCommand;

        m_incommingTransmissionViewModel = new IncommingTransmissionViewModel(this);
        m_incommingTransmissionViewModel.OnWaitTimePassed += IncommingTransmissionViewModel_OnWaitTimePassed;

        m_endScreenViewModel              = new EndScreenViewModel(this);
        m_endScreenViewModel.OnOKCommand += EndScreenViewModel_OnOKCommand;

        CurrentDisplayedMenu = m_mainViewModel;
    }
示例#2
0
        public async Task <EndScreenViewModel> GetEndScreenViewModel(int gameId, string myUsername, string teammateUsername, string opponent1Username, string opponent2Username, int userId)
        {
            var player = await _playerRepository.GetPlayerByUserIdAsync(userId);

            var game = await _gameRepository.GetGameById(gameId);

            var winningTeam = GetWinningTeamFromeScores(game);
            var myTeam      = player.Team.Value;

            if (!winningTeam.HasValue)
            {
                return(null);
            }

            var model = new EndScreenViewModel()
            {
                MyUsername        = myUsername,
                TeammateUsername  = teammateUsername,
                Opponent1Username = opponent1Username,
                Opponent2Username = opponent2Username,
                Winner1           = myTeam == winningTeam.Value ? myUsername : opponent1Username,
                Winner2           = myTeam == winningTeam.Value ? teammateUsername : opponent2Username,
                MyTeamScore       = myTeam == Team.FirstTeam ? game.FirstTeamTotalScore : myTeam == Team.SecondTeam ? game.SecondTeamTotalScore : 0,
                OpponentTeamScore = myTeam == Team.FirstTeam ? game.SecondTeamTotalScore : myTeam == Team.SecondTeam ? game.FirstTeamTotalScore : 0,
                PlayerQuit        = false,
                QuitUsername      = ""
            };

            return(model);
        }
示例#3
0
        public EndScreenViewModel GetEndScreenViewModelForPlayerQuitting(string quitUsername, string opponent1Username, string opponent2Username)
        {
            var model = new EndScreenViewModel()
            {
                MyUsername        = "",
                TeammateUsername  = "",
                Opponent1Username = "",
                Opponent2Username = "",
                Winner1           = opponent1Username,
                Winner2           = opponent2Username,
                MyTeamScore       = 0,
                OpponentTeamScore = 0,
                PlayerQuit        = true,
                QuitUsername      = quitUsername
            };

            return(model);
        }