Files
Aurora.3/code/game/machinery/computer/prisoner.dm
2020-09-14 11:00:14 +02:00

97 lines
3.4 KiB
Plaintext

/obj/machinery/computer/prisoner
name = "prisoner management console"
desc = "A console that can be used to track tracking implants, and deliver an activation signal to chemical implants."
icon_screen = "explosive"
light_color = LIGHT_COLOR_ORANGE
req_access = list(access_armory)
circuit = /obj/item/circuitboard/prisoner
var/id = 0.0
var/temp = null
var/status = 0
var/timeleft = 60
var/stop = 0.0
var/screen = 0 // 0 - No Access Denied, 1 - Access allowed
/obj/machinery/computer/prisoner/attack_ai(mob/user)
return src.attack_hand(user)
/obj/machinery/computer/prisoner/attack_hand(mob/user)
if(..())
return
user.set_machine(src)
var/dat
dat += "<B>Prisoner Implant Manager System</B><BR>"
if(screen == 0)
dat += "<HR><A href='?src=\ref[src];lock=1'>Unlock Console</A>"
else if(screen == 1)
dat += "<HR>Chemical Implants<BR>"
var/turf/Tr = null
for(var/obj/item/implant/chem/C in implants)
Tr = get_turf(C)
if(Tr && !isStationLevel(Tr.z)) continue//Out of range
if(!C.implanted) continue
dat += "[C.imp_in.name] | Remaining Units: [C.reagents.total_volume] | Inject: "
dat += "<A href='?src=\ref[src];inject1=\ref[C]'>(<font color=red>(1)</font>)</A>"
dat += "<A href='?src=\ref[src];inject5=\ref[C]'>(<font color=red>(5)</font>)</A>"
dat += "<A href='?src=\ref[src];inject10=\ref[C]'>(<font color=red>(10)</font>)</A><BR>"
dat += "********************************<BR>"
dat += "<HR>Tracking Implants<BR>"
for(var/obj/item/implant/tracking/T in implants)
Tr = get_turf(T)
if(Tr && !isStationLevel(Tr.z)) continue//Out of range
if(!T.implanted) continue
var/loc_display = "Unknown"
var/mob/living/carbon/M = T.imp_in
if(isStationLevel(M.z) && !istype(M.loc, /turf/space))
var/turf/mob_loc = get_turf(M)
loc_display = mob_loc.loc
if(T.malfunction)
loc_display = pick(teleportlocs)
dat += "ID: [T.id] | Location: [loc_display]<BR>"
dat += "<A href='?src=\ref[src];warn=\ref[T]'>(<font color=red><i>Message Holder</i></font>)</A> |<BR>"
dat += "********************************<BR>"
dat += "<HR><A href='?src=\ref[src];lock=1'>Lock Console</A>"
var/datum/browser/computer_win = new(user, "computer", capitalize_first_letters(name), 400, 500)
computer_win.set_content(dat)
computer_win.open()
/obj/machinery/computer/prisoner/process()
if(!..())
src.updateDialog()
/obj/machinery/computer/prisoner/Topic(href, href_list)
if(..())
return
if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.set_machine(src)
if(href_list["inject1"])
var/obj/item/implant/I = locate(href_list["inject1"])
if(I) I.activate(1)
else if(href_list["inject5"])
var/obj/item/implant/I = locate(href_list["inject5"])
if(I) I.activate(5)
else if(href_list["inject10"])
var/obj/item/implant/I = locate(href_list["inject10"])
if(I) I.activate(10)
else if(href_list["lock"])
if(src.allowed(usr))
screen = !screen
else
to_chat(usr, "Unauthorized Access.")
else if(href_list["warn"])
var/warning = sanitize(input(usr,"Message:","Enter your message here!",""))
if(!warning) return
var/obj/item/implant/I = locate(href_list["warn"])
if((I)&&(I.imp_in))
var/mob/living/carbon/R = I.imp_in
to_chat(R, "<span class='notice'>You hear a voice in your head saying: '[warning]'</span>")
src.add_fingerprint(usr)
src.updateUsrDialog()