From 98f4520a4358992149ed9c0d2af079433ea84bee Mon Sep 17 00:00:00 2001
From: Henri215 <77684085+Henri215@users.noreply.github.com>
Date: Sun, 25 Sep 2022 13:44:27 -0300
Subject: [PATCH] bald expansion and added shave bodyflag (#19117)
---
code/__DEFINES/flags.dm | 1 +
code/modules/client/preference/link_processing.dm | 8 ++++----
code/modules/client/preference/preferences.dm | 6 +++++-
code/modules/mob/living/carbon/human/species/diona.dm | 1 +
code/modules/mob/living/carbon/human/species/drask.dm | 2 +-
code/modules/mob/living/carbon/human/species/grey.dm | 2 +-
code/modules/mob/living/carbon/human/species/kidan.dm | 2 +-
code/modules/mob/living/carbon/human/species/machine.dm | 2 +-
.../modules/mob/living/carbon/human/species/nucleation.dm | 1 +
code/modules/mob/living/carbon/human/species/plasmaman.dm | 1 +
code/modules/mob/living/carbon/human/species/skrell.dm | 2 +-
11 files changed, 18 insertions(+), 10 deletions(-)
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"