diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm
index 6c5f995362b..c42b1811c26 100644
--- a/code/game/machinery/computer/prisoner.dm
+++ b/code/game/machinery/computer/prisoner.dm
@@ -61,9 +61,9 @@
var/loc_display = "Unknown"
var/health_display = "OK"
var/total_loss = round(M.getOxyLoss() + M.getToxLoss() + M.getFireLoss() + M.getBruteLoss(), 1)
- if (M.stat > UNCONSCIOUS)
+ if(M.stat == DEAD)
health_display = "DEAD"
- else if (total_loss)
+ else if(total_loss)
health_display = "HURT ([total_loss])"
if((M.z in config.station_levels) && !istype(M.loc, /turf/space))
loc_display = "[get_area(M)]"
diff --git a/code/game/objects/items/control_wand.dm b/code/game/objects/items/control_wand.dm
index b04ed35fe75..07a1d2b4e92 100644
--- a/code/game/objects/items/control_wand.dm
+++ b/code/game/objects/items/control_wand.dm
@@ -134,10 +134,18 @@
if (!istype(I))
to_chat(user,"[H] is not wearing an ID.")
return
- if (emagged)
- visible_message(J,"[J] emits an error tone.")
+ if (J.emagged)
+ to_chat(user, "[J] emits an error tone.")
+ else if (J.emped)
+ to_chat(user, "The circuits on [J] appear to be fried.")
else if (J.parole_locked && J.flags & NODROP && I.flags & NODROP)
J.unlock()
+ else if (access_heads in I.access)
+ to_chat(user, "[J] cannot be locked on someone wearing an ID with head access. They might need to use their ID on a keycard swiper.")
+ return
+ else if (access_security in I.access)
+ to_chat(user, "[J] cannot be locked on someone wearing an ID with security access.")
+ return
else if (!J.parole_locked && !(J.flags & NODROP) && !(I.flags & NODROP))
J.lock(I)
else
diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm
index a64e6047db8..8c049b9cdea 100644
--- a/code/modules/clothing/under/color.dm
+++ b/code/modules/clothing/under/color.dm
@@ -106,35 +106,36 @@
/obj/item/clothing/under/color/yellow/parole
name = "parole jumpsuit"
- desc = ""
- var/desc_locked = "A jumpsuit worn by parolees. Its suit sensors are always fully on. It is LOCKED."
- var/desc_unlocked = "A jumpsuit worn by parolees. Its suit sensors are always fully on. It is UNLOCKED."
+ desc = "A jumpsuit worn by parolees. Its suit sensors are always fully on. Its lock light is OFF."
+ var/desc_locked = "A jumpsuit worn by parolees. Its suit sensors are always fully on. Its lock light is ON."
+ var/desc_emagged = "A jumpsuit worn by parolees. Its suit sensors are always fully on. Its lock light is BLINKING."
+ var/desc_emped = "A jumpsuit worn by parolees. Its suit sensors are always fully on. Its lock light is FLICKERING."
has_sensor = 2
sensor_mode = 3
var/parole_locked = 0
var/emagged = 0
+ var emped = 0
var/obj/item/weapon/card/id/parole_id = null
var/mob/living/carbon/human/worn_by = null
-/obj/item/clothing/under/color/yellow/parole/New()
- ..()
- desc = desc_unlocked
-
/obj/item/clothing/under/color/yellow/parole/emag_act(user as mob)
if(parole_locked && !emagged)
to_chat(user, "\red You overload the suit's locking mechanism.")
- emagged = 1
unlock()
+ emagged = 1
+ desc = desc_emagged
/obj/item/clothing/under/color/yellow/parole/emp_act(var/severity)
if(parole_locked && !emagged && prob(30))
unlock()
+ emped = 1
+ desc = desc_emped
/obj/item/clothing/under/color/yellow/parole/proc/unlock()
worn_by = loc
flags &= ~NODROP
parole_locked = 0
- desc = desc_unlocked
+ desc = initial(desc)
parole_id.flags &= ~NODROP
parole_id = null
playsound(loc, 'sound/machines/click.ogg', 10, 1)