public object Convert(object[] value, Type targetType, object parameter, CultureInfo culture)
 {
     if (value != null &&
         value.Length == 2 &&
         value[0] is int statusId &&
         value[1] is bool use2x)
     {
         return(FResource.GetImage(statusId, use2x));
     }
    void Start()
    {
        ApiLive live;

        using (var liveAsset = new FResource <TextAsset>("lives/" + liveName)) {
            live = JsonUtility.FromJson <ApiLiveResponse>(liveAsset.asset.text).content;
        }

        using (var bgmAsset = new FResource <TextAsset>("bgms/" + live.bgm_path)) {
            var bgmPath = System.IO.Path.Combine(Application.persistentDataPath, live.bgm_path);
            if (!System.IO.File.Exists(bgmPath))
            {
                System.IO.File.WriteAllBytes(bgmPath, bgmAsset.asset.bytes);
            }
        }

        uiController.Init(live);
    }
    void Start()
    {
        ApiLive live;

        using (var liveAsset = new FResource <TextAsset>("lives/" + liveName)) {
            live = JsonUtility.FromJson <ApiLiveResponse>(liveAsset.asset.text).content;
        }

        ApiLiveMap map;

        using (var mapAsset = new FResource <TextAsset>("maps/" + live.map_path.Replace(".json", ""))) {
            map = JsonUtility.FromJson <ApiLiveMap>(mapAsset.asset.text);
            System.Array.Sort(map.lane);
        }

        var notes = map.GetLiveNotes((x, _) => slots[Mathf.RoundToInt(x)], 2);

        //		var bgm = Resources.Load<AudioClip>("bgms/" + live.bgm_path.Replace(".mp3", ""));

        GetComponent <LivePlayer>().notes = notes;
        GetComponent <LivePlayer>().StartGame();
    }
Beispiel #4
0
    IEnumerator Start()
    {
        eventSystem.enabled = false;

        yield return(Wait(1));

        uiWelcomePanel.gameObject.SetActive(true);
        yield return(TweenManager.AddTween(panelShowTween.CreateTransition(step => {
            uiWelcomePanel.anchoredPosition = Vector2.LerpUnclamped(new Vector2(0, 5000), new Vector2(0, 0), step);
        })));

//		yield return Wait(1);

        TweenManager.AddTween(panelHideTween.CreateTransition(step => {
            uiWelcomePanel.anchoredPosition = Vector2.LerpUnclamped(new Vector2(0, 0), new Vector2(0, -5000), step);
        }));
        uiWelcomePanel.gameObject.SetActive(false);


SONG_SELECT:
        uiSongPanel.gameObject.SetActive(true);
        yield return(TweenManager.AddTween(panelShowTween.CreateTransition(step => {
            uiSongPanel.anchoredPosition = Vector2.LerpUnclamped(new Vector2(0, 5000), new Vector2(0, 0), step);
        })));

        uiSongPanel.GetComponent <SongUiController>().FetchProgress();

        if (!isLoginFinished)
        {
            StartCoroutine(HandleAsyncLogin());
        }

        eventSystem.enabled = true;
        pointer.SetActive(true);

        isSongSelectFinished = false;
        selectedFileType     = -1;
        while (!isSongSelectFinished)
        {
            yield return(null);
        }
        eventSystem.enabled = false;
        pointer.SetActive(false);

        yield return(TweenManager.AddTween(panelHideTween.CreateTransition(step => {
            uiSongPanel.anchoredPosition = Vector2.LerpUnclamped(new Vector2(0, 0), new Vector2(0, -5000), step);
        })));

        if (!isLoginFinished)
        {
            OnLoginCancelButtonClicked();
        }

        uiSongPanel.gameObject.SetActive(false);

//		uiCamera.enabled = false;

        uiRankPanel.gameObject.SetActive(true);
        uiScorePanel.gameObject.SetActive(true);
        uiHintPanel.gameObject.SetActive(true);
        rankPanelController.SetRank(new RankInfo[0]);
        yield return(TweenManager.AddTween(panelShowTween.CreateTransition(step => {
            uiRankPanel.anchoredPosition = Vector2.LerpUnclamped(new Vector2(0, 5000), new Vector2(-400, 0), step);
            uiScorePanel.anchoredPosition3D = Vector3.LerpUnclamped(new Vector3(0, 5000, 0), new Vector3(0, 70, 100), step);
            uiHintPanel.anchoredPosition3D = Vector3.LerpUnclamped(new Vector3(0, 0, 5000), Vector3.zero, step);
        })));

        StartCoroutine(HandleCloseHintPanel());

        rank.name  = GlobalStatic.Name;
        rank.rank  = "--";
        rank.score = 0;
        ranks.Clear();
        ranks.Add(rank);
        rankPanelController.SetRank(ranks.ToArray());

        LiveNote[] notes = null;

        if (selectedFileType == 0)
        {
            notes = osuFile.GetLiveNotes((x, y) => new Vector2((x - 0.5f) * 4, y * 1.5f - 0.5f));
            musicPlayer.Play(System.IO.Path.Combine(osuFile.path, osuFile.AudioFilename));
        }
        else              // selectedFileType == 1
        {
            using (var mapAsset = new FResource <TextAsset>("maps/" + live.map_path.Replace(".json", ""))) {
                var map = JsonUtility.FromJson <ApiLiveMap>(mapAsset.asset.text);
                System.Array.Sort(map.lane);
                notes = map.GetLiveNotes((x, _) => LlpLiveStarter.slots[Mathf.RoundToInt(x)] * 0.75f, 2);
            }
            musicPlayer.Play(System.IO.Path.Combine(Application.persistentDataPath, live.bgm_path));
        }

        livePlayer.notes = notes;
        livePlayer.StartGame();

SONG_START:
        uiErrorText.text = "";
        StartCoroutine(HandleRankInit());
        isSongFinished = false;
        while (!isSongFinished)
        {
            yield return(null);
        }

        yield return(TweenManager.AddTween(panelHideTween.CreateTransition(step => {
            uiRankPanel.anchoredPosition = Vector2.LerpUnclamped(new Vector2(-400, 0), new Vector2(0, 5000), step);
            uiScorePanel.anchoredPosition3D = Vector3.LerpUnclamped(new Vector3(0, 70, 100), new Vector3(0, 5000, 0), step);
        })));

        uiResultPanel.gameObject.SetActive(true);
        acc = (300f * livePlayer.perfect + 200f * livePlayer.great + 100f * livePlayer.good + 50f * livePlayer.bad) / (300f * livePlayer.total);
        resultPanelUiController.SetResults(mapName, mapVersion, acc.ToString("P0"),
                                           false, livePlayer.score, livePlayer.perfect, livePlayer.great, livePlayer.good, livePlayer.bad, livePlayer.miss,
                                           false, livePlayer.maxCombo, livePlayer.maxCombo >= livePlayer.total);

        yield return(TweenManager.AddTween(panelShowTween.CreateTransition(step => {
            uiResultPanel.anchoredPosition = Vector2.LerpUnclamped(new Vector2(0, 5000), new Vector2(0, 0), step);
        })));

        if (GlobalStatic.IsLoggedIn)
        {
            StartCoroutine(HandleSubmitResult());
        }

        willRetry           = willShowMenu = false;
        eventSystem.enabled = true;
        pointer.SetActive(true);
//		uiCamera.enabled = true;
        while (!willRetry && !willShowMenu)
        {
            yield return(null);
        }
//		uiCamera.enabled = false;
        eventSystem.enabled = false;
        pointer.SetActive(false);

        yield return(TweenManager.AddTween(panelHideTween.CreateTransition(step => {
            uiResultPanel.anchoredPosition = Vector2.LerpUnclamped(new Vector2(0, 0), new Vector2(0, 5000), step);
        })));

        if (willRetry)
        {
            livePlayer.StartGame();
            MusicPlayer.Restart();
            yield return(TweenManager.AddTween(panelShowTween.CreateTransition(step => {
                uiRankPanel.anchoredPosition = Vector2.LerpUnclamped(new Vector2(0, 5000), new Vector2(-400, 0), step);
                uiScorePanel.anchoredPosition3D = Vector3.LerpUnclamped(new Vector3(0, 5000, 0), new Vector3(0, 70, 100), step);
            })));

            goto SONG_START;
        }
        else
        {
            goto SONG_SELECT;
        }
    }