Adds PENLITE holobarriers (#39344)

Adds a simple way to quarantine individuals but doesn't make it roundstart, as it has potential to make 2 antags have a very difficult time: Bad virologists and (mainly) sentient diseases. Uses a sliver of silver because of this.

It uses the exact same proc as the MEDHUD, so it CAN be countered by buffing stealth. Virologists can also activate the free-access so long as they do it while not infected with anything bad.

That said, it has a build delay and is relatively easy to destroy. Think of it as a more obvious visual for people without huds to know "hey, I should probably avoid everyone else until I get better" and not necessarily an actual barrier device.

sprites edited by me if you like them, by someone else if you don't!
This commit is contained in:
Grandmother of 50
2018-07-29 13:40:47 +12:00
committed by oranges
parent 55f4cce798
commit 9e4df6aa78
5 changed files with 59 additions and 3 deletions
+39 -1
View File
@@ -97,6 +97,44 @@
if(istype(P, /obj/item/projectile/beam/disabler))
take_damage(5, BRUTE, "melee", 1) //Disablers aren't harmful.
/obj/structure/holosign/barrier/medical
name = "\improper PENLITE holobarrier"
desc = "A holobarrier that uses biometrics to detect human viruses. Denies passing to personnel with easily-detected, malicious viruses. Good for quarantines."
icon_state = "holo_medical"
alpha = 125 //lazy :)
layer = ABOVE_MOB_LAYER
var/force_allaccess = FALSE
var/buzzcd = 0
/obj/structure/holosign/barrier/medical/examine(mob/user)
..()
to_chat(user,"<span class='notice'>The biometric scanners are <b>[force_allaccess ? "off" : "on"]</b>.</span>")
/obj/structure/holosign/barrier/medical/CanPass(atom/movable/mover, turf/target)
icon_state = "holo_medical"
if(force_allaccess)
return TRUE
if(ishuman(mover))
var/mob/living/carbon/human/sickboi = mover
var/threat = sickboi.check_virus()
switch(threat)
if(DISEASE_SEVERITY_MINOR, DISEASE_SEVERITY_MEDIUM, DISEASE_SEVERITY_HARMFUL, DISEASE_SEVERITY_DANGEROUS, DISEASE_SEVERITY_BIOHAZARD)
if(buzzcd < world.time)
playsound(get_turf(src),'sound/machines/buzz-sigh.ogg',65,1,4)
buzzcd = (world.time + 60)
icon_state = "holo_medical-deny"
return FALSE
else
return TRUE //nice or benign diseases!
return TRUE
/obj/structure/holosign/barrier/medical/attack_hand(mob/living/user)
if(CanPass(user) && user.a_intent == INTENT_HELP)
force_allaccess = !force_allaccess
to_chat(user, "<span class='warning'>You [force_allaccess ? "deactivate" : "activate"] the biometric scanners.</span>") //warning spans because you can make the station sick!
else
return ..()
/obj/structure/holosign/barrier/cyborg/hacked
name = "Charged Energy Field"
desc = "A powerful energy field that blocks movement. Energy arcs off it."
@@ -130,4 +168,4 @@
var/mob/living/M = AM
M.electrocute_act(15,"Energy Barrier", safety=1)
shockcd = TRUE
addtimer(CALLBACK(src, .proc/cooldown), 5)
addtimer(CALLBACK(src, .proc/cooldown), 5)