public void SendRanking(RankKind kind, float time, Action onSent) { if (!loginManager.IsLoggedIn()) { loginManager.Login(() => SendRanking(kind, time, onSent), error => print(error.GenerateErrorReport())); return; } int score = TimeToNumberForPlayFab(time); List <StatisticUpdate> stats = new List <StatisticUpdate>(); stats.Add(new StatisticUpdate { StatisticName = kind.ToString(), Value = score }); var request = new UpdatePlayerStatisticsRequest { Statistics = stats }; PlayFabClientAPI.UpdatePlayerStatistics ( request, result => onSent.Invoke(), error => Debug.LogError(error.GenerateErrorReport()) ); }
public void Show(RankKind kind) { print("log!"); print(string.Join("\n", data.Top100.Select(datum => datum.Name + ": " + datum.Time))); print(string.Join("\n", data.AroundPlayer100.Select(datum => datum.Name + ": " + datum.Time))); _OnExit.OnNext(Unit.Default); }
void Start() { foreach (object kind_ in Enum.GetValues(typeof(RankKind))) { RankKind kind = (RankKind)kind_; rankingSenderGetter.GetRanking(kind, data => rankView.SetData(data)); } (FocusNode node, RankKind kind)[] n_ks = new[]
public void GetRanking(RankKind kind, Action <RankData> onGot) { if (!loginManager.IsLoggedIn()) { loginManager.Login(() => GetRanking(kind, onGot), error => print(error.GenerateErrorReport())); return; } StartCoroutine(GetRankingCor(kind, onGot)); }
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)); }); }
void RandomGenerate(RankKind kind, int lengthTop, int lengthAroundPlayer) { var allTimes = RandomUtil .Generate(() => Random.Range(20f, 100f), lengthTop + lengthAroundPlayer) .OrderBy(time => time); RankDatum[] top = allTimes .Take(lengthTop) .Select((time, i) => new RankDatum(RandName(), i + 1, time)) .ToArray(); RankDatum[] aroundYou = allTimes .Skip(lengthTop) .Select((time, i) => new RankDatum(RandName(), lengthTop + 67 + i + 1, time)) //67は適当 .ToArray(); datas[(int)kind] = new RankData(kind, top, aroundYou); }
public void Show(RankKind kind) { if (!initialized) { Init(); } shownKind.Value = kind; switch (kind) { case RankKind.Draft1: categoryImage.sprite = draft1; break; case RankKind.Draft2: categoryImage.sprite = draft2; break; case RankKind.Draft3: categoryImage.sprite = draft3; break; case RankKind.AllDrafts: categoryImage.sprite = allDrafts; break; } gameObject.SetActive(true); focusManager.OnEnter(); BgImage.color = bgColor * new Color(1, 1, 1, 0); bodyGroup.alpha = 0; bodyGroup.transform.SetLocalX(100); leftGroup.alpha = 0; leftGroup.transform.SetLocalX(-100); DOTween.Sequence() .Append(BgImage.DOColor(bgColor, enterDuration).SetEase(Ease.Linear)) .Join(bodyGroup.DOFade(1, enterDuration).SetEase(Ease.Linear)) .Join(bodyGroup.transform.DOLocalMoveX(0, enterDuration).SetEase(Ease.OutQuint)) .Join(leftGroup.DOFade(1, enterDuration).SetEase(Ease.Linear)) .Join(leftGroup.transform.DOLocalMoveX(0, enterDuration).SetEase(Ease.OutQuint)); exitButton.OnEnter(); }
IEnumerator GetRankingCor(RankKind kind, Action <RankData> onGot) { List <PlayerLeaderboardEntry> top100 = null; var requestTop100 = new GetLeaderboardRequest { StatisticName = kind.ToString(), MaxResultsCount = 100 }; PlayFabClientAPI.GetLeaderboard ( requestTop100, result => top100 = result.Leaderboard, error => Debug.Log(error.GenerateErrorReport()) ); List <PlayerLeaderboardEntry> aroundPlayer100 = null; var requestAroundPlayer = new GetLeaderboardAroundPlayerRequest { StatisticName = kind.ToString(), MaxResultsCount = 100 }; PlayFabClientAPI.GetLeaderboardAroundPlayer ( requestAroundPlayer, result => aroundPlayer100 = result.Leaderboard, error => Debug.Log(error.GenerateErrorReport()) ); yield return(new WaitUntil(() => top100 != null && aroundPlayer100 != null)); onGot.Invoke(new RankData ( kind, top100 .Select(entry => new RankDatum(entry.DisplayName, entry.Position + 1, NumberToTimeFloat(entry.StatValue))) .ToArray(), aroundPlayer100 .Select(entry => new RankDatum(entry.DisplayName, entry.Position + 1, NumberToTimeFloat(entry.StatValue))) .ToArray() )); }
public void SetScore(float score) { if (score >= (int)RankKind.S) { rank = RankKind.S; } else if (score >= (int)RankKind.A) { rank = RankKind.A; } else if (score >= (int)RankKind.B) { rank = RankKind.B; } else if (score >= (int)RankKind.C) { rank = RankKind.C; } else if (score >= (int)RankKind.D) { rank = RankKind.D; } }
public void Show(RankKind kind) { current = datas[(int)kind]; }
public RankData(RankKind kind, RankDatum[] top100, RankDatum[] aroundPlayer100) { this.Kind = kind; this._Top100 = top100; this._AroundPlayer100 = aroundPlayer100; }
public void GetRanking(RankKind kind, Action <RankData> onGot) { onGot.Invoke(datas.FirstOrDefault(data => data.Kind == kind)); }
public void SendRanking(RankKind kind, float time, Action onSent) { onSent.Invoke(); }