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)); }); }
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); }
public void Set(StagePlayData data) => this.data = data;