protected sealed override void Load(LogicJSONObject jsonObject) { LogicJSONArray allianceRankingListArray = jsonObject.GetJSONArray(SeasonDocument.JSON_ATTRIBUTE_ALLIANCE_RANKINGS); LogicJSONArray avatarRankingArray = jsonObject.GetJSONArray(SeasonDocument.JSON_ATTRIBUTE_AVATAR_RANKINGS); LogicJSONArray avatarDuelRankingArray = jsonObject.GetJSONArray(SeasonDocument.JSON_ATTRIBUTE_AVATAR_DUEL_RANKINGS); for (int i = 0; i < 2; i++) { LogicJSONArray allianceRankingArray = allianceRankingListArray.GetJSONArray(i); LogicArrayList <AllianceRankingEntry> allianceRankingList = this.AllianceRankingList[i]; for (int j = 0; j < allianceRankingArray.Size(); j++) { AllianceRankingEntry allianceRankingEntry = new AllianceRankingEntry(); allianceRankingEntry.Load(allianceRankingArray.GetJSONObject(j)); allianceRankingList.Add(allianceRankingEntry); } } for (int i = 0; i < avatarRankingArray.Size(); i++) { AvatarRankingEntry avatarRankingEntry = new AvatarRankingEntry(); avatarRankingEntry.Load(avatarRankingArray.GetJSONObject(i)); this.AvatarRankingList.Add(avatarRankingEntry); } for (int i = 0; i < avatarDuelRankingArray.Size(); i++) { AvatarDuelRankingEntry avatarDuelRankingEntry = new AvatarDuelRankingEntry(); avatarDuelRankingEntry.Load(avatarDuelRankingArray.GetJSONObject(i)); this.AvatarDuelRankingList.Add(avatarDuelRankingEntry); } this.NextCheckTime = DateTime.Parse(jsonObject.GetJSONString(SeasonDocument.JSON_ATTRIBUTE_NEXT_CHECK_TIME).GetStringValue()); }
protected sealed override void Decode(ByteStream stream) { for (int i = 0; i < 2; i++) { LogicArrayList <AllianceRankingEntry> allianceRankingList = this.AllianceRankingList[i]; for (int j = stream.ReadVInt(); j > 0; j--) { AllianceRankingEntry allianceRankingEntry = new AllianceRankingEntry(); allianceRankingEntry.Decode(stream); allianceRankingList.Add(allianceRankingEntry); } } for (int j = stream.ReadVInt(); j > 0; j--) { AvatarRankingEntry avatarRankingEntry = new AvatarRankingEntry(); avatarRankingEntry.Decode(stream); this.AvatarRankingList.Add(avatarRankingEntry); } for (int j = stream.ReadVInt(); j > 0; j--) { AvatarDuelRankingEntry avatarDuelRankingEntry = new AvatarDuelRankingEntry(); avatarDuelRankingEntry.Decode(stream); this.AvatarDuelRankingList.Add(avatarDuelRankingEntry); } }
/// <summary> /// Decodes this instance. /// </summary> public override void Decode() { this.Entries = new AllianceRankingEntry[this.Stream.ReadVInt()]; for (int i = 0; i < this.Entries.Length; i++) { AllianceRankingEntry Entry = new AllianceRankingEntry(); Entry.Decode(this.Stream); this.Entries[i] = Entry; } }
private async Task UpdateAllianceRankingList(int villageType) { Dictionary <long, AllianceRankingEntry> prevAllianceRankingDictionary = this.m_allianceRankingList[villageType]; Dictionary <long, AllianceRankingEntry> allianceRankingDictionary = new Dictionary <long, AllianceRankingEntry>(SeasonDocument.RANKING_LIST_SIZE); LogicArrayList <AllianceRankingEntry> allianceRankingList = this.AllianceRankingList[villageType]; allianceRankingList.Clear(); IViewResult <JObject> result = await ServerScoring.AllianceDatabase.ExecuteCommand <JObject>(new ViewQuery().From("alliances", "leaderboard_" + villageType).Desc().Limit(SeasonDocument.RANKING_LIST_SIZE)); if (result.Success) { int orderCounter = 0; foreach (JObject value in result.Values) { AllianceRankingEntry allianceRankingEntry = new AllianceRankingEntry(); LogicLong id = new LogicLong((int)value["id_hi"], (int)value["id_lo"]); allianceRankingEntry.SetId(id); allianceRankingEntry.SetName((string)value["name"]); allianceRankingEntry.SetScore((int)value["score"]); allianceRankingEntry.SetAllianceBadgeId((int)value["badge_id"]); allianceRankingEntry.SetAllianceLevel((int)value["xp_level"]); allianceRankingEntry.SetMemberCount((int)value["member_count"]); if (value.TryGetValue("origin", out JToken originToken)) { allianceRankingEntry.SetOriginData(LogicDataTables.GetDataById((int)originToken)); } allianceRankingEntry.SetOrder(++orderCounter); if (prevAllianceRankingDictionary != null && prevAllianceRankingDictionary.TryGetValue(id, out AllianceRankingEntry prevEntry)) { allianceRankingEntry.SetPreviousOrder(prevEntry.GetPreviousOrder()); } allianceRankingDictionary.Add(id, allianceRankingEntry); allianceRankingList.Add(allianceRankingEntry); } this.m_allianceRankingList[villageType] = allianceRankingDictionary; } else { Logging.Warning("ScoringSeason.updateAllianceRankingList: view error: " + result.Error); } }