Example #1
0
        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);
        }
Example #2
0
        /// <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);
        }