From 44efff94e3c18054a6aac329724d3597a7ddbfb5 Mon Sep 17 00:00:00 2001 From: Kyep Date: Thu, 16 Jun 2016 02:30:32 -0700 Subject: [PATCH] Initial Checkin - Borging Fax - Modifies faxmachine.dm to add a "BP" option for admins when responding to faxes. - Modifies admin/topic.dm to ensure this BP option spawns a Borging Paper at the fax machine the butt fax was sent from. - Modified paper.dm to add a new type of paper, Borging Paper, which will give its intended victim (and only them) borging nanomachines when read. It doesn't work on anyone else and disintegrates after multiple use attempts. --- code/modules/admin/topic.dm | 34 ++++++++++++++++++++++++++++ code/modules/paperwork/faxmachine.dm | 2 +- code/modules/paperwork/paper.dm | 20 ++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index dc7cc24d6b7..25a64620a70 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1671,6 +1671,40 @@ message_admins("[key_name_admin(src.owner)] replied to [key_name_admin(H)]'s Centcom message with: \"[input]\"") to_chat(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["BorgingFax"]) + if(!check_rights(R_ADMIN)) + return + var/mob/living/carbon/human/H = locate(href_list["BorgingFax"]) + if(!istype(H)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human") + return + if(alert(src.owner, "Are you sure you want to send [key_name(H)] a demotion fax that will borg them when they read it?", "Confirm?" , "Yes" , "No") != "Yes") + return + var/obj/item/weapon/paper/borging/P = new /obj/item/weapon/paper/borging(null) + var/obj/machinery/photocopier/faxmachine/fax = locate(href_list["originfax"]) + P.name = "paper" + P.info = "A reminder: per the terms of your contract, stupid faxes will get you demoted." + P.x = rand(-2, 0) + P.y = rand(-1, 2) + P.offset_x += P.x + P.offset_y += P.y + P.update_icon() + var/stampvalue = "cent" + var/image/stampoverlay = image('icons/obj/bureaucracy.dmi') + stampoverlay.icon_state = "paper_stamp-[stampvalue]" + P.stamped = list() + P.stamped += /obj/item/weapon/stamp/centcom + P.overlays += stampoverlay + P.stamps += "
" + P.borgtarget = H + P.update_icon() + P.loc = fax.loc + //fax.receivefax(P) + if(istype(H) && H.stat == CONSCIOUS && (istype(H.l_ear, /obj/item/device/radio/headset) || istype(H.r_ear, /obj/item/device/radio/headset))) + to_chat(H, "Your headset pings, notifying you that a reply to your fax has arrived.") + to_chat(src.owner, "You sent a borging fax to [H]") + log_admin("[key_name(src.owner)] sent [key_name(H)] a borging fax") + message_admins("[key_name_admin(src.owner)] replied to [key_name_admin(H)] with a borging fax") else if(href_list["SyndicateReply"]) if(!check_rights(R_ADMIN)) return diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index 23a0f3eec7e..4dc653afafd 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -261,7 +261,7 @@ var/list/alldepartments = list() /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) ([admin_jump_link(sender, "holder")]) (CA) (BSA) (REPLY): Receiving '[sent.name]' via secure connection... view message" + var/msg = "\blue [faxname]: [key_name(sender, 1)] (PP) (VV) (SM) ([admin_jump_link(sender, "holder")]) (CA) (BSA) (BP) (REPLY): Receiving '[sent.name]' via secure connection... view message" for(var/client/C in admins) if(R_EVENT & C.holder.rights) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index bf847a06c0a..3038fe11628 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -618,3 +618,23 @@ /obj/item/weapon/paper/crumpled/bloody icon_state = "scrap_bloodied" + +/obj/item/weapon/paper/borging + name = "Centcomm Reply" + info = "You're Fired." + var/borgtarget = null + var/used = 0 + +/obj/item/weapon/paper/borging/show_content(var/mob/user, var/forceshow = 0, var/forcestars = 0, var/infolinks = 0, var/view = 1) + if (used) + to_chat(user,"The paper disintegrates in your hands!") + qdel(src) + else if (user == borgtarget) + if (istype(user, /mob/living/carbon)) + var/mob/living/carbon/C = user + C.ForceContractDisease(new /datum/disease/transformation/robot(0)) + to_chat(C,"The paper appears to be covered in red goo!") + used = 1 + ..() + else + to_chat(user,"This page appears to be covered in some sort of bizzare code. Perhaps [borgtarget] can make sense of it.") \ No newline at end of file