diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_syndicate.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_syndicate.dmm
index 8589a05a28ab..30e528d16c79 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_surface_syndicate.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_surface_syndicate.dmm
@@ -5413,12 +5413,6 @@
/turf/open/floor/plasteel/dark,
/area/ruin/syndicate_icemoon/xenobio)
"CP" = (
-/obj/machinery/photocopier/faxmachine{
- department = "Unidentified";
- desc = "Used to send black pages to Nanotrasen stations.";
- name = "Syndicate Fax Machine";
- req_access = list("syndicate")
- },
/obj/item/stamp/chameleon{
pixel_x = -6;
pixel_y = 10
@@ -5431,6 +5425,7 @@
/obj/effect/turf_decal/siding/wood{
dir = 9
},
+/obj/machinery/photocopier/faxmachine/syndicate,
/turf/open/floor/wood,
/area/ruin/syndicate_icemoon/command)
"CQ" = (
diff --git a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm
index 15c867b9caf3..be1ce55d63f1 100644
--- a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm
+++ b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm
@@ -2431,12 +2431,6 @@
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/listeningstation/hallway)
"KJ" = (
-/obj/machinery/photocopier/faxmachine{
- department = "Unidentified";
- desc = "Used to send black pages to Nanotrasen stations.";
- name = "Syndicate Fax Machine";
- req_access = list("syndicate")
- },
/obj/structure/table/reinforced,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
@@ -2449,6 +2443,7 @@
dir = 1
},
/obj/effect/turf_decal/tile/red/fourcorners,
+/obj/machinery/photocopier/faxmachine/syndicate,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/listeningstation/hallway)
"KS" = (
diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm
index 3fe9a0e1b55c..1a0758641ced 100644
--- a/_maps/map_files/generic/CentCom.dmm
+++ b/_maps/map_files/generic/CentCom.dmm
@@ -21480,6 +21480,7 @@
dir = 9
},
/obj/structure/table/reinforced,
+/obj/machinery/photocopier/faxmachine/syndicate_command,
/turf/open/floor/plasteel/dark,
/area/centcom/syndicate_mothership)
"crH" = (
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index a059195bb712..1b0b84ec293e 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1815,7 +1815,7 @@
if(info)
info.examine(usr, TRUE)
- else if(href_list["CentcomFaxReply"])
+ else if(href_list["AdminFaxReply"])
var/obj/machinery/photocopier/faxmachine/F = locate(href_list["originfax"]) in GLOB.allfaxes
if(!istype(F))
to_chat(src.owner, span_danger("Unable to locate fax!"))
@@ -1830,20 +1830,21 @@
send_admin_fax()
/client/proc/send_admin_fax(obj/machinery/photocopier/faxmachine/F)
- var/inputsubject = input(src, "Please enter a subject", "Outgoing message from CentCom", "") as text|null
+ var/syndicate = (F?.obj_flags & EMAGGED)
+ var/inputsubject = input(src, "Please enter a subject", "Outgoing message from [syndicate ? "Syndicate" : "CentCom"]", "") as text|null
if(!inputsubject)
return
- var/inputmessage = input(src, "Please enter the message sent to [istype(F) ? F : "all fax machines"] via secure connection. Supports pen markdown.", "Outgoing message from CentCom", "") as message|null
+ var/inputmessage = input(src, "Please enter the message sent to [istype(F) ? F : "all fax machines"] via secure connection. Supports pen markdown.", "Outgoing message from [syndicate ? "Syndicate" : "CentCom"]", "") as message|null
if(!inputmessage)
return
- var/inputsigned = input(src, "Please enter CentCom Official name.", "Outgoing message from CentCom", usr?.client?.holder?.admin_signature || "") as text|null
+ var/inputsigned = input(src, "Please enter [syndicate ? "Syndicate" : "CentCom"] Official name.", "Outgoing message from [syndicate ? "Syndicate" : "CentCom"]", usr?.client?.holder?.admin_signature || "") as text|null
if(!inputsigned)
return
var/customname = input(src, "Pick a title for the report", "Title") as text|null
- var/prefix = "
Nanotrasen Fax Network
RE: [inputsubject]
"
+ var/prefix = "[syndicate ? "Syndicate" : "Nanotrasen"] Fax Network
RE: [inputsubject]
"
var/suffix = "
Signed: [inputsigned]"
inputmessage = parsemarkdown(inputmessage)
diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm
index f946b5c85909..75adb03ab960 100644
--- a/code/modules/paperwork/faxmachine.dm
+++ b/code/modules/paperwork/faxmachine.dm
@@ -17,9 +17,12 @@ GLOBAL_LIST_EMPTY(adminfaxes)
var/sendcooldown = 0 // to avoid spamming fax messages
var/department = "Unknown" // our department
var/destination = "Central Command" // the department we're sending to
+ var/hidefromfaxlist = FALSE // If enabled does not show up in the destination fax list
/obj/machinery/photocopier/faxmachine/Initialize(mapload)
. = ..()
+ if(hidefromfaxlist)
+ return
GLOB.allfaxes += src
if( !((department in GLOB.alldepartments) || (department in GLOB.admin_departments)) )
GLOB.alldepartments |= department
@@ -45,7 +48,7 @@ GLOBAL_LIST_EMPTY(adminfaxes)
.["has_copy"] = !copier_empty()
.["copy_name"] = copy?.name || photocopy?.name || doccopy?.name
.["cooldown"] = sendcooldown - world.time
- .["depts"] = (GLOB.alldepartments + GLOB.admin_departments)
+ .["depts"] = obj_flags & EMAGGED ? (GLOB.alldepartments + GLOB.admin_departments + list("Syndicate")) : (GLOB.alldepartments + GLOB.admin_departments)
.["destination"] = destination
/obj/machinery/photocopier/faxmachine/ui_act(action, list/params)
@@ -62,6 +65,8 @@ GLOBAL_LIST_EMPTY(adminfaxes)
sendcooldown = world.time + 1 MINUTES
if (destination in GLOB.admin_departments)
INVOKE_ASYNC(src, PROC_REF(send_admin_fax), usr, destination)
+ if (destination == "Syndicate")
+ INVOKE_ASYNC(src, PROC_REF(send_admin_fax), usr, destination)
else
INVOKE_ASYNC(src, PROC_REF(sendfax), destination)
return
@@ -91,6 +96,10 @@ GLOBAL_LIST_EMPTY(adminfaxes)
authenticated = TRUE
auth_name = usr.client.holder.admin_signature
return
+ if(obj_flags & EMAGGED)
+ authenticated = TRUE
+ auth_name = "$#%*! - ERROR"
+ return
var/obj/item/card/id/id_card = usr.get_idcard(hand_first = TRUE)
if (check_access(id_card))
authenticated = TRUE
@@ -163,13 +172,11 @@ GLOBAL_LIST_EMPTY(adminfaxes)
F.recievefax(rcvdcopy)
//message badmins that a fax has arrived
- switch(destination)
- if ("Central Command")
- for(var/client/C in GLOB.permissions.admins) //linked to prayers cause we are running out of legacy toggles
- if(C.prefs.chat_toggles & CHAT_PRAYER_N_FAX) //if to be moved elsewhere then we must declutter legacy toggles
- if(C.prefs.toggles & SOUND_PRAYER_N_FAX)//if done then delete these comments
- SEND_SOUND(sender, sound('sound/effects/admin_fax.ogg'))
- send_adminmessage(sender, "CENTCOM FAX", rcvdcopy, "CentcomFaxReply", "#006100")
+ for(var/client/C in GLOB.permissions.admins) //linked to prayers cause we are running out of legacy toggles
+ if(C.prefs.chat_toggles & CHAT_PRAYER_N_FAX) //if to be moved elsewhere then we must declutter legacy toggles
+ if(C.prefs.toggles & SOUND_PRAYER_N_FAX)//if done then delete these comments
+ SEND_SOUND(sender, sound('sound/effects/admin_fax.ogg'))
+ send_adminmessage(sender, destination == "Syndicate" ? "SYNDICATE FAX" : "CENTCOM FAX", rcvdcopy, "AdminFaxReply", destination == "Syndicate" ? "crimson" : "#006100")
sendcooldown = world.time + 1 MINUTES
sleep(5 SECONDS)
visible_message("[src] beeps, \"Message transmitted successfully.\"")
@@ -194,7 +201,8 @@ GLOBAL_LIST_EMPTY(adminfaxes)
// give the sprite some time to flick
spawn(20)
var/obj/item/paper/P = new /obj/item/paper( loc )
- P.name = "[command_name()] - [customname]"
+ var/syndicate = obj_flags & EMAGGED
+ P.name = syndicate ? "The Syndicate - [customname]" : "[command_name()] - [customname]"
var/list/templist = list() // All the stuff we're adding to $written
for(var/text in T)
@@ -212,19 +220,46 @@ GLOBAL_LIST_EMPTY(adminfaxes)
var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/simple/paper)
if (isnull(P.stamps))
P.stamps = sheet.css_tag()
- P.stamps += sheet.icon_tag("stamp-cent")
- P.stamps += "
This paper has been verified by the Central Command Quantum Relay.
"
- var/mutable_appearance/stampoverlay = mutable_appearance('icons/obj/bureaucracy.dmi', "paper_stamp-cent")
+ P.stamps += syndicate ? sheet.icon_tag("stamp-syndiround") : sheet.icon_tag("stamp-cent")
+ P.stamps += "
This paper has [syndicate ? "not" : ""] been verified by the Central Command Quantum Relay.
"
+ var/mutable_appearance/stampoverlay = mutable_appearance('icons/obj/bureaucracy.dmi', syndicate ? "paper_stamp-syndiround" : "paper_stamp-cent")
stampoverlay.pixel_x = rand(-2, 2)
stampoverlay.pixel_y = rand(-3, 2)
- LAZYADD(P.stamped, "stamp-cent")
+ LAZYADD(P.stamped, syndicate ? "stamp-syndiround" : "stamp-cent")
P.add_overlay(stampoverlay)
/obj/machinery/photocopier/faxmachine/AltClick(mob/user)
if(IsAdminGhost(user))
- send_admin_fax(src)
+ send_admin_fax(src)
/obj/machinery/photocopier/faxmachine/examine(mob/user)
+ . = ..()
if(IsAdminGhost(user))
.+= span_notice("You can send admin faxes via Alt-Click to this specific fax machine.")
+
+/obj/machinery/photocopier/faxmachine/emag_act(mob/user, /obj/item/card/emag/emag_card)
+ if(obj_flags & EMAGGED)
+ to_chat(user, span_warning("[src]'s transceiver is damaged!"))
+ return FALSE
+ obj_flags |= EMAGGED
+ playsound(src, "sparks", 100, 1)
+ to_chat(user, span_warning("You short out the security protocols on [src]'s transceiver!"))
+ return TRUE
+
+///Common syndicate fax machines, comes pre-emagged
+/obj/machinery/photocopier/faxmachine/syndicate
+ department = "Unidentified"
+ desc = "Used to send black pages to Nanotrasen stations."
+ name = "Syndicate Fax Machine"
+ obj_flags = CAN_BE_HIT | EMAGGED
+ req_access = list(ACCESS_SYNDICATE)
+
+///The fax machine in the Syndicate mothership
+/obj/machinery/photocopier/faxmachine/syndicate_command
+ department = "Syndicate"
+ desc = "Used for communication between the different echelons of the Syndicate. It has a note on the side reading 'DO NOT MOVE'."
+ destination = "Bridge"
+ hidefromfaxlist = TRUE
+ name = "Syndicate Fax Machine"
+ req_access = list(ACCESS_SYNDICATE)