コード例 #1
0
ファイル: RankingWindow.cs プロジェクト: drecom/AnimalRunLand
        private void OnClickInformation(GameServer.RankingType kind)
        {
            var infoDat = Entity.InformationData.infoList[(int)kind];
            var dialog  = BaseScene.AddModalWindow <Liver.DialogWindow>("DialogWindow");

            dialog.SetDialog(infoDat.Title, infoDat.Title2, infoDat.Text, null, null, null);
        }
コード例 #2
0
ファイル: RankingWindow.cs プロジェクト: drecom/AnimalRunLand
        private void MakeRanking(GameServer.RankingType kind, int animal = 0)
        {
            // 同じ画面を選択されてもなにもしない
            if (this.selectRanking == kind && kind != GameServer.RankingType.AnimalScore)
            {
                return;
            }
            else
            {
                this.selectRanking = kind;
            }

            bool isAnimal = kind == GameServer.RankingType.AnimalScore ? true : false;

            // 一回消す
            foreach (Transform t in isAnimal ? this.AnimalCarContent : this.RankingContent)
            {
                GameObject.Destroy(t.gameObject);
            }

            EraseRankingList();
            var    rank    = new GameServer();
            string stageId = kind == GameServer.RankingType.StageHighScore ? PlayerDataManager.PlayerData.HighScoreData.MapId : "";

            StartCoroutine(rank.RetrieveRankingCoroutine((int)kind, stageId, animal, 0, res =>
            {
                int cnt = 0;
                // res.Orderは0が1位。参加なしは-1
                string myRank = res.Order > -1 ? $"あなたの順位は{res.Order + 1}位です" : "このランキングには参加していません。";

                if (isAnimal)
                {
                    this.AnimalCarMyRankText.text = myRank;
                }
                else
                {
                    this.RankingMyRankText.text = myRank;
                }

                Action MakeBar = () =>
                {
                    foreach (var dat in res.Rankings)
                    {
                        var bar = GetRankingBarPrefab(isAnimal);
                        bar.PlayerNameTxt.text    = dat.PlayerName;
                        bar.ScoreTxt.text         = kind == GameServer.RankingType.StageWinnerRanking ? $"{dat.Score}回" : $"{dat.Score}pt";
                        Sprite frame              = cnt == res.Order ? this.FrameSprites[1] : this.FrameSprites[0];
                        bar.RankingBaseImg.sprite = frame;
                        Sprite icon           = cnt < 3 ? this.RankingIcons[cnt] : this.RankingIcons[3];
                        bar.RankingImg.sprite = icon;

                        if (cnt > 2)
                        {
                            bar.RankingNumTxt.text = (cnt + 1).ToString();
                            bar.RankingNumTxt.gameObject.SetActive(true);
                        }

                        ++cnt;
                    }
                };

                // レースを行っていればエリア名を取得してからリスト作成
                if (PlayerDataManager.PlayerData.HighScoreData.MapId != "")
                {
                    // ハイスコア記録したId
                    Map.AreaName.Get(PlayerDataManager.PlayerData.HighScoreData.MapId, name =>
                    {
                        if (kind == GameServer.RankingType.StageHighScore)
                        {
                            var areaBar = GetRankingBarPrefab(isAnimal);
                            areaBar.RankingBaseImg.sprite = this.FrameSprites[0];
                            areaBar.AreaTxt.text          = name;
                            areaBar.RankingImg.gameObject.SetActive(false);
                        }

                        MakeBar();
                    });
                }
                else
                {
                    MakeBar();
                }
            }));
            this.AnimalCarRanking.gameObject.SetActive(isAnimal);
            this.Ranking.gameObject.SetActive(!isAnimal);
        }