From 1d943a34ef3892a5a093c2d1ce151c17fc81cb65 Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Fri, 28 Aug 2020 18:30:28 +0100
Subject: [PATCH] heterochromia
---
code/__DEFINES/DNA.dm | 25 ++++----
code/datums/dna.dm | 12 ++--
.../objects/items/implants/implant_hijack.dm | 15 +++--
code/game/objects/structures/mirror.dm | 37 +++++++----
code/modules/admin/create_mob.dm | 4 +-
code/modules/antagonists/cult/cult.dm | 18 ++++--
.../antagonists/fugitive/fugitive_outfits.dm | 3 +-
code/modules/client/preferences.dm | 59 +++++++++++++-----
code/modules/client/preferences_savefile.dm | 15 +++--
code/modules/clothing/glasses/_glasses.dm | 4 +-
.../mining/lavaland/necropolis_chests.dm | 3 +-
.../mob/dead/new_player/preferences_setup.dm | 4 +-
.../mob/living/carbon/human/examine.dm | 2 +-
.../mob/living/carbon/human/human_defines.dm | 3 +-
.../mob/living/carbon/human/species.dm | 28 +++++----
.../mob/living/carbon/human/update_icons.dm | 23 ++++---
code/modules/surgery/bodyparts/head.dm | 18 +++---
code/modules/surgery/organs/eyes.dm | 43 +++++++++----
icons/mob/human_face.dmi | Bin 148152 -> 148200 bytes
19 files changed, 209 insertions(+), 107 deletions(-)
diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm
index 035563627f..a8026f752b 100644
--- a/code/__DEFINES/DNA.dm
+++ b/code/__DEFINES/DNA.dm
@@ -79,21 +79,22 @@
//DNA - Because fuck you and your magic numbers being all over the codebase.
#define DNA_BLOCK_SIZE 3
-#define DNA_UNI_IDENTITY_BLOCKS 14
+#define DNA_UNI_IDENTITY_BLOCKS 15
#define DNA_HAIR_COLOR_BLOCK 1
#define DNA_FACIAL_HAIR_COLOR_BLOCK 2
#define DNA_SKIN_TONE_BLOCK 3
-#define DNA_EYE_COLOR_BLOCK 4
-#define DNA_GENDER_BLOCK 5
-#define DNA_FACIAL_HAIR_STYLE_BLOCK 6
-#define DNA_HAIR_STYLE_BLOCK 7
-#define DNA_COLOR_ONE_BLOCK 8
-#define DNA_COLOR_TWO_BLOCK 9
-#define DNA_COLOR_THREE_BLOCK 10
-#define DNA_MUTANTTAIL_BLOCK 11
-#define DNA_MUTANTEAR_BLOCK 12
-#define DNA_MUTANTMARKING_BLOCK 13
-#define DNA_TAUR_BLOCK 14
+#define DNA_LEFT_EYE_COLOR_BLOCK 4
+#define DNA_RIGHT_EYE_COLOR_BLOCK 5
+#define DNA_GENDER_BLOCK 6
+#define DNA_FACIAL_HAIR_STYLE_BLOCK 7
+#define DNA_HAIR_STYLE_BLOCK 8
+#define DNA_COLOR_ONE_BLOCK 9
+#define DNA_COLOR_TWO_BLOCK 10
+#define DNA_COLOR_THREE_BLOCK 11
+#define DNA_MUTANTTAIL_BLOCK 12
+#define DNA_MUTANTEAR_BLOCK 13
+#define DNA_MUTANTMARKING_BLOCK 14
+#define DNA_TAUR_BLOCK 15
#define DNA_SEQUENCE_LENGTH 4
#define DNA_MUTATION_BLOCKS 8
diff --git a/code/datums/dna.dm b/code/datums/dna.dm
index 9486029fdd..843ea06f74 100644
--- a/code/datums/dna.dm
+++ b/code/datums/dna.dm
@@ -132,7 +132,8 @@
L[DNA_FACIAL_HAIR_STYLE_BLOCK] = construct_block(GLOB.facial_hair_styles_list.Find(H.facial_hair_style), GLOB.facial_hair_styles_list.len)
L[DNA_FACIAL_HAIR_COLOR_BLOCK] = sanitize_hexcolor(H.facial_hair_color)
L[DNA_SKIN_TONE_BLOCK] = construct_block(GLOB.skin_tones.Find(H.skin_tone), GLOB.skin_tones.len)
- L[DNA_EYE_COLOR_BLOCK] = sanitize_hexcolor(H.eye_color)
+ L[DNA_LEFT_EYE_COLOR_BLOCK] = sanitize_hexcolor(H.left_eye_color)
+ L[DNA_RIGHT_EYE_COLOR_BLOCK] = sanitize_hexcolor(H.right_eye_color)
L[DNA_COLOR_ONE_BLOCK] = sanitize_hexcolor(features["mcolor"], 6)
L[DNA_COLOR_TWO_BLOCK] = sanitize_hexcolor(features["mcolor2"], 6)
L[DNA_COLOR_THREE_BLOCK] = sanitize_hexcolor(features["mcolor3"], 6)
@@ -224,8 +225,10 @@
setblock(uni_identity, blocknumber, sanitize_hexcolor(H.facial_hair_color))
if(DNA_SKIN_TONE_BLOCK)
setblock(uni_identity, blocknumber, construct_block(GLOB.skin_tones.Find(H.skin_tone), GLOB.skin_tones.len))
- if(DNA_EYE_COLOR_BLOCK)
- setblock(uni_identity, blocknumber, sanitize_hexcolor(H.eye_color))
+ if(DNA_LEFT_EYE_COLOR_BLOCK)
+ setblock(uni_identity, blocknumber, sanitize_hexcolor(H.left_eye_color))
+ if(DNA_RIGHT_EYE_COLOR_BLOCK)
+ setblock(uni_identity, blocknumber, sanitize_hexcolor(H.right_eye_color))
if(DNA_GENDER_BLOCK)
switch(H.gender)
if(MALE)
@@ -464,7 +467,8 @@
hair_color = sanitize_hexcolor(getblock(structure, DNA_HAIR_COLOR_BLOCK))
facial_hair_color = sanitize_hexcolor(getblock(structure, DNA_FACIAL_HAIR_COLOR_BLOCK))
skin_tone = dna.skin_tone_override || GLOB.skin_tones[deconstruct_block(getblock(structure, DNA_SKIN_TONE_BLOCK), GLOB.skin_tones.len)]
- eye_color = sanitize_hexcolor(getblock(structure, DNA_EYE_COLOR_BLOCK))
+ left_eye_color = sanitize_hexcolor(getblock(structure, DNA_LEFT_EYE_COLOR_BLOCK))
+ right_eye_color = sanitize_hexcolor(getblock(structure, DNA_RIGHT_EYE_COLOR_BLOCK))
facial_hair_style = GLOB.facial_hair_styles_list[deconstruct_block(getblock(structure, DNA_FACIAL_HAIR_STYLE_BLOCK), GLOB.facial_hair_styles_list.len)]
hair_style = GLOB.hair_styles_list[deconstruct_block(getblock(structure, DNA_HAIR_STYLE_BLOCK), GLOB.hair_styles_list.len)]
if(icon_update)
diff --git a/code/game/objects/items/implants/implant_hijack.dm b/code/game/objects/items/implants/implant_hijack.dm
index 5dd610059c..36e58d8887 100644
--- a/code/game/objects/items/implants/implant_hijack.dm
+++ b/code/game/objects/items/implants/implant_hijack.dm
@@ -7,7 +7,8 @@
activated = 1
var/toggled = FALSE
icon_state = "hijack"
- var/eye_color
+ var/left_eye_color
+ var/right_eye_color
var/stealthmode = FALSE
var/stealthcooldown = 0
var/hijacking = FALSE
@@ -25,8 +26,10 @@
return
var/on = toggled && !stealthmode
var/mob/living/carbon/human/H = imp_in
- H.eye_color = on ? "ff0" : eye_color
- H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK)
+ H.left_eye_color = on ? "ff0" : left_eye_color
+ H.right_eye_color = on ? "ff0" : right_eye_color
+ H.dna.update_ui_block(DNA_LEFT_EYE_COLOR_BLOCK)
+ H.dna.update_ui_block(DNA_RIGHT_EYE_COLOR_BLOCK)
H.update_body()
/obj/item/implant/hijack/implant(mob/living/target, mob/user, silent = FALSE)
@@ -34,7 +37,8 @@
ADD_TRAIT(target, TRAIT_HIJACKER, "implant")
if (ishuman(target))
var/mob/living/carbon/human/H = target
- eye_color = H.eye_color
+ left_eye_color = H.left_eye_color
+ right_eye_color = H.right_eye_color
return TRUE
/obj/item/implant/hijack/removed(mob/living/source, silent = FALSE, special = 0)
@@ -49,7 +53,8 @@
apc.update_icon()
if (ishuman(source))
var/mob/living/carbon/human/H = source
- H.eye_color = eye_color
+ H.left_eye_color = left_eye_color
+ H.right_eye_color = left_eye_color
return TRUE
/obj/item/implant/hijack/proc/InterceptClickOn(mob/living/user,params,atom/object)
diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm
index 237cfdbf0b..758685ede7 100644
--- a/code/game/objects/structures/mirror.dm
+++ b/code/game/objects/structures/mirror.dm
@@ -229,17 +229,32 @@
H.update_hair()
if(BODY_ZONE_PRECISE_EYES)
- var/new_eye_color = input(H, "Choose your eye color", "Eye Color","#"+H.eye_color) as color|null
- if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
- return
- if(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.dna.species.handle_body()
+ var/eye_type = input(H, "Choose the eye you want to color", "Eye Color") as null|anything in list("Both Eyes", "Left Eye", "Right Eye")
+ if(eye_type)
+ var/input_color = H.left_eye_color
+ if(eye_type == "Right Eye")
+ input_color = H.right_eye_color
+ var/new_eye_color = input(H, "Choose your eye color", "Eye Color","#"+input_color) as color|null
+ if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
+ return
+ if(new_eye_color)
+ var/n_color = sanitize_hexcolor(new_eye_color)
+ var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES)
+ var/left_color = n_color
+ var/right_color = n_color
+ if(eye_type == "Left Eye")
+ right_color = H.right_eye_color
+ else
+ if(eye_type == "Right Eye")
+ left_color = H.left_eye_color
+ if(eyes)
+ eyes.left_eye_color = left_color
+ eyes.right_eye_color = right_color
+ H.left_eye_color = left_color
+ H.right_eye_color = right_color
+ H.dna.update_ui_block(DNA_LEFT_EYE_COLOR_BLOCK)
+ H.dna.update_ui_block(DNA_RIGHT_EYE_COLOR_BLOCK)
+ H.dna.species.handle_body()
if(choice)
curse(user)
diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm
index 59651b17d5..e287d9b1b3 100644
--- a/code/modules/admin/create_mob.dm
+++ b/code/modules/admin/create_mob.dm
@@ -24,7 +24,9 @@
H.facial_hair_style = random_facial_hair_style(H.gender)
H.hair_color = random_short_color()
H.facial_hair_color = H.hair_color
- H.eye_color = random_eye_color()
+ var/random_eye_color = random_eye_color()
+ H.left_eye_color = random_eye_color
+ H.right_eye_color = random_eye_color
H.dna.blood_type = random_blood_type()
H.saved_underwear = H.underwear
H.saved_undershirt = H.undershirt
diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm
index 87e116166e..61f6ec9998 100644
--- a/code/modules/antagonists/cult/cult.dm
+++ b/code/modules/antagonists/cult/cult.dm
@@ -142,8 +142,10 @@
if(ishuman(current))
var/mob/living/carbon/human/H = current
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)
+ H.left_eye_color = eyes?.left_eye_color || initial(H.left_eye_color)
+ H.right_eye_color = eyes?.right_eye_color || initial(H.right_eye_color)
+ H.dna?.update_ui_block(DNA_LEFT_EYE_COLOR_BLOCK)
+ H.dna?.update_ui_block(DNA_RIGHT_EYE_COLOR_BLOCK)
REMOVE_TRAIT(H, TRAIT_CULT_EYES, "valid_cultist")
H.update_body()
H.cut_overlays()
@@ -236,8 +238,10 @@
if(ishuman(current))
var/mob/living/carbon/human/H = current
- H.eye_color = initial(H.eye_color)
- H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK)
+ H.left_eye_color = initial(H.left_eye_color)
+ H.right_eye_color = initial(H.right_eye_color)
+ H.dna?.update_ui_block(DNA_LEFT_EYE_COLOR_BLOCK)
+ H.dna?.update_ui_block(DNA_RIGHT_EYE_COLOR_BLOCK)
REMOVE_TRAIT(H, TRAIT_CULT_EYES, "valid_cultist")
H.cut_overlays()
H.regenerate_icons()
@@ -312,8 +316,10 @@
/datum/team/cult/proc/rise(cultist)
if(ishuman(cultist))
var/mob/living/carbon/human/H = cultist
- H.eye_color = "f00"
- H.dna?.update_ui_block(DNA_EYE_COLOR_BLOCK)
+ H.left_eye_color = "f00"
+ H.right_eye_color = "f00"
+ H.dna?.update_ui_block(DNA_LEFT_EYE_COLOR_BLOCK)
+ H.dna?.update_ui_block(DNA_RIGHT_EYE_COLOR_BLOCK)
ADD_TRAIT(H, TRAIT_CULT_EYES, "valid_cultist")
H.update_body()
diff --git a/code/modules/antagonists/fugitive/fugitive_outfits.dm b/code/modules/antagonists/fugitive/fugitive_outfits.dm
index be11960692..242a7cc7fd 100644
--- a/code/modules/antagonists/fugitive/fugitive_outfits.dm
+++ b/code/modules/antagonists/fugitive/fugitive_outfits.dm
@@ -30,7 +30,8 @@
if(visualsOnly)
return
H.fully_replace_character_name(null,"Waldo")
- H.eye_color = "000"
+ H.left_eye_color = "000"
+ H.right_eye_color = "000"
H.gender = MALE
H.skin_tone = "caucasian3"
H.hair_style = "Business Hair 3"
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 2fe674e59e..1502d744a4 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -95,7 +95,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/facial_hair_color = "000000" //Facial hair color
var/skin_tone = "caucasian1" //Skin color
var/use_custom_skin_tone = FALSE
- var/eye_color = "000000" //Eye color
+ var/left_eye_color = "000000" //Eye color
+ var/right_eye_color = "000000"
+ var/split_eye_colors = FALSE
var/datum/species/pref_species = new /datum/species/human() //Mutant race
var/list/features = list("mcolor" = "FFFFFF",
"mcolor2" = "FFFFFF",
@@ -462,15 +464,22 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Sprite Size: [features["body_size"]*100]%
"
if((EYECOLOR in pref_species.species_traits) && !(NOEYES in pref_species.species_traits))
-
if(!use_skintones && !mutant_colors)
dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "
Eye Color
"
-
- dat += " Change
"
-
- dat += ""
+ if(left_eye_color != right_eye_color)
+ split_eye_colors = TRUE
+ dat += "Heterochromia
"
+ dat += "[split_eye_colors ? "Enabled" : "Disabled"]
"
+ if(!split_eye_colors)
+ dat += "Eye Color
"
+ dat += " Change"
+ dat += ""
+ else
+ dat += "Left Eye Color
"
+ dat += " Change"
+ dat += "Right Eye Color
"
+ dat += " Change
"
+ dat += ""
else if(use_skintones || mutant_colors)
dat += ""
@@ -1358,7 +1367,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
socks = random_socks()
socks_color = random_short_color()
if(BODY_ZONE_PRECISE_EYES)
- eye_color = random_eye_color()
+ var/random_eye_color = random_eye_color()
+ left_eye_color = random_eye_color
+ right_eye_color = random_eye_color
if("s_tone")
skin_tone = random_skin_tone()
use_custom_skin_tone = null
@@ -1514,9 +1525,24 @@ GLOBAL_LIST_EMPTY(preferences_datums)
socks_color = sanitize_hexcolor(n_socks_color, 6)
if("eyes")
- var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference","#"+eye_color) as color|null
+ var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference","#"+left_eye_color) as color|null
if(new_eyes)
- eye_color = sanitize_hexcolor(new_eyes, 6)
+ left_eye_color = sanitize_hexcolor(new_eyes, 6)
+ right_eye_color = sanitize_hexcolor(new_eyes, 6)
+
+ if("eye_left")
+ var/new_eyes = input(user, "Choose your character's left eye colour:", "Character Preference","#"+left_eye_color) as color|null
+ if(new_eyes)
+ left_eye_color = sanitize_hexcolor(new_eyes, 6)
+
+ if("eye_right")
+ var/new_eyes = input(user, "Choose your character's right eye colour:", "Character Preference","#"+right_eye_color) as color|null
+ if(new_eyes)
+ right_eye_color = sanitize_hexcolor(new_eyes, 6)
+
+ if("toggle_split_eyes")
+ split_eye_colors = !split_eye_colors
+ right_eye_color = left_eye_color
if("species")
var/result = input(user, "Select a species", "Species Selection") as null|anything in GLOB.roundstart_race_names
@@ -2486,12 +2512,15 @@ GLOBAL_LIST_EMPTY(preferences_datums)
character.gender = gender
character.age = age
- character.eye_color = eye_color
+ character.left_eye_color = left_eye_color
+ character.right_eye_color = right_eye_color
var/obj/item/organ/eyes/organ_eyes = character.getorgan(/obj/item/organ/eyes)
if(organ_eyes)
- if(!initial(organ_eyes.eye_color))
- organ_eyes.eye_color = eye_color
- organ_eyes.old_eye_color = eye_color
+ if(!initial(organ_eyes.left_eye_color))
+ organ_eyes.left_eye_color = left_eye_color
+ organ_eyes.right_eye_color = right_eye_color
+ organ_eyes.old_left_eye_color = left_eye_color
+ organ_eyes.old_right_eye_color = right_eye_color
character.hair_color = hair_color
character.facial_hair_color = facial_hair_color
character.skin_tone = skin_tone
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 55a594cf21..f1df0fe158 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -5,7 +5,7 @@
// You do not need to raise this if you are adding new values that have sane defaults.
// Only raise this value when changing the meaning/format/name/layout of an existing value
// where you would want the updater procs below to run
-#define SAVEFILE_VERSION_MAX 35
+#define SAVEFILE_VERSION_MAX 36
/*
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
@@ -204,6 +204,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(S["species"] == "lizard")
features["mam_snouts"] = features["snout"]
+ if(current_version < 36)
+ left_eye_color = S["eye_color"]
+ right_eye_color = S["eye_color"]
+
/datum/preferences/proc/load_path(ckey,filename="preferences.sav")
if(!ckey)
return
@@ -476,7 +480,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["age"] >> age
S["hair_color"] >> hair_color
S["facial_hair_color"] >> facial_hair_color
- S["eye_color"] >> eye_color
+ S["left_eye_color"] >> left_eye_color
+ S["right_eye_color"] >> left_eye_color
S["use_custom_skin_tone"] >> use_custom_skin_tone
S["skin_tone"] >> skin_tone
S["hair_style_name"] >> hair_style
@@ -648,7 +653,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age))
hair_color = sanitize_hexcolor(hair_color, 6, FALSE)
facial_hair_color = sanitize_hexcolor(facial_hair_color, 6, FALSE)
- eye_color = sanitize_hexcolor(eye_color, 6, FALSE)
+ left_eye_color = sanitize_hexcolor(left_eye_color, 6, FALSE)
+ right_eye_color = sanitize_hexcolor(right_eye_color, 6, FALSE)
var/static/allow_custom_skintones
if(isnull(allow_custom_skintones))
@@ -777,7 +783,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["age"] , age)
WRITE_FILE(S["hair_color"] , hair_color)
WRITE_FILE(S["facial_hair_color"] , facial_hair_color)
- WRITE_FILE(S["eye_color"] , eye_color)
+ WRITE_FILE(S["left_eye_color"] , left_eye_color)
+ WRITE_FILE(S["right_eye_color"] , right_eye_color)
WRITE_FILE(S["use_custom_skin_tone"] , use_custom_skin_tone)
WRITE_FILE(S["skin_tone"] , skin_tone)
WRITE_FILE(S["hair_style_name"] , hair_style)
diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index 3f6d21bcd2..11de0124cb 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -373,7 +373,7 @@
/obj/item/clothing/glasses/sunglasses/blindfold/white/update_icon(mob/living/carbon/human/user)
if(ishuman(user) && !colored_before)
- add_atom_colour("#[user.eye_color]", FIXED_COLOUR_PRIORITY)
+ add_atom_colour("#[user.left_eye_color]", FIXED_COLOUR_PRIORITY)
colored_before = TRUE
/obj/item/clothing/glasses/sunglasses/blindfold/white/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE)
@@ -382,7 +382,7 @@
var/mob/living/carbon/human/H = loc
var/mutable_appearance/M = mutable_appearance('icons/mob/clothing/eyes.dmi', "blindfoldwhite")
M.appearance_flags |= RESET_COLOR
- M.color = "#[H.eye_color]"
+ M.color = "#[H.left_eye_color]"
. += M
/obj/item/clothing/glasses/sunglasses/big
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index e03de83e02..73851283b1 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -868,7 +868,8 @@
if(1)
to_chat(user, "Your appearance morphs to that of a very small humanoid ash dragon! You get to look like a freak without the cool abilities.")
H.dna.features = list("mcolor" = "A02720", "tail_lizard" = "Dark Tiger", "tail_human" = "None", "snout" = "Sharp", "horns" = "Curled", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "Long", "body_markings" = "Dark Tiger Body", "legs" = "Digitigrade")
- H.eye_color = "fee5a3"
+ H.left_eye_color = "fee5a3"
+ H.right_eye_color = "fee5a3"
H.set_species(/datum/species/lizard)
if(2)
to_chat(user, "Your flesh begins to melt! Miraculously, you seem fine otherwise.")
diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm
index 9a0d9f9242..19e6ca4720 100644
--- a/code/modules/mob/dead/new_player/preferences_setup.dm
+++ b/code/modules/mob/dead/new_player/preferences_setup.dm
@@ -17,7 +17,9 @@
facial_hair_style = random_facial_hair_style(gender)
hair_color = random_short_color()
facial_hair_color = hair_color
- eye_color = random_eye_color()
+ var/random_eye_color = random_eye_color()
+ left_eye_color = random_eye_color
+ right_eye_color = random_eye_color
if(!pref_species)
var/rando_race = pick(GLOB.roundstart_races)
pref_species = new rando_race()
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 65b2931e08..ecd484032f 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -92,7 +92,7 @@
if(!(SLOT_GLASSES in obscured))
if(glasses)
. += "[t_He] [t_has] [glasses.get_examine_string(user)] covering [t_his] eyes."
- else if(eye_color == BLOODCULT_EYE && iscultist(src) && HAS_TRAIT(src, TRAIT_CULT_EYES))
+ else if((left_eye_color == BLOODCULT_EYE || right_eye_color == BLOODCULT_EYE) && iscultist(src) && HAS_TRAIT(src, TRAIT_CULT_EYES))
. += "[t_His] eyes are glowing an unnatural red!"
else if(HAS_TRAIT(src, TRAIT_HIJACKER))
var/obj/item/implant/hijack/H = user.getImplant(/obj/item/implant/hijack)
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index 13456ed61c..a6a3f408dc 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -24,7 +24,8 @@
var/facial_hair_style = "Shaved"
//Eye colour
- var/eye_color = "000"
+ var/left_eye_color = "000"
+ var/right_eye_color = "000"
var/skin_tone = "caucasian1" //Skin tone
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index ed509f900a..6991b3efcd 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -570,19 +570,21 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
// eyes
if(!(NOEYES in species_traits))
var/has_eyes = H.getorganslot(ORGAN_SLOT_EYES)
- var/mutable_appearance/eye_overlay
if(!has_eyes)
- eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER)
+ standing += mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER)
else
- eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes", -BODY_LAYER)
- if((EYECOLOR in species_traits) && has_eyes)
- eye_overlay.color = "#" + H.eye_color
-
- if(OFFSET_EYES in H.dna.species.offset_features)
- eye_overlay.pixel_x += H.dna.species.offset_features[OFFSET_EYES][1]
- eye_overlay.pixel_y += H.dna.species.offset_features[OFFSET_EYES][2]
-
- standing += eye_overlay
+ var/mutable_appearance/left_eye = mutable_appearance('icons/mob/human_face.dmi', "left_eye", -BODY_LAYER)
+ var/mutable_appearance/right_eye = mutable_appearance('icons/mob/human_face.dmi', "right_eye", -BODY_LAYER)
+ if((EYECOLOR in species_traits) && has_eyes)
+ left_eye.color = "#" + H.left_eye_color
+ right_eye.color = "#" + H.right_eye_color
+ if(OFFSET_EYES in offset_features)
+ left_eye.pixel_x += offset_features[OFFSET_EYES][1]
+ left_eye.pixel_y += offset_features[OFFSET_EYES][2]
+ right_eye.pixel_x += offset_features[OFFSET_EYES][1]
+ right_eye.pixel_y += offset_features[OFFSET_EYES][2]
+ standing += left_eye
+ standing += right_eye
//Underwear, Undershirts & Socks
if(!(NO_UNDERWEAR in species_traits))
@@ -783,7 +785,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(FACEHAIR)
accessory_overlay.color = "#[H.facial_hair_color]"
if(EYECOLOR)
- accessory_overlay.color = "#[H.eye_color]"
+ accessory_overlay.color = "#[H.left_eye_color]"
if(HORNCOLOR)
accessory_overlay.color = "#[H.dna.features["horns_color"]]"
if(WINGCOLOR)
@@ -838,7 +840,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(FACEHAIR)
extra_accessory_overlay.color = "#[H.facial_hair_color]"
if(EYECOLOR)
- extra_accessory_overlay.color = "#[H.eye_color]"
+ extra_accessory_overlay.color = "#[H.left_eye_color]"
if(HORNCOLOR)
extra_accessory_overlay.color = "#[H.dna.features["horns_color"]]"
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index 9b39438563..cfb35fbb00 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -758,17 +758,22 @@ use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if
// eyes
if(!(NOEYES in dna.species.species_traits))
var/has_eyes = getorganslot(ORGAN_SLOT_EYES)
- var/mutable_appearance/eye_overlay
if(!has_eyes)
- eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER)
+ add_overlay(mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER))
else
- eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes", -BODY_LAYER)
- if((EYECOLOR in dna.species.species_traits) && has_eyes)
- eye_overlay.color = "#" + eye_color
- if(OFFSET_EYES in dna.species.offset_features)
- eye_overlay.pixel_x += dna.species.offset_features[OFFSET_EYES][1]
- eye_overlay.pixel_y += dna.species.offset_features[OFFSET_EYES][2]
- add_overlay(eye_overlay)
+ var/mutable_appearance/left_eye = mutable_appearance('icons/mob/human_face.dmi', "left_eye", -BODY_LAYER)
+ var/mutable_appearance/right_eye = mutable_appearance('icons/mob/human_face.dmi', "right_eye", -BODY_LAYER)
+ if((EYECOLOR in dna.species.species_traits) && has_eyes)
+ left_eye.color = "#" + left_eye_color
+ right_eye.color = "#" + right_eye_color
+ if(OFFSET_EYES in dna.species.offset_features)
+ left_eye.pixel_x += dna.species.offset_features[OFFSET_EYES][1]
+ left_eye.pixel_y += dna.species.offset_features[OFFSET_EYES][2]
+ right_eye.pixel_x += dna.species.offset_features[OFFSET_EYES][1]
+ right_eye.pixel_y += dna.species.offset_features[OFFSET_EYES][2]
+ add_overlay(left_eye)
+ add_overlay(right_eye)
+
dna.species.handle_hair(src)
diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm
index 13b1140527..b6a0a387e2 100644
--- a/code/modules/surgery/bodyparts/head.dm
+++ b/code/modules/surgery/bodyparts/head.dm
@@ -180,13 +180,17 @@
. += lips_overlay
// eyes
- var/image/eyes_overlay = image('icons/mob/human_face.dmi', "eyes", -BODY_LAYER, SOUTH)
- . += eyes_overlay
- if(!eyes)
- eyes_overlay.icon_state = "eyes_missing"
-
- else if(eyes.eye_color)
- eyes_overlay.color = "#" + eyes.eye_color
+ if(eyes)
+ var/image/left_eye = image('icons/mob/human_face.dmi', "left_eye", -BODY_LAYER, SOUTH)
+ var/image/right_eye = image('icons/mob/human_face.dmi', "right_eye", -BODY_LAYER, SOUTH)
+ if(eyes.left_eye_color && eyes.right_eye_color)
+ left_eye.color = "#" + eyes.left_eye_color
+ right_eye.color = "#" + eyes.right_eye_color
+ . += left_eye
+ . += right_eye
+ else
+ var/eyes_overlay = image('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER, SOUTH)
+ . += eyes_overlay
/obj/item/bodypart/head/monkey
icon = 'icons/mob/animal_parts.dmi'
diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm
index 9172ce00bc..80dc29f905 100644
--- a/code/modules/surgery/organs/eyes.dm
+++ b/code/modules/surgery/organs/eyes.dm
@@ -26,8 +26,10 @@
var/sight_flags = 0
var/see_in_dark = 2
var/tint = 0
- var/eye_color = "" //set to a hex code to override a mob's eye color
- var/old_eye_color = "fff"
+ var/left_eye_color = "" //set to a hex code to override a mob's eye color
+ var/right_eye_color = ""
+ var/old_left_eye_color = "fff"
+ var/old_right_eye_color = "fff"
var/flash_protect = 0
var/see_invisible = SEE_INVISIBLE_LIVING
var/lighting_alpha
@@ -44,11 +46,19 @@
owner.become_blind(EYE_DAMAGE)
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
- old_eye_color = H.eye_color
- if(eye_color)
- H.eye_color = eye_color
+ old_left_eye_color = H.left_eye_color
+ old_right_eye_color = H.right_eye_color
+
+ if(left_eye_color)
+ H.left_eye_color = left_eye_color
else
- eye_color = H.eye_color
+ left_eye_color = H.left_eye_color
+
+ if(right_eye_color)
+ H.right_eye_color = right_eye_color
+ else
+ right_eye_color = H.right_eye_color
+
if(!special)
H.dna?.species?.handle_body(H) //regenerate eyeballs overlays.
M.update_tint()
@@ -64,9 +74,10 @@
C.clear_fullscreen("eye_damage")
if(BLIND_VISION_THREE)
C.cure_blind(EYE_DAMAGE)
- if(ishuman(C) && eye_color)
+ if(ishuman(C) && left_eye_color && right_eye_color)
var/mob/living/carbon/human/H = C
- H.eye_color = old_eye_color
+ H.left_eye_color = old_left_eye_color
+ H.right_eye_color = old_right_eye_color
if(!special)
H.dna.species.handle_body(H)
if(!special)
@@ -162,14 +173,16 @@
/obj/item/organ/eyes/robotic/xray
name = "\improper X-ray eyes"
desc = "These cybernetic eyes will give you X-ray vision. Blinking is futile."
- eye_color = "000"
+ left_eye_color = "000"
+ right_eye_color = "000"
see_in_dark = 8
sight_flags = SEE_MOBS | SEE_OBJS | SEE_TURFS
/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 = "FC0"
+ left_eye_color = "FC0"
+ right_eye_color = "FC0"
sight_flags = SEE_MOBS
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
flash_protect = -1
@@ -178,7 +191,8 @@
/obj/item/organ/eyes/robotic/flashlight
name = "flashlight eyes"
desc = "It's two flashlights rigged together with some wire. Why would you put these in someone's head?"
- eye_color ="fee5a3"
+ left_eye_color ="fee5a3"
+ right_eye_color ="fee5a3"
icon = 'icons/obj/lighting.dmi'
icon_state = "flashlight_eyes"
flash_protect = 2
@@ -219,7 +233,8 @@
/obj/item/organ/eyes/robotic/glow
name = "High Luminosity Eyes"
desc = "Special glowing eyes, used by snowflakes who want to be special."
- eye_color = "000"
+ left_eye_color = "000"
+ right_eye_color = "000"
actions_types = list(/datum/action/item_action/organ_action/use, /datum/action/item_action/organ_action/toggle)
var/current_color_string = "#ffffff"
var/active = FALSE
@@ -278,7 +293,9 @@
/obj/item/organ/eyes/robotic/glow/proc/assume_rgb(newcolor)
current_color_string = newcolor
- eye_color = RGB2EYECOLORSTRING(current_color_string)
+ var/current_color = RGB2EYECOLORSTRING(current_color_string)
+ left_eye_color = current_color
+ right_eye_color = current_color
sync_light_effects()
cycle_mob_overlay()
if(!QDELETED(owner) && ishuman(owner)) //Other carbon mobs don't have eye color.
diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi
index 8055233ea7bd5d9dff071af584225266b3dc0b70..1e67d7baba6fe46d04901ccdadbdecfe2079abc4 100644
GIT binary patch
literal 148200
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 |