public int CompareTo(object obj)
            {
                DMRankSorter p = ( DMRankSorter )obj;

                if (p.Kills - Kills == 0)
                {
                    return(Deaths - p.Deaths);
                }

                return(p.Kills - Kills);
            }
        public DMScoreGump(Mobile from, ArrayList list)
            : base(50, 40)
        {
            from.CloseGump(typeof(DMScoreGump));

            m_List = list;
            m_From = from;

            ArrayList playerlist = new ArrayList();

            foreach (ScoreKeeper s in m_List)
            {
                playerlist.Add(new DMRankSorter(s));
            }

            AddPage(0);
            AddBackground(0, 0, 420, 540, 5054);
            AddBlackAlpha(10, 10, 400, 520);

            AddLabel(160, 15, RedHue, "Deathmatch top 20");
            AddLabel(20, 40, LabelHue, "Players");
            AddLabel(185, 40, LabelHue, "Kills");
            AddLabel(345, 40, LabelHue, "Deaths");

            playerlist.Sort();

            for (int i = 0; i < playerlist.Count; ++i)
            {
                DMRankSorter g = ( DMRankSorter )playerlist[i];

                string name = null;

                if ((name = g.Keeper.Player.Name) != null && (name = name.Trim()).Length <= 15)
                {
                    name = g.Keeper.Player.Name;
                }

                string wins = g.Keeper.Kills.ToString();

                string loses = g.Keeper.Deaths.ToString();

                AddLabel(20, 70 + ((i % 20) * 20), GreenHue, name);
                AddLabel(198, 70 + ((i % 20) * 20), GreenHue, wins);
                AddLabel(358, 70 + ((i % 20) * 20), GreenHue, loses);
            }
        }