#alias addnewgag {#alarm 0@{decchar}10 {#play {@sppath/general/misc/confman.wav} @vol;
#pick {*This prompt allows one to add a string that they would like to be gagged either completely or just from the speach queue. In order to do this, please use the options below:addnewgag|
Note! Please ensure that the gag file you selected is enabled in the gag settings after you have added your new gag.:addnewgag|
What line are we gagging today? @newgag:setgagline|
What kind of the gagging method would you like? @gagmethod:setgagmethod|
What file is this going to be stored in? @gagfile:setgagfile|
I'm done and want to finish:pushnewgag|
I want to start over, clear the current input:clearnewgag|
I didn't mean to use this, please abort.:#abort
}
}
}

#Alias clearnewgag {#unvar gagmethod;#unvar newgag;#unvar gagfile;#unvar gagsubvar;addnewgag}

#alias setgagline {
#pick {*Please enter the text you would like to be gagged. Use an asterisk (*) in place of any static strings.:setgagline|
For example, instead of "Bob hugs you," write "* hugs you" because the player name might not always be "Bob" in every situation within the game.:setgagline|
Press enter to open the input field, @newgag:enternewgag
}
}

#alias enternewgag {#prompt newgag {Enter the line here.};#alarm 0@{decchar}50 {addnewgag}}

#alias setgagmethod {
#pick {*Please choose one of the methods below:setgagmethod|
If you choose substitute, Please enter the text that you want to have displayed in place of the trigger. Use ~%0 for the entire line, and ~%1 to ~%9 for each wildcard (asterisk, *) you defined in the trigger.:setgagmethod|
Omit the line from my speech queue but leave it in the output window:#var gagmethod voice|
Omit the line both from the output window and from my speech queue:#var gagmethod all|
Substitute the text. Currently set to @gagsubvar:#Var gagmethod substitute;subgagtextenter
};
#alarm 0@{decchar}50 {addnewgag}
}

#alias subgagtextenter {#Prompt gagsubvar {Enter the substitution text here.}}

#alias setgagfile {
#pick {*Due to VIPMud limitations, no single file can exceed 32000 characters in length. Therefore, it is recommended to organize content into categories. Please select one of the files from the options below.:setgagfile|
Activity related gags:#var gagfile ActivityGags|
Ship Related Gags:#var gagfile ShipGags|
Miscellaneous gags:#var gagfile MiscGags|
Vehicle Related gags:#var gagfile VehicleGags};
#alarm 0@{decchar}50 {addnewgag}
}

#alias pushnewgag {
#if {%length(@gagfile)<1 or %length(@gagmethod)<1 or %length(@newgag)<1} {
  #alarm 0@{decchar}5 {
    #play {@sppath/general/misc/boop.wav} @vol;
  #Say {Error: You have not filled out all the required fields with relevant information};
  #abort
  }
} {
  #if {@gagmethod="substitute" AND %length(@gagsubvar)<1} {
    #alarm 0@{decchar}5 {
      #play {@sppath/general/misc/boop.wav} @vol;
    #Say {Error: Substitution was selected, but you haven't entered valid substitute text};
    #abort
    }
  } {
    #file 3 {%CharInfo(MudName)/gags/@gagfile.set};
          #if {@gagmethod="substitute"} {
        #write 3 {~#trigger {@newgag} {~#sub {@gagsubvar}}}
      } {
        #write 3 {~#trigger {@newgag} {~#gagline @gagmethod}}
    };
    #close 3;
    #unload {gags/@gagfile.set};
    #load {gags/@gagfile.set};
    #unvar gagmethod;
    #unvar newgag;
    #unvar gagfile;
    #unvar gagsubvar;
    #alarm 1 {
      #say {Complete!};
      #play {@sppath/general/misc/loadingfile.wav} @vol
    }
  }
}
};

#alias miscgagtoggle {
#if {@MiscGags="disabled"} {#var MiscGags "enabled";#load {%charinfo(mudname)/gags/MiscGags.set}} {#var MiscGags "disabled";#unload {%charinfo(mudname)/gags/miscgags.set}}}
#alias vehiclegagtoggle {
#if {@VehicleGags="disabled"} {#var VehicleGags "enabled"; #load {%charinfo(mudname)/gags/VehicleGags.set}} {#var VehicleGags "disabled";#unload {%charinfo(mudname)/gags/VehicleGags.set}}}
#alias activitygagtoggle {
#if {@ActivityGags="disabled"} {#var ActivityGags "enabled";#load {%charinfo(mudname)/gags/ActivityGags.set}} {#var ActivityGags "disabled";#unload {%charinfo(mudname)/gags/ActivityGags.set}}}
#alias shipgagtoggle {
#if {@ShipGags="disabled"} {#var ShipGags "enabled";#load {%charinfo(mudname)/gags/ShipGags.set}} {#var ShipGags "disabled";#unload {%charinfo(mudname)/gags/ShipGags.set}}}
#alias gagconfig {#play {@sppath/general/misc/confman.wav} @vol;
#pick {*Please choose an option below:#abort|
Create a new gag:addnewgag|
Activity-related gags (@ActivityGags):activitygagtoggle|
Ship-related gags (@ShipGags):shipgagtoggle|
Vehicle-related gags (@VehicleGags):vehiclegagtoggle|
Misc Gags (@MiscGags):miscgagtoggle|
Open Activity gags file for editing:#edit {%CharInfo(MudName)/gags/ActivityGags.set}|
Open Vehicle gags file for editing:#edit {%CharInfo(MudName)/gags/VehicleGags.set}|
Open misc gags file for editing:#edit {%CharInfo(MudName)/gags/MiscGags.set}|
Open ship-related gags file for editing:#edit {%CharInfo(MudName)/gags/ShipGags.set}}}
#key {alt-f2} {gagconfig}