Example #1
0
        void Start()
        {
            StagePlayData playData = scoreHolder.Get();

            (bool isFirstPlay, float lastBestTime) = saveDataManager.SetStageData(playData);
            scoreToText.Init(playData.Stage, playData.Time, isFirstPlay, lastBestTime);
            RankKind rankKind = RankKindUtil.ToKind(playData.Stage);

            if (isFirstPlay && (playData.Stage == 0 || playData.Stage == 1))
            {
                saveDataManager.SetStageBeingUnlocked(true);
            }

            if (saveDataManager.StageCleared.All(cleared => cleared))
            {
                rankingSenderGetter.SendRanking
                (
                    RankKind.AllDrafts,
                    saveDataManager.BestTimes.Sum(),
                    () => { }
                );
            }
            rankingSenderGetter.SendRanking
            (
                rankKind,
                playData.Time,
                () =>
            {
                DOVirtual.DelayedCall(2f, () =>
                {
                    rankingSenderGetter.GetRanking
                    (
                        rankKind,
                        data => rankView.SetData(data)
                    );
                });
            }
            );

            DOVirtual.DelayedCall(3f, () =>
            {
                this.UpdateAsObservable()
                .Where(_ => input.GetButtonDown(ButtonCode.Ranking))
                .Subscribe(_ =>
                {
                    sounds.Play("Put");
                    gameObject.SetActive(false);
                    rankView.Show(rankKind);
                })
                .AddTo(this);
                rankView.OnExit.Subscribe(_ => gameObject.SetActive(true));
            });
        }
Example #2
0
    public (bool isFirstPlay, float lastBestTime) SetStageData(StagePlayData play)
    {
        bool tmpIsFirst = !StageCleared[play.Stage];

        Data.stageCleared[play.Stage] = true;

        float tmpBestTime = BestTimes[play.Stage];

        if (play.Time < BestTimes[play.Stage])
        {
            Data.bestTimes[play.Stage] = play.Time;
        }

        Save();

        return(tmpIsFirst, tmpBestTime);
    }
Example #3
0
 public void Set(StagePlayData data) => this.data = data;