diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 248d854dcb..1334790ff1 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -56,3 +56,4 @@ #define TRAIT_HULK "hulk" #define STASIS_MUTE "stasis" #define GENETICS_SPELL "genetics_spell" +#define EYES_COVERED "eyes_covered" diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 0cf375c8dd..e67417385e 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -17,7 +17,7 @@ var/list/icon/current = list() //the current hud icons var/vision_correction = 0 //does wearing these glasses correct some of our vision defects? var/glass_colour_type //colors your vision when worn - + /obj/item/clothing/glasses/suicide_act(mob/living/carbon/user) user.visible_message("[user] is stabbing \the [src] into their eyes! It looks like [user.p_theyre()] trying to commit suicide!") return BRUTELOSS @@ -262,6 +262,14 @@ flash_protect = 2 tint = 3 // to make them blind +/obj/item/clothing/glasses/sunglasses/blindfold/equipped(mob/living/carbon/human/user, slot) + ..() + user.become_blind("blindfold") + +/obj/item/clothing/glasses/sunglasses/blindfold/dropped(mob/living/carbon/human/user) + ..() + user.cure_blind("blindfold") + /obj/item/clothing/glasses/sunglasses/big desc = "Strangely ancient technology used to help provide rudimentary eye cover. Larger than average enhanced shielding blocks flashes." icon_state = "bigsunglasses" diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index e5feb5c6c1..8444779a79 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -568,10 +568,12 @@ return tinttotal = get_total_tint() if(tinttotal >= TINT_BLIND) - overlay_fullscreen("tint", /obj/screen/fullscreen/blind) + become_blind(EYES_COVERED) else if(tinttotal >= TINT_DARKENED) + cure_blind(EYES_COVERED) overlay_fullscreen("tint", /obj/screen/fullscreen/impaired, 2) else + cure_blind(EYES_COVERED) clear_fullscreen("tint", 0) /mob/living/carbon/proc/get_total_tint() diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 6f187d0351..55e0325632 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -54,7 +54,7 @@ /mob/living/carbon/human/handle_traits() if(eye_blind) //blindness, heals slowly over time - if(tinttotal >= TINT_BLIND) //covering your eyes heals blurry eyes faster + if(has_trait(TRAIT_BLIND, EYES_COVERED)) //covering your eyes heals blurry eyes faster adjust_blindness(-3) else adjust_blindness(-1) diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index 350ff3316e..93b0439d83 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -130,12 +130,14 @@ eye.on = TRUE eye.forceMove(M) eye.update_brightness(M) + M.become_blind("flashlight_eyes") /obj/item/organ/eyes/robotic/flashlight/Remove(var/mob/living/carbon/M, var/special = 0) eye.on = FALSE eye.update_brightness(M) eye.forceMove(src) + M.cure_blind("flashlight_eyes") ..() // Welding shield implant