public RecordDisplay(WarcraftClanLadderRecord record) : this() { switch (record.LadderType) { case WarcraftClanLadderType.Solo: recordTitle.Text = "Solo Games"; break; case WarcraftClanLadderType.TwoVsTwo: recordTitle.Text = "2 vs 2 Games"; break; case WarcraftClanLadderType.ThreeVsThree: recordTitle.Text = "3 vs 3 Games"; break; case WarcraftClanLadderType.FourVsFour: recordTitle.Text = "4 vs 4 Games"; break; } level.Text = string.Format(CultureInfo.CurrentUICulture, "Level {0}", record.Level); exp.Text = record.TotalExperience.ToString("#,##0", CultureInfo.CurrentUICulture); wins.Text = record.Wins.ToString("#,##0", CultureInfo.CurrentUICulture); losses.Text = record.Losses.ToString("#,##0", CultureInfo.CurrentUICulture); rank.Text = (record.Rank == 0) ? "Unranked" : record.Rank.ToString(CultureInfo.CurrentUICulture); progress.Value = Math.Min(record.HoursUntilExperienceDecay, 100); }
/// <summary> /// In derived classes, sets the statistical data associated with the clan's profile. /// </summary> /// <param name="ladderRecords">The user's ladder game records.</param> /// <param name="raceRecords">The user's records by playable race.</param> /// <exception cref="ArgumentNullException">Thrown if any parameters are <see langword="null" />.</exception> protected internal void SetStats(WarcraftClanLadderRecord[] ladderRecords, WarcraftRaceRecord[] raceRecords) { if (object.ReferenceEquals(null, ladderRecords)) throw new ArgumentNullException("ladderRecords"); if (object.ReferenceEquals(null, raceRecords)) throw new ArgumentNullException("raceRecords"); m_ladderRecords = ladderRecords; m_raceStats = raceRecords; }
private void HandleWarcraftClanInfoRequest(DataReader dr) { int cookie = dr.ReadInt32(); if (!m_warcraftProfileRequests.ContainsKey(cookie)) { Debug.WriteLine(string.Format(CultureInfo.InvariantCulture, "Unable to locate profile request with cookie {0:x2}", cookie)); return; } WarcraftProfileEventArgs args = m_warcraftProfileRequests[cookie]; int recordCount = dr.ReadByte(); WarcraftClanLadderRecord[] ladderRecords = new WarcraftClanLadderRecord[recordCount]; for (int i = 0; i < recordCount; i++) { WarcraftClanLadderType ladderType = (WarcraftClanLadderType)dr.ReadInt32(); int wins = dr.ReadInt16(); int losses = dr.ReadInt16(); int level = dr.ReadByte(); int hrs = dr.ReadByte(); int xp = dr.ReadInt16(); int rank = dr.ReadInt32(); WarcraftClanLadderRecord record = new WarcraftClanLadderRecord(ladderType, wins, losses, level, hrs, xp, rank); ladderRecords[i] = record; } int raceRecordCount = dr.ReadByte(); Warcraft3IconRace[] raceOrder = new Warcraft3IconRace[] { Warcraft3IconRace.Random, Warcraft3IconRace.Human, Warcraft3IconRace.Orc, Warcraft3IconRace.Undead, Warcraft3IconRace.NightElf, Warcraft3IconRace.Tournament }; WarcraftRaceRecord[] raceRecords = new WarcraftRaceRecord[raceRecordCount]; for (int i = 0; i < raceRecordCount; i++) { int wins = dr.ReadInt16(); int losses = dr.ReadInt16(); WarcraftRaceRecord record = new WarcraftRaceRecord(raceOrder[i], wins, losses); raceRecords[i] = record; } args.Clan.SetStats(ladderRecords, raceRecords); BncsPacket pck = new BncsPacket((byte)BncsPacketId.WarcraftGeneral); pck.InsertByte((byte)WarcraftCommands.UserInfoRequest); pck.InsertInt32(cookie); pck.InsertCString(args.Username); pck.InsertDwordString(args.Product.ProductCode); Send(pck); }