Fixes species without hair losing their hairstyle to radiation (#15501)

* Hairloss V1

* Unathi revert
This commit is contained in:
SabreML
2021-03-30 11:51:16 +01:00
committed by GitHub
parent c6b907e3e2
commit 504aba7ce0
16 changed files with 22 additions and 17 deletions
+1
View File
@@ -81,3 +81,4 @@
#define NO_INTORGANS "no_internal_organs"
#define CAN_WINGDINGS "can_wingdings"
#define NO_CLONESCAN "no_clone_scan"
#define NO_HAIR "no_hair"
@@ -31,6 +31,8 @@ BONUS
to_chat(M, "<span class='warning'>[pick("Your scalp itches.", "Your skin feels flakey.")]</span>")
if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
if(NO_HAIR in H.dna.species.species_traits)
return // Hair can't fall out if you don't have any
var/obj/item/organ/external/head/head_organ = H.get_organ("head")
switch(A.stage)
if(3, 4)
+1 -1
View File
@@ -103,7 +103,7 @@
icon = H.icon
speak_emote = list("groans")
icon_state = "zombie2_s"
if(head_organ)
if(head_organ && !(NO_HAIR in H.dna.species.species_traits))
head_organ.h_style = null
H.update_hair()
human_overlays = H.overlays
@@ -354,11 +354,12 @@ emp_act
if(prob(min(acidpwr * acid_volume / 10, 90))) //Applies disfigurement
head_organ.receive_damage(acidity, 2 * acidity)
emote("scream")
head_organ.h_style = "Bald"
head_organ.f_style = "Shaved"
update_hair()
update_fhair()
head_organ.disfigure()
if(!(NO_HAIR in dna.species.species_traits))
head_organ.h_style = "Bald"
head_organ.f_style = "Shaved"
update_hair()
update_fhair()
UpdateDamageIcon()
@@ -807,7 +807,7 @@
if(radiation > RAD_MOB_HAIRLOSS)
var/obj/item/organ/external/head/head_organ = H.get_organ("head")
if(!head_organ)
if(!head_organ || (NO_HAIR in species_traits))
return
if(prob(15) && head_organ.h_style != "Bald")
to_chat(H, "<span class='danger'>Your hair starts to fall out in clumps...</span>")
@@ -13,7 +13,7 @@
"eyes" = /obj/item/organ/internal/eyes/abductor //3 darksight.
)
species_traits = list(NO_BLOOD)
species_traits = list(NO_BLOOD, NO_HAIR)
inherent_traits = list(TRAIT_VIRUSIMMUNE, TRAIT_CHUNKYFINGERS, TRAIT_NOHUNGER, TRAIT_NOBREATH, TRAIT_NOEXAMINE)
dies_at_threshold = TRUE
@@ -20,6 +20,7 @@
even the simplest concepts of other minds. Their alien physiology allows them survive happily off a diet of nothing but light, \
water and other radiation."
species_traits = list(NO_HAIR)
inherent_traits = list(TRAIT_NOGERMS, TRAIT_NODECAY)
inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID | MOB_PLANT
clothing_flags = HAS_SOCKS
@@ -31,7 +31,7 @@
"is sucking in warm air!",
"is holding their breath!")
species_traits = list(LIPS, IS_WHITELISTED)
species_traits = list(LIPS, IS_WHITELISTED, NO_HAIR)
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT
bodyflags = HAS_SKIN_TONE | HAS_BODY_MARKINGS
has_gender = FALSE
@@ -4,7 +4,7 @@
icobase = 'icons/mob/human_races/r_golem.dmi'
species_traits = list(NO_BLOOD)
species_traits = list(NO_BLOOD, NO_HAIR)
inherent_traits = list(TRAIT_RESISTHEAT, TRAIT_NOBREATH, TRAIT_RESISTCOLD, TRAIT_RESISTHIGHPRESSURE, TRAIT_RESISTLOWPRESSURE, TRAIT_NOFIRE, TRAIT_CHUNKYFINGERS, TRAIT_RADIMMUNE, TRAIT_PIERCEIMMUNE, TRAIT_NOPAIN)
inherent_biotypes = MOB_HUMANOID | MOB_MINERAL
dies_at_threshold = TRUE
@@ -18,7 +18,7 @@
brute_mod = 1.25 //greys are fragile
species_traits = list(LIPS, IS_WHITELISTED, CAN_WINGDINGS)
species_traits = list(LIPS, IS_WHITELISTED, CAN_WINGDINGS, NO_HAIR)
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
bodyflags = HAS_BODY_MARKINGS
dietflags = DIET_HERB
@@ -9,7 +9,7 @@
hunger_drain = 0.15
tox_mod = 1.7
species_traits = list(IS_WHITELISTED)
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
@@ -5,7 +5,7 @@
dangerous_existence = TRUE //So so much
//language = "Clatter"
species_traits = list(IS_WHITELISTED, NO_BLOOD, NOTRANSSTING)
species_traits = list(IS_WHITELISTED, NO_BLOOD, NOTRANSSTING, NO_HAIR)
inherent_traits = list(TRAIT_RADIMMUNE, TRAIT_NOHUNGER)
inherent_biotypes = MOB_HUMANOID | MOB_MINERAL
forced_heartattack = TRUE // Plasmamen have no blood, but they should still get heart-attacks
@@ -9,7 +9,7 @@
blood_color = "#FFFFFF"
flesh_color = "#E6E6C6"
species_traits = list(NO_BLOOD)
species_traits = list(NO_BLOOD, NO_HAIR)
inherent_traits = list(TRAIT_RESISTHEAT, TRAIT_NOBREATH, TRAIT_RESISTCOLD, TRAIT_RESISTHIGHPRESSURE, TRAIT_RESISTLOWPRESSURE, TRAIT_RADIMMUNE, TRAIT_PIERCEIMMUNE, TRAIT_NOHUNGER, TRAIT_XENO_IMMUNE)
inherent_biotypes = MOB_UNDEAD | MOB_HUMANOID
tox_mod = 0
@@ -12,7 +12,7 @@
the secrets of their empire to their allies."
species_traits = list(LIPS)
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
@@ -34,7 +34,7 @@
"antennae" = /obj/item/organ/internal/wryn/hivenode
)
species_traits = list(LIPS, IS_WHITELISTED, NO_CLONESCAN, HIVEMIND)
species_traits = list(LIPS, IS_WHITELISTED, NO_CLONESCAN, NO_HAIR, HIVEMIND)
inherent_traits = list(TRAIT_NOBREATH)
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
bodyflags = HAS_SKIN_COLOR
@@ -76,9 +76,9 @@
attacktext = "bites"
attack_sound = 'sound/creatures/zombie_attack.ogg'
icon_state = "zombie2_s"
if(head_organ)
if(head_organ && !(NO_HAIR in H.dna.species.species_traits))
head_organ.h_style = null
H.update_hair()
H.update_hair()
host_species = H.dna.species.name
human_overlays = H.overlays
update_icons()