Пример #1
0
        private void CallToNetwork()
        {
            NetworkCaller.Instance.GetAllSkins((skins, unlocks) =>
            {
                var currentSkin = NetworkCaller.Instance.PlayerData.SkinId;
                foreach (var skinData in skins)
                {
                    var skin            = _skinSetting.GetSkinById(skinData.Id);
                    var skinItem        = Instantiate(_characterItem, _characterList, false);
                    skinItem.Avatar     = skin.skinAvatar;
                    skinItem.IsSelected = skin.id == currentSkin;
                    bool isLocked;
                    skinItem.Id = skin.id;
                    if (skinData.UnlockId <= 0)
                    {
                        isLocked = false;
                    }
                    else
                    {
                        var unlock = unlocks.Find(x => x.Id == skinData.UnlockId);
                        isLocked   = !unlock.IsUnlocked();
                    }


                    skinItem.IsLocked = isLocked;

                    skinItem.OnSelected += () =>
                    {
                        if (!skinItem.IsLocked)
                        {
                            _characterInfoPanel.SkinData = skinData;
                            _characterInfoPanel.SetAvatar(skin.skinAvatar);
                            _characterInfoPanel.Show();
                        }
                        else
                        {
                            var unlock = unlocks.Find(x => x.Id == skinData.UnlockId);
                            _missionPanel.SetMission(unlock.Mission);
                            _missionPanel.Show();
                        }
                    };

                    _characterItemControllers.Add(skinItem);
                }
                _loadingLayer.SetActive(false);
            }, () =>
            {
                NativeDialogManager.Instance.ShowConnectionErrorDialog(CallToNetwork, () =>
                {
                    SceneManager.LoadScene("HomeScene");
                });
            });
        }
Пример #2
0
        private void Start()
        {
            _loadingLayer.SetActive(true);
            Sound2DManager.Instance.StopBgm();
            var localHighscore   = PlayerPrefsHelper.GetHighScore();
            var serverHighscore  = NetworkCaller.Instance.PlayerData.HighestScore;
            var totalScore       = PlayerPrefsHelper.GetTotalScore();
            var serverTotalScore = NetworkCaller.Instance.PlayerData.TotalScore;

            if (localHighscore > serverHighscore || totalScore > serverTotalScore)
            {
                CheckScore(localHighscore, totalScore);
            }
            else
            {
                var playerData = NetworkCaller.Instance.PlayerData;
                _nameText.text  = playerData.Nickname;
                _scoreText.text = $"{ScoreUtil.FormatScore(playerData.HighestScore)}匹";
                _rankText.text  = playerData.Rank <= 0 ? "-位" : $"{ScoreUtil.FormatScore(playerData.Rank)}位";
                _avatar.sprite  = _skinSetting.GetSkinById(playerData.SkinId).skinAvatar;
                UpdateTopPlayers();
            }
        }