Merge pull request #4694 from Kyep/bsafax

Improved Fax Options (fax templates, borging paper, etc)
This commit is contained in:
TheDZD
2016-06-19 19:39:25 -04:00
committed by GitHub
4 changed files with 198 additions and 13 deletions
+4 -3
View File
@@ -260,9 +260,10 @@ var/list/alldepartments = list()
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 <b><font color='[font_colour]'>[faxname]: </font>[key_name(sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[sender]'>SM</A>) ([admin_jump_link(sender, "holder")]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[sender]'>BSA</A>) (<a href='?_src_=holder;AdminFaxCreate=\ref[sender];originfax=\ref[src];faxtype=[faxtype];replyto=\ref[sent]'>REPLY</a>)</b>: Receiving '[sent.name]' via secure connection... <a href='?_src_=holder;AdminFaxView=\ref[sent]'>view message</a>"
/obj/machinery/photocopier/faxmachine/proc/message_admins(var/mob/sender, var/faxname, var/faxtype, var/obj/item/sent, font_colour="#9A04D1")
var/msg = "\blue <b><font color='[font_colour]'>[faxname]: </font>[key_name(sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[sender]'>VV</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) ([admin_jump_link(sender, "holder")]) | REPLY: (<A HREF='?_src_=holder;CentcommReply=\ref[sender]'>RADIO</A>) (<a href='?_src_=holder;AdminFaxCreate=\ref[sender];originfax=\ref[src];faxtype=[faxtype];replyto=\ref[sent]'>FAX</a>) (<A HREF='?_src_=holder;subtlemessage=\ref[sender]'>SM</A>) | REJECT: (<A HREF='?_src_=holder;FaxReplyTemplate=\ref[sender];originfax=\ref[src]'>TEMPLATE</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[sender]'>BSA</A>) (<A HREF='?_src_=holder;EvilFax=\ref[sender];originfax=\ref[src]'>EVILFAX</A>) </b>: Receiving '[sent.name]' via secure connection... <a href='?_src_=holder;AdminFaxView=\ref[sent]'>view message</a>"
for(var/client/C in admins)
if(R_EVENT & C.holder.rights)
to_chat(C, msg)
if(C.prefs.sound & SOUND_ADMINHELP)
C << 'sound/effects/adminhelp.ogg'
+82
View File
@@ -620,3 +620,85 @@
/obj/item/weapon/paper/crumpled/bloody
icon_state = "scrap_bloodied"
/obj/item/weapon/paper/evilfax
name = "Centcomm Reply"
info = ""
var/mytarget = null
var/myeffect = null
var/used = 0
var/countdown = 60
var/activate_on_timeout = 0
/obj/item/weapon/paper/evilfax/show_content(var/mob/user, var/forceshow = 0, var/forcestars = 0, var/infolinks = 0, var/view = 1)
if(user == mytarget)
if(istype(user, /mob/living/carbon))
var/mob/living/carbon/C = user
evilpaper_specialaction(C)
..()
else
// This should never happen, but just in case someone is adminbussing
evilpaper_selfdestruct()
else
if(mytarget)
to_chat(user,"<span class='notice'>This page appears to be covered in some sort of bizzare code. The only bit you recognize is the name of [mytarget]. Perhaps [mytarget] can make sense of it?</span>")
else
evilpaper_selfdestruct()
/obj/item/weapon/paper/evilfax/New()
..()
processing_objects.Add(src)
/obj/item/weapon/paper/evilfax/Destroy()
processing_objects.Remove(src)
if(mytarget && !used)
var/mob/living/carbon/target = mytarget
target.ForceContractDisease(new /datum/disease/transformation/corgi(0))
return ..()
/obj/item/weapon/paper/evilfax/process()
if(!countdown)
if(mytarget)
if(activate_on_timeout)
evilpaper_specialaction(mytarget)
else
message_admins("[mytarget] ignored an evil fax until it timed out.")
else
message_admins("Evil paper '[src]' timed out, after not being assigned a target.")
used = 1
evilpaper_selfdestruct()
else
countdown--
/obj/item/weapon/paper/evilfax/proc/evilpaper_specialaction(var/mob/living/carbon/target)
spawn(30)
if(istype(target,/mob/living/carbon))
if(myeffect == "borging")
target.ForceContractDisease(new /datum/disease/transformation/robot(0))
else if(myeffect == "corgifying")
target.ForceContractDisease(new /datum/disease/transformation/corgi(0))
else if(myeffect == "firedeath")
var/turf/simulated/T = get_turf(target)
new /obj/effect/hotspot(T)
target.adjustFireLoss(150) // hard crit, the burning takes care of the rest.
else if(myeffect == "braindeath")
to_chat(target,"<span class='userdanger'>A series of bright lights flash across your vision: COGNITOHAZARD YHWH-3 ACTIVATED</span>")
target.mutations.Add(NOCLONE)
target.adjustBrainLoss(125)
else if(myeffect == "honktumor")
if(!target.get_int_organ(/obj/item/organ/internal/honktumor))
var/obj/item/organ/internal/organ = new /obj/item/organ/internal/honktumor
organ.insert(target)
else if(myeffect == "demotion")
command_announcement.Announce("[mytarget] is hereby demoted to the rank of Civilian. Process this demotion immediately. Failure to comply with these orders is grounds for termination.","CC Demotion Order")
else
message_admins("Evil paper [src] was activated without a proper effect set! This is a bug.")
used = 1
evilpaper_selfdestruct()
/obj/item/weapon/paper/evilfax/proc/evilpaper_selfdestruct()
visible_message("<span class='danger'>[src] spontaneously catches fire, and burns up!</span>")
qdel(src)