Files
CHOMPStation2/code/WorkInProgress/kilakk/fax.dm
Kilakk 6d2cd82a14 Added a fax machine to send messages to centcom with.
* Formatting can be seen by admins
* HTML tags can be used in replies
* Replies are sent directly to the fax machine and have a fancy stamp on them
* Currently uses access_lawyer but this might change
2013-08-18 14:39:08 -04:00

149 lines
4.3 KiB
Plaintext

/obj/machinery/faxmachine
name = "fax machine"
icon = 'icons/obj/library.dmi'
icon_state = "bigscanner"
req_access = list(access_lawyer)
anchored = 1
density = 1
use_power = 1
idle_power_usage = 30
active_power_usage = 200
power_channel = EQUIP
var/obj/item/weapon/card/id/scan = null // identification
var/authenticated = 0
var/obj/item/weapon/paper/tofax = null // what we're sending to central
var/sendcooldown = 0 // to avoid spamming fax messages
attack_ai(mob/user as mob)
return attack_hand(user)
attack_paw(mob/user as mob)
return attack_hand(user)
attack_hand(mob/user as mob)
user.set_machine(src)
var/dat = "Central Command Fax Machine<BR>"
var/scan_name
if(scan)
scan_name = scan.name
else
scan_name = "--------"
dat += "Confirm Identity: <a href='byond://?src=\ref[src];scan=1'>[scan_name]</a><br>"
if(authenticated)
dat += "<a href='byond://?src=\ref[src];logout=1'>{Log Out}</a>"
else
dat += "<a href='byond://?src=\ref[src];auth=1'>{Log In}</a>"
dat += "<hr>"
if(authenticated)
dat += "<b>Logged in to:</b> Central Command Quantum Entanglement Network<br><br>"
if(tofax)
dat += "<a href='byond://?src=\ref[src];remove=1'>Remove Paper</a><br><br>"
if(sendcooldown)
dat += "<b>Transmitter arrays realigning. Please stand by.</b><br>"
else
dat += "<a href='byond://?src=\ref[src];send=1'>Send</a><br>"
dat += "<b>Currently sending:</b> [tofax.name]"
else
if(sendcooldown)
dat += "Please insert paper to send to Central Command via secure connection.<br><br>"
dat += "<b>Transmitter arrays realigning. Please stand by.</b><br>"
else
dat += "Please insert paper to send to Central Command via secure connection.<br><br>"
else
dat += "Proper authentication is required to use this device.<br><br>"
if(tofax)
dat += "<a href ='byond://?src=\ref[src];remove=1'>Remove Paper</a><br>"
user << browse(dat, "window=copier")
onclose(user, "copier")
return
Topic(href, href_list)
if(href_list["send"])
if(tofax)
Centcomm_fax(tofax.info, tofax.name, usr)
usr << "Message transmitted."
sendcooldown = 1
spawn(3000) // three minute cooldown. might mess with this number a bit as time goes on
sendcooldown = 0
if(href_list["remove"])
if(tofax)
tofax.loc = usr.loc
usr.put_in_hands(tofax)
usr << "<span class='notice'>You take the paper out of \the [src].</span>"
tofax = null
if(href_list["scan"])
if (scan)
if(ishuman(usr))
scan.loc = usr.loc
if(!usr.get_active_hand())
usr.put_in_hands(scan)
scan = null
else
scan.loc = src.loc
scan = null
else
var/obj/item/I = usr.get_active_hand()
if (istype(I, /obj/item/weapon/card/id))
usr.drop_item()
I.loc = src
scan = I
authenticated = 0
if(href_list["auth"])
if ( (!( authenticated ) && (scan)) )
if (check_access(scan))
authenticated = 1
if(href_list["logout"])
authenticated = 0
updateUsrDialog()
attackby(obj/item/O as obj, mob/user as mob)
if(istype(O, /obj/item/weapon/paper))
if(!tofax)
user.drop_item()
tofax = O
O.loc = src
user << "<span class='notice'>You insert the paper into \the [src].</span>"
flick("bigscanner1", src)
updateUsrDialog()
else
user << "<span class='notice'>There is already something in \the [src].</span>"
else if(istype(O, /obj/item/weapon/card/id))
var/obj/item/weapon/card/id/idcard = O
if(!scan)
usr.drop_item()
idcard.loc = src
scan = idcard
else if(istype(O, /obj/item/weapon/wrench))
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
anchored = !anchored
user << "<span class='notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>"
return
/proc/Centcomm_fax(var/sent, var/sentname, var/mob/Sender)
var/msg = "\blue <b><font color='orange'>CENTCOMM FAX: </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>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<a href='?_src_=holder;CentcommFaxReply=\ref[Sender]'>RPLY</a>)</b>: Receiving '[sentname]' via secure connection ... <a href='?_src_=holder;CentcommFaxView=\ref[sent]'>view message</a>"
admins << msg