diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index b1f1642386..bdf9457727 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -1,1263 +1,3 @@
-<<<<<<< HEAD
-/client/proc/cmd_admin_drop_everything(mob/M in GLOB.mob_list)
- set category = null
- set name = "Drop Everything"
- if(!holder)
- to_chat(src, "Only administrators may use this command.")
- return
-
- var/confirm = alert(src, "Make [M] drop everything?", "Message", "Yes", "No")
- if(confirm != "Yes")
- return
-
- for(var/obj/item/W in M)
- if(!M.dropItemToGround(W))
- qdel(W)
- M.regenerate_icons()
-
- log_admin("[key_name(usr)] made [key_name(M)] drop everything!")
- var/msg = "[key_name_admin(usr)] made [key_name_admin(M)] drop everything!"
- message_admins(msg)
- admin_ticket_log(M, msg)
- SSblackbox.add_details("admin_verb","Drop Everything") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-/client/proc/cmd_admin_subtle_message(mob/M in GLOB.mob_list)
- set category = "Special Verbs"
- set name = "Subtle Message"
-
- if(!ismob(M))
- return
- if (!holder)
- to_chat(src, "Only administrators may use this command.")
- return
-
- message_admins("[key_name_admin(src)] has started answering [key_name(M.key, 0, 0)]'s prayer.")
- var/msg = input("Message:", text("Subtle PM to [M.key]")) as text
-
- if (!msg)
- message_admins("[key_name_admin(src)] decided not to answer [key_name(M.key, 0, 0)]'s prayer")
- return
- if(usr)
- if (usr.client)
- if(usr.client.holder)
- to_chat(M, "You hear a voice in your head... [msg]")
-
- log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]")
- msg = " SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]"
- message_admins(msg)
- admin_ticket_log(M, msg)
- SSblackbox.add_details("admin_verb","Subtle Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-/client/proc/cmd_admin_world_narrate()
- set category = "Special Verbs"
- set name = "Global Narrate"
-
- if (!holder)
- to_chat(src, "Only administrators may use this command.")
- return
-
- var/msg = input("Message:", text("Enter the text you wish to appear to everyone:")) as text
-
- if (!msg)
- return
- to_chat(world, "[msg]")
- log_admin("GlobalNarrate: [key_name(usr)] : [msg]")
- message_admins("[key_name_admin(usr)] Sent a global narrate")
- SSblackbox.add_details("admin_verb","Global Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-/client/proc/cmd_admin_direct_narrate(mob/M)
- set category = "Special Verbs"
- set name = "Direct Narrate"
-
- if(!holder)
- to_chat(src, "Only administrators may use this command.")
- return
-
- if(!M)
- M = input("Direct narrate to whom?", "Active Players") as null|anything in GLOB.player_list
-
- if(!M)
- return
-
- var/msg = input("Message:", text("Enter the text you wish to appear to your target:")) as text
-
- if( !msg )
- return
-
- to_chat(M, msg)
- log_admin("DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]")
- msg = " DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]
"
- message_admins(msg)
- admin_ticket_log(M, msg)
- SSblackbox.add_details("admin_verb","Direct Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-/client/proc/cmd_admin_local_narrate(atom/A)
- set category = "Special Verbs"
- set name = "Local Narrate"
-
- if (!holder)
- to_chat(src, "Only administrators may use this command.")
- return
- if(!A)
- return
- var/range = input("Range:", "Narrate to mobs within how many tiles:", 7) as num
- if(!range)
- return
- var/msg = input("Message:", text("Enter the text you wish to appear to everyone within view:")) as text
- if (!msg)
- return
- for(var/mob/M in view(range,A))
- to_chat(M, msg)
-
- log_admin("LocalNarrate: [key_name(usr)] at [get_area(A)][COORD(A)]: [msg]")
- message_admins(" LocalNarrate: [key_name_admin(usr)] at [get_area(A)][ADMIN_JMP(A)]: [msg]
")
- SSblackbox.add_details("admin_verb","Local Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-/client/proc/cmd_admin_godmode(mob/M in GLOB.mob_list)
- set category = "Special Verbs"
- set name = "Godmode"
- if(!holder)
- to_chat(src, "Only administrators may use this command.")
- return
- M.status_flags ^= GODMODE
- to_chat(usr, "Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]")
-
- log_admin("[key_name(usr)] has toggled [key_name(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]")
- var/msg = "[key_name_admin(usr)] has toggled [key_name_admin(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]"
- message_admins(msg)
- admin_ticket_log(M, msg)
- SSblackbox.add_details("admin_toggle","Godmode|[M.status_flags & GODMODE]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-
-/proc/cmd_admin_mute(whom, mute_type, automute = 0)
- if(!whom)
- return
-
- var/muteunmute
- var/mute_string
- var/feedback_string
- switch(mute_type)
- if(MUTE_IC)
- mute_string = "IC (say and emote)"
- feedback_string = "IC"
- if(MUTE_OOC)
- mute_string = "OOC"
- feedback_string = "OOC"
- if(MUTE_PRAY)
- mute_string = "pray"
- feedback_string = "Pray"
- if(MUTE_ADMINHELP)
- mute_string = "adminhelp, admin PM and ASAY"
- feedback_string = "Adminhelp"
- if(MUTE_DEADCHAT)
- mute_string = "deadchat and DSAY"
- feedback_string = "Deadchat"
- if(MUTE_ALL)
- mute_string = "everything"
- feedback_string = "Everything"
- else
- return
-
- var/client/C
- if(istype(whom, /client))
- C = whom
- else if(istext(whom))
- C = GLOB.directory[whom]
- else
- return
-
- var/datum/preferences/P
- if(C)
- P = C.prefs
- else
- P = GLOB.preferences_datums[whom]
- if(!P)
- return
-
- if(automute)
- if(!config.automute_on)
- return
- else
- if(!check_rights())
- return
-
- if(automute)
- muteunmute = "auto-muted"
- P.muted |= mute_type
- log_admin("SPAM AUTOMUTE: [muteunmute] [key_name(whom)] from [mute_string]")
- message_admins("SPAM AUTOMUTE: [muteunmute] [key_name_admin(whom)] from [mute_string].")
- if(C)
- to_chat(C, "You have been [muteunmute] from [mute_string] by the SPAM AUTOMUTE system. Contact an admin.")
- SSblackbox.add_details("admin_toggle","Auto Mute [feedback_string]|1") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
- return
-
- if(P.muted & mute_type)
- muteunmute = "unmuted"
- P.muted &= ~mute_type
- else
- muteunmute = "muted"
- P.muted |= mute_type
-
- log_admin("[key_name(usr)] has [muteunmute] [key_name(whom)] from [mute_string]")
- message_admins("[key_name_admin(usr)] has [muteunmute] [key_name_admin(whom)] from [mute_string].")
- if(C)
- to_chat(C, "You have been [muteunmute] from [mute_string] by [key_name(usr, include_name = FALSE)].")
- SSblackbox.add_details("admin_toggle","Mute [feedback_string]|[P.muted & mute_type]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-
-//I use this proc for respawn character too. /N
-/proc/create_xeno(ckey)
- if(!ckey)
- var/list/candidates = list()
- for(var/mob/M in GLOB.player_list)
- if(M.stat != DEAD)
- continue //we are not dead!
- if(!(ROLE_ALIEN in M.client.prefs.be_special))
- continue //we don't want to be an alium
- if(M.client.is_afk())
- continue //we are afk
- if(M.mind && M.mind.current && M.mind.current.stat != DEAD)
- continue //we have a live body we are tied to
- candidates += M.ckey
- if(candidates.len)
- ckey = input("Pick the player you want to respawn as a xeno.", "Suitable Candidates") as null|anything in candidates
- else
- to_chat(usr, "Error: create_xeno(): no suitable candidates.")
- if(!istext(ckey))
- return 0
-
- var/alien_caste = input(usr, "Please choose which caste to spawn.","Pick a caste",null) as null|anything in list("Queen","Praetorian","Hunter","Sentinel","Drone","Larva")
- var/obj/effect/landmark/spawn_here = GLOB.xeno_spawn.len ? pick(GLOB.xeno_spawn) : null
- var/mob/living/carbon/alien/new_xeno
- switch(alien_caste)
- if("Queen")
- new_xeno = new /mob/living/carbon/alien/humanoid/royal/queen(spawn_here)
- if("Praetorian")
- new_xeno = new /mob/living/carbon/alien/humanoid/royal/praetorian(spawn_here)
- if("Hunter")
- new_xeno = new /mob/living/carbon/alien/humanoid/hunter(spawn_here)
- if("Sentinel")
- new_xeno = new /mob/living/carbon/alien/humanoid/sentinel(spawn_here)
- if("Drone")
- new_xeno = new /mob/living/carbon/alien/humanoid/drone(spawn_here)
- if("Larva")
- new_xeno = new /mob/living/carbon/alien/larva(spawn_here)
- else
- return 0
- if(!spawn_here)
- SSjob.SendToLateJoin(new_xeno, FALSE)
-
- new_xeno.ckey = ckey
- var/msg = "[key_name_admin(usr)] has spawned [ckey] as a filthy xeno [alien_caste]."
- message_admins(msg)
- admin_ticket_log(new_xeno, msg)
- return 1
-
-/*
-If a guy was gibbed and you want to revive him, this is a good way to do so.
-Works kind of like entering the game with a new character. Character receives a new mind if they didn't have one.
-Traitors and the like can also be revived with the previous role mostly intact.
-/N */
-/client/proc/respawn_character()
- set category = "Special Verbs"
- set name = "Respawn Character"
- set desc = "Respawn a person that has been gibbed/dusted/killed. They must be a ghost for this to work and preferably should not have a body to go back into."
- if(!holder)
- to_chat(src, "Only administrators may use this command.")
- return
- var/input = ckey(input(src, "Please specify which key will be respawned.", "Key", ""))
- if(!input)
- return
-
- var/mob/dead/observer/G_found
- for(var/mob/dead/observer/G in GLOB.player_list)
- if(G.ckey == input)
- G_found = G
- break
-
- if(!G_found)//If a ghost was not found.
- to_chat(usr, "There is no active key like that in the game or the person is not currently a ghost.")
- return
-
- if(G_found.mind && !G_found.mind.active) //mind isn't currently in use by someone/something
- //Check if they were an alien
- if(G_found.mind.assigned_role=="Alien")
- if(alert("This character appears to have been an alien. Would you like to respawn them as such?",,"Yes","No")=="Yes")
- var/turf/T
- if(GLOB.xeno_spawn.len)
- T = pick(GLOB.xeno_spawn)
-
- var/mob/living/carbon/alien/new_xeno
- switch(G_found.mind.special_role)//If they have a mind, we can determine which caste they were.
- if("Hunter")
- new_xeno = new /mob/living/carbon/alien/humanoid/hunter(T)
- if("Sentinel")
- new_xeno = new /mob/living/carbon/alien/humanoid/sentinel(T)
- if("Drone")
- new_xeno = new /mob/living/carbon/alien/humanoid/drone(T)
- if("Praetorian")
- new_xeno = new /mob/living/carbon/alien/humanoid/royal/praetorian(T)
- if("Queen")
- new_xeno = new /mob/living/carbon/alien/humanoid/royal/queen(T)
- else//If we don't know what special role they have, for whatever reason, or they're a larva.
- create_xeno(G_found.ckey)
- return
-
- if(!T)
- SSjob.SendToLateJoin(new_xeno, FALSE)
-
- //Now to give them their mind back.
- G_found.mind.transfer_to(new_xeno) //be careful when doing stuff like this! I've already checked the mind isn't in use
- new_xeno.key = G_found.key
- to_chat(new_xeno, "You have been fully respawned. Enjoy the game.")
- var/msg = "[key_name_admin(usr)] has respawned [new_xeno.key] as a filthy xeno."
- message_admins(msg)
- admin_ticket_log(new_xeno, msg)
- return //all done. The ghost is auto-deleted
-
- //check if they were a monkey
- else if(findtext(G_found.real_name,"monkey"))
- if(alert("This character appears to have been a monkey. Would you like to respawn them as such?",,"Yes","No")=="Yes")
- var/mob/living/carbon/monkey/new_monkey = new
- SSjob.SendToLateJoin(new_monkey)
- G_found.mind.transfer_to(new_monkey) //be careful when doing stuff like this! I've already checked the mind isn't in use
- new_monkey.key = G_found.key
- to_chat(new_monkey, "You have been fully respawned. Enjoy the game.")
- var/msg = "[key_name_admin(usr)] has respawned [new_monkey.key] as a filthy xeno."
- message_admins(msg)
- admin_ticket_log(new_monkey, msg)
- return //all done. The ghost is auto-deleted
-
-
- //Ok, it's not a xeno or a monkey. So, spawn a human.
- var/mob/living/carbon/human/new_character = new//The mob being spawned.
- SSjob.SendToLateJoin(new_character)
-
- var/datum/data/record/record_found //Referenced to later to either randomize or not randomize the character.
- if(G_found.mind && !G_found.mind.active) //mind isn't currently in use by someone/something
- /*Try and locate a record for the person being respawned through GLOB.data_core.
- This isn't an exact science but it does the trick more often than not.*/
- var/id = md5("[G_found.real_name][G_found.mind.assigned_role]")
-
- record_found = find_record("id", id, GLOB.data_core.locked)
-
- if(record_found)//If they have a record we can determine a few things.
- new_character.real_name = record_found.fields["name"]
- new_character.gender = record_found.fields["sex"]
- new_character.age = record_found.fields["age"]
- new_character.hardset_dna(record_found.fields["identity"], record_found.fields["enzymes"], record_found.fields["name"], record_found.fields["blood_type"], record_found.fields["species"], record_found.fields["features"])
- else
- var/datum/preferences/A = new()
- A.copy_to(new_character)
- A.real_name = G_found.real_name
- new_character.dna.update_dna_identity()
-
- new_character.name = new_character.real_name
-
- if(G_found.mind && !G_found.mind.active)
- G_found.mind.transfer_to(new_character) //be careful when doing stuff like this! I've already checked the mind isn't in use
- else
- new_character.mind_initialize()
- if(!new_character.mind.assigned_role)
- new_character.mind.assigned_role = "Assistant"//If they somehow got a null assigned role.
-
- new_character.key = G_found.key
-
- /*
- The code below functions with the assumption that the mob is already a traitor if they have a special role.
- So all it does is re-equip the mob with powers and/or items. Or not, if they have no special role.
- If they don't have a mind, they obviously don't have a special role.
- */
-
- //Two variables to properly announce later on.
- var/admin = key_name_admin(src)
- var/player_key = G_found.key
-
- //Now for special roles and equipment.
- var/datum/antagonist/traitor/traitordatum = new_character.mind.has_antag_datum(ANTAG_DATUM_TRAITOR)
- if(traitordatum)
- SSjob.EquipRank(new_character, new_character.mind.assigned_role, 1)
- traitordatum.equip()
-
-
- switch(new_character.mind.special_role)
- if("Wizard")
- new_character.loc = pick(GLOB.wizardstart)
- //SSticker.mode.learn_basic_spells(new_character)
- SSticker.mode.equip_wizard(new_character)
- if("Syndicate")
- var/obj/effect/landmark/synd_spawn = locate("landmark*Syndicate-Spawn")
- if(synd_spawn)
- new_character.loc = get_turf(synd_spawn)
- call(/datum/game_mode/proc/equip_syndicate)(new_character)
- if("Space Ninja")
- var/list/ninja_spawn = list()
- for(var/obj/effect/landmark/L in GLOB.landmarks_list)
- if(L.name=="carpspawn")
- ninja_spawn += L
- var/datum/antagonist/ninja/ninjadatum = new_character.mind.has_antag_datum(ANTAG_DATUM_NINJA)
- ninjadatum.equip_space_ninja()
- if(ninja_spawn.len)
- var/obj/effect/landmark/ninja_spawn_here = pick(ninja_spawn)
- new_character.loc = ninja_spawn_here.loc
-
- else//They may also be a cyborg or AI.
- switch(new_character.mind.assigned_role)
- if("Cyborg")//More rigging to make em' work and check if they're traitor.
- new_character = new_character.Robotize()
- if("AI")
- new_character = new_character.AIize()
- else
- SSjob.EquipRank(new_character, new_character.mind.assigned_role, 1)//Or we simply equip them.
-
- //Announces the character on all the systems, based on the record.
- if(!issilicon(new_character))//If they are not a cyborg/AI.
- if(!record_found&&new_character.mind.assigned_role!=new_character.mind.special_role)//If there are no records for them. If they have a record, this info is already in there. MODE people are not announced anyway.
- //Power to the user!
- if(alert(new_character,"Warning: No data core entry detected. Would you like to announce the arrival of this character by adding them to various databases, such as medical records?",,"No","Yes")=="Yes")
- GLOB.data_core.manifest_inject(new_character)
-
- if(alert(new_character,"Would you like an active AI to announce this character?",,"No","Yes")=="Yes")
- AnnounceArrival(new_character, new_character.mind.assigned_role)
-
- var/msg = "[admin] has respawned [player_key] as [new_character.real_name]."
- message_admins(msg)
- admin_ticket_log(new_character, msg)
-
- to_chat(new_character, "You have been fully respawned. Enjoy the game.")
-
- SSblackbox.add_details("admin_verb","Respawn Character") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
- return new_character
-
-/client/proc/cmd_admin_add_freeform_ai_law()
- set category = "Fun"
- set name = "Add Custom AI law"
- if(!holder)
- to_chat(src, "Only administrators may use this command.")
- return
- var/input = input(usr, "Please enter anything you want the AI to do. Anything. Serious.", "What?", "") as text|null
- if(!input)
- return
-
- log_admin("Admin [key_name(usr)] has added a new AI law - [input]")
- message_admins("Admin [key_name_admin(usr)] has added a new AI law - [input]")
-
- var/show_log = alert(src, "Show ion message?", "Message", "Yes", "No")
- var/announce_ion_laws = (show_log == "Yes" ? 1 : -1)
-
- var/datum/round_event/ion_storm/add_law_only/ion = new()
- ion.announceEvent = announce_ion_laws
- ion.ionMessage = input
-
- SSblackbox.add_details("admin_verb","Add Custom AI Law") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-/client/proc/cmd_admin_rejuvenate(mob/living/M in GLOB.mob_list)
- set category = "Special Verbs"
- set name = "Rejuvenate"
- if(!holder)
- to_chat(src, "Only administrators may use this command.")
- return
- if(!mob)
- return
- if(!istype(M))
- alert("Cannot revive a ghost")
- return
- M.revive(full_heal = 1, admin_revive = 1)
-
- log_admin("[key_name(usr)] healed / revived [key_name(M)]")
- var/msg = "Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!"
- message_admins(msg)
- admin_ticket_log(M, msg)
- SSblackbox.add_details("admin_verb","Rejuvinate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-/client/proc/cmd_admin_create_centcom_report()
- set category = "Special Verbs"
- set name = "Create Command Report"
- if(!holder)
- to_chat(src, "Only administrators may use this command.")
- return
- var/input = input(usr, "Please enter anything you want. Anything. Serious.", "What?", "") as message|null
- if(!input)
- return
-
- var/confirm = alert(src, "Do you want to announce the contents of the report to the crew?", "Announce", "Yes", "No", "Cancel")
- var/announce_command_report = TRUE
- switch(confirm)
- if("Yes")
- priority_announce(input, null, 'sound/ai/commandreport.ogg')
- announce_command_report = FALSE
- if("Cancel")
- return
-
- print_command_report(input, "[announce_command_report ? "Classified " : ""][command_name()] Update", announce_command_report)
-
- log_admin("[key_name(src)] has created a command report: [input]")
- message_admins("[key_name_admin(src)] has created a command report")
- SSblackbox.add_details("admin_verb","Create Command Report") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-/client/proc/cmd_change_command_name()
- set category = "Special Verbs"
- set name = "Change Command Name"
- if(!holder)
- to_chat(src, "Only administrators may use this command.")
- return
- var/input = input(usr, "Please input a new name for Central Command.", "What?", "") as text|null
- if(!input)
- return
- change_command_name(input)
- message_admins("[key_name_admin(src)] has changed Central Command's name to [input]")
- log_admin("[key_name(src)] has changed the Central Command name to: [input]")
-
-/client/proc/cmd_admin_delete(atom/A as obj|mob|turf in world)
- set category = "Admin"
- set name = "Delete"
-
- if (!holder)
- to_chat(src, "Only administrators may use this command.")
- return
-
- admin_delete(A)
-
-/client/proc/admin_delete(datum/D)
- var/atom/A = D
- var/coords = istype(A) ? " at ([A.x], [A.y], [A.z])" : ""
- if (alert(src, "Are you sure you want to delete:\n[D]\nat[coords]?", "Confirmation", "Yes", "No") == "Yes")
- log_admin("[key_name(usr)] deleted [D][coords]")
- message_admins("[key_name_admin(usr)] deleted [D][coords]")
- SSblackbox.add_details("admin_verb","Delete") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
- if(isturf(D))
- var/turf/T = D
- T.ChangeTurf(T.baseturf)
- else
- qdel(D)
-
-/client/proc/cmd_admin_list_open_jobs()
- set category = "Admin"
- set name = "Manage Job Slots"
-
- if (!holder)
- to_chat(src, "Only administrators may use this command.")
- return
- holder.manage_free_slots()
- SSblackbox.add_details("admin_verb","Manage Job Slots") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-/client/proc/cmd_admin_explosion(atom/O as obj|mob|turf in world)
- set category = "Special Verbs"
- set name = "Explosion"
-
- if (!holder)
- to_chat(src, "Only administrators may use this command.")
- return
-
- var/devastation = input("Range of total devastation. -1 to none", text("Input")) as num|null
- if(devastation == null) return
- var/heavy = input("Range of heavy impact. -1 to none", text("Input")) as num|null
- if(heavy == null) return
- var/light = input("Range of light impact. -1 to none", text("Input")) as num|null
- if(light == null) return
- var/flash = input("Range of flash. -1 to none", text("Input")) as num|null
- if(flash == null) return
- var/flames = input("Range of flames. -1 to none", text("Input")) as num|null
- if(flames == null) return
-
- if ((devastation != -1) || (heavy != -1) || (light != -1) || (flash != -1) || (flames != -1))
- if ((devastation > 20) || (heavy > 20) || (light > 20) || (flames > 20))
- if (alert(src, "Are you sure you want to do this? It will laaag.", "Confirmation", "Yes", "No") == "No")
- return
-
- explosion(O, devastation, heavy, light, flash, null, null,flames)
- log_admin("[key_name(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at ([O.x],[O.y],[O.z])")
- message_admins("[key_name_admin(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at ([O.x],[O.y],[O.z])")
- SSblackbox.add_details("admin_verb","Explosion") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
- return
- else
- return
-
-/client/proc/cmd_admin_emp(atom/O as obj|mob|turf in world)
- set category = "Special Verbs"
- set name = "EM Pulse"
-
- if (!holder)
- to_chat(src, "Only administrators may use this command.")
- return
-
- var/heavy = input("Range of heavy pulse.", text("Input")) as num|null
- if(heavy == null) return
- var/light = input("Range of light pulse.", text("Input")) as num|null
- if(light == null) return
-
- if (heavy || light)
-
- empulse(O, heavy, light)
- log_admin("[key_name(usr)] created an EM Pulse ([heavy],[light]) at ([O.x],[O.y],[O.z])")
- message_admins("[key_name_admin(usr)] created an EM Pulse ([heavy],[light]) at ([O.x],[O.y],[O.z])")
- SSblackbox.add_details("admin_verb","EM Pulse") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
- return
- else
- return
-
-/client/proc/cmd_admin_gib(mob/M in GLOB.mob_list)
- set category = "Special Verbs"
- set name = "Gib"
-
- if (!holder)
- to_chat(src, "Only administrators may use this command.")
- return
-
- var/confirm = alert(src, "Drop a brain?", "Confirm", "Yes", "No","Cancel")
- if(confirm == "Cancel")
- return
- //Due to the delay here its easy for something to have happened to the mob
- if(!M)
- return
-
- log_admin("[key_name(usr)] has gibbed [key_name(M)]")
- message_admins("[key_name_admin(usr)] has gibbed [key_name_admin(M)]")
-
- if(isobserver(M))
- new /obj/effect/gibspawner/generic(get_turf(M))
- return
- if(confirm == "Yes")
- M.gib()
- else
- M.gib(1)
- SSblackbox.add_details("admin_verb","Gib") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-/client/proc/cmd_admin_gib_self()
- set name = "Gibself"
- set category = "Fun"
-
- var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No")
- if(confirm == "Yes")
- log_admin("[key_name(usr)] used gibself.")
- message_admins("[key_name_admin(usr)] used gibself.")
- SSblackbox.add_details("admin_verb","Gib Self") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
- mob.gib(1, 1, 1)
-
-/client/proc/cmd_admin_check_contents(mob/living/M in GLOB.mob_list)
- set category = "Special Verbs"
- set name = "Check Contents"
-
- var/list/L = M.get_contents()
- for(var/t in L)
- to_chat(usr, "[t]")
- SSblackbox.add_details("admin_verb","Check Contents") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-/client/proc/toggle_view_range()
- set category = "Special Verbs"
- set name = "Change View Range"
- set desc = "switches between 1x and custom views"
-
- if(view == world.view)
- change_view(input("Select view range:", "FUCK YE", 7) in list(1,2,3,4,5,6,7,8,9,10,11,12,13,14,128))
- else
- change_view(world.view)
-
- log_admin("[key_name(usr)] changed their view range to [view].")
- //message_admins("\blue [key_name_admin(usr)] changed their view range to [view].") //why? removed by order of XSI
-
- SSblackbox.add_details("admin_toggle","Change View Range|[view]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-/client/proc/admin_call_shuttle()
-
- set category = "Admin"
- set name = "Call Shuttle"
-
- if(EMERGENCY_AT_LEAST_DOCKED)
- return
-
- if (!holder)
- to_chat(src, "Only administrators may use this command.")
- return
-
- var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No")
- if(confirm != "Yes")
- return
-
- SSshuttle.emergency.request()
- SSblackbox.add_details("admin_verb","Call Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
- log_admin("[key_name(usr)] admin-called the emergency shuttle.")
- message_admins("[key_name_admin(usr)] admin-called the emergency shuttle.")
- return
-
-/client/proc/admin_cancel_shuttle()
- set category = "Admin"
- set name = "Cancel Shuttle"
- if(!check_rights(0))
- return
- if(alert(src, "You sure?", "Confirm", "Yes", "No") != "Yes")
- return
-
- if(EMERGENCY_AT_LEAST_DOCKED)
- return
-
- SSshuttle.emergency.cancel()
- SSblackbox.add_details("admin_verb","Cancel Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
- log_admin("[key_name(usr)] admin-recalled the emergency shuttle.")
- message_admins("[key_name_admin(usr)] admin-recalled the emergency shuttle.")
-
- return
-
-/client/proc/everyone_random()
- set category = "Fun"
- set name = "Make Everyone Random"
- set desc = "Make everyone have a random appearance. You can only use this before rounds!"
-
- if(SSticker.HasRoundStarted())
- to_chat(usr, "Nope you can't do this, the game's already started. This only works before rounds!")
- return
-
- if(config.force_random_names)
- config.force_random_names = 0
- message_admins("Admin [key_name_admin(usr)] has disabled \"Everyone is Special\" mode.")
- to_chat(usr, "Disabled.")
- return
-
-
- var/notifyplayers = alert(src, "Do you want to notify the players?", "Options", "Yes", "No", "Cancel")
- if(notifyplayers == "Cancel")
- return
-
- log_admin("Admin [key_name(src)] has forced the players to have random appearances.")
- message_admins("Admin [key_name_admin(usr)] has forced the players to have random appearances.")
-
- if(notifyplayers == "Yes")
- to_chat(world, "Admin [usr.key] has forced the players to have completely random identities!")
-
- to_chat(usr, "Remember: you can always disable the randomness by using the verb again, assuming the round hasn't started yet.")
-
- config.force_random_names = 1
- SSblackbox.add_details("admin_verb","Make Everyone Random") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-
-/client/proc/toggle_random_events()
- set category = "Server"
- set name = "Toggle random events on/off"
- set desc = "Toggles random events such as meteors, black holes, blob (but not space dust) on/off"
- if(!config.allow_random_events)
- config.allow_random_events = 1
- to_chat(usr, "Random events enabled")
- message_admins("Admin [key_name_admin(usr)] has enabled random events.")
- else
- config.allow_random_events = 0
- to_chat(usr, "Random events disabled")
- message_admins("Admin [key_name_admin(usr)] has disabled random events.")
- SSblackbox.add_details("admin_toggle","Toggle Random Events|[config.allow_random_events]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-
-/client/proc/admin_change_sec_level()
- set category = "Special Verbs"
- set name = "Set Security Level"
- set desc = "Changes the security level. Announcement only, i.e. setting to Delta won't activate nuke"
-
- if (!holder)
- to_chat(src, "Only administrators may use this command.")
- return
-
- var/level = input("Select security level to change to","Set Security Level") as null|anything in list("green","blue","red","delta")
- if(level)
- set_security_level(level)
-
- log_admin("[key_name(usr)] changed the security level to [level]")
- message_admins("[key_name_admin(usr)] changed the security level to [level]")
- SSblackbox.add_details("admin_verb","Set Security Level [capitalize(level)]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-/client/proc/toggle_nuke(obj/machinery/nuclearbomb/N in GLOB.nuke_list)
- set name = "Toggle Nuke"
- set category = "Fun"
- set popup_menu = 0
- if(!check_rights(R_DEBUG))
- return
-
- if(!N.timing)
- var/newtime = input(usr, "Set activation timer.", "Activate Nuke", "[N.timer_set]") as num
- if(!newtime)
- return
- N.timer_set = newtime
- N.set_safety()
- N.set_active()
-
- log_admin("[key_name(usr)] [N.timing ? "activated" : "deactivated"] a nuke at ([N.x],[N.y],[N.z]).")
- message_admins("[ADMIN_LOOKUPFLW(usr)] [N.timing ? "activated" : "deactivated"] a nuke at [ADMIN_COORDJMP(N)].")
- SSblackbox.add_details("admin_toggle","Toggle Nuke|[N.timing]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
-GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
-
-/client/proc/create_outfits()
- set category = "Debug"
- set name = "Create Custom Outfit"
-
- if(!check_rights(R_DEBUG))
- return
-
- holder.create_outfit()
-
-/datum/admins/proc/create_outfit()
- var/list/uniforms = typesof(/obj/item/clothing/under)
- var/list/suits = typesof(/obj/item/clothing/suit)
- var/list/gloves = typesof(/obj/item/clothing/gloves)
- var/list/shoes = typesof(/obj/item/clothing/shoes)
- var/list/headwear = typesof(/obj/item/clothing/head)
- var/list/glasses = typesof(/obj/item/clothing/glasses)
- var/list/masks = typesof(/obj/item/clothing/mask)
- var/list/ids = typesof(/obj/item/card/id)
-
- var/uniform_select = ""
-
- var/suit_select = ""
-
- var/gloves_select = ""
-
- var/shoes_select = ""
-
- var/head_select = ""
-
- var/glasses_select = ""
-
- var/mask_select = ""
-
- var/id_select = ""
-
- var/dat = {"
-