Ejemplo n.º 1
0
        private static Chart CompilePCByDL()
        {
            BarGraph chart = new BarGraph("Player Count By Dueling Level", "graphs_pc_by_dl", 5, "Dueling Level", "Players", BarGraphRenderMode.Bars);

            int       lastLevel = -1;
            ChartItem lastItem  = null;

            Ladder ladder = Ladder.Instance;

            if (ladder != null)
            {
                ArrayList entries = ladder.ToArrayList();

                for (int i = entries.Count - 1; i >= 0; --i)
                {
                    LadderEntry entry = (LadderEntry)entries[i];
                    int         level = Ladder.GetLevel(entry.Experience);

                    if (lastItem == null || level != lastLevel)
                    {
                        chart.Items.Add(lastItem = new ChartItem(level.ToString(), 1));
                        lastLevel = level;
                    }
                    else
                    {
                        lastItem.Value++;
                    }
                }
            }

            return(chart);
        }
Ejemplo n.º 2
0
        private static Report CompileTop15()
        {
            Report report = new Report("Top 15 Duelists", "80%");

            report.Columns.Add("6%", "center", "Rank");
            report.Columns.Add("6%", "center", "Level");
            report.Columns.Add("6%", "center", "Guild");
            report.Columns.Add("70%", "left", "Name");
            report.Columns.Add("6%", "center", "Wins");
            report.Columns.Add("6%", "center", "Losses");

            Ladder ladder = Ladder.Instance;

            if (ladder != null)
            {
                ArrayList entries = ladder.ToArrayList();

                for (int i = 0; i < entries.Count && i < 15; ++i)
                {
                    LadderEntry entry = (LadderEntry)entries[i];
                    int         level = Ladder.GetLevel(entry.Experience);
                    string      guild = "";

                    PlayerMobile player = entry.Mobile as PlayerMobile;

                    if (player != null)
                    {
                        if (player.Guild != null)
                        {
                            guild = player.Guild.m_Abbreviation;
                        }
                    }

                    ReportItem item = new ReportItem();

                    item.Values.Add(LadderGump.Rank(entry.Index + 1));
                    item.Values.Add(level.ToString(), "N0");
                    item.Values.Add(guild);
                    item.Values.Add(entry.Mobile.Name);
                    item.Values.Add(entry.Wins.ToString(), "N0");
                    item.Values.Add(entry.Losses.ToString(), "N0");

                    report.Items.Add(item);
                }
            }

            return(report);
        }
Ejemplo n.º 3
0
        static Report CompileTop15()
        {
            var report = new Report("Top 15 Duelists", "80%");

            report.Columns.Add("6%", "center", "Rank");
            report.Columns.Add("6%", "center", "Level");
            report.Columns.Add("6%", "center", "Guild");
            report.Columns.Add("70%", "left", "Name");
            report.Columns.Add("6%", "center", "Wins");
            report.Columns.Add("6%", "center", "Losses");
            var ladder = Ladder.Instance;

            if (ladder != null)
            {
                var entries = ladder.ToArrayList();
                for (var i = 0; i < entries.Count && i < 15; ++i)
                {
                    var entry = (LadderEntry)entries[i];
                    var level = Ladder.GetLevel(entry.Experience);
                    var guild = string.Empty;
                    if (entry.Mobile.Guild != null)
                    {
                        guild = entry.Mobile.Guild.Abbreviation;
                    }
                    var item = new ReportItem();
                    item.Values.Add(LadderGump.Rank(entry.Index + 1));
                    item.Values.Add(level.ToString(), "N0");
                    item.Values.Add(guild);
                    item.Values.Add(entry.Mobile.Name);
                    item.Values.Add(entry.Wins.ToString(), "N0");
                    item.Values.Add(entry.Losses.ToString(), "N0");
                    report.Items.Add(item);
                }
            }
            return(report);
        }
Ejemplo n.º 4
0
        public LadderGump(Ladder ladder, int page = 0) : base(50, 50)
        {
            m_Ladder = ladder;
            m_Page   = page;

            AddPage(0);

            m_List = new List <LadderEntry>(ladder.Entries);

            var lc = Math.Min(m_List.Count, 150);

            var start = page * 15;
            var end   = start + 15;

            if (end > lc)
            {
                end = lc;
            }

            var ct = end - start;

            var height = 12 + 20 + ct * 20 + 23 + 12;

            AddBackground(0, 0, 499, height, 0x2436);

            for (var i = start + 1; i < end; i += 2)
            {
                AddImageTiled(12, 32 + (i - start) * 20, 475, 20, 0x2430);
            }

            AddAlphaRegion(10, 10, 479, height - 20);

            if (page > 0)
            {
                AddButton(446, height - 12 - 2 - 16, 0x15E3, 0x15E7, 1);
            }
            else
            {
                AddImage(446, height - 12 - 2 - 16, 0x2626);
            }

            if ((page + 1) * 15 < lc)
            {
                AddButton(466, height - 12 - 2 - 16, 0x15E1, 0x15E5, 2);
            }
            else
            {
                AddImage(466, height - 12 - 2 - 16, 0x2622);
            }

            AddHtml(
                16,
                height - 12 - 2 - 18,
                400,
                20,
                Color(
                    string.Format("Top {3} of {0:N0} duelists, page {1} of {2}", m_List.Count, page + 1, (lc + 14) / 15, lc),
                    0xFFC000
                    )
                );

            AddColumnHeader(75, "Rank");
            AddColumnHeader(115, "Level");
            AddColumnHeader(50, "Guild");
            AddColumnHeader(115, "Name");
            AddColumnHeader(60, "Wins");
            AddColumnHeader(60, "Losses");

            for (var i = start; i < end && i < lc; ++i)
            {
                var entry = m_List[i];

                var y = 32 + (i - start) * 20;
                var x = 12;

                AddBorderedText(x, y, 75, Center(Rank(i + 1)), 0xFFFFFF, 0);
                x += 75;

                /*AddImage( 20, y + 5, 0x2616, 0x96C );
                *  AddImage( 22, y + 5, 0x2616, 0x96C );
                *  AddImage( 20, y + 7, 0x2616, 0x96C );
                *  AddImage( 22, y + 7, 0x2616, 0x96C );
                *
                *  AddImage( 21, y + 6, 0x2616, 0x454 );*/

                AddImage(x + 3, y + 4, 0x805);

                var xp    = entry.Experience;
                var level = Ladder.GetLevel(xp);

                Ladder.GetLevelInfo(level, out var xpBase, out var xpAdvance);

                int width;

                var xpOffset = xp - xpBase;

                if (xpOffset >= xpAdvance)
                {
                    width = 109; // level 50
                }
                else
                {
                    width = (109 * xpOffset + xpAdvance / 2) / (xpAdvance - 1);
                }

                // AddImageTiled( 21, y + 6, width, 8, 0x2617 );
                AddImageTiled(x + 3, y + 4, width, 11, 0x806);
                AddBorderedText(x, y, 115, Center(level.ToString()), 0xFFFFFF, 0);
                x += 115;

                var mob = entry.Mobile;

                if (mob.Guild != null)
                {
                    AddBorderedText(x, y, 50, Center(mob.Guild.Abbreviation), 0xFFFFFF, 0);
                }

                x += 50;

                AddBorderedText(x + 5, y, 115 - 5, mob.Name, 0xFFFFFF, 0);
                x += 115;

                AddBorderedText(x, y, 60, Center(entry.Wins.ToString()), 0xFFFFFF, 0);
                x += 60;

                AddBorderedText(x, y, 60, Center(entry.Losses.ToString()), 0xFFFFFF, 0);
                x += 60;

                // AddBorderedText( 292 + 15, y, 115 - 30, String.Format( "{0} <DIV ALIGN=CENTER>/</DIV> <DIV ALIGN=RIGHT>{1}</DIV>", entry.Wins, entry.Losses ), 0xFFC000, 0 );
            }
        }
Ejemplo n.º 5
0
        public PlayerDetailGump(PlayerMobile from, PlayerMobile mobile)
        {
            _from   = from;
            _mobile = mobile;

            Width = 320;

            int n = Notoriety.Compute(from, mobile);

            int notoColor = _notorietyColors[n];

            AddBorderedText(20, 18, Width - 40, 20, Center(mobile.Name ?? "Unknown"), notoColor, BlackColor32);

            AddSeperator(30, 40, Width - 60);

            const int LabelOffset = 20;
            const int LabelWidth  = 55;

            const int ValueOffset = 25 + LabelWidth;
            int       ValueWidth  = Width - (20 + ValueOffset);

            int y = 44;

            PlayerMobile pm = mobile as PlayerMobile;

            Guild guild = mobile.Guild as Guild;

            if (guild != null)
            {
                AddBorderedText(LabelOffset, y, LabelWidth, 20, Right("Guild:"), LabelColor32, BlackColor32);

                AddBorderedText(ValueOffset, y, ValueWidth, 20, guild.Name ?? "Unknown", WhiteColor32, BlackColor32);
                y += 20;
            }

            if (mobile.PublicMyRunUO && mobile.Kills >= 5)
            {
                AddBorderedText(LabelOffset, y, LabelWidth, 20, Right("Kills:"), LabelColor32, BlackColor32);
                AddBorderedText(ValueOffset, y, ValueWidth, 20, mobile.Kills.ToString("N0"), WhiteColor32, BlackColor32);

                y += 20;
            }

            Account acct = mobile.Account as Account;

            if (acct != null)
            {
                TimeSpan age = DateTime.UtcNow - acct.Created;

                int ageInDays = ( int )age.TotalDays;

                int ageInYears  = ((ageInDays + 162) / 365);
                int ageInMonths = ((ageInDays + 15) / 30);
                int ageInWeeks  = ((ageInDays + 3) / 7);

                string ageString;

                if (ageInYears > 0)
                {
                    ageString = String.Format("{0:N0} year{1}", ageInYears, ageInYears == 1?"":"s");
                }
                else if (ageInMonths > 1)
                {
                    ageString = String.Format("{0:N0} month{1}", ageInMonths, ageInMonths == 1?"":"s");
                }
                else if (ageInWeeks > 1)
                {
                    ageString = String.Format("{0:N0} week{1}", ageInWeeks, ageInWeeks == 1?"":"s");
                }
                else
                {
                    ageString = String.Format("Newbie", ageInDays, ageInDays == 1?"":"s");
                }



                AddBorderedText(LabelOffset, y, LabelWidth, 20, Right("Age:"), LabelColor32, BlackColor32);
                AddBorderedText(ValueOffset, y, ValueWidth, 20, ageString, WhiteColor32, BlackColor32);

                y += 20;
            }

            PlayerState ps = PlayerState.Find(mobile);

            if (ps != null)
            {
                Faction fac = ps.Faction;

                //AddItem( Width - 51, 7, 5535, (fac.Definition.HueSecondary ^ 0x0000) - 1 );
                AddItem(7, 7, 5534, (fac.Definition.HuePrimary ^ 0x0000) - 1);

                y += 8;

                AddBorderedText(LabelOffset, y, LabelWidth + ValueWidth, 20, fac.Definition.FriendlyName, WhiteColor32, BlackColor32);

                y += 21;
                AddSeperator(30, y, Width - 60);
                y += 3;

                string rank = String.Format(
                    "Level {0} {1}",
                    ps.Rank.Rank,
                    ps.Rank.Title.String
                    );

                AddBorderedText(LabelOffset, y, LabelWidth, 20, Right("Rank:"), LabelColor32, BlackColor32);
                AddBorderedText(ValueOffset, y, ValueWidth, 20, rank, WhiteColor32, BlackColor32);
                y += 20;

                AddBorderedText(LabelOffset, y, LabelWidth, 20, Right("Points:"), LabelColor32, BlackColor32);
                AddBorderedText(ValueOffset, y, ValueWidth, 20, String.Format("{0:N0}", ps.KillPoints), WhiteColor32, BlackColor32);
                y += 20;
            }

            Ladder instance = Ladder.Instance;

            if (instance != null)
            {
                LadderEntry entry = instance.Find(mobile);

                if (entry != null && (entry.Wins + entry.Losses) > 0)
                {
                    y += 8;

                    AddBorderedText(LabelOffset, y, LabelWidth + ValueWidth, 20, "Duelist", WhiteColor32, BlackColor32);

                    y += 21;
                    AddSeperator(30, y, Width - 60);
                    y += 3;

                    string rank = LadderGump.Rank(entry.Index + 1);

                    AddBorderedText(LabelOffset, y, LabelWidth, 20, Right("Rank:"), LabelColor32, BlackColor32);
                    AddBorderedText(ValueOffset, y, ValueWidth, 20, rank, WhiteColor32, BlackColor32);
                    y += 20;

                    AddBorderedText(LabelOffset, y, LabelWidth, 20, Right("Level:"), LabelColor32, BlackColor32);
                    AddBorderedText(ValueOffset, y, ValueWidth, 20, Ladder.GetLevel(entry.Experience).ToString("N0"), WhiteColor32, BlackColor32);
                    y += 20;

                    AddBorderedText(LabelOffset, y, LabelWidth, 20, Right("Matches:"), LabelColor32, BlackColor32);
                    AddBorderedText(ValueOffset, y, ValueWidth, 20, String.Format("{0:N0}", (entry.Wins + entry.Losses)), WhiteColor32, BlackColor32);
                    y += 20;
                }
            }

            Height = y + 12;

            Ethic ethic = Ethic.Find(mobile);

            if (ethic == Ethic.Hero)
            {
                AddItem(Width - 36, Height - 26, 7188);
            }
            else if (ethic == Ethic.Evil)
            {
                AddItem(Width - 35, Height - 36, 6232);
            }
        }