diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
index 9b37207774e..d3b642f649a 100644
--- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
@@ -379,6 +379,7 @@
update_icon()
else
user << "The welding tool needs to be on to start this task."
+ return 1
else
user << "You need more welding fuel to complete this task."
return 1
diff --git a/code/ZAS/Plasma.dm b/code/ZAS/Plasma.dm
index c67c5b47bcd..6ff169ae97d 100644
--- a/code/ZAS/Plasma.dm
+++ b/code/ZAS/Plasma.dm
@@ -89,7 +89,7 @@ obj/var/contaminated = 0
if(vsc.plc.SKIN_BURNS)
if(!pl_head_protected() || !pl_suit_protected())
burn_skin(0.75)
- if(prob(20)) src << "\red Your skin burns!"
+ if(prob(20)) src << "Your skin burns!"
updatehealth()
//Burn eyes if exposed.
@@ -119,19 +119,23 @@ obj/var/contaminated = 0
if(vsc.plc.GENETIC_CORRUPTION)
if(rand(1,10000) < vsc.plc.GENETIC_CORRUPTION)
randmutb(src)
- src << "\red High levels of toxins cause you to spontaneously mutate."
+ src << "High levels of toxins cause you to spontaneously mutate."
domutcheck(src,null)
/mob/living/carbon/human/proc/burn_eyes()
//The proc that handles eye burning.
- if(prob(20)) src << "\red Your eyes burn!"
+ if(!species.has_organ["eyes"])
+ return
+
var/obj/item/organ/eyes/E = internal_organs_by_name["eyes"]
- E.damage += 2.5
- eye_blurry = min(eye_blurry+1.5,50)
- if (prob(max(0,E.damage - 15) + 1) && !eye_blind)
- src << "\red You are blinded!"
- eye_blind += 20
+ if(E && !(E.status & ORGAN_ROBOT))
+ if(prob(20)) src << "Your eyes burn!"
+ E.damage += 2.5
+ eye_blurry = min(eye_blurry+1.5,50)
+ if (prob(max(0,E.damage - 15) + 1) && !eye_blind)
+ src << "You are blinded!"
+ eye_blind += 20
/mob/living/carbon/human/proc/pl_head_protected()
//Checks if the head is adequately sealed.
diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm
index fbe12bd5342..c8dc3883819 100644
--- a/code/game/objects/items/weapons/grenades/flashbang.dm
+++ b/code/game/objects/items/weapons/grenades/flashbang.dm
@@ -44,8 +44,11 @@
if (E) E.damage += rand(1, 3)
M.Stun(max(10/distance, 3))
M.Weaken(max(10/distance, 3))
- if (E && E.damage >= E.min_bruised_damage)
- M << "Your eyes start to burn badly!"
+ if (istype(E) && E.damage >= E.min_bruised_damage)
+ if(!(E.status & ORGAN_ROBOT))
+ M << "Your eyes start to burn badly!"
+ else
+ M << "The flash blinds you!"
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
if (E.damage >= E.min_broken_damage)
M << "You can't see anything!"
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index b94337a118c..79f94596a76 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -368,36 +368,36 @@
/obj/item/weapon/weldingtool/proc/eyecheck(mob/user as mob)
if(!iscarbon(user)) return 1
var/safety = user:eyecheck()
- if(istype(user, /mob/living/carbon/human))
+ if(ishuman(user))
var/mob/living/carbon/human/H = user
var/obj/item/organ/eyes/E = H.internal_organs_by_name["eyes"]
- if(!E) // No eyes? No problem!
+ if(!istype(E) || (E.status & ORGAN_ROBOT)) // No eyes or robotic eyes? No problem!
return
switch(safety)
if(1)
- usr << "\red Your eyes sting a little."
+ usr << "Your eyes sting a little."
E.damage += rand(1, 2)
if(E.damage > 12)
user.eye_blurry += rand(3,6)
if(0)
- usr << "\red Your eyes burn."
+ usr << "Your eyes burn."
E.damage += rand(2, 4)
if(E.damage > 10)
E.damage += rand(4,10)
if(-1)
- usr << "\red Your thermals intensify the welder's glow. Your eyes itch and burn severely."
+ usr << "Your thermals intensify the welder's glow. Your eyes itch and burn severely."
user.eye_blurry += rand(12,20)
E.damage += rand(12, 16)
if(safety<2)
if(E.damage > 10)
- user << "\red Your eyes are really starting to hurt. This can't be good for you!"
+ user << "Your eyes are really starting to hurt. This can't be good for you!"
if (E.damage >= E.min_broken_damage)
- user << "\red You go blind!"
+ user << "You go blind!"
user.sdisabilities |= BLIND
else if (E.damage >= E.min_bruised_damage)
- user << "\red You go blind!"
+ user << "You go blind!"
user.eye_blind = 5
user.eye_blurry = 5
user.disabilities |= NEARSIGHTED
diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm
index 12dd496303d..2eb9e562a61 100644
--- a/code/modules/power/supermatter/supermatter.dm
+++ b/code/modules/power/supermatter/supermatter.dm
@@ -175,9 +175,16 @@
env.merge(removed)
- for(var/mob/living/carbon/human/l in view(src, min(7, round(power ** 0.25)))) // If they can see it without mesons on. Bad on them.
- if(!istype(l.glasses, /obj/item/clothing/glasses/meson))
- l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1, get_dist(l, src)) ) ) )
+ for(var/mob/living/carbon/human/l in view(src, min(7, round(sqrt(power/6)))))
+ // If they can see it without mesons on. Bad on them.
+ if(l.glasses && istype(l.glasses, /obj/item/clothing/glasses/meson))
+ continue
+ // Where we're going, we don't need eyes.
+ // Prosthetic eyes will also protect against this business.
+ var/obj/item/organ/eyes = l.internal_organs_by_name["eyes"]
+ if(!istype(eyes) || (eyes.status & ORGAN_ROBOT))
+ continue
+ l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1,get_dist(l, src)) ) ) )
for(var/mob/living/l in range(src, round((power / 100) ** 0.25)))
var/rads = (power / 10) * sqrt( 1 / max(get_dist(l, src),1) )
diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm
index cf728cd50ed..58f1dd6ddbc 100644
--- a/code/modules/virus2/effect.dm
+++ b/code/modules/virus2/effect.dm
@@ -916,7 +916,10 @@ var/list/compatible_mobs = list(/mob/living/carbon/human)
/datum/disease2/effect/eyewater
name = "Watery Eyes"
stage = 1
- activate(var/mob/living/carbon/mob,var/multiplier)
+ activate(var/mob/living/carbon/human/mob,var/multiplier)
+ var/obj/item/organ/eyes/E = mob.internal_organs_by_name["eyes"]
+ if(!istype(E) || (E.status & ORGAN_ROBOT)) // No eyes or robotic eyes? No problem!
+ return
mob << "Your eyes sting and water!"
/datum/disease2/effect/wheeze