public HouseGump(Mobile from, BaseHouse house) : base(20, 30) { if (house.Deleted) { return; } m_House = house; from.CloseGump(typeof(HouseGump)); from.CloseGump(typeof(HouseListGump)); from.CloseGump(typeof(HouseRemoveGump)); bool isOwner = m_House.IsOwner(from); bool isCoOwner = isOwner || m_House.IsCoOwner(from); bool isFriend = isCoOwner || m_House.IsFriend(from); AddPage(0); if (isFriend) { AddBackground(0, 0, 420, 430, 5054); AddBackground(10, 10, 400, 410, 3000); } AddImage(130, 0, 100); if (m_House.Sign != null) { ArrayList lines = Wrap(m_House.Sign.Name); if (lines != null) { for (int i = 0, y = (101 - (lines.Count * 14)) / 2; i < lines.Count; ++i, y += 14) { string s = (string)lines[i]; AddLabel(130 + ((143 - (s.Length * 8)) / 2), y, 0, s); } } } if (!isFriend) { return; } AddHtmlLocalized(55, 103, 75, 20, 1011233, false, false); // INFO AddButton(20, 103, 4005, 4007, 0, GumpButtonType.Page, 1); AddHtmlLocalized(170, 103, 75, 20, 1011234, false, false); // FRIENDS AddButton(135, 103, 4005, 4007, 0, GumpButtonType.Page, 2); AddHtmlLocalized(295, 103, 75, 20, 1011235, false, false); // OPTIONS AddButton(260, 103, 4005, 4007, 0, GumpButtonType.Page, 3); AddHtmlLocalized(295, 390, 75, 20, 1011441, false, false); // EXIT AddButton(260, 390, 4005, 4007, 0, GumpButtonType.Reply, 0); AddHtmlLocalized(55, 390, 200, 20, 1011236, false, false); // Change this house's name! AddButton(20, 390, 4005, 4007, 1, GumpButtonType.Reply, 0); // Info page AddPage(1); //const int fieldStartC = 260; // Center const int fieldStartN = 120; // Near const int fieldStartF = 320; // Far AddHtmlLocalized(20, 135, 100, 20, 1011242, false, false); // Owned by: AddHtml(fieldStartN, 135, 100, 20, GetOwnerName(), false, false); // Angel Island House decay display - owner only. if (from.Account == m_House.Owner.Account || from.AccessLevel >= AccessLevel.GameMaster) { if (m_House.TownshipRestrictedRefresh) { // replace the entire "Decay Time" line AddLabel(20, 155, 0x20, @"** NON TOWNSHIP HOUSE - WILL NOT REFRESH! **"); } else { AddHtml(20, 155, 100, 20, "Decay Time:", false, false); //time until decay TimeSpan decay = m_House.StructureDecayTime - DateTime.Now; int days = decay.Days; double hours = decay.Hours; hours += ((double)decay.Minutes) / 60; string decaystring = string.Format("{0} days, {1:0.0} hours", days, hours); AddHtml(fieldStartN, 155, 300, 20, decaystring, false, false); } } int vstep = 175 - 20; AddHtml(20, vstep += 20, 275, 20, "Number of locked down items:", false, false); // Number of locked down items: AddHtml(fieldStartF, vstep, 64, 20, String.Format("{0}/{1}", m_House.LockDownCount.ToString(), m_House.MaxLockDowns.ToString()), false, false); //AddHtmlLocalized(20, vstep += 20, 275, 20, 1011238, false, false); // Maximum locked down items: //AddHtml(320, vstep, 50, 20, m_House.MaxLockDowns.ToString(), false, false); AddHtml(20, vstep += 20, 275, 20, "Number of secure containers:", false, false); // Number of secure containers: AddHtml(fieldStartF, vstep, 64, 20, String.Format("{0}/{1}", m_House.SecureCount.ToString(), m_House.MaxSecures.ToString()), false, false); //AddHtmlLocalized(20, vstep += 20, 275, 20, 1011240, false, false); // Maximum number of secure containers: //AddHtml(320, vstep, 50, 20, m_House.MaxSecures.ToString(), false, false); //if ( true /*!m_House.Public*/ ) // Public houses don't get LockBoxes. /*{*/ AddHtml(20, vstep += 20, 275, 20, "Number of lockboxes:", false, false); AddHtml(fieldStartF, vstep, 64, 20, String.Format("{0}/{1}", m_House.LockBoxCount.ToString(), m_House.MaxLockBoxes.ToString()), false, false); //AddHtml(20, vstep += 20, 275, 20, "Maximum Number of LockBoxes:", false, false); //AddHtml(320, vstep, 50, 20, m_House.MaxLockBoxes.ToString(), false, false); AddHtml(20, vstep += 20, 275, 20, "Storage tax credits:", false, false); AddHtml(fieldStartF, vstep, 50, 20, m_House.StorageTaxCredits.ToString(), false, false); //AddHtmlLocalized( 20, 320, 400, 20, 1018032, false, false ); // This house is properly placed. //AddHtmlLocalized( 20, 340, 400, 20, 1018035, false, false ); // This house is of modern design. if (m_House.Public == true) { AddHtmlLocalized(20, vstep += 20, 275, 20, 1011241, false, false); // Number of visits this building has had AddHtml(fieldStartF, vstep, 50, 20, m_House.Visits.ToString(), false, false); } AddHtml(20, vstep += 20, 275, 20, "Barkeepers allowed:", false, false); AddHtml(fieldStartF, vstep, 50, 20, m_House.MaximumBarkeepCount.ToString(), false, false); if (m_House is Server.Multis.StaticHousing.StaticHouse) { Server.Multis.StaticHousing.StaticHouse sh = m_House as Server.Multis.StaticHousing.StaticHouse; //AddHtml(20, vstep += 20, 275, 20, "------------------", false, false); AddHtml(20, vstep += 20, 275, 20, "House designed by:", false, false); AddHtml(fieldStartF, vstep, 275, 20, sh.OriginalOwnerName, false, false); AddHtml(20, vstep += 20, 275, 20, "Designer license:", false, false); AddHtml(fieldStartF, vstep, 275, 20, "DL" + ((int)sh.OriginalOwnerSerial).ToString(), false, false); AddHtml(20, vstep += 20, 275, 20, "Version:", false, false); AddHtml(fieldStartF, vstep, 275, 20, sh.BlueprintVersion.ToString(), false, false); AddHtml(20, vstep += 20, 275, 20, "Last revision:", false, false); AddHtml(fieldStartF, vstep, 275, 20, sh.RevisionDate.ToShortDateString(), false, false); } /*} * else * { * AddHtmlLocalized( 20, 260, 400, 20, 1018032, false, false ); // This house is properly placed. * AddHtmlLocalized( 20, 280, 400, 20, 1018035, false, false ); // This house is of modern design. * * // TODO: Validate exact placement * AddHtmlLocalized( 20, 305, 275, 20, 1011241, false, false ); // Number of visits this building has had * AddHtml( 320, 305, 50, 20, m_House.Visits.ToString(), false, false ); * }*/ // Friends page AddPage(2); AddHtmlLocalized(45, 130, 150, 20, 1011266, false, false); // List of co-owners AddButton(20, 130, 2714, 2715, 2, GumpButtonType.Reply, 0); AddHtmlLocalized(45, 150, 150, 20, 1011267, false, false); // Add a co-owner AddButton(20, 150, 2714, 2715, 3, GumpButtonType.Reply, 0); AddHtmlLocalized(45, 170, 150, 20, 1018036, false, false); // Remove a co-owner AddButton(20, 170, 2714, 2715, 4, GumpButtonType.Reply, 0); AddHtmlLocalized(45, 190, 150, 20, 1011268, false, false); // Clear co-owner list AddButton(20, 190, 2714, 2715, 5, GumpButtonType.Reply, 0); AddHtmlLocalized(225, 130, 155, 20, 1011243, false, false); // List of Friends AddButton(200, 130, 2714, 2715, 6, GumpButtonType.Reply, 0); AddHtmlLocalized(225, 150, 155, 20, 1011244, false, false); // Add a Friend AddButton(200, 150, 2714, 2715, 7, GumpButtonType.Reply, 0); AddHtmlLocalized(225, 170, 155, 20, 1018037, false, false); // Remove a Friend AddButton(200, 170, 2714, 2715, 8, GumpButtonType.Reply, 0); AddHtmlLocalized(225, 190, 155, 20, 1011245, false, false); // Clear Friends list AddButton(200, 190, 2714, 2715, 9, GumpButtonType.Reply, 0); AddHtmlLocalized(120, 215, 280, 20, 1011258, false, false); // Ban someone from the house AddButton(95, 215, 2714, 2715, 10, GumpButtonType.Reply, 0); AddHtmlLocalized(120, 235, 280, 20, 1011259, false, false); // Eject someone from the house AddButton(95, 235, 2714, 2715, 11, GumpButtonType.Reply, 0); AddHtmlLocalized(120, 255, 280, 20, 1011260, false, false); // View a list of banned people AddButton(95, 255, 2714, 2715, 12, GumpButtonType.Reply, 0); AddHtmlLocalized(120, 275, 280, 20, 1011261, false, false); // Lift a ban AddButton(95, 275, 2714, 2715, 13, GumpButtonType.Reply, 0); // Options page AddPage(3); if (m_House.GetFlag(BaseHouse.ImplFlags.ManagedDemolishion) == true) { DateTime ok_demo = m_House.BuiltOn + TimeSpan.FromDays(7.0); string sx; sx = string.Format("You cannot transfer this house until: {0} ", ok_demo.ToShortDateString()); AddHtml(45, 150, 355, 30, sx, false, false); // Transfer ownership of the house sx = string.Format("You cannot demolish this house until: {0}", ok_demo.ToShortDateString()); AddHtml(45, 180, 355, 30, sx, false, false); // Demolish house and get deed back } else { AddHtmlLocalized(45, 150, 355, 30, 1011248, false, false); // Transfer ownership of the house AddButton(20, 150, 2714, 2715, 14, GumpButtonType.Reply, 0); AddHtmlLocalized(45, 180, 355, 30, 1011249, false, false); // Demolish house and get deed back AddButton(20, 180, 2714, 2715, 15, GumpButtonType.Reply, 0); } AddHtmlLocalized(45, 210, 355, 30, 1011247, false, false); // Change the house locks AddButton(20, 210, 2714, 2715, 16, GumpButtonType.Reply, 0); if (!m_House.Public) { //AddHtmlLocalized( 45, 210, 355, 30, 1011247, false, false ); // Change the house locks //AddButton( 20, 210, 2714, 2715, 16, GumpButtonType.Reply, 0 ); //AddHtmlLocalized( 45, 240, 350, 90, 1011253, false, false ); // Declare this building to be public. This will make your front door unlockable. AddHtml(45, 240, 350, 90, "Declare this building to be public.", false, false); // Declare this building to be public. AddButton(20, 240, 2714, 2715, 17, GumpButtonType.Reply, 0); } else { //AddHtmlLocalized( 45, 280, 350, 30, 1011250, false, false ); // Change the sign type AddHtmlLocalized(45, 210 + 30, 350, 30, 1011250, false, false); // Change the sign type AddButton(20, 210 + 30, 2714, 2715, 0, GumpButtonType.Page, 4); AddHtmlLocalized(45, 240 + 30, 350, 30, 1011252, false, false); // Declare this building to be private. AddButton(20, 240 + 30, 2714, 2715, 17, GumpButtonType.Reply, 0); // Change the sign type AddPage(4); for (int i = 0; i < 24; ++i) { AddRadio(53 + ((i / 4) * 50), 137 + ((i % 4) * 35), 210, 211, false, i + 1); AddItem(60 + ((i / 4) * 50), 130 + ((i % 4) * 35), 2980 + (i * 2)); } AddHtmlLocalized(200, 305, 129, 20, 1011254, false, false); // Guild sign choices AddButton(350, 305, 252, 253, 0, GumpButtonType.Page, 5); AddHtmlLocalized(200, 340, 355, 30, 1011277, false, false); // Okay that is fine. AddButton(350, 340, 4005, 4007, 18, GumpButtonType.Reply, 0); AddPage(5); for (int i = 0; i < 29; ++i) { AddRadio(53 + ((i / 5) * 50), 137 + ((i % 5) * 35), 210, 211, false, i + 25); AddItem(60 + ((i / 5) * 50), 130 + ((i % 5) * 35), 3028 + (i * 2)); } AddHtmlLocalized(200, 305, 129, 20, 1011255, false, false); // Shop sign choices AddButton(350, 305, 250, 251, 0, GumpButtonType.Page, 4); AddHtmlLocalized(200, 340, 355, 30, 1011277, false, false); // Okay that is fine. AddButton(350, 340, 4005, 4007, 18, GumpButtonType.Reply, 0); } }