diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm
index 549a2140c2d..caab5c8b258 100644
--- a/code/modules/admin/verbs/pray.dm
+++ b/code/modules/admin/verbs/pray.dm
@@ -15,9 +15,23 @@
var/image/cross = image('icons/obj/storage.dmi',"bible")
msg = "\blue \icon[cross] PRAY: [key_name(src, 1)] (?) (PP) (VV) (SM) (JMP) (CA) (SC): [msg]"
+ var/list/eventholders = list()
+ var/list/banholders = list()
+
for(var/client/X in admins)
if(R_EVENT & X.holder.rights)
- X << msg
+ eventholders += X
+ if(R_BAN & X.holder.rights)
+ banholders += X
+
+ if(eventholders.len)
+ for(var/client/C in eventholders)
+ if(C.prefs.toggles & CHAT_PRAYER)
+ C << msg
+ else if (banholders.len)
+ for(var/client/C in banholders)
+ if(C.prefs.toggles & CHAT_PRAYER)
+ C << msg
usr << "Your prayers have been received by the gods."
@@ -28,22 +42,64 @@
var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN)
msg = "\blue CENTCOMM:[key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (BSA) (RPLY): [msg]"
+ var/list/eventholders = list()
+ var/list/banholders = list()
+
for(var/client/X in admins)
if(R_EVENT & X.holder.rights)
- X << msg
+ eventholders += X
+ if(R_BAN & X.holder.rights)
+ banholders += X
+
+ if(eventholders.len)
+ for(var/client/C in eventholders)
+ C << msg
+ return
+ else if (banholders.len)
+ for(var/client/C in banholders)
+ C << msg
+ return
/proc/Syndicate_announce(var/text , var/mob/Sender)
var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN)
msg = "\blue SYNDICATE: [key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (BSA) (REPLY): [msg]"
+ var/list/eventholders = list()
+ var/list/banholders = list()
+
for(var/client/X in admins)
if(R_EVENT & X.holder.rights)
- X << msg
+ eventholders += X
+ if(R_BAN & X.holder.rights)
+ banholders += X
+
+ if(eventholders.len)
+ for(var/client/C in eventholders)
+ C << msg
+ return
+ else if (banholders.len)
+ for(var/client/C in banholders)
+ C << msg
+ return
/proc/HONK_announce(var/text , var/mob/Sender)
var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN)
msg = "\blue HONK:[key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (BSA) (RPLY): [msg]"
+ var/list/eventholders = list()
+ var/list/banholders = list()
+
for(var/client/X in admins)
if(R_EVENT & X.holder.rights)
- X << msg
\ No newline at end of file
+ eventholders += X
+ if(R_BAN & X.holder.rights)
+ banholders += X
+
+ if(eventholders.len)
+ for(var/client/C in eventholders)
+ C << msg
+ return
+ else if (banholders.len)
+ for(var/client/C in banholders)
+ C << msg
+ return
\ No newline at end of file
diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm
index b5df316c7b0..98726004ea4 100644
--- a/code/modules/paperwork/faxmachine.dm
+++ b/code/modules/paperwork/faxmachine.dm
@@ -8,7 +8,7 @@ var/list/alldepartments = list()
icon = 'icons/obj/library.dmi'
icon_state = "fax"
insert_anim = "faxsend"
- req_one_access = list(access_lawyer, access_heads, access_armory)
+ req_one_access = list(access_lawyer, access_heads, access_armory)
use_power = 1
idle_power_usage = 30
@@ -21,7 +21,7 @@ var/list/alldepartments = list()
var/department = "Unknown" // our department
var/destination = "Central Command" // the department we're sending to
-
+
var/data[0]
/obj/machinery/photocopier/faxmachine/New()
@@ -33,7 +33,7 @@ var/list/alldepartments = list()
/obj/machinery/photocopier/faxmachine/attack_hand(mob/user as mob)
ui_interact(user)
-
+
/obj/machinery/photocopier/faxmachine/attackby(obj/item/weapon/item, mob/user)
if(istype(item,/obj/item/weapon/card/id) && !scan)
scan(item)
@@ -42,14 +42,14 @@ var/list/alldepartments = list()
nanomanager.update_uis(src)
else
return ..()
-
+
/obj/machinery/photocopier/faxmachine/emag_act(user as mob)
if(!emagged)
emagged = 1
user << "The transmitters realign to an unknown source!"
else
user << "You swipe the card through [src], but nothing happens."
-
+
/obj/machinery/photocopier/faxmachine/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
if(scan)
data["scan_name"] = scan.name
@@ -75,23 +75,23 @@ var/list/alldepartments = list()
else
data["respectcooldown"] = 0
- ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
+ ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
if (!ui)
ui = new(user, src, ui_key, "faxmachine.tmpl", "Fax Machine UI", 540, 450)
- ui.set_initial_data(data)
+ ui.set_initial_data(data)
ui.open()
/obj/machinery/photocopier/faxmachine/Topic(href, href_list)
if(..())
return 1
-
+
if(href_list["send"])
if(copyitem && authenticated)
if ((destination in admin_departments) || (destination in hidden_admin_departments))
send_admin_fax(usr, destination)
else
sendfax(destination,usr)
-
+
if (sendcooldown)
spawn(sendcooldown) // cooldown time
sendcooldown = 0
@@ -122,7 +122,7 @@ var/list/alldepartments = list()
if(emagged)
combineddepartments += hidden_admin_departments
destination = input(usr, "To which department?", "Choose a department", "") as null|anything in combineddepartments
- if(!destination)
+ if(!destination)
destination = lastdestination
if(href_list["auth"])
@@ -131,22 +131,22 @@ var/list/alldepartments = list()
authenticated = 1
else if(authenticated)
authenticated = 0
-
+
if(href_list["rename"])
if(copyitem)
var/n_name = copytext(sanitize(input(usr, "What would you like to label the fax?", "Fax Labelling", copyitem.name) as text), 1, MAX_MESSAGE_LEN)
if((copyitem && copyitem.loc == src && usr.stat == 0))
- if (istype(copyitem, /obj/item/weapon/paper))
- copyitem.name = "[(n_name ? text("[n_name]") : initial(copyitem.name))]"
- copyitem.desc = "This is a paper titled '" + copyitem.name + "'."
- else if(istype(copyitem, /obj/item/weapon/photo))
+ if (istype(copyitem, /obj/item/weapon/paper))
+ copyitem.name = "[(n_name ? text("[n_name]") : initial(copyitem.name))]"
+ copyitem.desc = "This is a paper titled '" + copyitem.name + "'."
+ else if(istype(copyitem, /obj/item/weapon/photo))
copyitem.name = "[(n_name ? text("[n_name]") : "photo")]"
else if(istype(copyitem, /obj/item/weapon/paper_bundle))
copyitem.name = "[(n_name ? text("[n_name]") : "paper")]"
- data["name"] = copyitem.name
+ data["name"] = copyitem.name
nanomanager.update_uis(src)
-
+
/obj/machinery/photocopier/faxmachine/proc/scan(var/obj/item/weapon/card/id/card = null)
if(scan) // Card is in machine
if(ishuman(usr))
@@ -174,14 +174,14 @@ var/list/alldepartments = list()
/obj/machinery/photocopier/faxmachine/proc/sendfax(var/destination,var/mob/sender)
if(stat & (BROKEN|NOPOWER))
return
-
+
use_power(200)
-
+
var/success = 0
for(var/obj/machinery/photocopier/faxmachine/F in allfaxes)
if( F.department == destination )
success = F.receivefax(copyitem)
-
+
if (success)
var/datum/fax/F = new /datum/fax()
F.name = copyitem.name
@@ -191,7 +191,7 @@ var/list/alldepartments = list()
F.message = copyitem
F.sent_by = sender
F.sent_at = world.time
-
+
visible_message("[src] beeps, \"Message transmitted successfully.\"")
//sendcooldown = 600
else
@@ -200,16 +200,16 @@ var/list/alldepartments = list()
/obj/machinery/photocopier/faxmachine/proc/receivefax(var/obj/item/incoming)
if(stat & (BROKEN|NOPOWER))
return 0
-
+
if(department == "Unknown")
return 0 //You can't send faxes to "Unknown"
flick("faxreceive", src)
playsound(loc, "sound/items/polaroid1.ogg", 50, 1)
-
+
// give the sprite some time to flick
sleep(20)
-
+
if (istype(incoming, /obj/item/weapon/paper))
copy(incoming)
else if (istype(incoming, /obj/item/weapon/photo))
@@ -225,7 +225,7 @@ var/list/alldepartments = list()
/obj/machinery/photocopier/faxmachine/proc/send_admin_fax(var/mob/sender, var/destination)
if(stat & (BROKEN|NOPOWER))
return
-
+
use_power(200)
var/obj/item/rcvdcopy
@@ -238,9 +238,9 @@ var/list/alldepartments = list()
else
visible_message("[src] beeps, \"Error transmitting message.\"")
return
-
+
rcvdcopy.loc = null //hopefully this shouldn't cause trouble
-
+
var/datum/fax/admin/A = new /datum/fax/admin()
A.name = rcvdcopy.name
A.from_department = department
@@ -249,7 +249,7 @@ var/list/alldepartments = list()
A.message = rcvdcopy
A.sent_by = sender
A.sent_at = world.time
-
+
//message badmins that a fax has arrived
switch(destination)
if ("Central Command")
@@ -259,11 +259,11 @@ var/list/alldepartments = list()
sendcooldown = 1800
sleep(50)
visible_message("[src] beeps, \"Message transmitted successfully.\"")
-
+
/obj/machinery/photocopier/faxmachine/proc/message_admins(var/mob/sender, var/faxname, var/faxtype, var/obj/item/sent, font_colour="#006100")
var/msg = "\blue [faxname]: [key_name(sender, 1)] (PP) (VV) (SM) (JMP) (CA) (BSA) (REPLY): Receiving '[sent.name]' via secure connection... view message"
for(var/client/C in admins)
- if(R_EVENT & C.holder.rights)
+ if(R_ADMIN & C.holder.rights)
C << msg