private void AddEventToButton(LeaderboardDetail item, Button objButton, Button favButton, Button shareButton)
    {
        objButton.onClick.AddListener(() =>
        {
            MenuSoundManager.Instance.PlayMenuClick();
            UIStateManager.Manager.SwapToKeyValidationPage(null, null, item, KeyValiationStatesBack.FromFav);
        });

        favButton.onClick.AddListener(() =>
        {
            MenuSoundManager.Instance.PlayMenuClick();
            UIStateManager.Manager.SettingsSystem.RemoveFromFav(UIStateManager.Manager.PlayerId, item.Id);
            GameObject.DestroyImmediate(objButton.gameObject);
            GameObject.DestroyImmediate(favButton.gameObject);
            GameObject.DestroyImmediate(shareButton.gameObject);

            StartCoroutine(RefreshPanelSize());

            if (ListerPanel_Leaderboards.transform.childCount <= 0)
            {
                Message.SetActive(true);
            }
        });

        shareButton.onClick.AddListener(() =>
        {
            MenuSoundManager.Instance.PlayMenuClick();
            Debug.Log("Implement your share mechanism here");
        });
    }
    private void AddEventToButton(LeaderboardDetail item, Button objButton, Toggle favToggle, Button shareButton)
    {
        objButton.onClick.AddListener(() =>
        {
            MenuSoundManager.Instance.PlayMenuClick();
            UIStateManager.Manager.SwapToKeyValidationPage(null, null, item, KeyValiationStatesBack.MyTournaments);
        });

        favToggle.onValueChanged.AddListener((isOn) =>
        {
            MenuSoundManager.Instance.PlayMenuClick();
            if (isOn)
            {
                UIStateManager.Manager.SettingsSystem.AddToLeaderboardCache(UIStateManager.Manager.PlayerId, item, "", true);
            }
            else
            {
                UIStateManager.Manager.SettingsSystem.RemoveFromFav(UIStateManager.Manager.PlayerId, item.Id);
            }
        });

        shareButton.onClick.AddListener(() =>
        {
            MenuSoundManager.Instance.PlayMenuClick();
            Debug.Log("Implement your share mechanism here");
        });
    }
 void OnGetLeaderboardDetails(string errorString, LeaderboardDetail[] result, params object[] userParam)
 {
     if (result != null && result.Length > 0 && result[0].Active)
     {
         StartCoroutine(UIStateManager.GameAPI.GetGameLevelDetails(result[0].ParentLevelId, OnGetGameLevelDetail, result));
         StartCoroutine(UIStateManager.GameAPI.MakeLeaderboardLive(
             leaderBoardId: result[0].Id,
             onMakeLeaderboardLive: onMakeLeaderboardLive));
     }
     else
     {
         Message.text = "Please enter a valid tournament ID";
     }
     UIStateManager.Manager.SetLoading(false);
 }
    void AddLeaderboardEntry(LeaderboardDetail leaderboardDetail)
    {
        GameObject obj = GameObject.Instantiate(UIStateManager.Manager.ListItemTemplate_LeaderboardTiles);
        GameObject obj_2 = GameObject.Instantiate(UIStateManager.Manager.ListItemSelectionTemplate);
        GameObject obj_3 = GameObject.Instantiate(UIStateManager.Manager.ListItemSelectionTemplate);
        obj.transform.SetParent(ListerPanel_Leaderboards.transform, false);
        obj.GetComponentInChildren<Text>().fontSize = ButtonFontSize;
        obj_2.transform.SetParent(ListerPanel_Remove.transform, false);
        obj_3.transform.SetParent(ListerPanel_Share.transform, false);
        obj.name = leaderboardDetail.Id;

        Button objButton = obj.GetComponent<Button>();
        UIStateManager.Manager.SetLeaderboardName(leaderboardDetail, objButton);

        Button favButton = obj_2.GetComponent<Button>();
        Image favSprite = favButton.GetComponentInChildren<Image>();
        favSprite.sprite = UIStateManager.Manager.RemoveTexture;
        Button shareButton = obj_3.GetComponent<Button>();
        shareButton.GetComponent<Image>().sprite = UIStateManager.Manager.ShareTexture;
        AddEventToButton(leaderboardDetail, objButton, favButton, shareButton);
    }
 void SetHighScoreOffline(LeaderboardDetail detail)
 {
     ToggleConnectionMode.sprite = OfflineModeSprite;
     BestScoreText.text = UIStateManager.Manager.ScoreHistorySystem.GetHighScore(UIStateManager.Manager.PlayerId, detail).ToString();
 }
    //public static void SetBanner(RawImage banner)
    //{
    //    if (UIStateManager.Manager.CurrentGamePlayMode)
    //    {
    //        UIStateManager.Manager.StartCoroutine
    //        (
    //            UIStateManager.GameAPI.GetBannerDetails
    //            (
    //                UIStateManager.Manager.PlayerId,
    //                UIStateManager.Manager.CurrentLeaderboardDetail.Id,
    //                LeaderboardListScript.OnGetBannerDetails,
    //                banner
    //            )
    //        );
    //    }
    //}
    public static void SetBanner(RawImage banner, LeaderboardDetail detail)
    {
        if (UIStateManager.Manager.CurrentGamePlayMode)
        {
            if (UIStateManager.Manager.CurrentLeaderboardDetail.IsSponsored)
            {
                string BannerFilePath;
                string BannerUrlSaveName;
                BannerUrlSaveName = detail.Id + "_Banner";
                BannerFilePath = Path.Combine(Application.persistentDataPath, detail.Id + "_Banner.png");
                byte[] dataToLoad;
                if (File.Exists(BannerFilePath))
                {
                    dataToLoad = File.ReadAllBytes(BannerFilePath);
                    BannerTexture = new Texture2D(320, 50);
                    BannerTexture.LoadImage(dataToLoad);
                    banner.texture = BannerTexture;
                }

                if (PlayerPrefs.HasKey(BannerUrlSaveName))
                {
                    BannerClickURL = PlayerPrefs.GetString(BannerUrlSaveName);
                }

                if (banner.gameObject != null && BannerTexture != null)
                {
                    banner.gameObject.SetActive(true);
                }
                else
                {
                    banner.gameObject.SetActive(false);
                }

                Button button = banner.gameObject.GetComponent<Button>();
                button.onClick.RemoveAllListeners();

                if (!string.IsNullOrEmpty(BannerClickURL))
                {
                    button.onClick.AddListener(() =>
                    {
                        Application.OpenURL(BannerClickURL);
                    });
                }
            }
        }
    }
 IEnumerator SetInterstitial(LeaderboardDetail leaderboardDetail)
 {
     yield return null;
     UIStateManager.Manager.StartCoroutine
     (
         UIStateManager.GameAPI.GetBannerDetails
         (
             UIStateManager.Manager.PlayerId,
             leaderboardDetail.Id,
             OnGetBannerDetails
         )
     );
 }
    void OnGetGameLevelDetail(string errorString, GameLevelDetail result, params object[] userParam)
    {
        if (result != null && result.Active)
        {
            LeaderboardDetail leaderboardDetail = userParam[0] as LeaderboardDetail;
            LeaderboardDetail = leaderboardDetail;

            string key = KeyField.text.Trim();
            entryKey = key;
            string BannerFilePath = Path.Combine(Application.persistentDataPath, leaderboardDetail.Id + "_Banner.png");
            filePath = BannerFilePath;

            if (File.Exists(BannerFilePath))
            {
                UIStateManager.Manager.SwapToGame(LeaderboardDetail, true, entryKey);
            }

            if (leaderboardDetail.IsSponsored)
            {
                StartCoroutine(SetInterstitial(leaderboardDetail));
            }
        }
        else
        {
            Message.text = "Invalid key entered!";
        }
    }
 void OnGetLeaderboardsDetail(string errorString, LeaderboardDetail[] result, params object[] userParam)
 {
     if (result != null && result.Length > 0 && result[0].Active)
     {
         StartCoroutine (UIStateManager.GameAPI.GetGameLevelDetails (result[0].ParentLevelId, OnGetGameLevelDetail, result));
     }
     UIStateManager.Manager.SetLoading (false);
 }
예제 #10
0
 public void SwapToKeyValidationPage(
 GameLevelDetail grandParentLevelDetail,
 GameLevelDetail parentLevelDetail,
 LeaderboardDetail leaderboardDetail,
 KeyValiationStatesBack backType)
 {
     KeyValidationScript.BackType = backType;
     KeyValidationScript.GrandParentLevelDetail = grandParentLevelDetail;
     KeyValidationScript.ParentLevelDetail = parentLevelDetail;
     KeyValidationScript.LeaderboardDetail = leaderboardDetail;
     SwapToPage(KeyValidationPage);
 }
예제 #11
0
    public void SwapToGame(LeaderboardDetail leaderboardDetail, bool isGamePlayMode, string activationKey)
    {
        this.CurrentLeaderboardDetail = leaderboardDetail;
        this.CurrentGamePlayMode = isGamePlayMode;
        this.CurrentActivationKey = activationKey;
        string playName = string.Empty;
        if (leaderboardDetail != null)
        {
            SplitExtras(leaderboardDetail.Extras);
        }
        CancelInvoke("ProcessScoreQue");
        GameLoaded = true;
        if (!string.IsNullOrEmpty(playName))
        {
            Application.LoadLevel(playName);
            ShowLoadingPanel();
        }
        else
        {
            Application.LoadLevel(GamePlaySceneName);
            ShowLoadingPanel();

        }
    }
예제 #12
0
    public double GetHighScore(string userId, LeaderboardDetail detail)
    {
        double score = 0;

        foreach (ScoreHistoryItem item in Items)
        {
            if (userId == item.UserId && item.LeaderboardId == detail.Id)
            {
                if (score < item.Score)
                {
                    score = item.Score;
                }
            }
        }

        return score;
    }
예제 #13
0
    public void SetLeaderboardName(LeaderboardDetail item, Button objButton)
    {
        DateTime localTime = GetLeaderboardValidity(item, item.LifeTime / 60);
        Text objText = objButton.GetComponentInChildren<Text>();
        GameObject sponsoredFlag = objButton.transform.FindChild("Image").gameObject;
        objText.text = string.Format("{0}\nJoining Point: {1}, Reward Points: {2}\nValid till: {3}",
                 item.Name,
                 item.JoiningPoint,
                 item.TotalRewardPoints > 0 ? string.Format("{0}+", item.TotalRewardPoints.ToString()) : "0",
                 localTime);

        if (item.IsSponsored)
        {
            sponsoredFlag.SetActive(true);
            sponsoredFlag.GetComponent<Image>().sprite = SponsoredIcon;
        }
        else if (item.InviteOnly)
        {
            sponsoredFlag.SetActive(true);
            sponsoredFlag.GetComponent<Image>().sprite = UserTournamentIcon;
        }
        else
        {
            sponsoredFlag.SetActive(false);
        }

        //objText.text += string.Format("\nValid upto : {0}", localTime);
    }
예제 #14
0
 public bool isLeaderboardExpired(LeaderboardDetail item)
 {
     DateTime leaderboardExpiration = DateTime.Parse(item.LiveTime).AddMinutes((item.LifeTime / 60));
     DateTime localTime = TimeZone.CurrentTimeZone.ToLocalTime(leaderboardExpiration);
     return localTime <= DateTime.Now;
 }
예제 #15
0
 public List<ScoreHistoryItem> GetEntries(string userId, LeaderboardDetail detail)
 {
     List<ScoreHistoryItem> historyList = new List<ScoreHistoryItem>();
     foreach (ScoreHistoryItem item in Items)
     {
         if (userId == item.UserId && item.LeaderboardId == detail.Id)
         {
             historyList.Add(item);
         }
     }
     return historyList;
 }
예제 #16
0
 public DateTime GetLeaderboardValidity(LeaderboardDetail item, double lifeTime)
 {
     DateTime leaderboardExpiration = DateTime.Parse(item.LiveTime).AddMinutes(lifeTime);
     DateTime localTime = TimeZone.CurrentTimeZone.ToLocalTime(leaderboardExpiration);
     return localTime;
 }
예제 #17
0
 public List<ScoreHistoryItem> GetUserScoreHistory(LeaderboardDetail detail)
 {
     return ScoreHistorySystem.GetEntries(PlayerId, detail);
 }
예제 #18
0
 public void SwapToLeaderboardListPage(LeaderboardDetail leaderboardDetail, double score, string activationKey)
 {
     if (score == -1)
     {
         ShowScore = false;
         StartCoroutine(GameAPI.IsActivePlayer(PlayerId, OnAuthenticationDuringLeaderboardList, leaderboardDetail, score));
     }
     else
     {
         ShowScore = true;
         StartCoroutine(GameAPI.UpdatePlayerScore(
             userName: PlayerId,
             participationKey: activationKey,
             leaderBoardId: leaderboardDetail.Id,
             score: score,
             updateIfBetterThanPrevious: true,
             onUpdatePlayerScoreFn: OnUpdateScore));
         ScoreHistorySystem.AddEntry(PlayerId, score, leaderboardDetail.Id, DateTime.Now.ToString());
     }
 }
    void onCreateLeaderboard(string errorString, string result, params object[] userParam)
    {
        if (string.IsNullOrEmpty(errorString) && result != null)
        {
            LeaderboardDetail leaderboardDetail = new LeaderboardDetail();
            leaderboardDetail.Id = result;
            UIStateManager.Manager.SettingsSystem.AddToLeaderboardCache(UIStateManager.Manager.PlayerId, leaderboardDetail, "", true);
            UIStateManager.Manager.SwapToPostCreateLeaderboardPage(leaderboardDetail, CurrentLevel);
            StartCoroutine(UIStateManager.GameAPI.MakeLeaderboardLive(
                leaderBoardId: result,
                onMakeLeaderboardLive: onMakeLeaderboardLive));
        }

        UIStateManager.Manager.SetLoading(false);
    }
예제 #20
0
 public void SwapToPostCreateLeaderboardPage(LeaderboardDetail leaderboardDetail, GameLevelDetail levelDetail)
 {
     PostCreateLeaderboardScript.LeaderboardDetail = leaderboardDetail;
     PostCreateLeaderboardScript.LevelDetail = levelDetail;
     SwapToPage(PostCreateLeaderboardPage);
 }
 void OnGetLeaderboardDetail(string errorString, LeaderboardDetail result, params object[] userParam)
 {
     if (result != null && result.Active)
     {
         StartCoroutine(UIStateManager.GameAPI.GetGameLevelDetails(result.ParentLevelId, OnGetGameLevelDetail, result));
     }
     else
     {
         Message.text = "Invalid key entered!";
     }
 }
예제 #22
0
 void OnGetLeaderboardDetail(string errorString, LeaderboardDetail result, params object[] userParam)
 {
     ScoreHistoryItem item = userParam[0] as ScoreHistoryItem;
     if (string.IsNullOrEmpty(errorString))
     {
         if (result != null && result.Active)
         {
             Items.Add(item);
             Save();
         }
     }
     else
     {
         Items.Add(item);
         Save();
     }
 }
예제 #23
0
    public LeaderboardStorage AddToLeaderboardCache(string playerId, LeaderboardDetail detail, string accessKey, bool fav)
    {
        LeaderboardStorage item = GetLeaderboardCache(playerId, detail.Id);
        if (item != null)
        {
            if (fav)
            {
                FavStorageSystem.Remove(item);
            }
            else
            {
                LeaderboardStorageSystem.Remove(item);
            }

        }
        item = new LeaderboardStorage();
        item.Leaderboard = detail;
        item.PlayerId = playerId;
        item.AccessKey = accessKey;
        if (fav)
        {
            FavStorageSystem.Add(item);
        }
        else
        {
            LeaderboardStorageSystem.Add(item);
        }
        Save();
        return item;
    }
예제 #24
0
 public void AddToProcessQue(LeaderboardDetail detail, string accessKey, double score)
 {
     if (detail.Active)
     {
         PlayerScoreStorage store = new PlayerScoreStorage();
         store.Leaderboard = detail;
         store.PlayerId = UIStateManager.Manager.PlayerId;
         store.AccessKey = accessKey;
         store.Score = score;
         PlayerScoreStorageSystem.Add(store);
         Save();
     }
 }
    private void Refresh(bool leaderBaordOn)
    {
        for (int i = 0, childCount = LeaderBoardNameLister.transform.childCount; i < childCount; i++)
        {
            GameObject.Destroy(LeaderBoardNameLister.transform.GetChild(i).gameObject);
        }

        for (int i = 0, childCount = LeaderBoardScoreLister.transform.childCount; i < childCount; i++)
        {
            GameObject.Destroy(LeaderBoardScoreLister.transform.GetChild(i).gameObject);
        }

        ForwardButton.interactable = false;
        BackwardButton.interactable = false;
        CurrentScoreText.text = Score.ToString();

        LeaderboardListScript.SetBanner(BannerArea, LeaderboardDetail);

        UIStateManager.Manager.SettingsSystem.AddToLeaderboardCache(
            UIStateManager.Manager.PlayerId,
            UIStateManager.Manager.CurrentLeaderboardDetail,
            UIStateManager.Manager.CurrentActivationKey,
            false);

        LeaderboardStorage storage = UIStateManager.Manager.SettingsSystem.GetLeaderboardCache(UIStateManager.Manager.PlayerId, LeaderboardListScript.LeaderboardDetail.Id);
        if (storage != null)
        {
            LeaderboardListScript.LeaderboardDetail = storage.Leaderboard;
            WinningPlayers.text = "Top " + LeaderboardDetail.TopWinnersCount.ToString();
            RewardPoints.text = LeaderboardDetail.TotalRewardPoints.ToString() + "+";
        }

        if (leaderBaordOn)
        {
            UIStateManager.Manager.SetLoading(true);
            StartCoroutine
            (
                UIStateManager.GameAPI.GetLeaderboardCurrentStatus
                (
                    LeaderboardDetail.Id,
                    ((ItemPerPages * m_PageNo) - ItemPerPages) + 1,
                    (ItemPerPages * m_PageNo) + 1,
                    OnGetLeaderboardStatus,
                    LeaderboardDetail)
            );
        }
        else
        {
            StartCoroutine(PropagateScoreBoard());
        }
    }
예제 #26
0
    void OnGetLeaderboardDetail(string errorString, LeaderboardDetail result, params object[] userParam)
    {
        bool isFav = (bool)userParam[1];

        LeaderboardStorage item = userParam[0] as LeaderboardStorage;
        if (string.IsNullOrEmpty(errorString))
        {
            if (result != null)
            {
                item.Leaderboard = result;
                UIStateManager.Manager.StartCoroutine(UIStateManager.GameAPI.GetCurrentTime(
                    OnGetServerTime,
                    isFav,
                    item));
            }
        }
        else
        {
            if (isFav)
            {
                FavStorageSystem.Add(item);
            }
            else
            {
                LeaderboardStorageSystem.Add(item);
            }
            Save();
        }
    }
예제 #27
0
    LeaderboardDetail ToLeaderboardDetail(XmlNode node, ref string errorString)
    {
        try
        {
            LeaderboardDetail board = null;
            if (node != null && !string.IsNullOrEmpty(node.InnerXml))
            {
                board = new LeaderboardDetail();
                board.Id = node["Id"].InnerText;
                board.Name = node["Name"].InnerText;
                board.Comment = node["Comment"].InnerText;
                board.Country = node["Country"].InnerText;
                board.Region = node["Region"].InnerText;
                board.City = node["City"].InnerText;
                board.GameId = node["GameId"].InnerText;
                board.ParentLevelId = node["ParentLevelId"].InnerText;
                board.ClosedTime = node["ClosedTime"].InnerText;
                board.CreatedTime = node["CreatedTime"].InnerText;
                board.LiveTime = node["LiveTime"].InnerText;
                bool boolVal = false;
                if (bool.TryParse(node["Active"].InnerText, out boolVal))
                {
                    board.Active = boolVal;
                }

                if (bool.TryParse(node["Live"].InnerText, out boolVal))
                {
                    board.Live = boolVal;
                }

                long longVal = -1;
                if (long.TryParse(node["JoiningPoint"].InnerText, out longVal))
                {
                    board.JoiningPoint = longVal;
                }

                if (bool.TryParse(node["IsPlayerParticipated"].InnerText, out boolVal))
                {
                    board.IsPlayerParticipated = boolVal;
                }

                if (bool.TryParse(node["IsFreePlayerWillBeAwarded"].InnerText, out boolVal))
                {
                    board.IsFreePlayerWillBeAwarded = boolVal;
                }

                if (long.TryParse(node["PlayerCountLimit"].InnerText, out longVal))
                {
                    board.PlayerCountLimit = longVal;
                }

                if (long.TryParse(node["CurrentPlayerCount"].InnerText, out longVal))
                {
                    board.CurrentPlayerCount = longVal;
                }
                board.RestrictByDateOfBirthStart = node["RestrictByDateOfBirthStart"].InnerText;
                board.RestrictByDateOfBirthEnd = node["RestrictByDateOfBirthEnd"].InnerText;
                if (bool.TryParse(node["UseRestrictByDateOfBirthStart"].InnerText, out boolVal))
                {
                    board.UseRestrictByDateOfBirthStart = boolVal;
                }
                if (bool.TryParse(node["UseRestrictByDateOfBirthEnd"].InnerText, out boolVal))
                {
                    board.UseRestrictByDateOfBirthEnd = boolVal;
                }
                board.Reference = node["Reference"].InnerText;
                int intVal = -1;
                if (int.TryParse(node["Gender"].InnerText, out intVal))
                {
                    board.Gender = intVal;
                }
                List<string> availableOnlyToPlayerUserNames = new List<string>();
                XmlNodeList playerNodes = node["AvailableOnlyToPlayerUserNames"].ChildNodes;
                foreach (XmlNode playerNode in playerNodes)
                {
                    availableOnlyToPlayerUserNames.Add(playerNode.InnerText);
                }

                board.AvailableOnlyToPlayerUserNames = availableOnlyToPlayerUserNames.ToArray();
                board.CurrentTime = node["CurrentTime"].InnerText;

                long rewardPoints = -1;
                if (long.TryParse(node["TotalRewardPoints"].InnerText, out rewardPoints))
                {
                    board.TotalRewardPoints = rewardPoints;
                }

                if (bool.TryParse(node["IsSponsored"].InnerText, out boolVal))
                {
                    board.IsSponsored = boolVal;
                }
                board.Extras = node["Extras"].InnerText;

                long topWinnersCount = 0;
                if (long.TryParse(node["TopWinnersCount"].InnerText, out topWinnersCount))
                {
                    board.TopWinnersCount = topWinnersCount;
                }
                board.Tag = node["Tag"].InnerText;
                board.AdminName = node["AdminName"].InnerText;

                long lifetime = 0;
                board.LifeTime = lifetime;
                board.UseAutoClose = false;
                boolVal = false;
                if (bool.TryParse(node["UseAutoClose"].InnerText, out boolVal))
                {
                    board.UseAutoClose = boolVal;
                }
                if (long.TryParse(node["LifeTime"].InnerText, out lifetime))
                {
                    board.LifeTime = lifetime;
                }
                if (bool.TryParse(node["InviteOnly"].InnerText, out boolVal))
                {
                    board.InviteOnly = boolVal;
                }

                return board;
            }
        }
        catch (Exception ex)
        {
            errorString = ex.Message;
        }
        return null;
    }
예제 #28
0
 public string GetLeaderboardData(GameLevelDetail detail, LeaderboardDetail leaderboardDetail)
 {
     if (!string.IsNullOrEmpty(leaderboardDetail.Extras))
     {
         return SplitExtras(leaderboardDetail.Extras);
     }
     return SplitExtras(detail.Extras);
 }
예제 #29
0
 void GetHighScoreOffline(LeaderboardDetail detail)
 {
     BestScore = UIStateManager.Manager.ScoreHistorySystem.GetHighScore(UIStateManager.Manager.PlayerId, detail).ToString();
 }
 private void AddEventToToggle(LeaderboardDetail item, Toggle favToggle)
 {
     favToggle.onValueChanged.AddListener((isOn) =>
     {
         MenuSoundManager.Instance.PlayMenuClick();
         if (isOn)
         {
             UIStateManager.Manager.SettingsSystem.AddToLeaderboardCache(UIStateManager.Manager.PlayerId, item, "", true);
         }
         else
         {
             UIStateManager.Manager.SettingsSystem.RemoveFromFav(UIStateManager.Manager.PlayerId, item.Id);
         }
     });
 }