diff --git a/code/_globalvars/global_lists.dm b/code/_globalvars/global_lists.dm index 6e1b229e562f..6a38b5c60652 100644 --- a/code/_globalvars/global_lists.dm +++ b/code/_globalvars/global_lists.dm @@ -3,6 +3,9 @@ GLOBAL_LIST_EMPTY(WYFaxes) //Departmental faxes GLOBAL_LIST_EMPTY(USCMFaxes) GLOBAL_LIST_EMPTY(ProvostFaxes) GLOBAL_LIST_EMPTY(CMBFaxes) +GLOBAL_LIST_EMPTY(UPPFaxes) +GLOBAL_LIST_EMPTY(TWEFaxes) +GLOBAL_LIST_EMPTY(CLFFaxes) GLOBAL_LIST_EMPTY(GeneralFaxes) //Inter-machine faxes GLOBAL_LIST_EMPTY(fax_contents) //List of fax contents to maintain it even if source paper is deleted diff --git a/code/game/machinery/fax_machine.dm b/code/game/machinery/fax_machine.dm index 4a5c62b1f9a0..0d9b2268994a 100644 --- a/code/game/machinery/fax_machine.dm +++ b/code/game/machinery/fax_machine.dm @@ -6,7 +6,10 @@ GLOBAL_LIST_EMPTY(alldepartments) #define DEPARTMENT_CMB "CMB Incident Command Center, Local Operations" #define DEPARTMENT_PROVOST "USCM Provost Office" #define DEPARTMENT_PRESS "Various Press Organizations" -#define HIGHCOM_DEPARTMENTS list(DEPARTMENT_WY, DEPARTMENT_HC, DEPARTMENT_CMB, DEPARTMENT_PROVOST, DEPARTMENT_PRESS) +#define DEPARTMENT_TWE "Three World Empire" +#define DEPARTMENT_UPP "Union of Progress Peoples" +#define DEPARTMENT_CLF "Colonial Liberation Front" +#define HIGHCOM_DEPARTMENTS list(DEPARTMENT_WY, DEPARTMENT_HC, DEPARTMENT_CMB, DEPARTMENT_PROVOST, DEPARTMENT_PRESS, DEPARTMENT_TWE, DEPARTMENT_UPP, DEPARTMENT_CLF) /obj/structure/machinery/faxmachine // why not fax_machine? name = "\improper General Purpose Fax Machine" @@ -138,6 +141,13 @@ GLOBAL_LIST_EMPTY(alldepartments) GLOB.alldepartments += DEPARTMENT_CMB if(!(DEPARTMENT_PRESS in GLOB.alldepartments)) GLOB.alldepartments += DEPARTMENT_PRESS + if(!(DEPARTMENT_TWE in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_TWE + if(!(DEPARTMENT_UPP in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_UPP + if(!(DEPARTMENT_CLF in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_CLF + // TGUI SHIT \\ /obj/structure/machinery/faxmachine/tgui_interact(mob/user, datum/tgui/ui) @@ -277,9 +287,12 @@ GLOBAL_LIST_EMPTY(alldepartments) . = ..() . += "" . += "" - . += "" + . += "" . += "" . += "" + . += "" + . += "" + . += "" // converting whatever type the fax is into a single paper with all the information on it. /obj/structure/machinery/faxmachine/proc/copy_fax_paper(mob/living/user) @@ -339,13 +352,22 @@ GLOBAL_LIST_EMPTY(alldepartments) GLOB.CMBFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " if(DEPARTMENT_WY) - GLOB.WYFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") - msg_admin += "(RPLY): " + GLOB.WYFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " if(DEPARTMENT_PRESS) GLOB.PressFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " + if(DEPARTMENT_TWE) + GLOB.TWEFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " + if(DEPARTMENT_UPP) + GLOB.UPPFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " + if(DEPARTMENT_CLF) + GLOB.CLFFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " else - GLOB.GeneralFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + GLOB.GeneralFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " msg_admin += SPAN_STAFF_IC("Receiving fax via secure connection ... view message") @@ -416,6 +438,30 @@ GLOBAL_LIST_EMPTY(alldepartments) P.stamped += /obj/item/tool/stamp P.overlays += stampoverlay P.stamps += "
This paper has been stamped and encrypted by the Weyland-Yutani Quantum Relay (tm)." + if("TWE Royal Marines Commando Quantum Relay") + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-twe" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
This paper has been stamped by the TWE Royal Marines Commando Quantum Relay." + if("UPP High Kommand Quantum Relay") + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-upp" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
This paper has been stamped by the UPP High Kommand Quantum Relay." + if("CLF Gureilla Command Quantum Relay") + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-clf" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
This paper has been stamped and encrypted by the CLF Gureilla Command Quantum Relay." playsound(F.loc, "sound/items/polaroid1.ogg", 15, 1) qdel(faxcontents) diff --git a/code/modules/admin/tabs/event_tab.dm b/code/modules/admin/tabs/event_tab.dm index 839dea7b2334..d03e52406cbc 100644 --- a/code/modules/admin/tabs/event_tab.dm +++ b/code/modules/admin/tabs/event_tab.dm @@ -322,7 +322,11 @@ if(!admin_holder) return - var/list/options = list("Weyland-Yutani", "High Command", "Provost", "Press", "CMB", "Other", "Cancel") + var/list/options = list( + "Weyland-Yutani", "High Command", "Provost", "Press", + "Colonial Marshal Bureau", "Union of Progressive Peoples", + "Three World Empire", "Colonial Liberation Front", + "Other", "Cancel") var/answer = tgui_input_list(src, "Which kind of faxes would you like to see?", "Faxes", options) switch(answer) if("Weyland-Yutani") @@ -334,6 +338,7 @@ body += "

" show_browser(src, body, "Faxes to Weyland-Yutani", "wyfaxviewer", "size=300x600") + if("High Command") var/body = "" @@ -343,6 +348,7 @@ body += "

" show_browser(src, body, "Faxes to High Command", "uscmfaxviewer", "size=300x600") + if("Provost") var/body = "" @@ -361,9 +367,9 @@ body += "

" body += "

" - show_browser(src, body, "Faxes to Press organizations", "otherfaxviewer", "size=300x600") + show_browser(src, body, "Faxes to Press organizations", "pressfaxviewer", "size=300x600") - if("CMB") + if("Colonial Marshal Bureau") var/body = "" for(var/text in GLOB.CMBFaxes) @@ -373,6 +379,36 @@ body += "

" show_browser(src, body, "Faxes to the Colonial Marshal Bureau", "cmbfaxviewer", "size=300x600") + if("Union of Progressive Peoples") + var/body = "" + + for(var/text in GLOB.UPPFaxes) + body += text + body += "

" + + body += "

" + show_browser(src, body, "Faxes to the Union of Progressive Peoples", "uppfaxviewer", "size=300x600") + + if("Three World Empire") + var/body = "" + + for(var/text in GLOB.TWEFaxes) + body += text + body += "

" + + body += "

" + show_browser(src, body, "Faxes to the Three World Empire", "twefaxviewer", "size=300x600") + + if("Colonial Liberation Front") + var/body = "" + + for(var/text in GLOB.CLFFaxes) + body += text + body += "

" + + body += "

" + show_browser(src, body, "Faxes to the Colonial Liberation Front", "clffaxviewer", "size=300x600") + if("Other") var/body = "" diff --git a/code/modules/admin/topic/topic.dm b/code/modules/admin/topic/topic.dm index fa814ca16b7c..514a46e3259a 100644 --- a/code/modules/admin/topic/topic.dm +++ b/code/modules/admin/topic/topic.dm @@ -1163,7 +1163,7 @@ GLOB.fax_contents += fax_message // save a copy var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null - GLOB.USCMFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") + GLOB.PressFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") var/msg_ghost = SPAN_NOTICE("PRESS REPLY: ") msg_ghost += "Transmitting '[customname]' via secure connection ... " @@ -1199,6 +1199,7 @@ message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) return to_chat(src.owner, "/red Unable to locate fax!") + else if(href_list["USCMFaxReply"]) var/mob/living/carbon/human/H = locate(href_list["USCMFaxReply"]) var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) @@ -1226,7 +1227,7 @@ return else return - var/message_body = input(src.owner, "Enter Message Body, use

for paragraphs", "Outgoing message from Weyland USCM", "") as message|null + var/message_body = input(src.owner, "Enter Message Body, use

for paragraphs", "Outgoing message from USCM", "") as message|null if(!message_body) return var/sent_by = input(src.owner, "Enter the name and rank you are sending from.", "Outgoing message from USCM", "") as message|null @@ -1282,8 +1283,8 @@ return to_chat(src.owner, "/red Unable to locate fax!") - else if(href_list["CLFaxReply"]) - var/mob/living/carbon/human/H = locate(href_list["CLFaxReply"]) + else if(href_list["WYFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["WYFaxReply"]) var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) @@ -1364,6 +1365,249 @@ return to_chat(src.owner, "/red Unable to locate fax!") + else if(href_list["TWEFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["TWEFaxReply"]) + var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) + + var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) + if(!template_choice) return + var/datum/fax/fax_message + switch(template_choice) + if("Custom") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via secure connection. NOTE: BBCode does not work, but HTML tags do! Use
for line breaks.", "Outgoing message from TWE", "") as message|null + if(!input) + return + fax_message = new(input) + if("Template") + var/subject = input(src.owner, "Enter subject line", "Outgoing message from TWE", "") as message|null + if(!subject) + return + var/addressed_to = "" + var/address_option = tgui_input_list(usr, "Address it to the sender or custom?", "Fax Template", list("Sender", "Custom")) + if(address_option == "Sender") + addressed_to = "[H.real_name]" + else if(address_option == "Custom") + addressed_to = input(src.owner, "Enter Addressee Line", "Outgoing message from TWE", "") as message|null + if(!addressed_to) + return + else + return + var/message_body = input(src.owner, "Enter Message Body, use

for paragraphs", "Outgoing message from TWE", "") as message|null + if(!message_body) + return + var/sent_by = input(src.owner, "Enter JUST the name you are sending this from", "Outgoing message from TWE", "") as message|null + if(!sent_by) + return + fax_message = new(generate_templated_fax(0, "THREE WORLD EMPIRE - ROYAL MILITARY COMMAND", subject, addressed_to, message_body, sent_by, "Office of Military Communications", "Three World Empire")) + show_browser(usr, "[fax_message.data]", "PREVIEW OF TWE FAX", "size=500x400") + var/send_choice = tgui_input_list(usr, "Send this fax?", "Fax Confirmation", list("Send", "Cancel")) + if(send_choice != "Send") + return + GLOB.fax_contents += fax_message // save a copy + + var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null + if(!customname) + return + + GLOB.TWEFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") //Add replies so that mods know what the hell is goin on with the RP + + var/msg_ghost = SPAN_NOTICE("THREE WORLD EMPIRE FAX REPLY: ") + msg_ghost += "Transmitting '[customname]' via secure connection ... " + msg_ghost += "view message" + announce_fax( ,msg_ghost) + + for(var/obj/structure/machinery/faxmachine/F in GLOB.machines) + if(F == fax) + if(!(F.inoperable())) + + // animate! it's alive! + flick("faxreceive", F) + + // give the sprite some time to flick + spawn(20) + var/obj/item/paper/P = new /obj/item/paper( F.loc ) + P.name = "Three World Empire - [customname]" + P.info = fax_message.data + P.update_icon() + + playsound(F.loc, "sound/machines/fax.ogg", 15) + + // Stamps + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-twe" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
This paper has been stamped by the Three World Empire Quantum Relay (tm)." + + to_chat(src.owner, "Message reply to transmitted successfully.") + message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) + return + to_chat(src.owner, "/red Unable to locate fax!") + + else if(href_list["UPPFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["UPPFaxReply"]) + var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) + + var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) + if(!template_choice) return + var/datum/fax/fax_message + switch(template_choice) + if("Custom") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via secure connection. NOTE: BBCode does not work, but HTML tags do! Use
for line breaks.", "Outgoing message from UPP", "") as message|null + if(!input) + return + fax_message = new(input) + if("Template") + var/subject = input(src.owner, "Enter subject line", "Outgoing message from UPP", "") as message|null + if(!subject) + return + var/addressed_to = "" + var/address_option = tgui_input_list(usr, "Address it to the sender or custom?", "Fax Template", list("Sender", "Custom")) + if(address_option == "Sender") + addressed_to = "[H.real_name]" + else if(address_option == "Custom") + addressed_to = input(src.owner, "Enter Addressee Line", "Outgoing message from UPP", "") as message|null + if(!addressed_to) + return + else + return + var/message_body = input(src.owner, "Enter Message Body, use

for paragraphs", "Outgoing message from UPP", "") as message|null + if(!message_body) + return + var/sent_by = input(src.owner, "Enter JUST the name you are sending this from", "Outgoing message from UPP", "") as message|null + if(!sent_by) + return + fax_message = new(generate_templated_fax(0, "UNION OF PROGRESSIVE PEOPLES - MILITARY HIGH KOMMAND", subject, addressed_to, message_body, sent_by, "Military High Kommand", "Union of Progressive Peoples")) + show_browser(usr, "[fax_message.data]", "PREVIEW OF UPP FAX", "size=500x400") + var/send_choice = tgui_input_list(usr, "Send this fax?", "Fax Confirmation", list("Send", "Cancel")) + if(send_choice != "Send") + return + GLOB.fax_contents += fax_message // save a copy + + var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null + if(!customname) + return + + GLOB.UPPFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") //Add replies so that mods know what the hell is goin on with the RP + + var/msg_ghost = SPAN_NOTICE("UNION OF PROGRESSIVE PEOPLES FAX REPLY: ") + msg_ghost += "Transmitting '[customname]' via secure connection ... " + msg_ghost += "view message" + announce_fax( ,msg_ghost) + + for(var/obj/structure/machinery/faxmachine/F in GLOB.machines) + if(F == fax) + if(!(F.inoperable())) + + // animate! it's alive! + flick("faxreceive", F) + + // give the sprite some time to flick + spawn(20) + var/obj/item/paper/P = new /obj/item/paper( F.loc ) + P.name = "Union of Progressive Peoples - [customname]" + P.info = fax_message.data + P.update_icon() + + playsound(F.loc, "sound/machines/fax.ogg", 15) + + // Stamps + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-upp" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
This paper has been stamped by the Union of Progressive Peoples Quantum Relay (tm)." + + to_chat(src.owner, "Message reply to transmitted successfully.") + message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) + return + to_chat(src.owner, "/red Unable to locate fax!") + + else if(href_list["CLFFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["CLFFaxReply"]) + var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) + + var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) + if(!template_choice) return + var/datum/fax/fax_message + switch(template_choice) + if("Custom") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via secure connection. NOTE: BBCode does not work, but HTML tags do! Use
for line breaks.", "Outgoing message from CLF", "") as message|null + if(!input) + return + fax_message = new(input) + if("Template") + var/subject = input(src.owner, "Enter subject line", "Outgoing message from CLF", "") as message|null + if(!subject) + return + var/addressed_to = "" + var/address_option = tgui_input_list(usr, "Address it to the sender or custom?", "Fax Template", list("Sender", "Custom")) + if(address_option == "Sender") + addressed_to = "[H.real_name]" + else if(address_option == "Custom") + addressed_to = input(src.owner, "Enter Addressee Line", "Outgoing message from CLF", "") as message|null + if(!addressed_to) + return + else + return + var/message_body = input(src.owner, "Enter Message Body, use

for paragraphs", "Outgoing message from CLF", "") as message|null + if(!message_body) + return + var/sent_by = input(src.owner, "Enter JUST the name you are sending this from", "Outgoing message from CLF", "") as message|null + if(!sent_by) + return + fax_message = new(generate_templated_fax(0, "COLONIAL LIBERATION FRONT - COLONIAL COUNCIL OF LIBERATION", subject, addressed_to, message_body, sent_by, "Guerilla Forces Command", "Colonial Liberation Front")) + show_browser(usr, "[fax_message.data]", "PREVIEW OF CLF FAX", "size=500x400") + var/send_choice = tgui_input_list(usr, "Send this fax?", "Fax Confirmation", list("Send", "Cancel")) + if(send_choice != "Send") + return + GLOB.fax_contents += fax_message // save a copy + + var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null + if(!customname) + return + + GLOB.CLFFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") //Add replies so that mods know what the hell is goin on with the RP + + var/msg_ghost = SPAN_NOTICE("COLONIAL LIBERATION FRONT FAX REPLY: ") + msg_ghost += "Transmitting '[customname]' via secure connection ... " + msg_ghost += "view message" + announce_fax( ,msg_ghost) + + for(var/obj/structure/machinery/faxmachine/F in GLOB.machines) + if(F == fax) + if(!(F.inoperable())) + + // animate! it's alive! + flick("faxreceive", F) + + // give the sprite some time to flick + spawn(20) + var/obj/item/paper/P = new /obj/item/paper( F.loc ) + P.name = "Colonial Liberation Front - [customname]" + P.info = fax_message.data + P.update_icon() + + playsound(F.loc, "sound/machines/fax.ogg", 15) + + // Stamps + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-clf" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
This paper has been stamped and encrypted by the Colonial Liberation Front Quantum Relay (tm)." + + to_chat(src.owner, "Message reply to transmitted successfully.") + message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) + return + to_chat(src.owner, "/red Unable to locate fax!") + else if(href_list["CMBFaxReply"]) var/mob/living/carbon/human/H = locate(href_list["CMBFaxReply"]) var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) diff --git a/icons/obj/items/paper.dmi b/icons/obj/items/paper.dmi index fa8858e8a17b..b15d4be6076d 100644 Binary files a/icons/obj/items/paper.dmi and b/icons/obj/items/paper.dmi differ