示例#1
0
    public void FinishScene()
    {
        // Open the singing results scene.
        SingingResultsSceneData singingResultsSceneData = new SingingResultsSceneData();

        singingResultsSceneData.SongMeta = SongMeta;
        singingResultsSceneData.PlayerProfileToMicProfileMap = sceneData.PlayerProfileToMicProfileMap;

        // Check if the full song has been sung, i.e., the playback position is after the last note.
        // This determines whether the statistics should be updated and the score should be recorded.
        bool isAfterLastNote = true;

        foreach (PlayerController playerController in PlayerControllers)
        {
            SingingResultsSceneData.PlayerScoreData scoreData = new SingingResultsSceneData.PlayerScoreData();
            scoreData.TotalScore                = playerController.PlayerScoreController.TotalScore;
            scoreData.GoldenNotesScore          = playerController.PlayerScoreController.GoldenNotesTotalScore;
            scoreData.NormalNotesScore          = playerController.PlayerScoreController.NormalNotesTotalScore;
            scoreData.PerfectSentenceBonusScore = playerController.PlayerScoreController.PerfectSentenceBonusTotalScore;
            singingResultsSceneData.AddPlayerScores(playerController.PlayerProfile, scoreData);

            Note lastNote = playerController.GetLastNote();
            if (CurrentBeat < lastNote.EndBeat)
            {
                isAfterLastNote = false;
            }
        }

        if (isAfterLastNote)
        {
            UpdateSongFinishedStats();
        }

        SceneNavigator.Instance.LoadScene(EScene.SingingResultsScene, singingResultsSceneData);
    }
示例#2
0
    public void FinishScene()
    {
        // Open the singing results scene.
        SingingResultsSceneData singingResultsSceneData = new SingingResultsSceneData();

        singingResultsSceneData.SongMeta = SongMeta;

        //Get the stats manager and the stats object
        Statistics stats = StatsManager.Instance.Statistics;

        foreach (PlayerController playerController in PlayerControllers)
        {
            SingingResultsSceneData.PlayerScoreData scoreData = new SingingResultsSceneData.PlayerScoreData();
            scoreData.TotalScore                = playerController.PlayerScoreController.TotalScore;
            scoreData.GoldenNotesScore          = playerController.PlayerScoreController.GoldenNotesTotalScore;
            scoreData.NormalNotesScore          = playerController.PlayerScoreController.NormalNotesTotalScore;
            scoreData.PerfectSentenceBonusScore = playerController.PlayerScoreController.PerfectSentenceBonusTotalScore;
            singingResultsSceneData.AddPlayerScores(playerController.PlayerProfile, scoreData);

            //Save to highscore database
            stats.RecordSongFinished(SongMeta, playerController.PlayerProfile.Name, playerController.PlayerProfile.Difficulty,
                                     Convert.ToInt32(playerController.PlayerScoreController.TotalScore));
        }
        SceneNavigator.Instance.LoadScene(EScene.SingingResultsScene, singingResultsSceneData);
    }
示例#3
0
 public void Init(PlayerProfile playerProfile, SingingResultsSceneData.PlayerScoreData playerScoreData)
 {
     SetPlayerProfile(playerProfile);
     SetNormalNotesScore(playerScoreData.NormalNotesScore);
     SetGoldenNotesScore(playerScoreData.GoldenNotesScore);
     SetPerfectSentenceBonusScore(playerScoreData.PerfectSentenceBonusScore);
     SetTotalScore(playerScoreData.TotalScore);
 }
示例#4
0
    private SingingResultsSceneData CreateDefaultSceneData()
    {
        SingingResultsSceneData data = new SingingResultsSceneData();

        data.SongMeta = SongMetaManager.Instance.SongMetas[0];

        SingingResultsSceneData.PlayerScoreData playerScoreData = new SingingResultsSceneData.PlayerScoreData();
        playerScoreData.TotalScore                = 6500;
        playerScoreData.NormalNotesScore          = 4000;
        playerScoreData.GoldenNotesScore          = 2000;
        playerScoreData.PerfectSentenceBonusScore = 500;

        data.AddPlayerScores(PlayerProfileManager.Instance.PlayerProfiles[0], playerScoreData);
        return(data);
    }
示例#5
0
    public void FinishScene()
    {
        // Open the singing results scene.
        SingingResultsSceneData singingResultsSceneData = new SingingResultsSceneData();

        singingResultsSceneData.SongMeta = SongMeta;
        foreach (PlayerController playerController in PlayerControllers)
        {
            SingingResultsSceneData.PlayerScoreData scoreData = new SingingResultsSceneData.PlayerScoreData();
            scoreData.TotalScore                = playerController.PlayerScoreController.TotalScore;
            scoreData.GoldenNotesScore          = playerController.PlayerScoreController.GoldenNotesTotalScore;
            scoreData.NormalNotesScore          = playerController.PlayerScoreController.NormalNotesTotalScore;
            scoreData.PerfectSentenceBonusScore = playerController.PlayerScoreController.PerfectSentenceBonusTotalScore;
            singingResultsSceneData.AddPlayerScores(playerController.PlayerProfile, scoreData);
        }
        SceneNavigator.Instance.LoadScene(EScene.SingingResultsScene, singingResultsSceneData);
    }
示例#6
0
    public SceneData GetDefaultSceneData()
    {
        SingingResultsSceneData data = new SingingResultsSceneData();

        SongMetaManager.Instance.WaitUntilSongScanFinished();
        data.SongMeta = SongMetaManager.Instance.GetFirstSongMeta();

        SingingResultsSceneData.PlayerScoreData playerScoreData = new SingingResultsSceneData.PlayerScoreData();
        playerScoreData.TotalScore                = 6500;
        playerScoreData.NormalNotesScore          = 4000;
        playerScoreData.GoldenNotesScore          = 2000;
        playerScoreData.PerfectSentenceBonusScore = 500;

        PlayerProfile playerProfile = SettingsManager.Instance.Settings.PlayerProfiles[0];

        data.AddPlayerScores(playerProfile, playerScoreData);
        return(data);
    }
示例#7
0
    private void FillLayout()
    {
        SongMeta songMeta   = sceneData.SongMeta;
        string   titleText  = (String.IsNullOrEmpty(songMeta.Title)) ? "" : songMeta.Title;
        string   artistText = (String.IsNullOrEmpty(songMeta.Artist)) ? "" : " - " + songMeta.Artist;

        songLabel.text = titleText + artistText;

        int        i = 0;
        GameObject selectedLayout = GetSelectedLayout();

        foreach (PlayerProfile playerProfile in sceneData.PlayerProfiles)
        {
            SingingResultsSceneData.PlayerScoreData playerScoreData = sceneData.GetPlayerScores(playerProfile);
            SingingResultsPlayerUiController[]      uiControllers   = selectedLayout.GetComponentsInChildren <SingingResultsPlayerUiController>();
            if (i < uiControllers.Length)
            {
                uiControllers[i].Init(playerProfile, playerScoreData);
            }
            i++;
        }
    }