/obj/machinery/computer/prisoner name = "prisoner management console" desc = "Used to manage tracking implants placed inside criminals." icon_screen = "explosive" icon_keyboard = "security_key" req_access = list(access_brig) var/id = 0 var/temp = null var/status = 0 var/timeleft = 60 var/stop = 0 var/screen = 0 // 0 - No Access Denied, 1 - Access allowed var/obj/item/weapon/card/id/prisoner/inserted_id circuit = /obj/item/weapon/circuitboard/computer/prisoner /obj/machinery/computer/prisoner/attack_hand(mob/user) if(..()) return user.set_machine(src) var/dat = "" if(screen == 0) dat += "
Unlock Console" else if(screen == 1) dat += "

Prisoner ID Management

" if(inserted_id) dat += text("[inserted_id]
") dat += text("Collected Points: [inserted_id.points]. Reset.
") dat += text("Card goal: [inserted_id.goal]. Set
") dat += text("Space Law recommends quotas of 100 points per minute they would normally serve in the brig.
") else dat += text("Insert Prisoner ID.
") dat += "

Prisoner Implant Management

" dat += "
Chemical Implants
" var/turf/Tr = null for(var/obj/item/weapon/implant/chem/C in tracked_chem_implants) Tr = get_turf(C) if((Tr) && (Tr.z != src.z)) continue//Out of range if(!C.implanted) continue dat += "ID: [C.imp_in.name] | Remaining Units: [C.reagents.total_volume]
" dat += "| Inject: " dat += "((1))" dat += "((5))" dat += "((10))
" dat += "********************************
" dat += "
Tracking Implants
" for(var/obj/item/weapon/implant/tracking/T in tracked_implants) if(!iscarbon(T.imp_in)) continue if(!T.implanted) continue Tr = get_turf(T) if((Tr) && (Tr.z != src.z)) continue//Out of range var/loc_display = "Unknown" var/mob/living/carbon/M = T.imp_in if(Tr.z == ZLEVEL_STATION && !isspaceturf(M.loc)) var/turf/mob_loc = get_turf(M) loc_display = mob_loc.loc dat += "ID: [T.imp_in.name] | Location: [loc_display]
" dat += "(Message Holder) |
" dat += "********************************
" dat += "
Lock Console" //user << browse(dat, "window=computer;size=400x500") //onclose(user, "computer") var/datum/browser/popup = new(user, "computer", "Prisoner Management Console", 400, 500) popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() return /obj/machinery/computer/prisoner/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/card/id)) return attack_hand(user) else return ..() /obj/machinery/computer/prisoner/process() if(!..()) src.updateDialog() return /obj/machinery/computer/prisoner/Topic(href, href_list) if(..()) return if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) usr.set_machine(src) if(href_list["id"]) if(href_list["id"] =="insert" && !inserted_id) var/obj/item/weapon/card/id/prisoner/I = usr.get_active_held_item() if(istype(I)) if(!usr.drop_item()) return I.loc = src inserted_id = I else usr << "No valid ID." else if(inserted_id) switch(href_list["id"]) if("eject") inserted_id.loc = get_turf(src) inserted_id.verb_pickup() inserted_id = null if("reset") inserted_id.points = 0 if("setgoal") var/num = round(input(usr, "Choose prisoner's goal:", "Input an Integer", null) as num|null) if(num >= 0) num = min(num,1000) //Cap the quota to the equivilent of 10 minutes. inserted_id.goal = num else if(href_list["inject1"]) var/obj/item/weapon/implant/I = locate(href_list["inject1"]) in tracked_chem_implants if(I && istype(I)) I.activate(1) else if(href_list["inject5"]) var/obj/item/weapon/implant/I = locate(href_list["inject5"]) in tracked_chem_implants if(I && istype(I)) I.activate(5) else if(href_list["inject10"]) var/obj/item/weapon/implant/I = locate(href_list["inject10"]) in tracked_chem_implants if(I && istype(I)) I.activate(10) else if(href_list["lock"]) if(src.allowed(usr)) screen = !screen else usr << "Unauthorized Access." else if(href_list["warn"]) var/warning = copytext(sanitize(input(usr,"Message:","Enter your message here!","")),1,MAX_MESSAGE_LEN) if(!warning) return var/obj/item/weapon/implant/I = locate(href_list["warn"]) in tracked_chem_implants if(I && istype(I) && I.imp_in) var/mob/living/carbon/R = I.imp_in R << "You hear a voice in your head saying: '[warning]'" log_say("[usr]/[usr.ckey] sent an implant message to [R]/[R.ckey]: '[warning]'") src.add_fingerprint(usr) src.updateUsrDialog() return