示例#1
0
 public CTFBoardGump(Mobile mob, CTFGame game)
     : this(mob, game, null)
 {
 }
示例#2
0
        public CTFBoardGump(Mobile mob, CTFGame game, CTFTeamInfo section)
            : base(60, 60)
        {
            m_Game = game;

            CTFTeamInfo ourTeam = game.GetTeamInfo(mob);

            List <IRankedCTF> entries = new List <IRankedCTF>();

            if (section == null)
            {
                for (int i = 0; i < game.Context.Participants.Count; ++i)
                {
                    CTFTeamInfo teamInfo = game.Controller.TeamInfo[i % 8];

                    if (teamInfo == null || teamInfo.Flag == null)
                    {
                        continue;
                    }

                    entries.Add(teamInfo);
                }
            }
            else
            {
                foreach (CTFPlayerInfo player in section.Players.Values)
                {
                    if (player.Score > 0)
                    {
                        entries.Add(player);
                    }
                }
            }

            entries.Sort(delegate(IRankedCTF a, IRankedCTF b)
            {
                return(b.Score - a.Score);
            });

            int height = 0;

            if (section == null)
            {
                height = 73 + (entries.Count * 75) + 28;
            }

            Closable = false;

            AddPage(0);

            AddBackground(1, 1, 398, height, 3600);

            AddImageTiled(16, 15, 369, height - 29, 3604);

            for (int i = 0; i < entries.Count; i += 1)
            {
                AddImageTiled(22, 58 + (i * 75), 357, 70, 0x2430);
            }

            AddAlphaRegion(16, 15, 369, height - 29);

            AddImage(215, -45, 0xEE40);
            //AddImage( 330, 141, 0x8BA );

            AddBorderedText(22, 22, 294, 20, Center("CTF Scoreboard"), LabelColor32, BlackColor32);

            AddImageTiled(32, 50, 264, 1, 9107);
            AddImageTiled(42, 52, 264, 1, 9157);

            if (section == null)
            {
                for (int i = 0; i < entries.Count; ++i)
                {
                    CTFTeamInfo teamInfo = entries[i] as CTFTeamInfo;

                    AddImage(30, 70 + (i * 75), 10152);
                    AddImage(30, 85 + (i * 75), 10151);
                    AddImage(30, 100 + (i * 75), 10151);
                    AddImage(30, 106 + (i * 75), 10154);

                    AddImage(24, 60 + (i * 75), teamInfo == ourTeam ? 9730 : 9727, teamInfo.Color - 1);

                    int nameColor   = LabelColor32;
                    int borderColor = BlackColor32;

                    switch (teamInfo.Color)
                    {
                    case 0x47E:
                        nameColor = 0xFFFFFF;
                        break;

                    case 0x4F2:
                        nameColor = 0x3399FF;
                        break;

                    case 0x4F7:
                        nameColor = 0x33FF33;
                        break;

                    case 0x4FC:
                        nameColor = 0xFF00FF;
                        break;

                    case 0x021:
                        nameColor = 0xFF3333;
                        break;

                    case 0x01A:
                        nameColor = 0xFF66FF;
                        break;

                    case 0x455:
                        nameColor   = 0x333333;
                        borderColor = 0xFFFFFF;
                        break;
                    }

                    AddBorderedText(60, 65 + (i * 75), 250, 20, String.Format("{0}: {1} Team", LadderGump.Rank(1 + i), teamInfo.Name), nameColor, borderColor);

                    AddBorderedText(50 + 10, 85 + (i * 75), 100, 20, "Score:", 0xFFC000, BlackColor32);
                    AddBorderedText(50 + 15, 105 + (i * 75), 100, 20, teamInfo.Score.ToString("N0"), 0xFFC000, BlackColor32);

                    AddBorderedText(110 + 10, 85 + (i * 75), 100, 20, "Kills:", 0xFFC000, BlackColor32);
                    AddBorderedText(110 + 15, 105 + (i * 75), 100, 20, teamInfo.Kills.ToString("N0"), 0xFFC000, BlackColor32);

                    AddBorderedText(160 + 10, 85 + (i * 75), 100, 20, "Captures:", 0xFFC000, BlackColor32);
                    AddBorderedText(160 + 15, 105 + (i * 75), 100, 20, teamInfo.Captures.ToString("N0"), 0xFFC000, BlackColor32);

                    CTFPlayerInfo pl = teamInfo.Leader;

                    AddBorderedText(235 + 10, 85 + (i * 75), 250, 20, "Leader:", 0xFFC000, BlackColor32);

                    if (pl != null)
                    {
                        AddBorderedText(235 + 15, 105 + (i * 75), 250, 20, pl.Player.Name, 0xFFC000, BlackColor32);
                    }
                }
            }
            else
            {
            }

            AddButton(314, height - 42, 247, 248, 1, GumpButtonType.Reply, 0);
        }