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); }
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); }
public void FinishScene(bool isAfterEndOfSong) { // Open the singing results scene. SingingResultsSceneData singingResultsSceneData = new SingingResultsSceneData(); singingResultsSceneData.SongMeta = SongMeta; singingResultsSceneData.PlayerProfileToMicProfileMap = sceneData.PlayerProfileToMicProfileMap; singingResultsSceneData.SongDurationInMillis = (int)songAudioPlayer.DurationOfSongInMillis; // 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.AddPlayerScores(playerController.PlayerProfile, playerController.PlayerScoreController.ScoreData); Note lastNoteInSong = playerController.GetLastNoteInSong(); if (!isAfterEndOfSong && CurrentBeat < lastNoteInSong.EndBeat) { isAfterLastNote = false; } } if (isAfterLastNote) { UpdateSongFinishedStats(); } SceneNavigator.Instance.LoadScene(EScene.SingingResultsScene, singingResultsSceneData); }
public List <IBinding> GetBindings() { sceneData = SceneNavigator.Instance.GetSceneDataOrThrow <SingingResultsSceneData>(); BindingBuilder bb = new BindingBuilder(); bb.BindExistingInstance(this); bb.BindExistingInstance(sceneData); return(bb.GetBindings()); }
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); }
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); }
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); }
public SceneData GetDefaultSceneData() { SingingResultsSceneData data = new SingingResultsSceneData(); SongMetaManager.Instance.WaitUntilSongScanFinished(); data.SongMeta = SongMetaManager.Instance.GetFirstSongMeta(); data.SongDurationInMillis = 120 * 1000; PlayerScoreControllerData playerScoreData = new PlayerScoreControllerData(); playerScoreData.TotalScore = 6500; playerScoreData.NormalNotesTotalScore = 4000; playerScoreData.GoldenNotesTotalScore = 2000; playerScoreData.PerfectSentenceBonusTotalScore = 500; playerScoreData.NormalNoteLengthTotal = 80; playerScoreData.GoldenNoteLengthTotal = 20; playerScoreData.PerfectSentenceCount = 10; playerScoreData.NormalBeatData.GoodBeats = 30; playerScoreData.NormalBeatData.PerfectBeats = 10; playerScoreData.GoldenBeatData.GoodBeats = 5; playerScoreData.GoldenBeatData.PerfectBeats = 5; Sentence sentence1 = CreateDummySentence(0, 200); Sentence sentence2 = CreateDummySentence(201, 500); Sentence sentence3 = CreateDummySentence(501, 1500); playerScoreData.SentenceToSentenceScoreMap.Add(sentence1, CreateSentenceScore(sentence1, 3000)); playerScoreData.SentenceToSentenceScoreMap.Add(sentence2, CreateSentenceScore(sentence2, 5000)); playerScoreData.SentenceToSentenceScoreMap.Add(sentence3, CreateSentenceScore(sentence3, 6500)); PlayerProfile playerProfile = SettingsManager.Instance.Settings.PlayerProfiles[0]; data.AddPlayerScores(playerProfile, playerScoreData); data.PlayerProfileToMicProfileMap[playerProfile] = SettingsManager.Instance.Settings.MicProfiles.FirstOrDefault(); return(data); }
void Start() { sceneData = SceneNavigator.Instance.GetSceneData <SingingResultsSceneData>(CreateDefaultSceneData()); SelectLayout(); FillLayout(); }
void Start() { sceneData = SceneNavigator.Instance.GetSceneDataOrThrow <SingingResultsSceneData>(); SelectLayout(); FillLayout(); }