コード例 #1
0
        private void _UpdateSlides()
        {
            int player = _PartyMode.GameData.NumPlayer;
            int mics   = _PartyMode.GameData.NumPlayerAtOnce;

            _PartyMode.GameData.NumPlayer       = _SelectSlides[_SelectSlideNumPlayers].Selection + _PartyMode.MinPlayers;
            _PartyMode.GameData.NumPlayerAtOnce = _SelectSlides[_SelectSlideNumMics].Selection + _PartyMode.MinPlayers;
            _PartyMode.GameData.NumRounds       = (_SelectSlides[_SelectSlideNumRounds].Selection + 1) * _RoundSteps;
            _PartyMode.GameData.NumJokers       = _SelectSlides[_SelectSlideNumJokers].Selection + 1;
            _PartyMode.GameData.RefillJokers    = (_SelectSlides[_SelectSlideRefillJokers].Selection == 1) ? true : false;

            _UpdateMicsAtOnce();
            _SetRoundSteps();

            if (player != _PartyMode.GameData.NumPlayer || mics != _PartyMode.GameData.NumPlayerAtOnce)
            {
                int num = CHelper.CombinationCount(_PartyMode.GameData.NumPlayer, _PartyMode.GameData.NumPlayerAtOnce);
                while (num > _MaxNumRounds)
                {
                    num -= _RoundSteps;
                }
                _PartyMode.GameData.NumRounds = num;
            }

            _UpdateSlideRounds();
        }
コード例 #2
0
        private void _UpdateSlides()
        {
            int player = _PartyMode.GameData.NumPlayer;
            int mics   = _PartyMode.GameData.NumPlayerAtOnce;

            _PartyMode.GameData.NumPlayer       = _SelectSlides[_SelectSlideNumPlayers].Selection + _PartyMode.MinPlayers;
            _PartyMode.GameData.NumPlayerAtOnce = _SelectSlides[_SelectSlideNumMics].Selection + _PartyMode.MinPlayers;
            _PartyMode.GameData.NumRounds       = (_SelectSlides[_SelectSlideNumRounds].Selection + 1) * _RoundSteps;
            _PartyMode.GameData.NumSongs        = _SelectSlides[_SelectSlideNumSongs].Selection + _PartyMode.MinSongs;
            _PartyMode.GameData.SongSource      = (ESongSource)_SelectSlides[_SelectSlideSongSource].Selection;
            _PartyMode.GameData.PlaylistID      = _SelectSlides[_SelectSlidePlaylist].Selection;
            _PartyMode.GameData.CategoryIndex   = _SelectSlides[_SelectSlideCategory].Selection;

            _UpdateMicsAtOnce();
            _SetRoundSteps();

            if (player != _PartyMode.GameData.NumPlayer || mics != _PartyMode.GameData.NumPlayerAtOnce)
            {
                int num = CHelper.CombinationCount(_PartyMode.GameData.NumPlayer, _PartyMode.GameData.NumPlayerAtOnce);
                while (num > _MaxNumRounds)
                {
                    num -= _RoundSteps;
                }
                _PartyMode.GameData.NumRounds = num;
            }

            if (_PartyMode.GameData.SongSource == ESongSource.TR_PLAYLIST)
            {
                if (CBase.Playlist.GetNumPlaylists() > 0)
                {
                    if (CBase.Playlist.GetSongCount(_PartyMode.GameData.PlaylistID) > 0)
                    {
                        _ConfigOk = false;
                        for (int i = 0; i < CBase.Playlist.GetSongCount(_PartyMode.GameData.PlaylistID); i++)
                        {
                            int id = CBase.Playlist.GetSong(_PartyMode.GameData.PlaylistID, i).SongID;
                            _ConfigOk = CBase.Songs.GetSongByID(id).AvailableGameModes.Any(mode => mode == EGameMode.TR_GAMEMODE_MEDLEY);
                            if (_ConfigOk)
                            {
                                break;
                            }
                        }
                    }
                    else
                    {
                        _ConfigOk = false;
                    }
                }
                else
                {
                    _ConfigOk = false;
                }
            }
            if (_PartyMode.GameData.SongSource == ESongSource.TR_CATEGORY)
            {
                if (CBase.Songs.GetNumCategories() == 0)
                {
                    _ConfigOk = false;
                }
                else if (CBase.Songs.GetNumSongsNotSungInCategory(_PartyMode.GameData.CategoryIndex) <= 0)
                {
                    _ConfigOk = false;
                }
                else
                {
                    CBase.Songs.SetCategory(_PartyMode.GameData.CategoryIndex);
                    _ConfigOk = false;
                    foreach (CSong song in CBase.Songs.GetVisibleSongs())
                    {
                        _ConfigOk = song.AvailableGameModes.Any(mode => mode == EGameMode.TR_GAMEMODE_MEDLEY);
                        if (_ConfigOk)
                        {
                            break;
                        }
                    }
                    CBase.Songs.SetCategory(-1);
                }
            }
            if (_PartyMode.GameData.SongSource == ESongSource.TR_ALLSONGS)
            {
                if (CBase.Songs.GetNumSongs() > 0)
                {
                    for (int i = 0; i < CBase.Songs.GetNumSongs(); i++)
                    {
                        _ConfigOk = CBase.Songs.GetSongByID(i).AvailableGameModes.Any(mode => mode == EGameMode.TR_GAMEMODE_MEDLEY);
                        if (_ConfigOk)
                        {
                            break;
                        }
                    }
                }
                else
                {
                    _ConfigOk = false;
                }
            }

            _SelectSlides[_SelectSlideCategory].Visible = _PartyMode.GameData.SongSource == ESongSource.TR_CATEGORY;
            _SelectSlides[_SelectSlidePlaylist].Visible = _PartyMode.GameData.SongSource == ESongSource.TR_PLAYLIST;

            _UpdateSlideRounds();
        }