Пример #1
0
        private void OnGetTournamentRank(TournamentRankResponse rankResponse, object cookie)
        {
            TournamentRank tournamentRank          = rankResponse.Rank;
            TournamentRank oldRank                 = null;
            Tournament     tournament              = null;
            Dictionary <string, object> dictionary = (Dictionary <string, object>)cookie;
            string text = (string)dictionary["tournamentId"];

            TournamentController.PlayerRankUpdatedCallback playerRankUpdatedCallback = (TournamentController.PlayerRankUpdatedCallback)dictionary["callback"];
            if (!string.IsNullOrEmpty(text))
            {
                tournament             = this.currentPlayer.TournamentProgress.GetTournament(text);
                oldRank                = tournament.CurrentRank;
                tournament.CurrentRank = tournamentRank;
                tournament.Sync(rankResponse.TournamentData);
            }
            if (tournamentRank == null)
            {
                tournamentRank = new TournamentRank();
                if (tournament != null)
                {
                    tournament.CurrentRank = tournamentRank;
                }
            }
            if (string.IsNullOrEmpty(tournamentRank.TierUid))
            {
                TournamentTierVO tournamentTierVO = null;
                IDataController  dataController   = Service.Get <IDataController>();
                foreach (TournamentTierVO current in dataController.GetAll <TournamentTierVO>())
                {
                    if (tournamentTierVO == null || current.Percentage > tournamentTierVO.Percentage)
                    {
                        tournamentTierVO       = current;
                        tournamentRank.TierUid = tournamentTierVO.Uid;
                    }
                }
                if (tournamentTierVO != null)
                {
                    tournamentRank.Percentile = (double)tournamentTierVO.Percentage;
                }
                else
                {
                    tournamentRank.Percentile = 100.0;
                }
            }
            if (playerRankUpdatedCallback != null)
            {
                playerRankUpdatedCallback(oldRank, tournamentRank, text);
            }
        }
Пример #2
0
 public void UpdatePlayerRank(TournamentController.PlayerRankUpdatedCallback callback, TournamentVO tournamentVO)
 {
     if (tournamentVO != null)
     {
         GetTournamentRankCommand getTournamentRankCommand = new GetTournamentRankCommand(new TournamentRankRequest
         {
             PlayerId = this.currentPlayer.PlayerId,
             PlanetId = tournamentVO.PlanetId
         });
         getTournamentRankCommand.AddSuccessCallback(new AbstractCommand <TournamentRankRequest, TournamentRankResponse> .OnSuccessCallback(this.OnGetTournamentRank));
         getTournamentRankCommand.Context = new Dictionary <string, object>
         {
             {
                 "tournamentId",
                 tournamentVO.Uid
             },
             {
                 "callback",
                 callback
             }
         };
         Service.Get <ServerAPI>().Sync(getTournamentRankCommand);
     }
 }