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)