예제 #1
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)
        {
            sceneData.PlayerProfileToMicProfileMap.TryGetValue(playerProfile, out MicProfile micProfile);
            PlayerScoreControllerData playerScoreData = sceneData.GetPlayerScores(playerProfile);
            SongRating songRating = GetSongRating(playerScoreData.TotalScore);

            Injector childInjector = UniInjectUtils.CreateInjector(injector);
            childInjector.AddBindingForInstance(playerProfile);
            childInjector.AddBindingForInstance(micProfile);
            childInjector.AddBindingForInstance(playerScoreData);
            childInjector.AddBindingForInstance(songRating);
            childInjector.AddBinding(new Binding("playerProfileIndex", new ExistingInstanceProvider <int>(i)));

            SingingResultsPlayerUiController[] uiControllers = selectedLayout.GetComponentsInChildren <SingingResultsPlayerUiController>();
            if (i < uiControllers.Length)
            {
                childInjector.InjectAllComponentsInChildren(uiControllers[i]);
            }
            i++;
        }
    }
예제 #2
0
 public void AddPlayerScores(PlayerProfile profile, PlayerScoreControllerData scoreData)
 {
     if (!PlayerProfiles.Contains(profile))
     {
         PlayerProfiles.Add(profile);
     }
     playerScoreMap[profile] = scoreData;
 }
    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);
    }