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); } }
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); } }