mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
Merge pull request #4694 from Kyep/bsafax
Improved Fax Options (fax templates, borging paper, etc)
This commit is contained in:
@@ -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'
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user