Exemplo n.º 1
0
        public ViewBoatsGump(Mobile from, List <BaseBoat> list, BaseBoat sel) : base(50, 40)
        {
            m_From      = from;
            m_List      = list;
            m_Selection = sel;

            from.CloseGump(typeof(ViewBoatsGump));

            AddPage(0);

            AddBackground(0, 0, 240, 360, 5054);
            AddBlackAlpha(10, 10, 220, 340);

            if (sel == null || sel.Deleted)
            {
                m_Selection = null;

                AddHtml(35, 15, 120, 20, Color("Boat Type", White), false, false);

                if (list.Count == 0)
                {
                    AddHtml(35, 40, 160, 40, Color("There were no boats found for that player.", White), false, false);
                }

                AddImage(190, 17, 0x25EA);
                AddImage(207, 17, 0x25E6);

                int page = 0;

                for (int i = 0; i < list.Count; ++i)
                {
                    if ((i % 15) == 0)
                    {
                        if (page > 0)
                        {
                            AddButton(207, 17, 0x15E1, 0x15E5, 0, GumpButtonType.Page, page + 1);
                        }

                        AddPage(++page);

                        if (page > 1)
                        {
                            AddButton(190, 17, 0x15E3, 0x15E7, 0, GumpButtonType.Page, page - 1);
                        }
                    }

                    object name = FindBoatName((BaseBoat)list[i]);

                    AddHtml(15, 40 + ((i % 15) * 20), 20, 20, Color(String.Format("{0}.", i + 1), White), false, false);

                    if (name is int)
                    {
                        AddHtmlLocalized(35, 40 + ((i % 15) * 20), 160, 20, (int)name, White16, false, false);
                    }
                    else if (name is string)
                    {
                        AddHtml(35, 40 + ((i % 15) * 20), 160, 20, Color((string)name, White), false, false);
                    }

                    AddButton(198, 39 + ((i % 15) * 20), 4005, 4007, i + 1, GumpButtonType.Reply, 0);
                }
            }
            else
            {
                string boatName = sel.Name, owner, location;
                Map    map = sel.Map;

                if (boatName == null || boatName == String.Empty)
                {
                    boatName = "nothing";
                }

                Mobile boatOwner = sel.Owner;

                if (boatOwner == null)
                {
                    owner = "nobody";
                }
                else
                {
                    owner = boatOwner.Name;
                }

                int  xLong = 0, yLat = 0, xMins = 0, yMins = 0;
                bool xEast = false, ySouth = false;

                bool valid = Sextant.Format(sel.Location, map, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth);

                if (valid)
                {
                    location = String.Format("{0}° {1}'{2}, {3}° {4}'{5}", yLat, yMins, ySouth ? "S" : "N", xLong, xMins, xEast ? "E" : "W");
                }
                else
                {
                    location = "????";
                }

                AddHtml(10, 15, 220, 20, Color(Center("Boat Properties"), White), false, false);

                AddHtml(15, 40, 210, 20, Color("Facet:", White), false, false);
                AddHtml(15, 40, 210, 20, Color(Right(map == null ? "(-null-)" : map.Name), White), false, false);

                AddHtml(15, 60, 210, 20, Color("Location:", White), false, false);
                AddHtml(15, 60, 210, 20, Color(Right(sel.Location.ToString()), White), false, false);

                AddHtml(15, 80, 210, 20, Color("Sextant:", White), false, false);
                AddHtml(15, 80, 210, 20, Color(Right(location), White), false, false);

                AddHtml(15, 100, 210, 20, Color("Owner:", White), false, false);
                AddHtml(15, 100, 210, 20, Color(Right(owner), White), false, false);

                AddHtml(15, 120, 210, 20, Color("Name:", White), false, false);
                AddHtml(15, 120, 210, 20, Color(Right(boatName), White), false, false);

                //AddHtml( 15, 140, 210, 20, Color( "Friends:", White ), false, false );
                //AddHtml( 15, 140, 210, 20, Color( Right( sel.Friends.Count.ToString() ), White ), false, false );

                //AddHtml( 15, 160, 210, 20, Color( "Co-Owners:", White ), false, false );
                //AddHtml( 15, 160, 210, 20, Color( Right( sel.CoOwners.Count.ToString() ), White ), false, false );

                //AddHtml( 15, 180, 210, 20, Color( "Bans:", White ), false, false );
                //AddHtml( 15, 180, 210, 20, Color( Right( sel.Bans.Count.ToString() ), White ), false, false );

                AddHtml(15, 180, 210, 20, Color("Decays:", White), false, false);
                AddHtml(15, 180, 210, 20, Color(Right(sel.CheckDecay() ? "Yes" : "No"), White), false, false);

                AddHtml(15, 200, 210, 20, Color("Decay Level:", White), false, false);
                AddHtml(15, 210, 210, 20, Color(Right(sel.StatusText()), White), false, false);

                AddButton(15, 245, 4005, 4007, 1, GumpButtonType.Reply, 0);
                AddHtml(50, 245, 120, 20, Color("Go to boat", White), false, false);

                //AddButton( 15, 265, 4005, 4007, 2, GumpButtonType.Reply, 0 );
                //AddHtml( 50, 265, 120, 20, Color( "Open boat menu", White ), false, false );

                AddButton(15, 285, 4005, 4007, 3, GumpButtonType.Reply, 0);
                AddHtml(50, 285, 120, 20, Color("Delete boat", White), false, false);

                AddButton(15, 305, 4005, 4007, 4, GumpButtonType.Reply, 0);
                AddHtml(50, 305, 120, 20, Color("Refresh boat", White), false, false);
            }
        }