Second package of skin tone fixes (#29489)

* further skin tone fixes

* a bit more
This commit is contained in:
kyunkyunkyun
2025-06-17 16:49:49 +00:00
committed by GitHub
parent 6c2915e581
commit 23a6483db0
10 changed files with 59 additions and 93 deletions
@@ -318,18 +318,18 @@
return TRUE
/mob/living/carbon/human/proc/change_skin_color(colour = "#000000")
if(colour == skin_colour || !(dna.species.bodyflags & HAS_SKIN_COLOR))
/mob/living/carbon/human/proc/change_skin_color(color = "#000000")
if(!is_color_text(color) || color == skin_colour || !(dna.species.bodyflags & HAS_SKIN_COLOR))
return
skin_colour = colour
skin_colour = color
force_update_limbs()
return TRUE
/// Tone must be between -185 and 220. commonly used in 1 to 220, see `random_skin_tone()` for species-specific values
/mob/living/carbon/human/proc/change_skin_tone(tone, override = FALSE)
if(s_tone == tone || !((dna.species.bodyflags & HAS_SKIN_TONE) || (dna.species.bodyflags & HAS_ICON_SKIN_TONE)))
if(!isnum(tone) || !((dna.species.bodyflags & HAS_SKIN_TONE) || (dna.species.bodyflags & HAS_ICON_SKIN_TONE)))
return
if(tone in -185 to 220)
@@ -20,7 +20,7 @@
var/list/m_colours = DEFAULT_MARKING_COLOURS //All colours set to #000000.
var/list/m_styles = DEFAULT_MARKING_STYLES //All markings set to None.
var/s_tone = 0 //Skin tone
var/s_tone = 1 //Skin tone
//Skin colour
var/skin_colour = "#000000"
@@ -1176,8 +1176,8 @@
else
skin_colour = "#000000"
if(!(dna.species.bodyflags & HAS_SKIN_TONE))
s_tone = 0
if(!(dna.species.bodyflags & (HAS_SKIN_TONE|HAS_ICON_SKIN_TONE)))
s_tone = 1
var/list/thing_to_check = list(ITEM_SLOT_MASK, ITEM_SLOT_HEAD, ITEM_SLOT_SHOES, ITEM_SLOT_GLOVES, ITEM_SLOT_LEFT_EAR, ITEM_SLOT_RIGHT_EAR, ITEM_SLOT_EYES, ITEM_SLOT_LEFT_HAND, ITEM_SLOT_RIGHT_HAND, ITEM_SLOT_NECK)
var/list/kept_items[0]
@@ -218,7 +218,7 @@
if(istype(head_organ))
head_organ.h_style = "Bald"
head_organ.f_style = "Shaved"
target.s_tone = 35
target.change_skin_tone(1)
// No `update_dna=0` here because the character is being over-written
target.change_eye_color(1,1,1)
for(var/obj/item/W in target.get_all_slots())