private void GateTravel() { RunebookEntry e = Atlas.Entries[Selected]; if (RunebookGump.HasSpell(User, 51)) { string coords = ToCoordinates(e.Location, e.Map); if (coords != "Nowhere") { User.SendMessage(ToCoordinates(e.Location, e.Map)); } Atlas.OnTravel(); if (new GateTravelSpell(User, null, e).Cast()) { Atlas.NextUse = DateTime.UtcNow; } } else { User.SendLocalizedMessage(500015); // You do not have that spell! } Atlas.Openers.Remove(User); }
public bool IsOpen(Mobile toCheck) { NetState ns = toCheck.NetState; if (ns == null) { return(false); } //GumpCollection gumps = ns.Gumps; List <Gump> gumps = new List <Gump>(ns.Gumps); for (int i = 0; i < gumps.Count; ++i) { if (gumps[i] is RunebookGump) { RunebookGump gump = (RunebookGump)gumps[i]; if (gump.Book == this) { return(true); } } } return(false); }
public virtual bool HasGump(Mobile toCheck) { RunebookGump bookGump = toCheck.FindGump <RunebookGump>(); if (bookGump != null && bookGump.Book == this) { return(true); } return(false); }
private void RecallSpell() { RunebookEntry e = Atlas.Entries[Selected]; if (RunebookGump.HasSpell(User, 31)) { SendLocationMessage(e, User); Atlas.OnTravel(); new RecallSpell(User, null, e, null).Cast(); } else { User.SendLocalizedMessage(500015); // You do not have that spell! } Atlas.Openers.Remove(User); }
public bool IsOpen(Mobile toCheck) { NetState ns = toCheck.NetState; if (ns != null) { foreach (Gump gump in ns.Gumps) { RunebookGump bookGump = gump as RunebookGump; if (bookGump != null && bookGump.Book == this) { return(true); } } } return(false); }
private void RecallSpell() { RunebookEntry e = Atlas.Entries[Selected]; if (RunebookGump.HasSpell(User, 31)) { string coords = ToCoordinates(e.Location, e.Map); if (coords != "unknown") { User.SendMessage(ToCoordinates(e.Location, e.Map)); } Atlas.OnTravel(); new RecallSpell(User, null, e, null).Cast(); } Atlas.Openers.Remove(User); }
private void SacredJourney() { RunebookEntry e = Atlas.Entries[Selected]; if (RunebookGump.HasSpell(User, 209)) { SendLocationMessage(e, User); Atlas.OnTravel(); new SacredJourneySpell(User, null, e, null).Cast(); Atlas.NextUse = DateTime.UtcNow; } else { User.SendLocalizedMessage(500015); // You do not have that spell! } Atlas.Openers.Remove(User); }
private void GateTravel() { RunebookEntry e = Atlas.Entries[Selected]; if (RunebookGump.HasSpell(User, 51)) { SendLocationMessage(e, User); Atlas.OnTravel(); if (new GateTravelSpell(User, null, e).Cast()) { Atlas.NextUse = DateTime.UtcNow; } } else { User.SendLocalizedMessage(500015); // You do not have that spell! } Atlas.Openers.Remove(User); }
public bool IsOpen(Mobile toCheck) { GameClient ns = toCheck.Client; if (ns == null) { return(false); } foreach (Gump gump in ns.Gumps) { if (gump is RunebookGump) { RunebookGump rbgump = (RunebookGump)gump; if (rbgump.Book == this) { return(true); } } } return(false); }
public override void AddGumpLayout() { AddImage(0, 0, 39923); AddHtmlLocalized(60, 9, 147, 22, 1011296, false, false); //Charges: AddHtml(110, 9, 97, 22, String.Format("{0} / {1}", Atlas.CurCharges, Atlas.MaxCharges), false, false); AddHtmlLocalized(264, 9, 144, 18, 1011299, false, false); // rename book AddButton(248, 14, 2103, 2103, 1, GumpButtonType.Reply, 0); int startIndex = Page * 16; int index = 0; for (int i = startIndex; i < startIndex + 16; i++) { string desc; int hue; if (i < Atlas.Entries.Count) { desc = RunebookGump.GetName(Atlas.Entries[i].Description); hue = Selected == i ? 0x14B : GetMapHue(Atlas.Entries[i].Map); } else { desc = "Empty"; hue = 0; } // Select Button AddButton(46 + ((index / 8) * 205), 55 + ((index % 8) * 20), 2103, 2104, i + 100, GumpButtonType.Reply, 0); // Description label AddLabelCropped(62 + ((index / 8) * 205), 50 + ((index % 8) * 20), 144, 18, hue, desc); index++; } RunebookEntry entry = null; if (Selected >= 0 && Selected < Atlas.Entries.Count) { entry = Atlas.Entries[Selected]; } string coords = entry != null?ToCoordinates(entry.Location, entry.Map) : "Nowhere"; AddHtml(25, 254, 182, 18, String.Format("<center>{0}</center>", coords), false, false); AddHtmlLocalized(62, 290, 144, 18, 1011300, false, false); // Set default AddButton(46, 295, 2103, 2103, 2, GumpButtonType.Reply, 0); AddHtmlLocalized(62, 310, 144, 18, 1011298, false, false); // Drop rune AddButton(46, 315, 2103, 2103, 3, GumpButtonType.Reply, 0); AddHtml(25, 348, 182, 18, String.Format("<center>{0}</center>", entry != null ? entry.Description : "Empty"), false, false); int hy = 284; int by = 289; AddHtmlLocalized(280, hy, 128, 18, 1077595, false, false); // Recall (Spell) AddButton(264, by, 2103, 2103, 4, GumpButtonType.Reply, 0); hy += 18; by += 18; if (Atlas.CurCharges != 0) { AddHtmlLocalized(280, hy, 128, 18, 1077594, false, false); // Recall (Charge) AddButton(264, by, 2103, 2103, 5, GumpButtonType.Reply, 0); hy += 18; by += 18; } if (User.Skills[SkillName.Magery].Value >= 66.0) { AddHtmlLocalized(280, hy, 128, 18, 1015214, false, false); // Gate Travel AddButton(264, by, 2103, 2103, 6, GumpButtonType.Reply, 0); hy += 18; by += 18; } AddHtmlLocalized(280, hy, 128, 18, 1060502, false, false); // Sacred Journey AddButton(264, by, 2103, 2103, 7, GumpButtonType.Reply, 0); if (Page < 2) { AddButton(374, 3, 2206, 2206, 1150, GumpButtonType.Reply, 0); } if (Page > 0) { AddButton(23, 5, 2205, 2205, 1151, GumpButtonType.Reply, 0); } }
public PenOfWisdomGump(Mobile from, PenOfWisdom pen, Runebook sourcebook, Runebook copybook, List <RunebookEntry> list) : base(50, 50) { Container bp = from.Backpack; Pen = pen; SourceBook = sourcebook; CopyBook = copybook; MarkScrollAmount = bp.GetAmount(typeof(MarkScroll), true); RuneAmount = bp.GetAmount(typeof(RecallRune), true); Blank = copybook.MaxEntries - copybook.Entries.Count; if (list == null) { Checked = new List <RunebookEntry>(); } else { Checked = list; } Closable = false; Disposable = true; Dragable = true; int entrycount = SourceBook.Entries.Count; int y = entrycount <= 16 ? 0 : 25; AddPage(0); AddBackground(4, 39, 391, 313 + y, 9200); AddImageTiled(8, 45, 380, 53, 2624); AddHtmlLocalized(7, 50, 380, 53, 1115428, string.Format("@{0}@{1}@{2}@{3}", MarkScrollAmount.ToString(), RuneAmount.ToString(), Checked.Count, Blank.ToString()), EntryColor, false, false); // <CENTER>Pen of Wisdom<br>(Mark Scrolls: ~1_VAL~, Runes: ~2_VAL~ | Selected: ~3_VAL~, Blank: ~4_VAL~)</CENTER> AddImageTiled(8, 101, 188, 220, 2624); AddImageTiled(199, 101, 188, 220, 2624); AddButton(12, 325 + y, 4017, 4018, 20, GumpButtonType.Reply, 0); AddHtmlLocalized(48, 326 + y, 78, 20, 1006045, EntryColor, false, false); // Cancel AddButton(153, 325 + y, 4011, 4012, 21, GumpButtonType.Reply, 0); AddHtmlLocalized(189, 326 + y, 78, 20, 1115427, EntryColor, false, false); // Select All AddButton(309, 325 + y, 4023, 4024, 22, GumpButtonType.Reply, 0); AddHtmlLocalized(344, 326 + y, 78, 20, 1156596, EntryColor, false, false); // Okay string description; int page = 1; int yy = 0; AddPage(page); for (int i = 0; i < entrycount; i++) { if (page > 1) { AddButton(50, 325, 4014, 4015, 0, GumpButtonType.Page, page - 1); AddHtmlLocalized(85, 326, 150, 20, 1011067, EntryColor, false, false); // Previous page } description = SourceBook.Entries[i].Description; if (description == null) { if (i + 1 < 10) { description = "0" + (i + 1).ToString(); } else { description = (i + 1).ToString(); } } if (yy < 8) { AddButton(15, 110 + (yy * 25), Checked.Contains(SourceBook.Entries[i]) ? 211 : 210, Checked.Contains(SourceBook.Entries[i]) ? 210 : 211, i, GumpButtonType.Reply, 0); AddLabelCropped(45, 110 + (yy * 25), 115, 17, RunebookGump.GetMapHue(SourceBook.Entries[i].Map), string.Format("{0}", description)); } else { AddButton(205, 110 + ((yy - 8) * 25), Checked.Contains(SourceBook.Entries[i]) ? 211 : 210, Checked.Contains(SourceBook.Entries[i]) ? 210 : 211, i, GumpButtonType.Reply, 0); AddLabelCropped(235, 110 + ((yy - 8) * 25), 115, 17, RunebookGump.GetMapHue(SourceBook.Entries[i].Map), string.Format("{0}", description)); } yy++; bool pages = (i + 1) % 16 == 0; if (pages && entrycount - 1 != i) { AddButton(200, 325, 4005, 4006, 0, GumpButtonType.Page, page + 1); AddHtmlLocalized(235, 326, 150, 20, 1011066, EntryColor, false, false); // Next page page++; AddPage(page); yy = 0; } } }
public override void AddGumpLayout() { AddImage(0, 0, 39923); AddHtmlLocalized(60, 8, 180, 16, 1060728, String.Format("{0}\t{1}", Atlas.CurCharges, Atlas.MaxCharges), 1, false, false); //charges: ~1_val~ / ~2_val~ AddHtmlLocalized(265, 8, 150, 16, 1011299, false, false); // rename book AddButton(250, 12, 2103, 2103, 1, GumpButtonType.Reply, 0); int startIndex = Page * 16; int index = 0; for (int i = startIndex; i < startIndex + 16; i++) { string desc; int hue; if (i < Atlas.Entries.Count) { desc = RunebookGump.GetName(Atlas.Entries[i].Description); hue = Selected == i ? 0x90 : RunebookGump.GetMapHue(Atlas.Entries[i].Map); } else { desc = "Empty"; hue = 0; } // Select Button AddButton(45 + ((index / 8) * 205), 64 + ((index % 8) * 20), 2103, 2104, i + 100, GumpButtonType.Reply, 0); // Description label AddLabelCropped(60 + ((index / 8) * 205), 60 + ((index % 8) * 20), 115, 17, hue, desc); index++; } if (Selected >= 0 && Selected < Atlas.Entries.Count) { RunebookEntry entry = Atlas.Entries[Selected]; if (entry != null) { string coords = ToCoordinates(entry.Location, entry.Map); if (coords != "unknown") { AddHtml(40, 250, 155, 16, String.Format("<center>{0}</center>", coords), false, false); } AddHtmlLocalized(70, 291, 150, 16, 1011300, false, false); // Set default if (Atlas.DefaultIndex != Selected) { AddButton(45, 295, 2103, 2103, 2, GumpButtonType.Reply, 0); } AddHtmlLocalized(70, 311, 150, 16, 1011298, false, false); // drop rune AddButton(45, 315, 2103, 2103, 3, GumpButtonType.Reply, 0); AddHtml(25, 345, 180, 16, String.Format("<center>{0}</center>", entry.Description), false, false); AddHtmlLocalized(280, 286, 100, 16, 1077595, false, false); // Recall (Spell) AddButton(265, 290, 2103, 2103, 4, GumpButtonType.Reply, 0); AddHtmlLocalized(280, 303, 100, 16, 1077594, false, false); // Recall (Charge) AddButton(265, 307, 2103, 2103, 5, GumpButtonType.Reply, 0); AddHtmlLocalized(280, 320, 100, 16, 1015214, false, false); // Gate Travel AddButton(265, 324, 2103, 2103, 6, GumpButtonType.Reply, 0); AddHtmlLocalized(280, 337, 100, 16, 1060502, false, false); // Sacred Journey AddButton(265, 341, 2103, 2103, 7, GumpButtonType.Reply, 0); } } if (Page < 2) { AddButton(374, 3, 2206, 2206, 1150, GumpButtonType.Reply, 0); } if (Page > 0) { AddButton(23, 5, 2205, 2205, 1151, GumpButtonType.Reply, 0); } }
public PenOfWisdomGump(Mobile from, PenOfWisdom pen, Runebook sourcebook, Runebook copybook, List <RunebookEntry> list) : base(50, 50) { Container bp = from.Backpack; m_Pen = pen; m_SourceBook = sourcebook; m_CopyBook = copybook; m_MarkScrollAmount = bp.GetAmount(typeof(MarkScroll), true); m_RuneAmount = bp.GetAmount(typeof(RecallRune), true); m_Blank = copybook.MaxEntries - copybook.Entries.Count; if (list == null) { m_Checked = new List <RunebookEntry>(); } else { m_Checked = list; } Closable = false; Disposable = true; Dragable = true; AddPage(0); AddBackground(4, 39, 391, 313, 9200); AddImageTiled(8, 45, 380, 53, 2624); AddHtmlLocalized(7, 50, 380, 53, 1115428, String.Format("{0}\t{1}\t{2}\t{3}", m_MarkScrollAmount.ToString(), m_RuneAmount.ToString(), m_Checked.Count, m_Blank.ToString()), 0xFFFFFF, false, false); // <CENTER>Pen of Wisdom<br>(Mark Scrolls: ~1_VAL~, Runes: ~2_VAL~ | Selected: ~3_VAL~, Blank: ~4_VAL~)</CENTER> AddImageTiled(8, 101, 188, 220, 2624); AddImageTiled(199, 101, 188, 220, 2624); AddButton(12, 325, 4017, 4018, 20, GumpButtonType.Reply, 0); AddLabel(48, 325, 2100, @"Cancel"); AddButton(153, 325, 4011, 4012, 21, GumpButtonType.Reply, 0); AddHtmlLocalized(189, 325, 78, 22, 1115427, 0xFFFFFF, false, false); // Select All AddButton(309, 325, 4023, 4024, 22, GumpButtonType.Reply, 0); AddLabel(344, 325, 2100, @"Okay"); string description; for (int i = 0; i < sourcebook.Entries.Count; i++) { description = sourcebook.Entries[i].Description; if (description == null) { if (i + 1 < 10) { description = "0" + (i + 1).ToString(); } else { description = (i + 1).ToString(); } } if (i < 8) { AddButton(15, 110 + i * 25, m_Checked.Contains(sourcebook.Entries[i]) ? 211 : 210, m_Checked.Contains(sourcebook.Entries[i]) ? 210 : 211, i, GumpButtonType.Reply, 0); AddLabel(45, 110 + i * 25, RunebookGump.GetMapHue(sourcebook.Entries[i].Map), String.Format("{0}", description)); } else { AddButton(205, 110 + ((i - 8) * 25), m_Checked.Contains(sourcebook.Entries[i]) ? 211 : 210, m_Checked.Contains(sourcebook.Entries[i]) ? 210 : 211, i, GumpButtonType.Reply, 0); AddLabel(235, 110 + ((i - 8) * 25), RunebookGump.GetMapHue(sourcebook.Entries[i].Map), String.Format("{0}", description)); } } }