SPECIES NUKING 2023: Refactors a bunch of species traits into flags for the head bodypart (#76074)

## About The Pull Request

Title. 
I saw a comment on psyker code complaining about these species traits
(which admittedly, they suck) and heeded the call to turn all of this
crap into something defined almost entirely by the head bodypart.

## Why It's Good For The Game

Potential to simplify species code further in the future, by delegating
more visuals to bodyparts, which is where most of them should be
handled.

## Changelog

Should not be player facing, unless I fucked up.

---------

Co-authored-by: Time-Green <timkoster1@hotmail.com>
This commit is contained in:
ChungusGamer666
2023-06-22 10:23:19 +02:00
committed by GitHub
co-authored by Time-Green
parent 866a06a248
commit f030b3b5aa
51 changed files with 494 additions and 440 deletions
@@ -550,8 +550,9 @@
affected_human.facial_hairstyle = "Shaved"
affected_human.facial_hair_color = "#000000"
affected_human.hair_color = "#000000"
if(!(HAIR in affected_human.dna.species.species_traits)) //No hair? No problem!
affected_human.dna.species.species_traits += HAIR
var/obj/item/bodypart/head/head = affected_human.get_bodypart(BODY_ZONE_HEAD)
if(head)
head.head_flags |= HEAD_HAIR //No hair? No problem!
if(affected_human.dna.species.use_skintones)
affected_human.skin_tone = "orange"
else if(MUTCOLORS in affected_human.dna.species.species_traits) //Aliens with custom colors simply get turned orange
@@ -2114,12 +2115,10 @@
var/mob/living/carbon/human/human_mob = affected_mob
if(creation_purity == 1 && human_mob.has_quirk(/datum/quirk/item_quirk/bald))
human_mob.remove_quirk(/datum/quirk/item_quirk/bald)
var/datum/species/species_datum = human_mob.dna?.species
if(!species_datum)
var/obj/item/bodypart/head/head = human_mob.get_bodypart(BODY_ZONE_HEAD)
if(!head || (head.head_flags & HEAD_HAIR))
return
if(species_datum.species_traits.Find(HAIR))
return
species_datum.species_traits |= HAIR
head.head_flags |= HEAD_HAIR
var/message
if(HAS_TRAIT(affected_mob, TRAIT_BALD))
message = span_warning("You feel your scalp mutate, but you are still hopelessly bald.")