diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 5529100a5f2..c3742ec69b6 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -104,6 +104,7 @@ #define HAS_BODYACC_COLOR 8192 #define BALD 16384 #define ALL_RPARTS 32768 +#define SHAVED 65536 //Pre-baked combinations of the above body flags #define HAS_BODY_ACCESSORY HAS_TAIL|HAS_WING diff --git a/code/modules/client/preference/link_processing.dm b/code/modules/client/preference/link_processing.dm index b3e50e62b2d..69c49d7bccf 100644 --- a/code/modules/client/preference/link_processing.dm +++ b/code/modules/client/preference/link_processing.dm @@ -328,14 +328,14 @@ active_character.b_type = new_b_type if("hair") - if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) //Species that have hair. (No HAS_HAIR flag) + if(!(S.bodyflags & BALD)) var/input = "Choose your character's hair colour:" var/new_hair = input(user, input, "Character Preference", active_character.h_colour) as color|null if(new_hair) active_character.h_colour = new_hair if("secondary_hair") - if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) + if(!(S.bodyflags & BALD)) var/datum/sprite_accessory/hair_style = GLOB.hair_styles_public_list[active_character.h_style] if(hair_style.secondary_theme && !hair_style.no_sec_colour) var/new_hair = input(user, "Choose your character's secondary hair colour:", "Character Preference", active_character.h_sec_colour) as color|null @@ -558,13 +558,13 @@ active_character.body_accessory = (new_body_accessory == "None") ? null : new_body_accessory if("facial") - if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) //Species that have facial hair. (No HAS_HAIR_FACIAL flag) + if(!(S.bodyflags & SHAVED)) var/new_facial = input(user, "Choose your character's facial-hair colour:", "Character Preference", active_character.f_colour) as color|null if(new_facial) active_character.f_colour = new_facial if("secondary_facial") - if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) + if(!(S.bodyflags & SHAVED)) var/datum/sprite_accessory/facial_hair_style = GLOB.facial_hair_styles_list[active_character.f_style] if(facial_hair_style.secondary_theme && !facial_hair_style.no_sec_colour) var/new_facial = input(user, "Choose your character's secondary facial-hair colour:", "Character Preference", active_character.f_sec_colour) as color|null diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index 0bfa4a4db60..938790da62a 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -266,7 +266,9 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts dat += "
" dat += "- Gradient Offset: [active_character.h_grad_offset_x],[active_character.h_grad_offset_y]" dat += "
" - + else + active_character.h_style = "Bald" + if(!(S.bodyflags & SHAVED)) dat += "Facial Hair: " dat += "[active_character.f_style ? "[active_character.f_style]" : "Shaved"]" dat += "Color [color_square(active_character.f_colour)]" @@ -274,6 +276,8 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts if(temp_facial_hair_style && temp_facial_hair_style.secondary_theme && !temp_facial_hair_style.no_sec_colour) dat += " Color #2 [color_square(active_character.f_sec_colour)]" dat += "
" + else + active_character.f_style = "Shaved" if(!(S.bodyflags & ALL_RPARTS)) diff --git a/code/modules/mob/living/carbon/human/species/diona.dm b/code/modules/mob/living/carbon/human/species/diona.dm index 23dc2b3104d..3a5ebf23dba 100644 --- a/code/modules/mob/living/carbon/human/species/diona.dm +++ b/code/modules/mob/living/carbon/human/species/diona.dm @@ -25,6 +25,7 @@ clothing_flags = HAS_SOCKS default_hair_colour = "#000000" has_gender = FALSE + bodyflags = SHAVED dietflags = DIET_HERB //Diona regenerate nutrition in light and water, no diet necessary, but if they must, they eat other plants *scream taste_sensitivity = TASTE_SENSITIVITY_DULL skinned_type = /obj/item/stack/sheet/wood diff --git a/code/modules/mob/living/carbon/human/species/drask.dm b/code/modules/mob/living/carbon/human/species/drask.dm index ff4a379b6cf..8c3645e0cab 100644 --- a/code/modules/mob/living/carbon/human/species/drask.dm +++ b/code/modules/mob/living/carbon/human/species/drask.dm @@ -33,7 +33,7 @@ species_traits = list(LIPS, IS_WHITELISTED, NO_HAIR) clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT - bodyflags = HAS_SKIN_TONE | HAS_BODY_MARKINGS + bodyflags = HAS_SKIN_TONE | HAS_BODY_MARKINGS | BALD | SHAVED has_gender = FALSE dietflags = DIET_OMNI diff --git a/code/modules/mob/living/carbon/human/species/grey.dm b/code/modules/mob/living/carbon/human/species/grey.dm index 07d1ce44fe1..5457ccdf38b 100644 --- a/code/modules/mob/living/carbon/human/species/grey.dm +++ b/code/modules/mob/living/carbon/human/species/grey.dm @@ -18,7 +18,7 @@ species_traits = list(LIPS, IS_WHITELISTED, CAN_WINGDINGS, NO_HAIR) clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS - bodyflags = HAS_BODY_MARKINGS | HAS_BODYACC_COLOR + bodyflags = HAS_BODY_MARKINGS | HAS_BODYACC_COLOR | SHAVED | BALD dietflags = DIET_HERB has_gender = FALSE reagent_tag = PROCESS_ORG diff --git a/code/modules/mob/living/carbon/human/species/kidan.dm b/code/modules/mob/living/carbon/human/species/kidan.dm index 6ef01df5196..02ba4a71c00 100644 --- a/code/modules/mob/living/carbon/human/species/kidan.dm +++ b/code/modules/mob/living/carbon/human/species/kidan.dm @@ -12,7 +12,7 @@ species_traits = list(IS_WHITELISTED, NO_HAIR) inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID | MOB_BUG clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS - bodyflags = HAS_HEAD_ACCESSORY | HAS_HEAD_MARKINGS | HAS_BODY_MARKINGS | HAS_BODYACC_COLOR + bodyflags = HAS_HEAD_ACCESSORY | HAS_HEAD_MARKINGS | HAS_BODY_MARKINGS | HAS_BODYACC_COLOR | SHAVED eyes = "kidan_eyes_s" dietflags = DIET_HERB flesh_color = "#ba7814" diff --git a/code/modules/mob/living/carbon/human/species/machine.dm b/code/modules/mob/living/carbon/human/species/machine.dm index 283b65d7cea..bf6090efe22 100644 --- a/code/modules/mob/living/carbon/human/species/machine.dm +++ b/code/modules/mob/living/carbon/human/species/machine.dm @@ -25,7 +25,7 @@ inherent_traits = list(TRAIT_VIRUSIMMUNE, TRAIT_NOBREATH, TRAIT_NOGERMS, TRAIT_NODECAY, TRAIT_NOPAIN, TRAIT_GENELESS) //Computers that don't decay? What a lie! inherent_biotypes = MOB_ROBOTIC | MOB_HUMANOID clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS - bodyflags = HAS_SKIN_COLOR | HAS_HEAD_MARKINGS | HAS_HEAD_ACCESSORY | ALL_RPARTS + bodyflags = HAS_SKIN_COLOR | HAS_HEAD_MARKINGS | HAS_HEAD_ACCESSORY | ALL_RPARTS | SHAVED dietflags = 0 //IPCs can't eat, so no diet taste_sensitivity = TASTE_SENSITIVITY_NO_TASTE blood_color = COLOR_BLOOD_MACHINE diff --git a/code/modules/mob/living/carbon/human/species/nucleation.dm b/code/modules/mob/living/carbon/human/species/nucleation.dm index b4dc9d1f952..0329421ddff 100644 --- a/code/modules/mob/living/carbon/human/species/nucleation.dm +++ b/code/modules/mob/living/carbon/human/species/nucleation.dm @@ -15,6 +15,7 @@ brute_mod = 2 // damn, double wham, double dam species_traits = list(LIPS, IS_WHITELISTED, NO_BLOOD, NO_CLONESCAN) inherent_traits = list(TRAIT_NOBREATH, TRAIT_RADIMMUNE, TRAIT_NOPAIN) + bodyflags = SHAVED dies_at_threshold = TRUE dietflags = DIET_OMNI //still human at their core, so they maintain their eating habits and diet diff --git a/code/modules/mob/living/carbon/human/species/plasmaman.dm b/code/modules/mob/living/carbon/human/species/plasmaman.dm index 671fec6055a..eb120ccbef3 100644 --- a/code/modules/mob/living/carbon/human/species/plasmaman.dm +++ b/code/modules/mob/living/carbon/human/species/plasmaman.dm @@ -11,6 +11,7 @@ forced_heartattack = TRUE // Plasmamen have no blood, but they should still get heart-attacks skinned_type = /obj/item/stack/sheet/mineral/plasma // We're low on plasma, R&D! *eyes plasmaman co-worker intently* dietflags = DIET_OMNI + bodyflags = BALD | SHAVED reagent_tag = PROCESS_ORG taste_sensitivity = TASTE_SENSITIVITY_NO_TASTE //skeletons can't taste anything diff --git a/code/modules/mob/living/carbon/human/species/skrell.dm b/code/modules/mob/living/carbon/human/species/skrell.dm index 1beed1d8773..6ad25035d04 100644 --- a/code/modules/mob/living/carbon/human/species/skrell.dm +++ b/code/modules/mob/living/carbon/human/species/skrell.dm @@ -15,7 +15,7 @@ species_traits = list(LIPS, NO_HAIR) inherent_traits = list(TRAIT_NOFAT, TRAIT_WATERBREATH) clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS - bodyflags = HAS_SKIN_COLOR | HAS_BODY_MARKINGS + bodyflags = HAS_SKIN_COLOR | HAS_BODY_MARKINGS | SHAVED dietflags = DIET_HERB taste_sensitivity = TASTE_SENSITIVITY_DULL flesh_color = "#8CD7A3"