Skip to content

Commit

Permalink
TGS Test Merge (#21275)
Browse files Browse the repository at this point in the history
  • Loading branch information
Yogbot-13 committed Jun 14, 2024
2 parents 80c7646 + 629efa7 commit e40784e
Show file tree
Hide file tree
Showing 217 changed files with 3,008 additions and 226 deletions.
11 changes: 10 additions & 1 deletion code/__DEFINES/DNA.dm
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@
#define DNA_HAIR_STYLE_BLOCK 7

/// This number needs to equal the total number of DNA blocks
#define DNA_FEATURE_BLOCKS 22
#define DNA_FEATURE_BLOCKS 28

#define DNA_MUTANT_COLOR_BLOCK 1
#define DNA_ETHEREAL_COLOR_BLOCK 2
Expand All @@ -123,6 +123,12 @@
#define DNA_PRETERNIS_WEATHERING_BLOCK 20
#define DNA_PRETERNIS_ANTENNA_BLOCK 21
#define DNA_PRETERNIS_EYE_BLOCK 22
#define DNA_VOX_QUILLS_BLOCK 23
#define DNA_VOX_FACIAL_QUILLS_BLOCK 24
#define DNA_VOX_TAIL_MARKINGS_BLOCK 25
#define DNA_VOX_BODY_MARKINGS_BLOCK 26
#define DNA_VOX_SKIN_TONE_BLOCK 27
#define DNA_MUTANT_COLOR_SECONDARY 28

#define DNA_SEQUENCE_LENGTH 4
#define DNA_MUTATION_BLOCKS 8
Expand Down Expand Up @@ -183,6 +189,9 @@
/// has a tail
#define HAS_TAIL 24
#define NONANITES 25
#define HAIRCOLOR 26
#define FACEHAIRCOLOR 27
#define MUTCOLORS_SECONDARY 28

//organ slots
#define ORGAN_SLOT_BRAIN "brain"
Expand Down
7 changes: 7 additions & 0 deletions code/__DEFINES/species_clothing_paths.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
//HUMAN PATHS
///The dmi for humanoid uniforms
#define DEFAULT_UNIFORM_FILE 'icons/mob/clothing/uniform/uniform.dmi'
///The dmi for humanoid shoes
#define DEFAULT_SHOES_FILE 'icons/mob/clothing/feet/feet.dmi'
///The dmi for humanoid oversuits
#define DEFAULT_SUIT_FILE 'icons/mob/clothing/suit/suit.dmi'
10 changes: 10 additions & 0 deletions code/__DEFINES/{yogs_defines}/colors.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
//Vox blood color
#define COLOR_BLOOD_VOX "#2299FC"

//Color blending modes
#define COLOR_BLEND_MULTIPLY "multiply"
#define COLOR_BLEND_ADD "add"

//Color matrix
#define COLOR_MATRIX_ADD(color) list(COLOR_RED, COLOR_VIBRANT_LIME, COLOR_BLUE, color)
#define COLOR_MATRIX_OVERLAY(color) list(COLOR_BLACK, COLOR_BLACK, COLOR_BLACK, color)
2 changes: 2 additions & 0 deletions code/__DEFINES/{yogs_defines}/is_helpers.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#define isvox(A) (is_species(A, /datum/species/vox))

#define isdarkspawn(A) (A?.mind?.has_antag_datum(/datum/antagonist/darkspawn))
#define isthrall(A) (A?.mind?.has_antag_datum(/datum/antagonist/thrall))
#define ispsyche(A) (A?.mind?.has_antag_datum(/datum/antagonist/psyche)) //non thrall teammates
Expand Down
4 changes: 4 additions & 0 deletions code/__DEFINES/{yogs_defines}/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,7 @@
#define REGEN_BLOOD_REQUIREMENT 40 // The amount of "blood" that a slimeperson consumes when regenerating a single limb.

#define MONKIFY_BLOOD_COEFFICIENT (BLOOD_VOLUME_MONKEY/BLOOD_VOLUME_GENERIC) //the ratio of monkey to human blood volume so a 100% blood volume monkey will not instantly die when you turn it into a human with ~58% blood volume

#define SPECIES_VOX "vox"

#define BUTT_SPRITE_VOX "vox"
11 changes: 11 additions & 0 deletions code/__DEFINES/{yogs_defines}/species_clothing_paths.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
//VOX PATHS
#define VOX_MASK_FILE 'icons/mob/clothing/species/vox/mask.dmi'
#define VOX_HEAD_FILE 'icons/mob/clothing/species/vox/head.dmi'
#define VOX_BACK_FILE 'icons/mob/clothing/species/vox/back.dmi'
#define VOX_EARS_FILE 'icons/mob/clothing/species/vox/ears.dmi'
#define VOX_EYES_FILE 'icons/mob/clothing/species/vox/eyes.dmi'
#define VOX_SHOES_FILE 'icons/mob/clothing/species/vox/shoes.dmi'
#define VOX_GLOVES_FILE 'icons/mob/clothing/species/vox/gloves.dmi'
#define VOX_HELMET_FILE 'icons/mob/clothing/species/vox/helmet.dmi'
#define VOX_SUIT_FILE 'icons/mob/clothing/species/vox/suit.dmi'
#define VOX_UNIFORM_FILE 'icons/mob/clothing/species/vox/uniform.dmi'
9 changes: 9 additions & 0 deletions code/__HELPERS/global_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,15 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_screens, GLOB.ipc_screens_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_antennas, GLOB.ipc_antennas_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_chassis, GLOB.ipc_chassis_list)
// Vox bodyparts
init_sprite_accessory_subtypes(/datum/sprite_accessory/vox_quills, GLOB.vox_quills_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/vox_facial_quills, GLOB.vox_facial_quills_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/vox_tails, GLOB.vox_tails_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/vox_body_markings, GLOB.vox_body_markings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/vox_tail_markings, GLOB.vox_tail_markings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/vox, GLOB.animated_vox_tails_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/vox_tail_markings_animated, GLOB.animated_vox_tail_markings_list)




Expand Down
11 changes: 7 additions & 4 deletions code/__HELPERS/icons.dm
Original file line number Diff line number Diff line change
Expand Up @@ -228,10 +228,13 @@ world
/icon/proc/Greyify()
MapColors(0.75,0.3,0.3, 0.6,0.75,0.6, 0.10,0.10,0.50, 0,0,0)

/icon/proc/ColorTone(tone)
Greyify()
/icon/proc/ColorTone(tone, greyify = FALSE)
if(greyify)
Greyify()
else
GrayScale()

var/list/TONE = ReadRGB(tone)
var/list/TONE = rgb2num(tone)
var/gray = round(TONE[1]*0.3 + TONE[2]*0.59 + TONE[3]*0.11, 1)

var/icon/upper = (255-gray) ? new(src) : null
Expand Down Expand Up @@ -922,7 +925,7 @@ world

/proc/getHologramIcon(icon/A, safety=1)//If safety is on, a new icon is not created.
var/icon/flat_icon = safety ? A : new(A)//Has to be a new icon to not constantly change the same icon.
flat_icon.ColorTone(rgb(125,180,225))//Let's make it bluish.
flat_icon.ColorTone(rgb(125,180,225), greyify = TRUE)//Let's make it bluish.
flat_icon.ChangeOpacity(0.5)//Make it half transparent.
var/icon/alpha_mask = new('icons/effects/effects.dmi', "scanline")//Scanline effect.
flat_icon.AddAlphaMask(alpha_mask)//Finally, let's mix in a distortion effect.
Expand Down
18 changes: 17 additions & 1 deletion code/__HELPERS/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,21 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_antennas, GLOB.ipc_antennas_list)
if(!GLOB.ipc_chassis_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_chassis, GLOB.ipc_chassis_list)
if(!GLOB.vox_quills_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/vox_quills, GLOB.vox_quills_list)
if(!GLOB.vox_facial_quills_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/vox_facial_quills, GLOB.vox_facial_quills_list)
if(!GLOB.vox_tails_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/vox_tails, GLOB.vox_tails_list)
if(!GLOB.vox_body_markings_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/vox_body_markings, GLOB.vox_body_markings_list)
if(!GLOB.vox_tail_markings_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/vox_tail_markings, GLOB.vox_tail_markings_list)

//For now we will always return none for tail_human and ears. this shit was unreadable if you do somethign like this make it at least readable
return(list(
"mcolor" = "#[pick("7F","FF")][pick("7F","FF")][pick("7F","FF")]",
"mcolor_secondary" = "#[pick("7F","FF")][pick("7F","FF")][pick("7F","FF")]",
"gradientstyle" = random_hair_gradient_style(10),
"gradientcolor" = "#[pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F")]",
"tail_lizard" = pick(GLOB.tails_list_lizard),
Expand Down Expand Up @@ -126,7 +137,12 @@
"pod_hair" = pick(GLOB.pod_hair_list),
"ipc_screen" = pick(GLOB.ipc_screens_list),
"ipc_antenna" = pick(GLOB.ipc_antennas_list),
"ipc_chassis" = pick(GLOB.ipc_chassis_list)
"ipc_chassis" = pick(GLOB.ipc_chassis_list),
"vox_skin_tone" = pick(GLOB.vox_skin_tones),
"vox_quills" = pick(GLOB.vox_quills_list),
"vox_facial_quills" = pick(GLOB.vox_facial_quills_list),
"vox_body_markings" = pick(GLOB.vox_body_markings_list),
"vox_tail_markings" = pick(GLOB.vox_tail_markings_list)
))

/proc/random_hair_style(gender)
Expand Down
4 changes: 4 additions & 0 deletions code/_globalvars/lists/maintenance_loot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -80,12 +80,14 @@ GLOBAL_LIST_INIT(maintenance_loot_traditional,list(
/obj/item/clothing/mask/breath = W_UNCOMMON,
/obj/item/tank/internals/air = W_COMMON,
/obj/item/tank/internals/anesthetic = W_RARE,
/obj/item/tank/internals/nitrogen = W_RARE,
/obj/item/tank/internals/emergency_oxygen = W_UNCOMMON,
/obj/item/tank/internals/emergency_oxygen/empty = W_UNCOMMON,
/obj/item/tank/internals/emergency_oxygen/engi = W_RARE,
/obj/item/tank/internals/emergency_oxygen/engi/empty = W_RARE,
/obj/item/tank/internals/emergency_oxygen/double = W_MYTHICAL,
/obj/item/tank/internals/emergency_oxygen/double/empty = W_MYTHICAL,
/obj/item/tank/internals/emergency_oxygen/vox = W_MYTHICAL,
/obj/item/tank/internals/ipc_coolant = W_RARE,
/obj/item/tank/internals/ipc_coolant/empty = W_RARE,
/obj/item/tank/internals/plasma = W_LEGENDARY,
Expand Down Expand Up @@ -365,6 +367,7 @@ GLOBAL_LIST_INIT(maintenance_loot_traditional,list(
/obj/item/stack/sheet/animalhide/gorilla = W_RARE,
/obj/item/stack/sheet/animalhide/human = W_RARE,
/obj/item/stack/sheet/animalhide/lizard = W_RARE,
/obj/item/stack/sheet/animalhide/vox = W_RARE,
/obj/item/stack/sheet/animalhide/monkey = W_RARE,
/obj/item/stack/sheet/animalhide/xeno = W_RARE,
/obj/item/storage/bag/money = W_RARE,
Expand Down Expand Up @@ -581,6 +584,7 @@ GLOBAL_LIST_INIT(maintenance_loot_makeshift,list(
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine = W_MYTHICAL,
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/gorilla = W_MYTHICAL,
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard = W_MYTHICAL,
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/vox = W_MYTHICAL,
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/moth = W_MYTHICAL,
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/plant = W_MYTHICAL,
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/shadow = W_MYTHICAL,
Expand Down
8 changes: 6 additions & 2 deletions code/controllers/subsystem/traumas.dm
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,10 @@ SUBSYSTEM_DEF(traumas)
/obj/item/clothing/suit/chickensuit, /obj/item/clothing/head/chicken,
/obj/item/clothing/suit/toggle/owlwings, /obj/item/clothing/under/costume/owl, /obj/item/clothing/mask/gas/owl_mask,
/obj/item/clothing/under/costume/griffin, /obj/item/clothing/shoes/griffin, /obj/item/clothing/head/griffin,
/obj/item/clothing/head/helmet/space/freedom, /obj/item/clothing/suit/space/freedom)),
/obj/item/clothing/head/helmet/space/freedom, /obj/item/clothing/suit/space/freedom, /obj/item/toy/plush/voxplushie,
/obj/item/clothing/mask/breath/vox, /obj/item/clothing/suit/space/vox, /obj/item/clothing/head/helmet/space/vox,
/obj/item/clothing/shoes/magboots/vox, /obj/item/clothing/gloves/color/yellow/vox, /obj/item/flag/species/vox, /obj/item/stack/sheet/animalhide/vox,
/obj/item/organ/tail/vox)),

"anime" = typecacheof(list(/obj/item/clothing/under/costume/schoolgirl, /obj/item/katana, /obj/item/reagent_containers/food/snacks/sashimi, /obj/item/reagent_containers/food/snacks/chawanmushi,
/obj/item/reagent_containers/food/drinks/bottle/sake, /obj/item/throwing_star, /obj/item/clothing/head/kitty/genuine, /obj/item/clothing/suit/space/space_ninja,
Expand All @@ -162,7 +165,8 @@ SUBSYSTEM_DEF(traumas)
"the supernatural" = typecacheof(list(/datum/species/golem/clockwork, /datum/species/golem/runic)),
"aliens" = typecacheof(list(/datum/species/abductor, /datum/species/jelly, /datum/species/pod,
/datum/species/shadow, /datum/species/polysmorph)),
"anime" = typecacheof(list(/datum/species/human/felinid))
"anime" = typecacheof(list(/datum/species/human/felinid)),
"birds" = typecacheof(list(/datum/species/vox))
)

return SS_INIT_SUCCESS
Expand Down
7 changes: 6 additions & 1 deletion code/datums/components/bloodysoles.dm
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ Like its parent but can be applied to carbon mobs instead of clothing items
*/

/datum/component/bloodysoles/feet
var/static/mutable_appearance/bloody_feet
var/mutable_appearance/bloody_feet

/datum/component/bloodysoles/feet/Initialize()
if(!iscarbon(parent))
Expand All @@ -236,6 +236,11 @@ Like its parent but can be applied to carbon mobs instead of clothing items
/datum/component/bloodysoles/feet/update_icon()
. = list()
if(ishuman(wielder))// Monkeys get no bloody feet :(
var/obj/item/bodypart/l_leg/left_leg = wielder.get_bodypart(BODY_ZONE_L_LEG)
var/obj/item/bodypart/r_leg/right_leg = wielder.get_bodypart(BODY_ZONE_R_LEG)
if(left_leg?.species_id == right_leg?.species_id)
if(icon_exists(bloody_feet.icon, "shoeblood_[left_leg.species_id]"))
bloody_feet.icon_state = "shoeblood_[left_leg.species_id]"
if(HAS_BLOOD_DNA(wielder))
bloody_feet.color = get_blood_dna_color(wielder.return_blood_DNA())
. += bloody_feet
Expand Down
5 changes: 2 additions & 3 deletions code/datums/diseases/advance/symptoms/shedding.dm
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,13 @@ BONUS
to_chat(H, span_warning("Your hair starts to fall out in clumps..."))
addtimer(CALLBACK(src, PROC_REF(Shed), H, FALSE), 50)
if(5)
if(!(H.facial_hair_style == "Shaved") || !(H.hair_style == "Bald"))
if(!(H.facial_hair_style == "Shaved") || !(H.hair_style == "Bald") || !(H.hair_style == "None"))
to_chat(H, span_warning("Your hair starts to fall out in clumps..."))
addtimer(CALLBACK(src, PROC_REF(Shed), H, TRUE), 50)

/datum/symptom/shedding/proc/Shed(mob/living/carbon/human/H, fullbald)
if(fullbald)
H.facial_hair_style = "Shaved"
H.hair_style = "Bald"
H.dna.species.go_bald()
else
H.hair_style = "Balding Hair"
H.update_hair()
42 changes: 41 additions & 1 deletion code/datums/dna.dm
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,8 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())

if(features["mcolor"])
L[DNA_MUTANT_COLOR_BLOCK] = sanitize_hexcolor(features["mcolor"], include_crunch = FALSE)
if(features["mcolor_secondary"])
L[DNA_MUTANT_COLOR_SECONDARY] = sanitize_hexcolor(features["mcolor_secondary"], include_crunch = FALSE)
if(features["body_markings"])
L[DNA_LIZARD_MARKINGS_BLOCK] = construct_block(GLOB.body_markings_list.Find(features["body_markings"]), GLOB.body_markings_list.len)
if(features["tail_lizard"])
Expand Down Expand Up @@ -231,6 +233,16 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())
L[DNA_POD_HAIR_BLOCK] = construct_block(GLOB.pod_hair_list.Find(features["pod_hair"]), GLOB.pod_hair_list.len)
if(features["pod_flower"])
L[DNA_POD_FLOWER_BLOCK] = construct_block(GLOB.pod_flower_list.Find(features["pod_flower"]), GLOB.pod_flower_list.len)
if(features["vox_quills"])
L[DNA_VOX_QUILLS_BLOCK] = construct_block(GLOB.vox_quills_list.Find(features["vox_quills"]), GLOB.vox_quills_list.len)
if(features["vox_facial_quills"])
L[DNA_VOX_FACIAL_QUILLS_BLOCK] = construct_block(GLOB.vox_facial_quills_list.Find(features["vox_facial_quills"]), GLOB.vox_facial_quills_list.len)
if(features["vox_tail_markings"])
L[DNA_VOX_TAIL_MARKINGS_BLOCK] = construct_block(GLOB.vox_tail_markings_list.Find(features["vox_tail_markings"]), GLOB.vox_tail_markings_list.len)
if(features["vox_body_markings"])
L[DNA_VOX_BODY_MARKINGS_BLOCK] = construct_block(GLOB.vox_body_markings_list.Find(features["vox_body_markings"]), GLOB.vox_body_markings_list.len)
if(features["vox_skin_tone"])
L[DNA_VOX_SKIN_TONE_BLOCK] = construct_block(GLOB.vox_skin_tones.Find(features["vox_skin_tone"]), GLOB.vox_skin_tones.len)

for(var/blocknum in 1 to DNA_FEATURE_BLOCKS)
. += L[blocknum] || random_string(GET_UI_BLOCK_LEN(blocknum), GLOB.hex_characters)
Expand Down Expand Up @@ -348,6 +360,8 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())
switch(blocknumber)
if(DNA_MUTANT_COLOR_BLOCK)
set_uni_feature_block(blocknumber, sanitize_hexcolor(features["mcolor"], include_crunch = FALSE))
if(DNA_MUTANT_COLOR_SECONDARY)
set_uni_feature_block(blocknumber, sanitize_hexcolor(features["mcolor_secondary"], include_crunch = FALSE))
if(DNA_LIZARD_MARKINGS_BLOCK)
set_uni_feature_block(blocknumber, construct_block(GLOB.body_markings_list.Find(features["body_markings"]), GLOB.body_markings_list.len))
if(DNA_LIZARD_TAIL_BLOCK)
Expand Down Expand Up @@ -388,6 +402,16 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())
set_uni_feature_block(blocknumber, construct_block(GLOB.pod_hair_list.Find(features["pod_hair"]), GLOB.pod_hair_list.len))
if(DNA_POD_FLOWER_BLOCK)
set_uni_feature_block(blocknumber, construct_block(GLOB.pod_flower_list.Find(features["pod_flower"]), GLOB.pod_flower_list.len))
if(DNA_VOX_QUILLS_BLOCK)
set_uni_feature_block(blocknumber, construct_block(GLOB.vox_quills_list.Find(features["vox_quills"]), GLOB.vox_quills_list.len))
if(DNA_VOX_FACIAL_QUILLS_BLOCK)
set_uni_feature_block(blocknumber, construct_block(GLOB.vox_facial_quills_list.Find(features["vox_facial_quills"]), GLOB.vox_facial_quills_list.len))
if(DNA_VOX_TAIL_MARKINGS_BLOCK)
set_uni_feature_block(blocknumber, construct_block(GLOB.vox_tail_markings_list.Find(features["vox_tail_markings"]), GLOB.vox_tail_markings_list.len))
if(DNA_VOX_BODY_MARKINGS_BLOCK)
set_uni_feature_block(blocknumber, construct_block(GLOB.vox_body_markings_list.Find(features["vox_body_markings"]), GLOB.vox_body_markings_list.len))
if(DNA_VOX_SKIN_TONE_BLOCK)
set_uni_feature_block(blocknumber, construct_block(GLOB.vox_skin_tones.Find(features["vox_skin_tone"]), GLOB.vox_skin_tones.len))

//Please use add_mutation or activate_mutation instead
/datum/dna/proc/force_give(datum/mutation/human/HM)
Expand Down Expand Up @@ -596,12 +620,18 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())
eye_color = sanitize_hexcolor(get_uni_identity_block(structure, DNA_EYE_COLOR_BLOCK))
facial_hair_style = GLOB.facial_hair_styles_list[deconstruct_block(get_uni_identity_block(structure, DNA_FACIAL_HAIR_STYLE_BLOCK), GLOB.facial_hair_styles_list.len)]
if(HAS_TRAIT(src, TRAIT_BALD))
hair_style = "Bald"
if(isvox(src))
dna.features["vox_quills"] = "None"
dna.update_uf_block(DNA_VOX_QUILLS_BLOCK)
else
hair_style = "Bald"
else
hair_style = GLOB.hair_styles_list[deconstruct_block(get_uni_identity_block(structure, DNA_HAIR_STYLE_BLOCK), GLOB.hair_styles_list.len)]
var/features = dna.unique_features
if(dna.features["mcolor"])
dna.features["mcolor"] = sanitize_hexcolor(get_uni_feature_block(features, DNA_MUTANT_COLOR_BLOCK))
if(dna.features["mcolor_secondary"])
dna.features["mcolor_secondary"] = sanitize_hexcolor(get_uni_feature_block(features, DNA_MUTANT_COLOR_SECONDARY))
if(dna.features["body_markings"])
dna.features["body_markings"] = GLOB.body_markings_list[deconstruct_block(get_uni_feature_block(features, DNA_LIZARD_MARKINGS_BLOCK), GLOB.body_markings_list.len)]
if(dna.features["tail_lizard"])
Expand Down Expand Up @@ -645,6 +675,16 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())
dna.features["pod_hair"] = GLOB.pod_hair_list[deconstruct_block(get_uni_feature_block(features, DNA_POD_HAIR_BLOCK), GLOB.pod_hair_list.len)]
if(dna.features["pod_flower"])
dna.features["pod_flower"] = GLOB.pod_flower_list[deconstruct_block(get_uni_feature_block(features, DNA_POD_FLOWER_BLOCK), GLOB.pod_flower_list.len)]
if(dna.features["vox_quills"])
dna.features["vox_quills"] = GLOB.vox_quills_list[deconstruct_block(get_uni_feature_block(features, DNA_VOX_QUILLS_BLOCK), GLOB.vox_quills_list.len)]
if(dna.features["vox_facial_quills"])
dna.features["vox_facial_quills"] = GLOB.vox_facial_quills_list[deconstruct_block(get_uni_feature_block(features, DNA_VOX_FACIAL_QUILLS_BLOCK), GLOB.vox_facial_quills_list.len)]
if(dna.features["vox_tail_markings"])
dna.features["vox_tail_markings"] = GLOB.vox_tail_markings_list[deconstruct_block(get_uni_feature_block(features, DNA_VOX_TAIL_MARKINGS_BLOCK), GLOB.vox_tail_markings_list.len)]
if(dna.features["vox_body_markings"])
dna.features["vox_body_markings"] = GLOB.vox_body_markings_list[deconstruct_block(get_uni_feature_block(features, DNA_VOX_BODY_MARKINGS_BLOCK), GLOB.vox_body_markings_list.len)]
if(dna.features["vox_skin_tone"])
dna.features["vox_skin_tone"] = GLOB.vox_skin_tones[deconstruct_block(get_uni_feature_block(features, DNA_VOX_SKIN_TONE_BLOCK), GLOB.vox_skin_tones.len)]

if(icon_update)
dna.species.handle_body(src) // We want 'update_body_parts()' to be called only if mutcolor_update is TRUE, so no 'update_body()' here.
Expand Down
2 changes: 2 additions & 0 deletions code/datums/emotes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@
. = message_monkey
else if(isipc(user) && message_ipc)
. = message_ipc
else if(isvox(user) && message_vox)
. = message_vox
else if(isanimal(user) && message_simple)
. = message_simple

Expand Down
Loading

0 comments on commit e40784e

Please sign in to comment.