From e20f2e1409f21739d4e702872855105c35c6db37 Mon Sep 17 00:00:00 2001 From: Mloc Date: Thu, 22 Aug 2013 15:12:59 +0100 Subject: [PATCH] Small fixes to hair. Hair styles that aren't designed to have color shifts will no longer be affected. Balding virus symptom now only applies to humans. Signed-off-by: Mloc --- .../mob/living/carbon/human/update_icons.dm | 12 ++++--- .../mob/new_player/sprite_accessories.dm | 33 ++++++++++++++++++- code/modules/organs/organ_external.dm | 8 +++-- code/modules/virus2/effect.dm | 2 +- 4 files changed, 47 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 507f38723a4..49242c64de1 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -350,8 +350,10 @@ proc/get_damage_icon_part(damage_state, body_part) if(facial_hair_style && src.species.name in facial_hair_style.species_allowed) var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") var/icon/facial_l = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_l") - facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) - facial_l.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) + if(facial_hair_style.do_colouration) + facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) + facial_l.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) + face_standing.Blend(facial_s, ICON_OVERLAY) face_lying.Blend(facial_l, ICON_OVERLAY) @@ -360,8 +362,10 @@ proc/get_damage_icon_part(damage_state, body_part) if(hair_style && src.species.name in hair_style.species_allowed) var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") var/icon/hair_l = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_l") - hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) - hair_l.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) + if(hair_style.do_colouration) + hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) + hair_l.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) + face_standing.Blend(hair_s, ICON_OVERLAY) face_lying.Blend(hair_l, ICON_OVERLAY) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index c983c3ba23c..55e37a4a4f6 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -28,9 +28,12 @@ // Determines if the accessory will be skipped or included in random hair generations var/gender = NEUTER - // Restrict some styles to specific races + // Restrict some styles to specific species var/list/species_allowed = list("Human") + // Whether or not the accessory can be affected by colouration + var/do_colouration = 1 + /* //////////////////////////// @@ -386,117 +389,139 @@ name = "Long Unathi Spines" icon_state = "soghun_longspines" species_allowed = list("Unathi") + do_colouration = 0 una_spines_short name = "Short Unathi Spines" icon_state = "soghun_shortspines" species_allowed = list("Unathi") + do_colouration = 0 una_frills_long name = "Long Unathi Frills" icon_state = "soghun_longfrills" species_allowed = list("Unathi") + do_colouration = 0 una_frills_short name = "Short Unathi Frills" icon_state = "soghun_shortfrill" species_allowed = list("Unathi") + do_colouration = 0 una_horns name = "Unathi Horns" icon_state = "soghun_horns" species_allowed = list("Unathi") + do_colouration = 0 skr_tentacle_m name = "Skrell Male Tentacles" icon_state = "skrell_hair_m" species_allowed = list("Skrell") gender = MALE + do_colouration = 0 skr_tentacle_f name = "Skrell Female Tentacles" icon_state = "skrell_hair_f" species_allowed = list("Skrell") gender = FEMALE + do_colouration = 0 skr_gold_m name = "Gold plated Skrell Male Tentacles" icon_state = "skrell_goldhair_m" species_allowed = list("Skrell") gender = MALE + do_colouration = 0 skr_gold_f name = "Gold chained Skrell Female Tentacles" icon_state = "skrell_goldhair_f" species_allowed = list("Skrell") gender = FEMALE + do_colouration = 0 skr_clothtentacle_m name = "Cloth draped Skrell Male Tentacles" icon_state = "skrell_clothhair_m" species_allowed = list("Skrell") gender = MALE + do_colouration = 0 skr_clothtentacle_f name = "Cloth draped Skrell Female Tentacles" icon_state = "skrell_clothhair_f" species_allowed = list("Skrell") gender = FEMALE + do_colouration = 0 taj_ears name = "Tajaran Ears" icon_state = "ears_plain" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_clean name = "Tajara Clean" icon_state = "hair_clean" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_shaggy name = "Tajara Shaggy" icon_state = "hair_shaggy" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_mohawk name = "Tajaran Mohawk" icon_state = "hair_mohawk" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_plait name = "Tajara Plait" icon_state = "hair_plait" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_straight name = "Tajara Straight" icon_state = "hair_straight" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_long name = "Tajara Long" icon_state = "hair_long" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_rattail name = "Tajara Rat Tail" icon_state = "hair_rattail" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_spiky name = "Tajara Spiky" icon_state = "hair_tajspiky" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_messy name = "Tajara Messy" icon_state = "hair_messy" species_allowed = list("Tajaran") + do_colouration = 0 vox_quills_short name = "Short Vox Quills" icon_state = "vox_shortquills" species_allowed = list("Vox") + do_colouration = 0 /datum/sprite_accessory/facial_hair @@ -504,31 +529,37 @@ name = "Tajara Sideburns" icon_state = "facial_mutton" species_allowed = list("Tajaran") + do_colouration = 0 taj_mutton name = "Tajara Mutton" icon_state = "facial_mutton" species_allowed = list("Tajaran") + do_colouration = 0 taj_pencilstache name = "Tajara Pencilstache" icon_state = "facial_pencilstache" species_allowed = list("Tajaran") + do_colouration = 0 taj_moustache name = "Tajara Moustache" icon_state = "facial_moustache" species_allowed = list("Tajaran") + do_colouration = 0 taj_goatee name = "Tajara Goatee" icon_state = "facial_goatee" species_allowed = list("Tajaran") + do_colouration = 0 taj_smallstache name = "Tajara Smallsatche" icon_state = "facial_smallstache" species_allowed = list("Tajaran") + do_colouration = 0 //skin styles - WIP //going to have to re-integrate this with surgery diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 02d0e47512a..de037500009 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -766,14 +766,18 @@ obj/item/weapon/organ/New(loc, mob/living/carbon/human/H) var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[H.f_style] if(facial_hair_style) var/icon/facial = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_l") - facial.Blend(rgb(H.r_facial, H.g_facial, H.b_facial), ICON_ADD) + if(facial_hair_style.do_colouration) + facial.Blend(rgb(H.r_facial, H.g_facial, H.b_facial), ICON_ADD) + base.Blend(facial, ICON_OVERLAY) if(H.h_style && !(H.head && (H.head.flags & BLOCKHEADHAIR))) var/datum/sprite_accessory/hair_style = hair_styles_list[H.h_style] if(hair_style) var/icon/hair = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_l") - hair.Blend(rgb(H.r_hair, H.g_hair, H.b_hair), ICON_ADD) + if(hair_style.do_colouration) + hair.Blend(rgb(H.r_hair, H.g_hair, H.b_hair), ICON_ADD) + base.Blend(hair, ICON_OVERLAY) icon = base diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm index b50943549cd..86b69cc8c15 100644 --- a/code/modules/virus2/effect.dm +++ b/code/modules/virus2/effect.dm @@ -309,7 +309,7 @@ activate(var/mob/living/carbon/mob,var/multiplier) if(istype(mob, /mob/living/carbon/human)) var/mob/living/carbon/human/H = mob - if(!(H.h_style == "Bald") && !(H.h_style == "Balding Hair")) + if(H.species.name == "Human" && !(H.h_style == "Bald") && !(H.h_style == "Balding Hair")) H << "Your hair starts to fall out in clumps..." spawn(50) H.h_style = "Balding Hair"