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