diff --git a/code/modules/antagonists/changeling/powers/headcrab.dm b/code/modules/antagonists/changeling/powers/headcrab.dm
index 72d8a127ab..1e06fb39de 100644
--- a/code/modules/antagonists/changeling/powers/headcrab.dm
+++ b/code/modules/antagonists/changeling/powers/headcrab.dm
@@ -25,7 +25,8 @@
to_chat(H, "You are blinded by a shower of blood!")
H.Stun(20)
H.blur_eyes(20)
- H.adjust_eye_damage(5)
+ var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES)
+ eyes?.applyOrganDamage(5)
H.confused += 3
for(var/mob/living/silicon/S in range(2,user))
to_chat(S, "Your sensors are disabled by a shower of blood!")
diff --git a/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm b/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm
index 9d241148b4..2a916c7a2f 100644
--- a/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm
+++ b/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm
@@ -48,10 +48,11 @@
/obj/item/clothing/glasses/wraith_spectacles/proc/blind_cultist(mob/living/victim)
if(iscultist(victim))
+ var/obj/item/organ/eyes/eyes = victim.getorganslot(ORGAN_SLOT_EYES)
to_chat(victim, "\"It looks like Nar'Sie's dogs really don't value their eyes.\"")
to_chat(victim, "Your eyes explode with horrific pain!")
victim.emote("scream")
- victim.become_blind(EYE_DAMAGE)
+ eyes?.applyOrganDamage(eyes.maxHealth)
victim.adjust_blurriness(30)
victim.adjust_blindness(30)
return TRUE
@@ -141,21 +142,23 @@
if(glasses_right && !WS.up && !GLOB.ratvar_awakens && !GLOB.ratvar_approaches)
apply_eye_damage(H)
else
+ var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES)
if(GLOB.ratvar_awakens)
H.cure_nearsighted(list(EYE_DAMAGE))
H.cure_blind(list(EYE_DAMAGE))
- H.adjust_eye_damage(-eye_damage_done)
+ eyes?.applyOrganDamage(-eye_damage_done)
eye_damage_done = 0
else if(prob(50) && eye_damage_done)
- H.adjust_eye_damage(-1)
+ eyes?.applyOrganDamage(-1)
eye_damage_done = max(0, eye_damage_done - 1)
if(!eye_damage_done)
qdel(src)
/datum/status_effect/wraith_spectacles/proc/apply_eye_damage(mob/living/carbon/human/H)
- if(HAS_TRAIT(H, TRAIT_BLIND))
+ var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES)
+ if(HAS_TRAIT(H, TRAIT_BLIND) || !eyes)
return
- H.adjust_eye_damage(0.5)
+ eyes.applyOrganDamage(0.5)
eye_damage_done += 0.5
if(eye_damage_done >= 20)
H.adjust_blurriness(2)
@@ -166,7 +169,7 @@
if(eye_damage_done >= blind_breakpoint)
if(!HAS_TRAIT(H, TRAIT_BLIND))
to_chat(H, "A piercing white light floods your vision. Suddenly, all goes dark!")
- H.become_blind(EYE_DAMAGE)
+ eyes.applyOrganDamage(eyes.maxHealth)
if(prob(min(20, 5 + eye_damage_done)))
to_chat(H, "Your eyes continue to burn.")
diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index 608f71cf11..889bac5faf 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -43,15 +43,16 @@
//called when thermal glasses are emped.
/obj/item/clothing/glasses/proc/thermal_overload()
- if(ishuman(src.loc))
- var/mob/living/carbon/human/H = src.loc
- if(!(HAS_TRAIT(H, TRAIT_BLIND)))
- if(H.glasses == src)
- to_chat(H, "[src] overloads and blinds you!")
- H.flash_act(visual = 1)
- H.blind_eyes(3)
- H.blur_eyes(5)
- H.adjust_eye_damage(5)
+ if(!ishuman(loc))
+ return
+ var/mob/living/carbon/human/H = loc
+ var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES)
+ if((!HAS_TRAIT(H, TRAIT_BLIND) || !eyes) && H.glasses == src)
+ to_chat(H, "[src] overloads and blinds you!")
+ H.flash_act(visual = 1)
+ H.blind_eyes(3)
+ H.blur_eyes(5)
+ eyes.applyOrganDamage(5)
/obj/item/clothing/glasses/meson
name = "optical meson scanner"
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index b0e9b808df..c5aeb2c1c7 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -355,30 +355,30 @@
if (damage == 1)
to_chat(src, "Your eyes sting a little.")
if(prob(40))
- adjust_eye_damage(1)
+ eyes.applyOrganDamage(1)
else if (damage == 2)
to_chat(src, "Your eyes burn.")
- adjust_eye_damage(rand(2, 4))
+ eyes.applyOrganDamage(rand(2, 4))
else if( damage >= 3)
to_chat(src, "Your eyes itch and burn severely!")
- adjust_eye_damage(rand(12, 16))
+ eyes.applyOrganDamage(rand(12, 16))
- if(eyes.eye_damage > 10)
+ if(eyes.damage > 10)
blind_eyes(damage)
blur_eyes(damage * rand(3, 6))
- if(eyes.eye_damage > 20)
- if(prob(eyes.eye_damage - 20))
+ if(eyes.damage > 20)
+ if(prob(eyes.damage - 20))
if(!HAS_TRAIT(src, TRAIT_NEARSIGHT))
to_chat(src, "Your eyes start to burn badly!")
become_nearsighted(EYE_DAMAGE)
- else if(prob(eyes.eye_damage - 25))
+ else if(prob(eyes.damage - 25))
if(!HAS_TRAIT(src, TRAIT_BLIND))
to_chat(src, "You can't see anything!")
- become_blind(EYE_DAMAGE)
+ eyes.applyOrganDamage(eyes.maxHealth)
else
to_chat(src, "Your eyes are really starting to hurt. This can't be good for you!")
diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm
index 26703977d2..69ec619e5d 100644
--- a/code/modules/mob/living/carbon/human/inventory.dm
+++ b/code/modules/mob/living/carbon/human/inventory.dm
@@ -191,7 +191,6 @@
if(G.vision_correction)
if(HAS_TRAIT(src, TRAIT_NEARSIGHT))
overlay_fullscreen("nearsighted", /obj/screen/fullscreen/impaired, 1)
- adjust_eye_damage(0)
if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view || !isnull(G.lighting_alpha))
update_sight()
if(!QDELETED(src))
diff --git a/code/modules/mob/living/carbon/status_procs.dm b/code/modules/mob/living/carbon/status_procs.dm
index 766bd376b1..6c497bb8d4 100644
--- a/code/modules/mob/living/carbon/status_procs.dm
+++ b/code/modules/mob/living/carbon/status_procs.dm
@@ -2,44 +2,6 @@
//The effects include: stun, knockdown, unconscious, sleeping, resting, jitteriness, dizziness, ear damage,
// eye damage, eye_blind, eye_blurry, druggy, TRAIT_BLIND trait, TRAIT_NEARSIGHT trait, and TRAIT_HUSK trait.
-/mob/living/carbon/damage_eyes(amount)
- var/obj/item/organ/eyes/eyes = getorganslot(ORGAN_SLOT_EYES)
- if (!eyes)
- return
- if(amount>0)
- eyes.eye_damage = amount
- if(eyes.eye_damage > 20)
- if(eyes.eye_damage > 30)
- overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 2)
- else
- overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 1)
-
-/mob/living/carbon/set_eye_damage(amount)
- var/obj/item/organ/eyes/eyes = getorganslot(ORGAN_SLOT_EYES)
- if (!eyes)
- return
- eyes.eye_damage = max(amount,0)
- if(eyes.eye_damage > 20)
- if(eyes.eye_damage > 30)
- overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 2)
- else
- overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 1)
- else
- clear_fullscreen("eye_damage")
-
-/mob/living/carbon/adjust_eye_damage(amount)
- var/obj/item/organ/eyes/eyes = getorganslot(ORGAN_SLOT_EYES)
- if (!eyes)
- return
- eyes.eye_damage = max(eyes.eye_damage+amount, 0)
- if(eyes.eye_damage > 20)
- if(eyes.eye_damage > 30)
- overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 2)
- else
- overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 1)
- else
- clear_fullscreen("eye_damage")
-
/mob/living/carbon/adjust_drugginess(amount)
druggy = max(druggy+amount, 0)
if(druggy)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 6ced2a05a1..5299618177 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -502,7 +502,6 @@
bodytemperature = BODYTEMP_NORMAL
set_blindness(0)
set_blurriness(0)
- set_eye_damage(0)
cure_nearsighted()
cure_blind()
cure_husk()
@@ -1221,7 +1220,8 @@
if("eye_blind")
set_blindness(var_value)
if("eye_damage")
- set_eye_damage(var_value)
+ var/obj/item/organ/eyes/E = getorganslot(ORGAN_SLOT_EYES)
+ E?.setOrganDamage(var_value)
if("eye_blurry")
set_blurriness(var_value)
if("maxHealth")
diff --git a/code/modules/mob/status_procs.dm b/code/modules/mob/status_procs.dm
index 606d6d4f66..17311daec2 100644
--- a/code/modules/mob/status_procs.dm
+++ b/code/modules/mob/status_procs.dm
@@ -134,17 +134,6 @@
/mob/proc/Dizzy(amount)
dizziness = max(dizziness,amount,0)
-/////////////////////////////////// EYE DAMAGE ////////////////////////////////////
-
-/mob/proc/damage_eyes(amount)
- return
-
-/mob/proc/adjust_eye_damage(amount)
- return
-
-/mob/proc/set_eye_damage(amount)
- return
-
/////////////////////////////////// EYE_BLIND ////////////////////////////////////
/mob/proc/blind_eyes(amount)
diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm
index ecef5a703a..f8d07862bf 100644
--- a/code/modules/paperwork/paperplane.dm
+++ b/code/modules/paperwork/paperplane.dm
@@ -44,10 +44,12 @@
return ..()
/obj/item/paperplane/suicide_act(mob/living/user)
+ var/obj/item/organ/eyes/eyes = user.getorganslot(ORGAN_SLOT_EYES)
user.Stun(200)
user.visible_message("[user] jams [src] in [user.p_their()] nose. It looks like [user.p_theyre()] trying to commit suicide!")
user.adjust_blurriness(6)
- user.adjust_eye_damage(rand(6,8))
+ if(eyes)
+ eyes.applyOrganDamage(rand(6,8))
sleep(10)
return (BRUTELOSS)
@@ -111,9 +113,11 @@
if(prob(hit_probability))
if(H.is_eyes_covered())
return
+ var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES)
visible_message("\The [src] hits [H] in the eye!")
H.adjust_blurriness(6)
- H.adjust_eye_damage(rand(6,8))
+ if(eyes)
+ eyes.applyOrganDamage(rand(6,8))
H.Knockdown(40)
H.emote("scream")
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
index bd60880324..f96acf2d71 100644
--- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
@@ -199,17 +199,17 @@ All effects don't start immediately, but rather get worse over time; the rate is
to_chat(M, "[pick("You have a really bad headache.", "Your eyes hurt.", "You find it hard to stay still.", "You feel your heart practically beating out of your chest.")]")
if(prob(5) && iscarbon(M))
+ var/obj/item/organ/eyes/eyes = M.getorganslot(ORGAN_SLOT_EYES)
if(HAS_TRAIT(M, TRAIT_BLIND))
- var/obj/item/organ/eyes/eye = M.getorganslot(ORGAN_SLOT_EYES)
- if(istype(eye))
- eye.Remove(M)
- eye.forceMove(get_turf(M))
+ if(eyes)
+ eyes.Remove(M)
+ eyes.forceMove(get_turf(M))
to_chat(M, "You double over in pain as you feel your eyeballs liquify in your head!")
M.emote("scream")
M.adjustBruteLoss(15)
else
to_chat(M, "You scream in terror as you go blind!")
- M.become_blind(EYE_DAMAGE)
+ eyes?.applyOrganDamage(eyes.maxHealth)
M.emote("scream")
if(prob(3) && iscarbon(M))
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index f31613702c..2a8ad86646 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -793,6 +793,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
var/obj/item/organ/eyes/eyes = M.getorganslot(ORGAN_SLOT_EYES)
if (!eyes)
return
+ eyes.applyOrganDamage(-2)
if(HAS_TRAIT_FROM(M, TRAIT_BLIND, EYE_DAMAGE))
if(prob(20))
to_chat(M, "Your vision slowly returns...")
@@ -807,8 +808,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
else if(M.eye_blind || M.eye_blurry)
M.set_blindness(0)
M.set_blurriness(0)
- else if(eyes.eye_damage > 0)
- M.adjust_eye_damage(-1)
..()
/datum/reagent/medicine/atropine
diff --git a/code/modules/surgery/eye_surgery.dm b/code/modules/surgery/eye_surgery.dm
index f7a06af388..28e813ccac 100644
--- a/code/modules/surgery/eye_surgery.dm
+++ b/code/modules/surgery/eye_surgery.dm
@@ -22,6 +22,7 @@
"[user] begins to perform surgery on [target]'s eyes.")
/datum/surgery_step/fix_eyes/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
+ var/obj/item/organ/eyes/E = target.getorganslot(ORGAN_SLOT_EYES)
display_results(user, target, "You succeed in fixing [target]'s eyes.",
"[user] successfully fixes [target]'s eyes!",
"[user] completes the surgery on [target]'s eyes.")
@@ -29,7 +30,7 @@
target.set_blindness(0)
target.cure_nearsighted(list(EYE_DAMAGE))
target.blur_eyes(35) //this will fix itself slowly.
- target.set_eye_damage(0)
+ E.setOrganDamage(0)
return TRUE
/datum/surgery_step/fix_eyes/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm
index 34943babdc..c61f1a8122 100644
--- a/code/modules/surgery/organs/eyes.dm
+++ b/code/modules/surgery/organs/eyes.dm
@@ -21,7 +21,6 @@
var/sight_flags = 0
var/see_in_dark = 2
- var/eye_damage = 0
var/tint = 0
var/eye_color = "" //set to a hex code to override a mob's eye color
var/old_eye_color = "fff"
diff --git a/modular_citadel/code/game/machinery/wishgranter.dm b/modular_citadel/code/game/machinery/wishgranter.dm
index f24062a126..48024a2228 100644
--- a/modular_citadel/code/game/machinery/wishgranter.dm
+++ b/modular_citadel/code/game/machinery/wishgranter.dm
@@ -63,7 +63,9 @@
to_chat(user, "Your wish is 'granted', but at a terrible cost...")
to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul and warping your eyes to match the darkness in your heart.")
user.dna.add_mutation(BLINDMUT)
- user.adjust_eye_damage(100)
+ var/obj/item/organ/eyes/eyes = user.getorganslot(ORGAN_SLOT_EYES)
+ if(eyes)
+ eyes.applyOrganDamage(eyes.maxHealth)
var/list/destinations = list()
for(var/obj/item/beacon/B in GLOB.teleportbeacons)
var/turf/T = get_turf(B)
diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm
index 24c8de1b60..22ed7cdf2f 100644
--- a/modular_citadel/code/modules/arousal/toys/dildos.dm
+++ b/modular_citadel/code/modules/arousal/toys/dildos.dm
@@ -150,7 +150,8 @@ obj/item/dildo/custom
playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1)
user.Stun(150)
user.adjust_blurriness(8)
- user.adjust_eye_damage(10)
+ var/obj/item/organ/eyes/eyes = user.getorganslot(ORGAN_SLOT_EYES)
+ eyes?.applyOrganDamage(10)
return MANUAL_SUICIDE
/obj/item/dildo/flared/huge/suicide_act(mob/living/user)
@@ -159,6 +160,5 @@ obj/item/dildo/custom
playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1)
user.Stun(300)
user.adjust_blurriness(8)
- user.adjust_eye_damage(15)
return MANUAL_SUICIDE