heterochromia
This commit is contained in:
+13
-12
@@ -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
|
||||
|
||||
+8
-4
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 += "<b>Sprite Size:</b> <a href='?_src_=prefs;preference=body_size;task=input'>[features["body_size"]*100]%</a><br>"
|
||||
|
||||
if((EYECOLOR in pref_species.species_traits) && !(NOEYES in pref_species.species_traits))
|
||||
|
||||
if(!use_skintones && !mutant_colors)
|
||||
dat += APPEARANCE_CATEGORY_COLUMN
|
||||
|
||||
dat += "<h3>Eye Color</h3>"
|
||||
|
||||
dat += "<span style='border: 1px solid #161616; background-color: #[eye_color];'> </span> <a href='?_src_=prefs;preference=eyes;task=input'>Change</a><BR>"
|
||||
|
||||
dat += "</td>"
|
||||
if(left_eye_color != right_eye_color)
|
||||
split_eye_colors = TRUE
|
||||
dat += "<h3>Heterochromia</h3>"
|
||||
dat += "</b><a style='display:block;width:100px' href='?_src_=prefs;preference=toggle_split_eyes;task=input'>[split_eye_colors ? "Enabled" : "Disabled"]</a><BR>"
|
||||
if(!split_eye_colors)
|
||||
dat += "<h3>Eye Color</h3>"
|
||||
dat += "<span style='border: 1px solid #161616; background-color: #[left_eye_color];'> </span> <a href='?_src_=prefs;preference=eyes;task=input'>Change</a>"
|
||||
dat += "</td>"
|
||||
else
|
||||
dat += "<h3>Left Eye Color</h3>"
|
||||
dat += "<span style='border: 1px solid #161616; background-color: #[left_eye_color];'> </span> <a href='?_src_=prefs;preference=eye_left;task=input'>Change</a>"
|
||||
dat += "<h3>Right Eye Color</h3>"
|
||||
dat += "<span style='border: 1px solid #161616; background-color: #[right_eye_color];'> </span> <a href='?_src_=prefs;preference=eye_right;task=input'>Change</a><BR>"
|
||||
dat += "</td>"
|
||||
else if(use_skintones || mutant_colors)
|
||||
dat += "</td>"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -868,7 +868,8 @@
|
||||
if(1)
|
||||
to_chat(user, "<span class='danger'>Your appearance morphs to that of a very small humanoid ash dragon! You get to look like a freak without the cool abilities.</span>")
|
||||
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, "<span class='danger'>Your flesh begins to melt! Miraculously, you seem fine otherwise.</span>")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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))
|
||||
. += "<span class='warning'><B>[t_His] eyes are glowing an unnatural red!</B></span>"
|
||||
else if(HAS_TRAIT(src, TRAIT_HIJACKER))
|
||||
var/obj/item/implant/hijack/H = user.getImplant(/obj/item/implant/hijack)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"]]"
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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.
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB |
Reference in New Issue
Block a user