diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index b15d686b7b..a7f751e63c 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -226,9 +226,13 @@ if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return if(new_eye_color) - H.eye_color = sanitize_hexcolor(new_eye_color) + var/n_color = sanitize_hexcolor(new_eye_color) + var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES) + if(eyes) + eyes.eye_color = n_color + H.eye_color = n_color H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) - H.update_body() + H.dna.species.handle_body() if(choice) curse(user) diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 9989058d43..df2383f892 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -128,7 +128,8 @@ current.clear_alert("bloodsense") if(ishuman(current)) var/mob/living/carbon/human/H = current - H.eye_color = initial(H.eye_color) + var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES) + H.eye_color = eyes?.eye_color || initial(H.eye_color) H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) REMOVE_TRAIT(H, TRAIT_CULT_EYES, "valid_cultist") H.update_body() diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index ba7acf76d7..96bd62b1f6 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -252,7 +252,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) QDEL_NULL(eyes) if(should_have_eyes && !eyes) eyes = new mutanteyes - eyes.Insert(C) + eyes.Insert(C, TRUE) if(ears && (replace_current || !should_have_ears)) ears.Remove(C,1) diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index d877af7451..34943babdc 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -31,18 +31,21 @@ var/damaged = FALSE //damaged indicates that our eyes are undergoing some level of negative effect /obj/item/organ/eyes/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = FALSE) - ..() + . = ..() + if(!.) + return if(damage == initial(damage)) clear_eye_trauma() if(ishuman(owner)) - var/mob/living/carbon/human/HMN = owner - old_eye_color = HMN.eye_color + var/mob/living/carbon/human/H = owner + old_eye_color = H.eye_color if(eye_color) - HMN.eye_color = eye_color - HMN.regenerate_icons() + H.eye_color = eye_color else - eye_color = HMN.eye_color - if(HAS_TRAIT(HMN, TRAIT_NIGHT_VISION) && !lighting_alpha) + eye_color = H.eye_color + if(!special) + H.dna?.species?.handle_body() //regenerate eyeballs overlays. + if(HAS_TRAIT(H, TRAIT_NIGHT_VISION) && !lighting_alpha) lighting_alpha = LIGHTING_PLANE_ALPHA_NV_TRAIT see_in_dark = 8 M.update_tint() @@ -51,13 +54,15 @@ /obj/item/organ/eyes/Remove(mob/living/carbon/M, special = 0) clear_eye_trauma() - ..() + . = ..() if(ishuman(M) && eye_color) - var/mob/living/carbon/human/HMN = M - HMN.eye_color = old_eye_color - HMN.regenerate_icons() - M.update_tint() - M.update_sight() + var/mob/living/carbon/human/H = M + H.eye_color = old_eye_color + if(!special) + H.dna.species.handle_body() + if(!special) + M.update_tint() + M.update_sight() /obj/item/organ/eyes/on_life() ..()