diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 76fb1bdd2e..93f2f2718d 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -233,6 +233,7 @@ var/list/admin_verbs_mod = list(
/client/proc/cmd_mod_say,
/datum/admins/proc/show_player_info,
/client/proc/player_panel_new,
+ /client/proc/dsay,
/datum/admins/proc/show_skills,
/client/proc/jobbans,
/client/proc/cmd_admin_subtle_message /*send an message to somebody as a 'voice in their head'*/
@@ -582,8 +583,8 @@ var/list/admin_verbs_mod = list(
set category = "Debug"
set name = "Kill Air"
set desc = "Toggle Air Processing"
- if(kill_air)
- kill_air = 0
+ if(air_processing_killed)
+ air_processing_killed = 0
usr << "Enabled air processing."
else
kill_air = 1
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index e930af3565..a95b9d625e 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -610,7 +610,7 @@
//JOBBAN'S INNARDS
else if(href_list["jobban3"])
- if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN)) return
+ if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN)) return
var/mob/M = locate(href_list["jobban4"])
if(!ismob(M))
@@ -715,7 +715,7 @@
href_list["jobban2"] = 1 // lets it fall through and refresh
return 1
if("No")
- if(!check_rights(R_BAN)) return
+ if(!check_rights(R_BAN)) return
var/reason = input(usr,"Reason?","Please State Reason","") as text|null
if(reason)
var/msg
@@ -813,7 +813,7 @@
DB_ban_unban(ckey(key), BANTYPE_JOB_PERMA, job)
else if(href_list["newban"])
- if(!check_rights(R_MOD,0) && !check_rights(R_BAN)) return
+ if(!check_rights(R_MOD,0) && !check_rights(R_BAN)) return
var/mob/M = locate(href_list["newban"])
if(!ismob(M)) return
@@ -846,7 +846,7 @@
del(M.client)
//del(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends.
if("No")
- if(check_rights(R_BAN)) return
+ if(check_rights(R_BAN)) return
var/reason = input(usr,"Reason?","reason","Griefer") as text|null
if(!reason)
return
@@ -887,7 +887,7 @@
unjobbanpanel()
else if(href_list["mute"])
- if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN)) return
+ if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN)) return
var/mob/M = locate(href_list["mute"])
if(!ismob(M)) return
@@ -1407,7 +1407,7 @@
if(!istype(H))
usr << "This can only be used on instances of type /mob/living/carbon/human"
return
- if(!istype(H.ears, /obj/item/device/radio/headset))
+ if(!istype(H.l_ear, /obj/item/device/radio/headset) && !istype(H.r_ear, /obj/item/device/radio/headset))
usr << "The person you are trying to contact is not wearing a headset"
return
@@ -1417,14 +1417,14 @@
src.owner << "You sent [input] to [H] via a secure channel."
log_admin("[src.owner] replied to [key_name(H)]'s Centcomm message with the message [input].")
message_admins("[src.owner] replied to [key_name(H)]'s Centcom message with: \"[input]\"")
- H << "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from Central Command. Message as follows. [input]. Message ends.\""
+ H << "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from Central Command. Message as follows. \"[input]\" Message ends.\""
else if(href_list["SyndicateReply"])
var/mob/living/carbon/human/H = locate(href_list["SyndicateReply"])
if(!istype(H))
usr << "This can only be used on instances of type /mob/living/carbon/human"
return
- if(!istype(H.ears, /obj/item/device/radio/headset))
+ if(!istype(H.l_ear, /obj/item/device/radio/headset) && !istype(H.r_ear, /obj/item/device/radio/headset))
usr << "The person you are trying to contact is not wearing a headset"
return
@@ -1433,7 +1433,7 @@
src.owner << "You sent [input] to [H] via a secure channel."
log_admin("[src.owner] replied to [key_name(H)]'s Syndicate message with the message [input].")
- H << "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from your benefactor. Message as follows, agent. [input]. Message ends.\""
+ H << "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from your benefactor. Message as follows, agent. \"[input]\" Message ends.\""
else if(href_list["CentcommFaxView"])
var/info = locate(href_list["CentcommFaxView"])
@@ -1448,22 +1448,29 @@
var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null
- for(var/obj/machinery/faxmachine/F in world)
+ for(var/obj/machinery/faxmachine/F in machines)
if(! (F.stat & (BROKEN|NOPOWER) ) )
- var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( F.loc )
- P.name = "[command_name()]- [customname]"
- P.info = input
- P.update_icon()
- playsound(F.loc, "sound/items/polaroid1.ogg", 50, 1)
- // Stamps
- var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
- stampoverlay.icon_state = "paper_stamp-cent"
- if(!P.stamped)
- P.stamped = new
- P.stamped += /obj/item/weapon/stamp
- P.overlays += stampoverlay
- P.stamps += "
This paper has been stamped by the Central Command Quantum Relay."
+ // animate! it's alive!
+ flick("faxreceive", F)
+
+ // give the sprite some time to flick
+ spawn(20)
+ var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( F.loc )
+ P.name = "[command_name()]- [customname]"
+ P.info = input
+ P.update_icon()
+
+ playsound(F.loc, "sound/items/polaroid1.ogg", 50, 1)
+
+ // Stamps
+ var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
+ stampoverlay.icon_state = "paper_stamp-cent"
+ if(!P.stamped)
+ P.stamped = new
+ P.stamped += /obj/item/weapon/stamp
+ P.overlays += stampoverlay
+ P.stamps += "
This paper has been stamped by the Central Command Quantum Relay."
src.owner << "Message reply to transmitted successfully."
log_admin("[key_name(src.owner)] replied to a fax message from [key_name(H)]: [input]")
@@ -1496,7 +1503,7 @@
usr.client.cmd_admin_direct_narrate(M)
else if(href_list["subtlemessage"])
- if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN)) return
+ if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN)) return
var/mob/M = locate(href_list["subtlemessage"])
usr.client.cmd_admin_subtle_message(M)
@@ -1735,6 +1742,21 @@
log_admin("[key_name(usr)] spawned a meteor wave", 1)
message_admins("\blue [key_name_admin(usr)] spawned a meteor wave.", 1)
new /datum/event/meteor_wave
+ if("goblob")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","Blob")
+ log_admin("[key_name(usr)] spawned a blob", 1)
+ message_admins("\blue [key_name_admin(usr)] spawned a blob.", 1)
+ new /datum/event/blob
+
+ if("aliens")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","Aliens")
+ log_admin("[key_name(usr)] spawned an alien infestation", 1)
+ message_admins("\blue [key_name_admin(usr)] attempted an alien infestation", 1)
+ new /datum/event/alien_infestation
+
+
if("power")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","P")
@@ -1969,6 +1991,76 @@
spawn(0)
sleep(rand(30,400))
Wall.ex_act(rand(2,1)) */
+ if("wave")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","MW")
+ new /datum/event/meteor_wave
+
+ if("gravanomalies")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","GA")
+ command_alert("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert")
+ world << sound('sound/AI/granomalies.ogg')
+ var/turf/T = pick(blobstart)
+ var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 )
+ spawn(rand(100, 600))
+ del(bh)
+
+ if("timeanomalies") //dear god this code was awful :P Still needs further optimisation
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","STA")
+ //moved to its own dm so I could split it up and prevent the spawns copying variables over and over
+ //can be found in code\game\game_modes\events\wormholes.dm
+ wormhole_event()
+
+ if("goblob")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","BL")
+ mini_blob_event()
+ message_admins("[key_name_admin(usr)] has spawned blob", 1)
+ if("aliens")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","AL")
+ if(aliens_allowed)
+ new /datum/event/alien_infestation
+ message_admins("[key_name_admin(usr)] has spawned aliens", 1)
+ if("alien_silent") //replaces the spawn_xeno verb
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","ALS")
+ if(aliens_allowed)
+ create_xeno()
+ if("spiders")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","SL")
+ new /datum/event/spider_infestation
+ message_admins("[key_name_admin(usr)] has spawned spiders", 1)
+ if("comms_blackout")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","CB")
+ var/answer = alert(usr, "Would you like to alert the crew?", "Alert", "Yes", "No")
+ if(answer == "Yes")
+ communications_blackout(0)
+ else
+ communications_blackout(1)
+ message_admins("[key_name_admin(usr)] triggered a communications blackout.", 1)
+ if("spaceninja")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","SN")
+ if(toggle_space_ninja)
+ if(space_ninja_arrival())//If the ninja is actually spawned. They may not be depending on a few factors.
+ message_admins("[key_name_admin(usr)] has sent in a space ninja", 1)
+ if("carp")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","C")
+ var/choice = input("You sure you want to spawn carp?") in list("Badmin", "Cancel")
+ if(choice == "Badmin")
+ message_admins("[key_name_admin(usr)] has spawned carp.", 1)
+ new /datum/event/carp_migration
+ if("radiation")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","R")
+ message_admins("[key_name_admin(usr)] has has irradiated the station", 1)
+ new /datum/event/radiation_storm
if("immovable")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","IR")
@@ -2127,13 +2219,13 @@
if("spacevines")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","K")
- //new /datum/event/spacevine
+ new /datum/event/spacevine
message_admins("[key_name_admin(usr)] has spawned spacevines", 1)
if("onlyone")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","OO")
usr.client.only_one()
-// message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)")
+ message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)")
if(usr)
log_admin("[key_name(usr)] used secret [href_list["secretsfun"]]")
if (ok)
@@ -2501,4 +2593,4 @@
show_player_info(ckey)
if("list")
PlayerNotesPage(text2num(href_list["index"]))
- return
+ return
\ No newline at end of file