public virtual void onEditPageButtonClick(GumpButton button, object param) { if (m_caller.AccessLevel < AccessLevel.Administrator) { return; } try { var state = new CompendiumEditorState { PageName = Renderer.Name, Caller = (PlayerMobile)m_caller, RendererToEdit = (CompendiumPageRenderer)Renderer.Clone() }; state.RendererToEdit.SelectedElement = null; state.EditorInstance = new CompendiumPageEditor(state); state.RendererToEdit.State = state; state.ElementListGump = new ElementListGump(state); state.PreviewGump = new CompendiumPreviewPageGump(state.Caller, state.RendererToEdit); state.EditorInstance.Send(); state.ElementListGump.Send(); state.PreviewGump.Send(); } catch (Exception e) { Console.WriteLine("An exception was caught while trying to edit Compendium page."); Console.WriteLine(e); } }
public virtual void onHyperlinkClick(GumpButton button, int param) { if (button != null) { try { var linkName = m_hyperlinkRegistry.First(element => element.Value == param).Key; if (Compendium.g_CompendiumRenderers.ContainsKey(linkName)) { var gump = new CompendiumPageGump(m_caller, Compendium.g_CompendiumRenderers[linkName]); gump.Send(); } } catch (Exception e) { Console.WriteLine("Bad CompendiumPageGump link"); Console.WriteLine(e); Refresh(); } } //lookup the hyperlink from the param and open the gump }
public void onSaveButtonClick(GumpButton entry, int param) { if (!m_displayErrorMessage && !string.IsNullOrEmpty(m_gumpName) && !string.IsNullOrWhiteSpace(m_gumpName)) { m_state.RendererToEdit.Name = m_gumpName; m_state.RendererToEdit.Serialize(); if (Compendium.g_CompendiumRenderers.ContainsKey(m_state.RendererToEdit.Name)) { Compendium.g_CompendiumRenderers[m_state.RendererToEdit.Name] = m_state.RendererToEdit; } else { Compendium.g_CompendiumRenderers.Add(m_state.RendererToEdit.Name, m_state.RendererToEdit); } m_state.Refresh(); } else { Refresh(); } }
public virtual void onAddElementButtonClick(GumpButton button, int param) { if (button != null) { var instance = g_registeredElements.Values.First(registeredKvp => registeredKvp.Index == param); var element = instance.Method(); element.Z = EditorState.RendererToEdit.Elements.Count; EditorState.RendererToEdit.Elements.Add(element); EditorState.RendererToEdit.SelectedElement = element; EditorState.SelectedElement = element; EditorState.ElementListGump.setPageBySelectedElement(element); } EditorState.Refresh(); }
public void onCancelButtonClick(GumpButton entry, int param) { //m_state.Refresh(); }
public void onOpenGridButtonClick(GumpButton button, object param) { EditorState.RendererToEdit.ShowEditorGrid = !EditorState.RendererToEdit.ShowEditorGrid; EditorState.Refresh(); }
protected virtual void NextPage(GumpButton entry) { NextPage(true); }
internal RunebookEntry(Runebook owner, GumpButton recall, GumpButton gate, GumpButton sacred, GumpButton scroll, GumpButton def, GumpButton drop, string location, string name, int color) { _owner = owner; _recall = recall; _gate = gate; _sacred = sacred; _scroll = scroll; _default = def; _drop = drop; Name = name; Location = location; Map = Map.Internal; switch (color) { case 1102: Map = Map.Malas; break; case 81: Map = Map.Felucca; break; case 10: Map = Map.Trammel; break; case 1154: Map = Map.Tokuno; break; case 0: Map = Map.TerMur; break; } Position = Geometry.CoordsToPoint(Location, Map); }
public void onNavigateButtonClick(GumpButton button, NavButtonDirection dir) { if (EditorState == null) { return; } if (button != null && EditorState.SelectedElement != null) { switch (dir) { case NavButtonDirection.Up: EditorState.SelectedElement.Y--; break; case NavButtonDirection.UpUp: EditorState.SelectedElement.Y -= 5; break; case NavButtonDirection.Right: EditorState.SelectedElement.X++; break; case NavButtonDirection.RightRight: EditorState.SelectedElement.X += 5; break; case NavButtonDirection.Down: EditorState.SelectedElement.Y++; break; case NavButtonDirection.DownDown: EditorState.SelectedElement.Y += 5; break; case NavButtonDirection.Left: EditorState.SelectedElement.X--; break; case NavButtonDirection.LeftLeft: EditorState.SelectedElement.X -= 5; break; } } EditorState.Refresh(); }
protected virtual bool CanDisplay(GumpButton entry) { return(entry != null); }
protected virtual void OnAddEntryConfirm(GumpButton b, string text) { }
protected virtual void OnSelectPoint(GumpButton b) { Value = new Point(b.X, b.Y); }
private void OnMyProfile(GumpButton button) { Send(new TrashCollectionProfileGump(User, TrashCollection.EnsureProfile(User), Hide(true), UseConfirmDialog)); }
protected virtual void MainButtonHandler(GumpButton b) { Refresh(true); }
protected virtual void ToggleView(GumpButton b) { CompactView = !CompactView; Refresh(true); }
protected virtual void ShowHelp(GumpButton button) { Send(new NoticeDialogGump(User, this, title: "Help", html: HelpText)); }
internal RunebookEntry(Runebook owner, GumpButton recall, GumpButton gate, GumpButton sacred, GumpButton scroll, GumpButton def, GumpButton drop, string name) { _owner = owner; _recall = recall; _gate = gate; _sacred = sacred; _scroll = scroll; _default = def; _drop = drop; Name = name; }
public void onApplyPropertiesButtonClick(GumpButton button) { EditorState.Refresh(); }
private void IncreaseInc(GumpButton b) { StatInc = Math.Min(10, StatInc + 1); Refresh(true); }
public void onPropertyPrevPageButtonClick(GumpButton button) { EditorState.PropertiesCurrentPageNumber--; EditorState.Refresh(); }
protected override void OnCancel(GumpButton button) { Confirmed = false; base.OnCancel(button); }
private void DecreaseInc(GumpButton b) { StatInc = Math.Max(1, StatInc - 1); Refresh(true); }
protected override void OnCancel(GumpButton button) { }
protected virtual void PreviousPage(GumpButton entry) { PreviousPage(true); }
protected void OnBack(GumpButton b) { Close(); }
protected override void OnAccept(GumpButton button) { Confirmed = true; base.OnAccept(button); }
public bool Parse() { if (!Close() || !Open()) { return(false); } var g = Gump.GetGump(GumpType); UpdateLocalizedProperties(); int scrolloffset = Configuration.ScrollOffset; int dropoffset = Configuration.DropOffset; int defaultoffset = Configuration.DefaultOffset; int recalloffset = Configuration.RecallOffset; int gateoffset = Configuration.GateOffset; int sacredoffset = Configuration.SacredOffset; int jumper = Configuration.Jumper; dynamic min = string.Empty; dynamic max = string.Empty; if (g.HTMLTexts.Count > 0) { min = g.HTMLTexts[0].Text; } if (g.HTMLTexts.Count > 1) { max = g.HTMLTexts[1].Text; } int imin; if (!int.TryParse(min, out imin)) { imin = -1; } int imax; if (!int.TryParse(max, out imax)) { imax = -1; } Uses = new Range(imin, imax); if (Shard == "OSI") { int eamt = 0; for (var i = 0; i < 15; i++) { if (g.Buttons.Any( e => e.PacketValue.Equals(defaultoffset + (i)) && e.Graphic.Released.Equals(2361) && e.Graphic.Pressed.Equals(2361))) { eamt++; } } var namepos = (eamt); var defaultbtn = g.Buttons.First(e => e.Graphic.Released.Equals(2361) && e.Graphic.Pressed.Equals(2361)); if (defaultbtn != null) { var value = ((defaultbtn.PacketValue - defaultoffset) / jumper) + 1; DefaultRune = value; } var rButton = g.Buttons.First(e => e.Graphic.Released.Equals(2472) || e.Graphic.Pressed.Equals(2473)); RenameButton = rButton; for (var i = 0; i < 15; i++) { var valid = g.Buttons.Any( e => e.PacketValue.Equals(defaultoffset + (i)) && e.Graphic.Released.Equals(2361) && e.Graphic.Pressed.Equals(2361)); if (!valid) { continue; } var recallButton = g.Buttons.First(e => e.PacketValue.Equals(recalloffset + (i))); var gateButton = g.Buttons.First(e => e.PacketValue.Equals(gateoffset + (i))); var sacredButton = g.Buttons.First(e => e.PacketValue.Equals(sacredoffset + (i))); var dropButton = g.Buttons.First(e => e.PacketValue.Equals(dropoffset + (i))); var scrollButton = g.Buttons.First(e => e.PacketValue.Equals(scrolloffset + (i))); var defaultButton = g.Buttons.First(e => e.PacketValue.Equals(defaultoffset + (i))); var name = g.Labels[namepos].Text; Entries.Add(new RunebookEntry(this, recallButton, gateButton, sacredButton, scrollButton, defaultButton, dropButton, name)); } } else { int eamt = 0; for (var i = 0; i < 15; i++) { if (g.Buttons.Any(e => e.PacketValue.Equals(recalloffset + (i * jumper)) && e.Graphic.Released.Equals(2103) && e.Graphic.Pressed.Equals(2104))) { eamt++; } } var namepos = (eamt * 2); var defaultbtn = g.Buttons.First(e => e.Graphic.Released.Equals(2361) && e.Graphic.Pressed.Equals(2361)); if (defaultbtn != null) { var value = ((defaultbtn.PacketValue - defaultoffset) / jumper) + 1; DefaultRune = value; } var rButton = g.Buttons.First(e => e.Graphic.Released.Equals(2472) || e.Graphic.Pressed.Equals(2473)); RenameButton = rButton; for (var i = 0; i < 15; i++) { var valid = g.Buttons.Any( e => e.PacketValue.Equals(recalloffset + (i * jumper)) && e.Graphic.Released.Equals(2103) && e.Graphic.Pressed.Equals(2104)); if (!valid) { continue; } var recallButton = g.Buttons.First(e => e.PacketValue.Equals(recalloffset + (i * jumper))); var gateButton = g.Buttons.First(e => e.PacketValue.Equals(gateoffset + (i * jumper))); var sacredButton = g.Buttons.First(e => e.PacketValue.Equals(sacredoffset + (i * jumper))); var dropButton = g.Buttons.First(e => e.PacketValue.Equals(dropoffset + (i * jumper))); var scrollButton = g.Buttons.First(e => e.PacketValue.Equals(scrolloffset + (i * jumper))); var defaultButton = g.Buttons.First(e => e.PacketValue.Equals(defaultoffset + (i * jumper))); var a = g.Labels[i + (i * 1)].Text; var b = g.Labels[i + (i * 1) + 1].Text; var full = a + " " + b; var name = g.Labels[namepos + i].Text; var color = g.Labels[namepos + i].Color; Entries.Add(new RunebookEntry(this, recallButton, gateButton, sacredButton, scrollButton, defaultButton, dropButton, full, name, color)); } } return(true); }
protected override void SelectEntry(GumpButton button, BaseDoor entry) { base.SelectEntry(button, entry); if (button == null || entry == null || entry.Deleted) { return; } if (User.AccessLevel < AutoPvP.Access) { Refresh(true); return; } var list = new MenuGumpOptions(); list.AppendEntry( new ListGumpEntry( "Remove", b => { Battle.Doors.Remove(entry); Refresh(true); }, HighlightHue)); if (entry.Open) { list.AppendEntry( new ListGumpEntry( "Close", b => { if (entry.Deleted || !entry.Open) { return; } entry.Open = false; if (entry.UseChainedFunctionality) { entry.GetChain() .ForEach( chained => { if (chained != null && !chained.Deleted && chained.Open) { chained.Open = false; } }); } Refresh(true); }, ErrorHue)); } else { list.AppendEntry( new ListGumpEntry( "Open", b => { if (entry.Deleted || entry.Open) { return; } entry.Open = true; if (entry.UseChainedFunctionality) { entry.GetChain() .ForEach( chained => { if (chained != null && !chained.Deleted && !chained.Open) { chained.Open = true; } }); } Refresh(true); }, HighlightHue)); } if (entry.Open) { list.AppendEntry( new ListGumpEntry( "Lock", b => { if (entry.Deleted || entry.Locked) { return; } entry.Locked = true; if (entry.UseChainedFunctionality) { entry.GetChain() .ForEach( chained => { if (chained != null && !chained.Deleted && !chained.Locked) { chained.Locked = true; } }); } Refresh(true); }, ErrorHue)); } else { list.AppendEntry( new ListGumpEntry( "Unlock", b => { if (entry.Deleted || !entry.Locked) { return; } entry.Locked = false; if (entry.UseChainedFunctionality) { entry.GetChain() .ForEach( chained => { if (chained != null && !chained.Deleted && chained.Locked) { chained.Locked = false; } }); } Refresh(true); }, HighlightHue)); } Send(new MenuGump(User, Refresh(), list, button)); }
protected override void SelectEntry(GumpButton button, IVoteSite entry) { base.SelectEntry(button, entry); MenuGumpOptions opts = new MenuGumpOptions(); if (User.AccessLevel >= Voting.Access) { opts.AppendEntry( new ListGumpEntry( "Options", b => { Refresh(); PropertiesGump pg = new PropertiesGump(User, Selected) { X = b.X, Y = b.Y }; User.SendGump(pg); }, HighlightHue)); opts.AppendEntry( new ListGumpEntry( entry.Enabled ? "Disable" : "Enable", b1 => { entry.Enabled = !entry.Enabled; Refresh(true); }, entry.Enabled ? ErrorHue : HighlightHue)); opts.AppendEntry(new ListGumpEntry("Delete", DeleteSite, ErrorHue)); opts.AppendEntry( new ListGumpEntry( "Add To Stone", b => { Minimize(b); User.SendMessage(0x55, "Select a compatible Voting Stone..."); ItemSelectTarget <VotingStone> .Begin( User, (u, s) => { if (s != null && !s.Deleted) { s.SiteUID = entry.UID; User.SendMessage(0x55, "The Voting Stone site was changed to {0}.", entry.Name); } else { User.SendMessage(0x22, "That is not a compatible Voting Stone."); } Maximize(); }, u => Maximize()); })); opts.AppendEntry( new ListGumpEntry( "Create Stone", b => Send( new ConfirmDialogGump(User, this) { Title = "Create Voting Stone?", Html = "You didn't select a compatible Voting Stone.\n" + " do you want to create one in your pack?\n" + "Click OK to create a new Voting Stone for this site.", AcceptHandler = ab => { var stone = new VotingStone(entry.UID); if (User.AddToBackpack(stone)) { User.SendMessage(0x22, "The new Voting Stone was placed in your pack."); } else { stone.MoveToWorld(User.Location, User.Map); User.SendMessage(0x22, "The new Voting Stone was placed at your feet."); } } }))); opts.AppendEntry(new ListGumpEntry("Cancel", b => { })); } Send(new MenuGump(User, Refresh(), opts, button)); }
protected override void OnAddEntryConfirm(GumpButton b, string text) { SkillRestrictions.SetRestricted(text, true); Refresh(true); }
protected virtual void OnMyProfile(GumpButton button) { new PvPProfileUI(User, AutoPvP.EnsureProfile(User as PlayerMobile), Hide(true)).Send(); }
public void onGridButtonButtonClick(GumpButton button, int param) { if (button != null && SelectedElement != null) { var x = (param / NUMBER_OF_GRID_ROWS) * GRID_BUTTON_WIDTH; var y = (param % NUMBER_OF_GRID_ROWS) * GRID_BUTTON_HEIGHT; SelectedElement.X = x; SelectedElement.Y = y; ShowEditorGrid = false; } State.Refresh(); }
protected override void CompileOptions(ToolbarGump toolbar, GumpButton clicked, Point loc, MenuGumpOptions opts) { if (toolbar == null) { return; } base.CompileOptions(toolbar, clicked, loc, opts); PlayerMobile user = toolbar.State.User; if (!CanEdit && user.AccessLevel < Toolbars.Access) { return; } opts.AppendEntry( new ListGumpEntry( "Set Type", b => { MenuGumpOptions tOpts = new MenuGumpOptions(); if (TextType != MessageType.Regular) { tOpts.AppendEntry( new ListGumpEntry( "Regular", tb => { TextType = MessageType.Regular; toolbar.Refresh(true); })); } if (TextType != MessageType.Whisper) { tOpts.AppendEntry( new ListGumpEntry( "Whisper", tb => { TextType = MessageType.Whisper; toolbar.Refresh(true); })); } if (TextType != MessageType.Yell) { tOpts.AppendEntry( new ListGumpEntry( "Yell", tb => { TextType = MessageType.Yell; toolbar.Refresh(true); })); } SuperGump.Send(new MenuGump(user, clicked.Parent, tOpts, clicked)); }, toolbar.HighlightHue)); opts.Replace( "Set Value", new ListGumpEntry( "Set Phrase", b => SuperGump.Send( new InputDialogGump( user, toolbar, title: "Set Phrase", html: "Set the text for this Phrase entry.", input: Value, callback: (cb, text) => { Value = text; toolbar.Refresh(true); })), toolbar.HighlightHue)); }
public override sealed void OnResponse(NetState sender, RelayInfo info) { if (IsDisposed) { return; } if (Switches.Count > 128) { Parallel.ForEach(Switches.Keys, e => HandleSwitch(e, info.IsSwitched(e.SwitchID))); } else { Switches.Keys.ForEach(e => HandleSwitch(e, info.IsSwitched(e.SwitchID))); } if (Radios.Count > 128) { Parallel.ForEach(Radios.Keys, e => HandleRadio(e, info.IsSwitched(e.SwitchID))); } else { Radios.Keys.ForEach(e => HandleRadio(e, info.IsSwitched(e.SwitchID))); } if (TextInputs.Count > 128) { Parallel.ForEach( TextInputs.Keys, e => { var r = info.GetTextEntry(e.EntryID); HandleTextInput(e, r != null ? r.Text : String.Empty); }); } else { TextInputs.Keys.ForEach( e => { var r = info.GetTextEntry(e.EntryID); HandleTextInput(e, r != null ? r.Text : String.Empty); }); } if (LimitedTextInputs.Count > 128) { Parallel.ForEach( LimitedTextInputs.Keys, e => { var r = info.GetTextEntry(e.EntryID); HandleLimitedTextInput(e, r != null ? r.Text : String.Empty); }); } else { LimitedTextInputs.Keys.ForEach( e => { var r = info.GetTextEntry(e.EntryID); HandleLimitedTextInput(e, r != null ? r.Text : String.Empty); }); } GumpButton button1 = GetButtonEntry(info.ButtonID); GumpImageTileButton button2 = GetTileButtonEntry(info.ButtonID); if (button1 == null && button2 == null) { Close(); } else { Hide(); if (button1 != null) { HandleButtonClick(button1); } if (button2 != null) { HandleTileButtonClick(button2); } } base.OnResponse(sender, info); }
protected override void OnAccept(GumpButton button) { base.OnAccept(button); Battle.Enqueue(User); }
public void onBookEditTextButtonClick(GumpButton button, int param) { if (button != null) { var book = new XmlTextEntryBook( 0, String.Empty, String.Empty, 20, true, XmlTextEntryBookCallback, new object[] {param}); var properties = EditorState.SelectedElement.GetElementPropertiesSnapshot(); var bookText = properties[param].Text; // fill the contents of the book with the current text entry data book.FillTextEntryBook(bookText); // put the book at the location of the player so that it can be opened, but drop it below visible range book.Visible = false; book.Movable = false; book.MoveToWorld( new Point3D(EditorState.Caller.Location.X, EditorState.Caller.Location.Y, EditorState.Caller.Location.Z - 100), EditorState.Caller.Map); book.OnDoubleClick(EditorState.Caller); } EditorState.Refresh(); }
protected override void OnCancel(GumpButton button) { base.OnCancel(button); User.SendMessage(54, "You decide not to join the queue."); }
public void onSaveAsButtonClick(GumpButton button) { EditorState.Refresh(); Timer.DelayCall(ShowSaveAs, EditorState); }
protected override void OnCancel(GumpButton button) { InputText = String.Empty; base.OnCancel(button); }
public void onElementPrevPageButtonClick(GumpButton button) { EditorState.ElementToolbarPageNumber--; EditorState.Refresh(); }
protected virtual void OnConfirmClearProfile(GumpButton button) { Profile.Clear(); Refresh(true); }
public void onSavePageButtonClick(GumpButton button) { EditorState.RendererToEdit.Serialize(); if (Compendium.g_CompendiumRenderers.ContainsKey(EditorState.RendererToEdit.Name)) { Compendium.g_CompendiumRenderers[EditorState.RendererToEdit.Name] = EditorState.RendererToEdit; } else { Compendium.g_CompendiumRenderers.Add(EditorState.RendererToEdit.Name, EditorState.RendererToEdit); } EditorState.Refresh(); }
protected virtual void OnDoubleClick(GumpButton entry) { }
public void onGumpCloseButtonClick(GumpButton button) { if (EditorState.Caller.HasGump(typeof(CompendiumPreviewPageGump))) { EditorState.Caller.CloseGump(typeof(CompendiumPreviewPageGump)); } if (EditorState.Caller.HasGump(typeof(CompendiumPageEditor))) { EditorState.Caller.CloseGump(typeof(CompendiumPageEditor)); } if (EditorState.Caller.HasGump(typeof(ElementListGump))) { EditorState.Caller.CloseGump(typeof(ElementListGump)); } }
protected override void SelectEntry(GumpButton button, PvPBattle entry) { base.SelectEntry(button, entry); if (button == null || entry == null || entry.Deleted) { return; } var list = new MenuGumpOptions(); list.AppendEntry( new ListGumpEntry( "Overview", b => Send(new PvPBattleOverviewGump(User, Hide(true), entry, UseConfirmDialog)), TextHue)); if (User.AccessLevel >= AutoPvP.Access) { if (entry.State == PvPBattleState.Internal) { if (Selected.Validate(User)) { list.AppendEntry( new ListGumpEntry( "Publish", b => { Selected.State = PvPBattleState.Queueing; Refresh(true); }, HighlightHue)); } } else { list.AppendEntry( new ListGumpEntry( "Internalize", b => { Selected.State = PvPBattleState.Internal; Refresh(true); }, HighlightHue)); if (!Selected.Hidden) { if (Selected.Validate(User)) { list.AppendEntry( new ListGumpEntry( "Hide", b => { Selected.Hidden = true; Refresh(true); }, HighlightHue)); } } else { list.AppendEntry( new ListGumpEntry( "Unhide", b => { Selected.Hidden = false; Refresh(true); }, HighlightHue)); } } list.AppendEntry( new ListGumpEntry( "Delete", b => { if (UseConfirmDialog) { Send( new ConfirmDialogGump( User, this, title: "Delete Battle?", html: "All data associated with this battle will be deleted.\nThis action can not be reversed!\nDo you want to continue?", onAccept: OnConfirmDeleteBattle)); } else { OnConfirmDeleteBattle(b); } }, HighlightHue)); } list.AppendEntry( new ListGumpEntry( "View Teams", b => Send(new PvPTeamListGump(User, entry, Hide(true))), (User.AccessLevel >= AutoPvP.Access) ? HighlightHue : TextHue)); if (User is PlayerMobile) { var user = (PlayerMobile)User; if (entry.IsParticipant(user)) { list.AppendEntry(new ListGumpEntry("Quit & Leave", b => entry.Eject(user, true))); } else { if (entry.IsQueued(user)) { list.AppendEntry(new ListGumpEntry("Leave Queue", b => entry.Dequeue(user))); } else if (entry.CanQueue(user)) { list.AppendEntry(new ListGumpEntry("Join Queue", b => entry.Enqueue(user))); } if (entry.IsSpectator(user)) { list.AppendEntry(new ListGumpEntry("Leave Spectators", b => entry.RemoveSpectator(user, true))); } else if (entry.CanSpectate(user)) { list.AppendEntry(new ListGumpEntry("Join Spectators", b => entry.AddSpectator(user, true))); } } } Send(new MenuGump(User, Refresh(), list, button)); }