Resprites all eyes and gives cybernetic eyes unique sprites (#89841)

This commit is contained in:
SmArtKar
2025-03-07 03:17:01 +01:00
committed by nevimer
parent 8a848060a1
commit ddfd81404e
12 changed files with 85 additions and 62 deletions

View File

@@ -2,7 +2,7 @@
/// Mostly just does something spooky when it is removed
/datum/element/corrupted_organ
/datum/element/corrupted_organ/Attach(obj/item/organ/target)
/datum/element/corrupted_organ/Attach(obj/item/organ/target, add_color = TRUE)
. = ..()
if (!istype(target) || (target.organ_flags & ORGAN_EXTERNAL))
return ELEMENT_INCOMPATIBLE
@@ -10,7 +10,8 @@
RegisterSignal(target, COMSIG_ORGAN_SURGICALLY_REMOVED, PROC_REF(on_removed))
var/atom/atom_parent = target
atom_parent.color = COLOR_VOID_PURPLE
if(add_color)
atom_parent.add_atom_colour(COLOR_VOID_PURPLE, FIXED_COLOUR_PRIORITY)
atom_parent.add_filter(name = "ray", priority = 1, params = list(
type = "rays",

View File

@@ -23,11 +23,11 @@
name = "fly eyes"
desc = "These eyes seem to stare back no matter the direction you look at it from."
eye_icon_state = "flyeyes"
icon_state = "eyeballs-fly"
icon_state = "eyes_fly"
flash_protect = FLASH_PROTECTION_HYPER_SENSITIVE
native_fov = NONE //flies can see all around themselves.
blink_animation = FALSE
iris_overlays = FALSE
iris_overlay = null
/obj/item/organ/eyes/fly/Initialize(mapload)
. = ..()

View File

@@ -18,7 +18,7 @@
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "eyes"
iris_overlays = FALSE
iris_overlay = null
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = GOLIATH_COLORS

View File

@@ -21,7 +21,7 @@
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "eyes"
iris_overlays = FALSE
iris_overlay = null
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = RAT_COLORS
low_light_cutoff = list(16, 11, 0)

View File

@@ -2,13 +2,17 @@
/obj/item/organ/eyes/corrupt
name = "corrupt orbs"
desc = "These eyes have seen something they shouldn't have."
icon_state = "eyes_voidwalker"
iris_overlay = null
eye_color_left = COLOR_VOID_PURPLE
eye_color_right = COLOR_VOID_PURPLE
organ_flags = parent_type::organ_flags | ORGAN_HAZARDOUS
/// The override images we are applying
var/list/hallucinations
/obj/item/organ/eyes/corrupt/Initialize(mapload)
. = ..()
AddElement(/datum/element/corrupted_organ)
AddElement(/datum/element/corrupted_organ, FALSE)
AddElement(/datum/element/noticable_organ, "%PRONOUN_Their eyes have wide dilated pupils, and no iris. Something is moving in the darkness.", BODY_ZONE_PRECISE_EYES)
/obj/item/organ/eyes/corrupt/on_mob_insert(mob/living/carbon/organ_owner, special, movement_flags)

View File

@@ -2,9 +2,10 @@
/obj/item/organ/eyes/voidwalker
name = "blackened orbs"
desc = "These orbs will withstand the light of the sun, yet still see within the darkest voids."
icon_state = "eyes_voidwalker"
eye_icon_state = null
blink_animation = FALSE
iris_overlays = FALSE
iris_overlay = null
pepperspray_protect = TRUE
flash_protect = FLASH_PROTECTION_WELDER
color_cutoffs = list(20, 10, 40)

View File

@@ -93,7 +93,7 @@
name = "burning red eyes"
desc = "Even without their shadowy owner, looking at these eyes gives you a sense of dread."
icon = 'icons/obj/medical/organs/shadow_organs.dmi'
iris_overlays = FALSE
iris_overlay = null
color_cutoffs = list(20, 10, 40)
pepperspray_protect = TRUE
flash_protect = FLASH_PROTECTION_SENSITIVE

View File

@@ -42,8 +42,8 @@
var/eye_icon_state = "eyes"
/// Do these eyes have blinking animations
var/blink_animation = TRUE
/// Do these eyes have iris overlays
var/iris_overlays = TRUE
/// Icon state for iris overlays
var/iris_overlay = "eyes_iris"
/// Should our blinking be synchronized or can separate eyes have (slightly) separate blinking times
var/synchronized_blinking = TRUE
// A pair of abstract eyelid objects (yes, really) used to animate blinking
@@ -276,32 +276,27 @@
overlays += eyelids
if (scarring & RIGHT_EYE_SCAR)
var/mutable_appearance/right_scar = mutable_appearance('icons/mob/human/human_face.dmi', "eye_scar_right", -BODY_LAYER)
var/mutable_appearance/right_scar = mutable_appearance('icons/mob/human/human_face.dmi', "eye_scar_right", -BODY_LAYER, parent)
right_scar.color = my_head.draw_color
overlays += right_scar
if (scarring & LEFT_EYE_SCAR)
var/mutable_appearance/left_scar = mutable_appearance('icons/mob/human/human_face.dmi', "eye_scar_left", -BODY_LAYER)
var/mutable_appearance/left_scar = mutable_appearance('icons/mob/human/human_face.dmi', "eye_scar_left", -BODY_LAYER, parent)
left_scar.color = my_head.draw_color
overlays += left_scar
if(my_head.worn_face_offset)
my_head.worn_face_offset.apply_offset(eye_left)
my_head.worn_face_offset.apply_offset(eye_right)
// SKYRAT EDIT START - Customization Emissives)
if (is_emissive) // Because it was done all weird up there.
// SKYRAT EDIT START - Customization Emissives
if(is_emissive)
var/mutable_appearance/emissive_left = emissive_appearance_copy(eye_left, owner)
var/mutable_appearance/emissive_right = emissive_appearance_copy(eye_right, owner)
if(my_head.worn_face_offset)
my_head.worn_face_offset.apply_offset(emissive_right)
my_head.worn_face_offset.apply_offset(emissive_left)
overlays += emissive_left
overlays += emissive_right
// SKYRAT EDIT END - Customization Emissives
// SKYRAT EDIT END
if(my_head.worn_face_offset)
for (var/mutable_appearance/overlay as anything in overlays)
my_head.worn_face_offset.apply_offset(overlay)
return overlays
@@ -317,9 +312,9 @@
left_scar.blend_mode = BLEND_INSET_OVERLAY
. += left_scar
if (iris_overlays && eye_color_left && eye_color_right)
var/mutable_appearance/left_iris = mutable_appearance(icon, "[icon_state]_iris_l")
var/mutable_appearance/right_iris = mutable_appearance(icon, "[icon_state]_iris_r")
if (iris_overlay && length(eye_color_left) && length(eye_color_right))
var/mutable_appearance/left_iris = mutable_appearance(icon, "[iris_overlay]_l")
var/mutable_appearance/right_iris = mutable_appearance(icon, "[iris_overlay]_r")
var/list/color_left = rgb2num(eye_color_left, COLORSPACE_HSL)
var/list/color_right = rgb2num(eye_color_right, COLORSPACE_HSL)
// Ugly as sin? Indeed it is! But otherwise eyeballs turn out to be super dark, and this way even lighter colors are mostly preserved
@@ -569,7 +564,7 @@
icon_state = "adamantine_cords"
eye_icon_state = null
blink_animation = FALSE
iris_overlays = FALSE
iris_overlay = null
color = COLOR_GOLEM_GRAY
visual = FALSE
organ_flags = ORGAN_MINERAL
@@ -594,8 +589,7 @@
/obj/item/organ/eyes/robotic
name = "robotic eyes"
desc = "Your vision is augmented."
icon_state = "cybernetic_eyeballs"
iris_overlays = FALSE
icon_state = "eyes_cyber"
organ_flags = ORGAN_ROBOTIC
failing_desc = "seems to be broken."
@@ -611,8 +605,10 @@
/obj/item/organ/eyes/robotic/basic
name = "basic robotic eyes"
desc = "A pair of basic cybernetic eyes that restore vision, but at some vulnerability to light."
eye_color_left = "5500ff"
eye_color_right = "5500ff"
icon_state = "eyes_cyber_basic"
iris_overlay = null
eye_color_left = "#2f3032"
eye_color_right = "#2f3032"
flash_protect = FLASH_PROTECTION_SENSITIVE
/obj/item/organ/eyes/robotic/basic/emp_act(severity)
@@ -628,8 +624,10 @@
/obj/item/organ/eyes/robotic/xray
name = "x-ray eyes"
desc = "These cybernetic eyes will give you X-ray vision. Blinking is futile."
eye_color_left = "000"
eye_color_right = "000"
icon_state = "eyes_cyber_xray"
iris_overlay = null
eye_color_left = "#3cb8a5"
eye_color_right = "#3cb8a5"
sight_flags = SEE_MOBS | SEE_OBJS | SEE_TURFS
/obj/item/organ/eyes/robotic/xray/on_mob_insert(mob/living/carbon/eye_owner)
@@ -643,8 +641,10 @@
/obj/item/organ/eyes/robotic/thermals
name = "thermal eyes"
desc = "These cybernetic eye implants will give you thermal vision. Vertical slit pupil included."
eye_color_left = "FC0"
eye_color_right = "FC0"
icon_state = "eyes_cyber_thermal"
iris_overlay = null
eye_color_left = "#ce2525"
eye_color_right = "#ce2525"
// We're gonna downshift green and blue a bit so darkness looks yellow
color_cutoffs = list(25, 8, 5)
sight_flags = SEE_MOBS
@@ -685,6 +685,10 @@
/obj/item/organ/eyes/robotic/shield
name = "shielded robotic eyes"
desc = "These reactive micro-shields will protect you from welders and flashes without obscuring your vision."
icon_state = "eyes_cyber_shield"
iris_overlay = null
eye_color_left = "#353845"
eye_color_right = "#353845"
flash_protect = FLASH_PROTECTION_WELDER
/obj/item/organ/eyes/robotic/shield/Initialize(mapload)
@@ -700,8 +704,10 @@
/obj/item/organ/eyes/robotic/glow
name = "high luminosity eyes"
desc = "Special glowing eyes, used by snowflakes who want to be special."
eye_color_left = "000"
eye_color_right = "000"
icon_state = "eyes_cyber_glow"
iris_overlay = "eyes_cyber_glow_iris"
eye_color_left = "#19191a"
eye_color_right = "#19191a"
actions_types = list(/datum/action/item_action/organ_action/use, /datum/action/item_action/organ_action/toggle)
var/max_light_beam_distance = 5
var/obj/item/flashlight/eyelight/glow/eye
@@ -960,72 +966,79 @@
/obj/item/organ/eyes/moth
name = "moth eyes"
desc = "These eyes seem to have increased sensitivity to bright light, with no improvement to low light vision."
icon_state = "eyeballs-moth"
icon_state = "eyes_moth"
eye_icon_state = "motheyes"
blink_animation = FALSE
iris_overlays = FALSE
iris_overlay = null
flash_protect = FLASH_PROTECTION_SENSITIVE
/obj/item/organ/eyes/robotic/moth
name = "robotic moth eyes"
desc = "Your vision is augmented. Much like actual moth eyes, very sensitive to bright lights."
icon_state = "eyeballs-cybermoth"
eye_icon_state = "motheyes"
blink_animation = FALSE
icon_state = "eyes_moth_cyber"
eye_icon_state = "motheyes_cyber"
flash_protect = FLASH_PROTECTION_SENSITIVE
/obj/item/organ/eyes/robotic/basic/moth
name = "basic robotic moth eyes"
icon_state = "eyeballs-cybermoth"
eye_icon_state = "motheyes"
icon_state = "eyes_moth_cyber_basic"
eye_icon_state = "motheyes_white"
eye_color_left = "#65686f"
eye_color_right = "#65686f"
blink_animation = FALSE
flash_protect = FLASH_PROTECTION_SENSITIVE
/obj/item/organ/eyes/robotic/xray/moth
name = "moth x-ray eyes"
desc = "These cybernetic imitation moth eyes will give you X-ray vision. Blinking is futile. Much like actual moth eyes, very sensitive to bright lights."
icon_state = "eyeballs-cybermoth"
eye_icon_state = "motheyes"
icon_state = "eyes_moth_cyber_xray"
eye_icon_state = "motheyes_white"
eye_color_left = "#3c4e52"
eye_color_right = "#3c4e52"
blink_animation = FALSE
flash_protect = FLASH_PROTECTION_SENSITIVE
/obj/item/organ/eyes/robotic/shield/moth
name = "shielded robotic moth eyes"
icon_state = "eyeballs-cybermoth"
eye_icon_state = "motheyes"
icon_state = "eyes_moth_cyber_shield"
eye_icon_state = "motheyes_white"
eye_color_left = "#353845"
eye_color_right = "#353845"
blink_animation = FALSE
/obj/item/organ/eyes/robotic/glow/moth
name = "high luminosity moth eyes"
desc = "Special glowing eyes, to be one with the lamp. Much like actual moth eyes, very sensitive to bright lights."
icon_state = "eyeballs-cybermoth"
eye_icon_state = "motheyes"
icon_state = "eyes_moth_cyber_glow"
eye_icon_state = "motheyes_cyber"
iris_overlay = "eyes_moth_cyber_glow_iris"
blink_animation = FALSE
base_eye_state = "eyes_mothglow"
flash_protect = FLASH_PROTECTION_SENSITIVE
/obj/item/organ/eyes/robotic/thermals/moth //we inherit flash weakness from thermals
name = "thermal moth eyes"
icon_state = "eyeballs-cybermoth"
eye_icon_state = "motheyes"
icon_state = "eyes_moth_cyber_thermal"
eye_icon_state = "motheyes_white"
eye_color_left = "#901f38"
eye_color_right = "#901f38"
blink_animation = FALSE
/obj/item/organ/eyes/snail
name = "snail eyes"
desc = "These eyes seem to have a large range, but might be cumbersome with glasses."
icon_state = "snail_eyeballs"
icon_state = "eyes_snail"
eyes_layer = ABOVE_BODY_FRONT_HEAD_LAYER //SKYRAT EDIT - Roundstart Snails
eye_icon_state = "snail_eyes"
blink_animation = FALSE
iris_overlays = FALSE
/obj/item/organ/eyes/jelly
name = "jelly eyes"
desc = "These eyes are made of a soft jelly. Unlike all other eyes, though, there are three of them."
icon_state = "eyeballs-jelly"
icon_state = "eyes_jelly"
eye_icon_state = "jelleyes"
blink_animation = FALSE
iris_overlays = FALSE
iris_overlay = null
/obj/item/organ/eyes/lizard
name = "reptile eyes"
@@ -1036,13 +1049,13 @@
/obj/item/organ/eyes/night_vision/maintenance_adapted
name = "adapted eyes"
desc = "These red eyes look like two foggy marbles. They give off a particularly worrying glow in the dark."
flash_protect = FLASH_PROTECTION_HYPER_SENSITIVE
eye_color_left = "f00"
eye_color_right = "f00"
icon_state = "adapted_eyes"
icon_state = "eyes_adapted"
eye_color_left = "#f74a4d"
eye_color_right = "#f74a4d"
eye_icon_state = "eyes_glow"
iris_overlays = FALSE
iris_overlay = null
overlay_ignore_lighting = TRUE
flash_protect = FLASH_PROTECTION_HYPER_SENSITIVE
low_light_cutoff = list(5, 12, 20)
medium_light_cutoff = list(15, 20, 30)
high_light_cutoff = list(30, 35, 50)
@@ -1067,4 +1080,8 @@
/obj/item/organ/eyes/pod
name = "pod eyes"
desc = "Strangest salad you've ever seen."
icon_state = "eyes_pod"
eye_color_left = "#375846"
eye_color_right = "#375846"
iris_overlay = null
foodtype_flags = PODPERSON_ORGAN_FOODTYPES

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB