From ac31a4639e9b3d2a1a214010074c14c53bcce7e2 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Mon, 8 Aug 2022 03:45:30 +0200 Subject: [PATCH] [MIRROR] Concentrated barbers aid can give hairless species hair + fixes hair updating once and for all (probably) [MDB IGNORE] (#15182) * Concentrated barbers aid can give hairless species hair + fixes hair updating once and for all (probably) * Update code/modules/antagonists/thief/thief.dm * Update code/modules/mob/living/carbon/human/species_types/felinid.dm * Concentrated barbers aid can give hairless species hair + fixes hair updating once and for all (probably) * yes * Update _compile_options.dm Co-authored-by: Y0SH1M4S73R Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> --- .../datums/diseases/advance/symptoms/beard.dm | 2 +- .../diseases/advance/symptoms/shedding.dm | 2 +- code/datums/dna.dm | 5 +++- code/datums/quirks/neutral.dm | 4 +-- code/game/objects/structures/mirror.dm | 4 +-- code/modules/admin/create_mob.dm | 1 - code/modules/antagonists/blob/blob_mobs.dm | 2 +- .../changeling/powers/mutations.dm | 2 +- code/modules/antagonists/creep/creep.dm | 2 +- .../antagonists/revolution/revolution.dm | 2 +- code/modules/antagonists/thief/thief.dm | 3 +- code/modules/clothing/outfits/event.dm | 2 +- .../mob/living/carbon/human/human_defense.dm | 2 +- .../living/carbon/human/human_update_icons.dm | 3 +- .../mob/living/carbon/human/species.dm | 4 +-- .../carbon/human/species_types/humans.dm | 2 +- code/modules/mob_spawn/mob_spawn.dm | 3 +- .../chemistry/reagents/alcohol_reagents.dm | 4 +-- .../chemistry/reagents/drug_reagents.dm | 3 +- .../chemistry/reagents/other_reagents.dm | 28 ++++++++++++++++-- .../reagents/withdrawal/generic_addictions.dm | 2 +- .../screenshot_antag_icons_blobinfection.png | Bin 6287 -> 6291 bytes .../screenshot_antag_icons_fugitive.png | Bin 1988 -> 2002 bytes ...reenshot_antag_icons_headrevolutionary.png | Bin 2279 -> 2265 bytes .../screenshot_antag_icons_opportunist.png | Bin 679 -> 730 bytes .../screenshot_antag_icons_provocateur.png | Bin 2279 -> 2265 bytes .../screenshot_antag_icons_thief.png | Bin 679 -> 730 bytes .../screenshots/screenshot_basic_red.png | Bin 218 -> 196 bytes ...eenshot_humanoids__datum_species_human.png | Bin 1062 -> 1148 bytes ...s__datum_species_human_krokodil_addict.png | Bin 1144 -> 1211 bytes ...enshot_humanoids__datum_species_monkey.png | Bin 779 -> 778 bytes ...nshot_humanoids__datum_species_vampire.png | Bin 1062 -> 1062 bytes .../modules/customization/datums/dna.dm | 12 +++++++- 33 files changed, 61 insertions(+), 33 deletions(-) diff --git a/code/datums/diseases/advance/symptoms/beard.dm b/code/datums/diseases/advance/symptoms/beard.dm index 6ca83c118c9..b537c31edac 100644 --- a/code/datums/diseases/advance/symptoms/beard.dm +++ b/code/datums/diseases/advance/symptoms/beard.dm @@ -32,5 +32,5 @@ if(index > 0 && H.facial_hairstyle != beard_order[index]) to_chat(H, span_warning("Your chin itches.")) H.facial_hairstyle = beard_order[index] - H.update_hair() + H.update_hair(is_creating = TRUE) diff --git a/code/datums/diseases/advance/symptoms/shedding.dm b/code/datums/diseases/advance/symptoms/shedding.dm index fa23da69135..fe199c60ce3 100644 --- a/code/datums/diseases/advance/symptoms/shedding.dm +++ b/code/datums/diseases/advance/symptoms/shedding.dm @@ -45,4 +45,4 @@ H.hairstyle = "Bald" else H.hairstyle = "Balding Hair" - H.update_hair() + H.update_hair(is_creating = TRUE) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 78678b365e3..aa9cfaf769d 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -617,7 +617,10 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) eye_color_left = sanitize_hexcolor(get_uni_identity_block(structure, DNA_EYE_COLOR_LEFT_BLOCK)) eye_color_right = sanitize_hexcolor(get_uni_identity_block(structure, DNA_EYE_COLOR_RIGHT_BLOCK)) facial_hairstyle = GLOB.facial_hairstyles_list[deconstruct_block(get_uni_identity_block(structure, DNA_FACIAL_HAIRSTYLE_BLOCK), GLOB.facial_hairstyles_list.len)] - hairstyle = GLOB.hairstyles_list[deconstruct_block(get_uni_identity_block(structure, DNA_HAIRSTYLE_BLOCK), GLOB.hairstyles_list.len)] + if(HAS_TRAIT(src, TRAIT_BALD)) + hairstyle = "Bald" + else + hairstyle = GLOB.hairstyles_list[deconstruct_block(get_uni_identity_block(structure, DNA_HAIRSTYLE_BLOCK), GLOB.hairstyles_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)) diff --git a/code/datums/quirks/neutral.dm b/code/datums/quirks/neutral.dm index 43f49905002..63656fe7900 100644 --- a/code/datums/quirks/neutral.dm +++ b/code/datums/quirks/neutral.dm @@ -294,7 +294,7 @@ var/mob/living/carbon/human/human_holder = quirk_holder old_hair = human_holder.hairstyle human_holder.hairstyle = "Bald" - human_holder.update_hair() + human_holder.update_hair(is_creating = TRUE) RegisterSignal(human_holder, COMSIG_CARBON_EQUIP_HAT, .proc/equip_hat) RegisterSignal(human_holder, COMSIG_CARBON_UNEQUIP_HAT, .proc/unequip_hat) @@ -314,7 +314,7 @@ . = ..() var/mob/living/carbon/human/human_holder = quirk_holder human_holder.hairstyle = old_hair - human_holder.update_hair() + human_holder.update_hair(is_creating = TRUE) UnregisterSignal(human_holder, list(COMSIG_CARBON_EQUIP_HAT, COMSIG_CARBON_UNEQUIP_HAT)) SEND_SIGNAL(human_holder, COMSIG_CLEAR_MOOD_EVENT, "bad_hair_day") diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 58bb0815e11..2d788a8e262 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -212,9 +212,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror, 28) to_chat(amazed_human, span_notice("Invalid color. Your color is not bright enough.")) return TRUE - amazed_human.update_body() - amazed_human.update_hair() - amazed_human.update_body_parts() + amazed_human.update_body(is_creating = TRUE) amazed_human.update_mutations_overlay() // no hulk lizard if("gender") diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm index 8b2297f567e..b5e83874088 100644 --- a/code/modules/admin/create_mob.dm +++ b/code/modules/admin/create_mob.dm @@ -51,5 +51,4 @@ //SKYRAT EDIT ADDITION END human.update_body(is_creating = TRUE) - human.update_hair(is_creating = TRUE) human.dna.species.spec_updatehealth(human) diff --git a/code/modules/antagonists/blob/blob_mobs.dm b/code/modules/antagonists/blob/blob_mobs.dm index b54f9006ff1..f4a2d17e678 100644 --- a/code/modules/antagonists/blob/blob_mobs.dm +++ b/code/modules/antagonists/blob/blob_mobs.dm @@ -188,7 +188,7 @@ icon = H.icon icon_state = "zombie" H.hairstyle = null - H.update_hair() + H.update_hair(is_creating = TRUE) H.forceMove(src) oldguy = H update_icons() diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 0b201643593..ac75452b182 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -95,7 +95,7 @@ H.temporarilyRemoveItemFromInventory(H.wear_suit, TRUE) H.update_inv_wear_suit() H.update_inv_head() - H.update_hair() + H.update_hair(is_creating = TRUE) if(blood_on_castoff) H.add_splatter_floor() diff --git a/code/modules/antagonists/creep/creep.dm b/code/modules/antagonists/creep/creep.dm index c3d9cbc20b2..6c8e8dcda66 100644 --- a/code/modules/antagonists/creep/creep.dm +++ b/code/modules/antagonists/creep/creep.dm @@ -41,7 +41,7 @@ var/mob/living/carbon/human/dummy/consistent/victim_dummy = new victim_dummy.hair_color = "#bb9966" // Brown victim_dummy.hairstyle = "Messy" - victim_dummy.update_hair() + victim_dummy.update_hair(is_creating = TRUE) var/icon/obsessed_icon = render_preview_outfit(preview_outfit) obsessed_icon.Blend(icon('icons/effects/blood.dmi', "uniformblood"), ICON_OVERLAY) diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index e3aee48f435..9e1d8732f93 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -206,7 +206,7 @@ /datum/antagonist/rev/head/proc/make_assistant_icon(hairstyle) var/mob/living/carbon/human/dummy/consistent/assistant = new assistant.hairstyle = hairstyle - assistant.update_hair() + assistant.update_hair(is_creating = TRUE) var/icon/assistant_icon = render_preview_outfit(/datum/outfit/job/assistant/consistent, assistant) assistant_icon.ChangeOpacity(0.5) diff --git a/code/modules/antagonists/thief/thief.dm b/code/modules/antagonists/thief/thief.dm index cc52f7a4891..181185ed6ac 100644 --- a/code/modules/antagonists/thief/thief.dm +++ b/code/modules/antagonists/thief/thief.dm @@ -169,8 +169,7 @@ thief.dna.update_ui_block(DNA_GENDER_BLOCK) thief.dna.update_ui_block(DNA_HAIR_COLOR_BLOCK) thief.dna.update_ui_block(DNA_SKIN_TONE_BLOCK) - thief.update_hair() - thief.update_body() + thief.update_body(is_creating = TRUE) // This outfit is used by the assets SS, which is ran before the atoms SS if (SSatoms.initialized == INITIALIZATION_INSSATOMS) diff --git a/code/modules/clothing/outfits/event.dm b/code/modules/clothing/outfits/event.dm index 7fdc712038b..e17d725d7f5 100644 --- a/code/modules/clothing/outfits/event.dm +++ b/code/modules/clothing/outfits/event.dm @@ -25,4 +25,4 @@ H.facial_hairstyle = "Beard (Full)" H.hair_color = "#FFFFFF" H.facial_hair_color = "#FFFFFF" - H.update_hair() + H.update_hair(is_creating = TRUE) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index a423330daf5..e8127317141 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -676,7 +676,7 @@ emote("scream") facial_hairstyle = "Shaved" hairstyle = "Bald" - update_hair() + update_hair(is_creating = TRUE) ADD_TRAIT(src, TRAIT_DISFIGURED, TRAIT_GENERIC) update_damage_overlays() diff --git a/code/modules/mob/living/carbon/human/human_update_icons.dm b/code/modules/mob/living/carbon/human/human_update_icons.dm index 9bcd8400697..1f7bbff33bb 100644 --- a/code/modules/mob/living/carbon/human/human_update_icons.dm +++ b/code/modules/mob/living/carbon/human/human_update_icons.dm @@ -73,8 +73,7 @@ There are several things that need to be remembered: /mob/living/carbon/human/regenerate_icons() if(!..()) - update_body() - update_hair() + update_body(is_creating = TRUE) update_inv_w_uniform() update_inv_wear_id() update_inv_gloves() diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index ab3d8fc0771..bc2522f52d2 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -821,7 +821,7 @@ GLOBAL_LIST_EMPTY(features_by_species) human_mob.update_mutant_bodyparts() //SKYRAT EDIT ADDITION END human_mob.hairstyle = random_hairstyle(human_mob.gender) - human_mob.update_hair() + human_mob.update_hair(is_creating = TRUE) ///Proc that will randomise the underwear (i.e. top, pants and socks) of a species' associated mob /datum/species/proc/randomize_active_underwear(mob/living/carbon/human/human_mob) @@ -1097,7 +1097,7 @@ GLOBAL_LIST_EMPTY(features_by_species) return target.facial_hairstyle = "Shaved" target.hairstyle = "Bald" - target.update_hair() + target.update_hair(is_creating = TRUE) ////////////////// // ATTACK PROCS // diff --git a/code/modules/mob/living/carbon/human/species_types/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm index f08ca038bd1..8172575b592 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -19,7 +19,7 @@ /datum/species/human/prepare_human_for_preview(mob/living/carbon/human/human) human.hairstyle = "Business Hair" human.hair_color = "#bb9966" // brown - human.update_hair() + human.update_hair(is_creating = TRUE) /datum/species/human/get_scream_sound(mob/living/carbon/human/human) if(human.gender == MALE) diff --git a/code/modules/mob_spawn/mob_spawn.dm b/code/modules/mob_spawn/mob_spawn.dm index 716e20c41cf..24d86493c1c 100644 --- a/code/modules/mob_spawn/mob_spawn.dm +++ b/code/modules/mob_spawn/mob_spawn.dm @@ -74,8 +74,7 @@ spawned_human.skin_tone = skin_tone else spawned_human.skin_tone = random_skin_tone() - spawned_human.update_hair() - spawned_human.update_body() + spawned_human.update_body(is_creating = TRUE) /obj/effect/mob_spawn/proc/name_mob(mob/living/spawned_mob, forced_name) var/chosen_name diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index fbc5e2d9177..bc16a6b0b2e 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -2396,12 +2396,12 @@ All effects don't start immediately, but rather get worse over time; the rate is if(metabolizer.age > 70) metabolizer.facial_hair_color = "#cccccc" metabolizer.hair_color = "#cccccc" - metabolizer.update_hair() + metabolizer.update_hair(is_creating = TRUE) if(metabolizer.age > 100) metabolizer.become_nearsighted(type) if(metabolizer.gender == MALE) metabolizer.facial_hairstyle = "Beard (Very Long)" - metabolizer.update_hair() + metabolizer.update_hair(is_creating = TRUE) if(metabolizer.age > 969) //Best not let people get older than this or i might incur G-ds wrath metabolizer.visible_message(span_notice("[metabolizer] becomes older than any man should be.. and crumbles into dust!")) diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 797efddc8a9..40c5a926a8e 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -121,7 +121,7 @@ var/mob/living/carbon/human/H = M H.facial_hairstyle = "Shaved" H.hairstyle = "Bald" - H.update_hair() // makes you loose hair as well + H.update_hair(is_creating = TRUE) // makes you loose hair as well M.set_species(/datum/species/human/krokodil_addict) M.adjustBruteLoss(50*REM, 0) // holy shit your skin just FELL THE FUCK OFF ..() @@ -692,7 +692,6 @@ druggy_dna.species.species_traits += NOBLOODOVERLAY invisible_man.update_body() - invisible_man.update_hair() invisible_man.remove_from_all_data_huds() invisible_man.sound_environment_override = SOUND_ENVIROMENT_PHASED diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 5e75fe16743..c07b9be1a5a 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2212,7 +2212,7 @@ to_chat(exposed_human, span_notice("Hair starts sprouting from your scalp.")) exposed_human.hairstyle = picked_hair exposed_human.facial_hairstyle = picked_beard - exposed_human.update_hair() + exposed_human.update_hair(is_creating = TRUE) /datum/reagent/concentrated_barbers_aid name = "Concentrated Barber's Aid" @@ -2232,7 +2232,29 @@ to_chat(exposed_human, span_notice("Your hair starts growing at an incredible speed!")) exposed_human.hairstyle = "Very Long Hair" exposed_human.facial_hairstyle = "Beard (Very Long)" - exposed_human.update_hair() + exposed_human.update_hair(is_creating = TRUE) + +/datum/reagent/concentrated_barbers_aid/on_mob_life(mob/living/carbon/M, delta_time, times_fired) + . = ..() + if(current_cycle > 20 / creation_purity) + if(!ishuman(M)) + return + var/mob/living/carbon/human/human_mob = M + 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) + return + if(species_datum.species_traits.Find(HAIR)) + return + species_datum.species_traits |= HAIR + var/message + if(HAS_TRAIT(M, TRAIT_BALD)) + message = span_warning("You feel your scalp mutate, but you are still hopelessly bald.") + else + message = span_notice("Your scalp mutates, a full head of hair sprouting from it.") + to_chat(M, message) + human_mob.update_hair(is_creating = TRUE) /datum/reagent/baldium name = "Baldium" @@ -2252,7 +2274,7 @@ to_chat(exposed_human, span_danger("Your hair is falling out in clumps!")) exposed_human.hairstyle = "Bald" exposed_human.facial_hairstyle = "Shaved" - exposed_human.update_hair() + exposed_human.update_hair(is_creating = TRUE) /datum/reagent/saltpetre name = "Saltpetre" diff --git a/code/modules/reagents/withdrawal/generic_addictions.dm b/code/modules/reagents/withdrawal/generic_addictions.dm index 1604715bf3a..aaf7e31ab1f 100644 --- a/code/modules/reagents/withdrawal/generic_addictions.dm +++ b/code/modules/reagents/withdrawal/generic_addictions.dm @@ -111,7 +111,7 @@ if(affected_human.gender == MALE) to_chat(affected_human, span_warning("Your chin itches.")) affected_human.facial_hairstyle = "Beard (Full)" - affected_human.update_hair() + affected_human.update_hair(is_creating = TRUE) //Only like gross food affected_human.dna?.species.liked_food = GROSS affected_human.dna?.species.disliked_food = NONE diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_blobinfection.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_blobinfection.png index e3d7acbf5d891f24b1c97f51d6b646d419f1038c..6f0663e347f435c9c61d524749886c827260f959 100644 GIT binary patch delta 6192 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 KMNUMnLSTZ@V=g}c diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_fugitive.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_fugitive.png index d1187a14d8491f36b021cd52a262e9e1a074e147..a39bd6d71a6fa2909106131bd23cc1e44962f0cd 100644 GIT binary patch delta 1869 zcmYL}dpr|*AIA-6h)lV)C(U7XLZsXllY4R}2f3UXIbkt6E^{{&I&xc~<9JnYTD#6<2 zyB>Q#NQOJvX{tC3$=q(&a4WnYH!$34vH!F+k(@U?!zH$z$9BjRW^eT@yU^k%EY9bU9%GS11E5fsT!jKmC+0i zU6d?*oGrN;)3#XnyOdQm{J{Hn1d9XBhGDQDEHGN6Fb|&D>A* zb?o79OA~2>ws{5p8A@%Dyr8>?nlYC!!Q`YR>{>UmuOIh8!2hJc2mV)UmcSCTMS@sw zp)uu1Fn&odOzZtjdZzUdX7-nyrB_$TgGE;>STc-gm#x_4jAji4r~(56-l{`XFMaf# z_ng7l=YqR4g_FQ}X_i%;z53@*o70;g3#oZrGr@%9rI{^Qm6!T8Tt1a9NOx8p5C>vy znZ(_P9H5kH_}%X!Oi}aOU}@YlcEpFVbED}rVPp}MoyB^9)66YxL>HxP!W2!p3i_je zt?Q$X;)@ODuAo7sXiFoJBhFP%ST5y>ctx1+0qD3@Or z-KXpW&~4$r-4HFHfw9w%`VNxgYbJp1e7oxyCqKy?(&HQZ^7EHDu2YP_y6qOgiIeZF zrVAY!(;P`C2C=0B%U26ex6COqDxbLzoN+UH!YVaJni$pX5~j9(jbD;r7W^B7TA0lF z3v~UAXdeTk1chQPV3f`~{hK7aYz?kymkzeM=5)Tu^mJhSlCH*SI`{_NqdJG{s5=a0 zG^JiQ*my|&81YS14cTB^!HS~aM2r;>;jSLZB3(rHtlR$&jJxX#cqw~?95J2CO9UwH zPh=~9p^&6^wBTn^yCc9Y`R4i9r-413kYc>~2oe?7M?4Wx`q8iV47OW@N^Cuei}dG@ zls*d<0{*7JbeAd`v!Dwm<<+9%OtWI&1N8XOz7MPYucU; zZxUfuLr!Yi1c~GprdybbmeAkCLIFPSo&_=Lok&j3B%pqqoqjzU&wS~zP#64S$7!Ol zi3Nhx)3JgHiF;IASvwerxY+KeiReACR|5}~ zsx{0mM=DBIw=7f@e7CCd;`)`#~ozzr;WA51ewe z;Hc`c9Ec3y-n}6AE?e3PtWnHr3!A>o$R4J_kEWD^aGIqFin>u_vlCpIjg+lee4KLKFBeh^hLmTKcT6#Z^)`+4T zFN8AP^OaF327|36jyibs3(ow_QDke<9YGNaYBf|c~(%HjP2J%6PZ1ybm&qj)a4g}9}Q||!jB2^o9SJ8#v(|-QDqSTvi z=nr*F8(%UnRyPFZxtlaP(#H~-Kk_=wE?!4)Uv4`}rDj-d0H@vgMg$uPlL$WGYOM;I z)>3U9HN0NPvCm^c685n@DmI(~T2bxZ6DxC}{FRC|9h{>lno(09;C;^M{-es(x!_rq z89g)pZsRv}<$XC@%RqkGRmi5v3%eu8`T(UEI97E_#H`q0g((DY)S?sVkU$9oaxJCfbZqxc<)oY}#dWkHo z$l^Dci1Fn}#sH(9WgPEV8SpECxk0!Qv~$M~cd$eFNCh6=uI0gKhZo2f+BH?U%61Xc z&wr3oOB9R=G+Nor8Y9P70P4YSClKoh5itD1(ei98MqO_Vk7i6g@1;Fija@`~DP+)B z-OUb2AZ<+**NU&kC0Q1~8U@9dIon)Xljn_wiv9JQ&_(a33B((n9LHnj$>EGMQwU4s j@}OJwATSTg4{J|EPZ2GVxFWnRz(3ZP94s2md{X`k2)~~& delta 1855 zcmYjRc|6p67bex%hq8?d@!l}S#bk?-vE9ZxX_(vPwcczQjGg4yf>BxGn#htRG$TvM z$XG8$q`}y(LC79sxx>t8EVnoBr}zDS&gXmnI_GoF^E~IFf!~53X9JQ*GXy#^myvtZ zA8jtt<;^HnGxsSpce&fLDl70XZVh@w(_Z7xtb*gbr*gzD@(Pa>49g_eI3TYmoOMht zLYmqWd2RRwI*CKSSY9P#=?PuygV( zq}#5xlCYd6GXV@ngihYBP_GxPCe3m7Vpn#6wwCUmv~nJ=w}$8$~S#hS$6PL*F? zkt%ak-Xpuf$nO5|xtP@LIpV@1RdpoXZ^37X<+Yl9)0HA`%m@%TifWZw8FOE9@n}?j zFX(1*x=mQnRB6BktxtB#C3}v7&^2%GtWKy4$J5dXuG91sOVMMj5_?Apel*aDRMny#{b~lOg0Y!;}67HTnU-`ZlJWax$+TH6Br$QoZK#1q~19cl_p3=RqPz?1zgFBPL($#r})wG^-VONC?86 zs7Ok5+OdUxPE*z6W&H zn`GizYI?<`tzz0h^b9}L)z7e)kvfiZ`YV%V;PCHwu6ch_75<%@#@VkGM~d z&om|uww9vbuKKc{Q*x>2>9Nnd_Z6ik!BQ81Zt}~rDRu=}8aswyL*V!#4 ztFTApReq?@Ar{B;td!Ecg6wMXv6q1~OiJD&!P_DBHGYpBAg60Gm zp~FA+vy|;F`X>NkM!PgCNjqG=KLgk0(!^3I| zLqAYV*)TbON=C4-X53uu5MXhT#w=vDSu9C9co9?3^L~awkM-u28a^9HZj-C7*w-t2 zc^g|cvS)TN--EXHdl$C-=Z1u&#z+QY6wbT64;1W-r*&E^_VTd#4jXD(qFno;un}jb z@Lytgnt2J*M%s4csNjtDzl}=@rCt&=W8zTDSIl~*VarVGbTkFyuCLXd(zS+B_@SgE zT^jDsIxVG}6tYeBWoP)&FRYu^`vwF8=}DFjX(u)n0n|l0xvC0G;08|g zlLL3BDnlF|#+5wq*~hli^lFY|ecSIowf1@E^mat^=ztJZA5AIJ{t&k0E68A_ujJ(u z+ype@%f)0{0-R3BwG?XMpM)AoaO#IDw+c37<4Xi`Nz-SWt6IWwe;53UM5ha((B~7*fO_nA@ikbpXcKXLJZCCtGW&Rpk@W;DnHQur0w1ZH+<|#t-Eoi?HTAX&@sA!8G#Pw< z%W9$n6+Ko~(sA3!{9PnCG0Y%uW{Q}h^(m&n-RBJjO3W8vL4g0Bsj~Y8eXrmbHs=^UW(wZd*Q-Ktdg=ZBN-LU*>IkrDX2Fi8J1kLJLTOFEm5_<;!FqAhI z9HgApdAIMHB}rvpuV{*+#%rzHzjbf9)?qdeFc~eeWm~q#fzJI_A8)LmF4@)#s3HB# U-Tv5B=K1!J=C)>)CT{os0js*7D*ylh diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png index 8f52c11e737f248e247aec0b9881ac1ae2960268..b674172ff1d2d0f4d17d1880f29a702faf8dea20 100644 GIT binary patch delta 2134 zcmYL}c_7n`AIBLU$Fh>meRVivOwJ5*EO(w#gjGB$<~F(J_|6nP&JrHS9HpNJg%o4C za!<=FC9wyY_PB2nYxSt7-|zSN=kwp^dcQxfS+Oy(JB5ITowddJXwvef0LSw-(30Gs zhplI;i50aUH2gB`<1YjW)nK7-B(7ZK=xFrH_&Wv3jQc&1Jf^On(co{JyLUUN(f&lf zNPvrreS<67u19cA1nwm8FqimLt-rV>d!OHm5vMF5cMjkPS8YrAtm(e#^$`UpDM;LT;+64c97SeMb|VYt9&7e% zbO+0@ZpXn~$G=+Jg`b-29w~^|!i=R87J!k7I{1;H?p~s0D$m%OGAKu3+!Qps_mvgj zc1n`o-p$S;OKK#9Fa!??U@b6uF$FhGUxONvVrJ{XvGr2v{# zDrj)VGX1I2Zdn9DB92Pzac**E!US%8%iybB83%2N(Okof!)~+&BhyTBS*frYd#?0^ z+3iS2W3g#(f1s-y1!!oGTwQcs@;xMAx8DvdaBHFTpe^+zS-(@N+^*RW6$SBwn{=_) z61WH4#@`KtZrt6OnMvkhR=oshD9K&-ft!j&?LL3vD6}wz_l|k>s8uA8O*1Do^90re zHBpetVbGPY_&%veqy;nKSVv`juS(4zG*xhaH7akm_oS=q%iP=n^%rUz?bMF+`S2&y zj`jzBGpC$ngI$IqI|i%VeK$;2W0!4M12O4{K6WbgswrJ54Lf;Ts<9MsDA<`_m>uZaJU7gwB7B5A&;eY z8j0KVM^Pr$v=b(pz=1YtKI_*?3hv(fQ)*rnO}Ki8?|3%`gL&MXBVARM>IYR9PEmY^ zjuy6IoR*da&v~s5voTj%IeL|Gu(=P-Ah(N7JOrUtevu~`W5+e3j%TSVotR?2^tL@R1zWqs6n==pmpoej^UyXdc9Vkf@DK?+dMT#7=UrYT z{9slS5jrB{>+SIw2Ot>tE|X}bcD=VW5{i%hFyVI)bk7pEK0}z=q?8oz!R6{w#H^vd zKA)))N-K@xseP^2V14rM>(Ljb$i}E=XZoaCm@!!ZZL%csc3u%g=iqgC;UN19R~b_w z^n)opB3+LzAsTz8qgt1sjNZ56b(W)YCVgxHt`9-W=wgv;sLXTUAvX*}M1-H5nHh_^ z^7Law*3Ps6LLfQWg8W?!p0a&R}|zbXLxaA3hF za_nXZXSJ78)0#kB*YG3{tjX4*(X^q@-FRXr&dkWjcC#$6dHY4a$?D?RTAK&;m7^ec zU}#Es&!^F&S+n9{y2WH&bv1}w#^5cxjP!ku`k&R4jn&l$v|&z6?#VyGQ_T4d9$hHb z4y30Me9B4FWr2Y8&Al1nFoy!fw;DdunP&N;mdLX^mEF}Po5($hGt})jCtZ2y{mgAP zo2?K8<<0(n=MJvDZvO^>#!Ia;m_@^#HEx-UHU1|Kw6$9^gp+nj(Z*IrhXgDJVMsnP zeV&BFd|FRRnwz~beM~TgLLo)28751yIv*e5^JxYg|34{(+((CnaVV;X-h5X_O6VzJcb-8qlJlQ+} z87JHnU8i6gv)E)rU)e9v_ul)0Tzz0JD_b3Od`9uM8y%u6T0YOSA9m<7*0q*i#D4(i C$^U-< delta 2148 zcmYL~c{mhm8^(vGgD_b}@kyi{JC)sFq)DM<$xb7?XvUHmYeQtq)`+ohX{2o77`rf; zWTz}MIL0`}Hnx$aV>w!`>wEvX|9YS2dGG7@-0uW0oi`;5qiz7Zb}ul8;o#+c?*>?h z^WB&9VO9Z;YfZIswPMtRE@dfbAWR;4O+pK3U?Cn=5CKGT5DmF3#1c({fC50EVXXsS zTv|c%1?q&JH2B2p0!PkALBMv=zJ6``p$4h`^S!x{8utM;cQ^VpD?5-i zLRXCESTH|SOQrrXI{ad(Lx*#l)`Pi%s@evLqtiw3X0!9;diR{tW%E^4OC8Ws8k-Cg z$Gm#kK2dKeR&0fb%_CY}SE+V@C480ROfjb-ejfNn%{j*;1);paKC^fc&j%4EKzYkgW<+&@GNZm- zKUW|$3+VIFV#|ROI(%#iwAzWJ<<0V0wtoPY;rAys$;Oc+7BhWG% z@oBWle>zcpJdl!{@eDV^RiTlDt>YVOw*dfkM@s0p7`XU&64^O~(vhC-!@8Ps4nT@Q z{e|%T{}CG?bzxYnvu&-6Q{s)aXzfK4X}MKVNdPeihcE`;jT4L_s(U$>G_n?^phCI&4B}F0AR-Y zF#R@8vIYU7Jy*g+NA;XY+v{1DU**D;MTyM#PP{pO7_NjD>t zpG)XoTLhz&$BKh6=iZmbva`kk`hL^&$&%%7_)BxJ|5T7={WAv^%(<o@)k*frY!po>2b5ScT3(jNlX3+3Z*HvPlNsi}gbc9MYB?9Jue(ZSf8k&2B?f>O{{2XA#w z|1#!}!UFW4c#NH;oV5JK;60VBrxL_$&!uOxeAtIwbslf$94{o7Ium1giFElrZJSFP^JX`Zx0LAn@$teiR~rR9aRZr8ZUKKL z=JASBjg5>rjjl&xMvw4wWuWBPzGW3UC%n(IRQ36s?Nnc61kHxp^Y zu$7du5!Y4vog`>a-#D}NZRQb+F@y!6P@qu&2WwXm;abt=usnsjN0csK(Te-!RkapY z*#kTJFq3}dXafFY#*UZQs%9(n(4J-CUHH1v$6r%&VWT&{W{U*IzCc;;o2f;Oxlretru1OA-veSro+ZPjK^T+7Zshujk{*6g#Om?Yh5{UnTju(!Qbpwi}UbtHj-VzcqTi5%pSep#LZ+AM0FH^}kqeonQTST|Fw69`oD|0}51DbQeZr<+@Fw;9x3=Cxdl~VjjEb1#g;8J@)U5@X z(l`N^H}P}1#2A3C^u35l&qOk?%C#)le)mlbrpb3!uBU=fcKrLqs40|O|BJovg&RuA z9CW8?0wkeF1NyQt&{$ACFr4Av9++cHVmHC$KpfCv$X(ZF`3t|`_HiatUpk{NKaX*i za;IPUY`B=tdi=>{NlO>*tPMrBIts(RZr*MGo=Dm&b_N2%9q_S7h0l(IX`iiNXF|yL S=rbGO_!!(UhE?b}KK&1}>LlC% diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_opportunist.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_opportunist.png index 2ebcdc0b5c8c7fa1e824aa7ceca8e79fcd3f9988..5a5a87d99cb098c1ea7f0fc96747e08c34b35ce6 100644 GIT binary patch delta 551 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 C$^U-< delta 2148 zcmYL~c{mhm8^(vGgD_b}@kyi{JC)sFq)DM<$xb7?XvUHmYeQtq)`+ohX{2o77`rf; zWTz}MIL0`}Hnx$aV>w!`>wEvX|9YS2dGG7@-0uW0oi`;5qiz7Zb}ul8;o#+c?*>?h z^WB&9VO9Z;YfZIswPMtRE@dfbAWR;4O+pK3U?Cn=5CKGT5DmF3#1c({fC50EVXXsS zTv|c%1?q&JH2B2p0!PkALBMv=zJ6``p$4h`^S!x{8utM;cQ^VpD?5-i zLRXCESTH|SOQrrXI{ad(Lx*#l)`Pi%s@evLqtiw3X0!9;diR{tW%E^4OC8Ws8k-Cg z$Gm#kK2dKeR&0fb%_CY}SE+V@C480ROfjb-ejfNn%{j*;1);paKC^fc&j%4EKzYkgW<+&@GNZm- zKUW|$3+VIFV#|ROI(%#iwAzWJ<<0V0wtoPY;rAys$;Oc+7BhWG% z@oBWle>zcpJdl!{@eDV^RiTlDt>YVOw*dfkM@s0p7`XU&64^O~(vhC-!@8Ps4nT@Q z{e|%T{}CG?bzxYnvu&-6Q{s)aXzfK4X}MKVNdPeihcE`;jT4L_s(U$>G_n?^phCI&4B}F0AR-Y zF#R@8vIYU7Jy*g+NA;XY+v{1DU**D;MTyM#PP{pO7_NjD>t zpG)XoTLhz&$BKh6=iZmbva`kk`hL^&$&%%7_)BxJ|5T7={WAv^%(<o@)k*frY!po>2b5ScT3(jNlX3+3Z*HvPlNsi}gbc9MYB?9Jue(ZSf8k&2B?f>O{{2XA#w z|1#!}!UFW4c#NH;oV5JK;60VBrxL_$&!uOxeAtIwbslf$94{o7Ium1giFElrZJSFP^JX`Zx0LAn@$teiR~rR9aRZr8ZUKKL z=JASBjg5>rjjl&xMvw4wWuWBPzGW3UC%n(IRQ36s?Nnc61kHxp^Y zu$7du5!Y4vog`>a-#D}NZRQb+F@y!6P@qu&2WwXm;abt=usnsjN0csK(Te-!RkapY z*#kTJFq3}dXafFY#*UZQs%9(n(4J-CUHH1v$6r%&VWT&{W{U*IzCc;;o2f;Oxlretru1OA-veSro+ZPjK^T+7Zshujk{*6g#Om?Yh5{UnTju(!Qbpwi}UbtHj-VzcqTi5%pSep#LZ+AM0FH^}kqeonQTST|Fw69`oD|0}51DbQeZr<+@Fw;9x3=Cxdl~VjjEb1#g;8J@)U5@X z(l`N^H}P}1#2A3C^u35l&qOk?%C#)le)mlbrpb3!uBU=fcKrLqs40|O|BJovg&RuA z9CW8?0wkeF1NyQt&{$ACFr4Av9++cHVmHC$KpfCv$X(ZF`3t|`_HiatUpk{NKaX*i za;IPUY`B=tdi=>{NlO>*tPMrBIts(RZr*MGo=Dm&b_N2%9q_S7h0l(IX`iiNXF|yL S=rbGO_!!(UhE?b}KK&1}>LlC% diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_thief.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_thief.png index 2ebcdc0b5c8c7fa1e824aa7ceca8e79fcd3f9988..5a5a87d99cb098c1ea7f0fc96747e08c34b35ce6 100644 GIT binary patch delta 551 zcmV+?0@(eh1=C;tGnq4H%ri1EF_A$b zG`g;;{qpY2z`VJur|I3<`0VJ#wzIROq1w*M5fl_6CMFmh9H*+b)YspMi=q+|5@JPG z>yeg#f2m1CK~!jg?UvhCgD?<9Yf(hSax0>UQq=$dM$ed&CbSO%(zR@v{gV4^7DGZ- zD@9QhMN$6B6<7mQr3ixH8lVVFr}WC41q&n`CBYGE6J6%0;6wtZ^9HcmM5HI4G%|fKm|Yl$~cZ6ffpSu zbjJL1s^GK&N+cX}EvYrZ=ZSvyf(=LvX_|@$MarHm%T#b$0oG?C$n(4aXi0GCEeysn zU7~_tqe~t=0mDgeu_u`-AU`o~0K99A-PJE&lY!27VhE#Y!~@bPnw3T6{9vnUP(#^E1JjL45+%O#gD zD9iE*R8{p1_?^4++1@h*jL95Kt*`jS6NF7)Qg5^^E`p*cN`RImm)_Fh z9Q#XD@N0IdV<2EU=`A<(>+&K!S^T|tAWBQg*L6m@jE8qpv3hIrP^*`it z1pdQHI+lamVSG$j=NKfh+d%~}f?#0>Tf*0RYw>fA3T6|qvUqF>oFhDzn2~>rVa1U1 z7gSaC1nRne23+U-x@0>)$xrq+l+V5Ndt1c-P6P1C#r7LeEJ;pACvkU5yzAVOT1 zA!yt74X_69pzFF1(D(fsd;+x4*qvvtWFW3zYvs@C_86$+34y2L;Cf0000>knv?>FNHae zCLNg+q7dxa*=?-4d4sKR+_kG4oq-nec)B=- faLi0jkhlZnEnr}LD($}x$YStx^>bP0l+XkK9Uwzj literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`0h7I;J!GcfQS24TkI`72U@f|4b!5hcO-X(i=}MX3x0iJ5sNdU>fO3MP66 zdPasH6*8v+6?u8OIEHw5Z#}+|m%%`QS@He;FU$AO@-TVxE&Tk~7~)ZXF2B*?KY9Ys S3r_+~W$<+Mb6Mw<&;$VF-csTK diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_human.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_human.png index bb0d344b4d80528d5c8eb369e4a87b5f9a7b1bf2..40bdd894029d68f765f52c7a477a02d0c11dd343 100644 GIT binary patch delta 888 zcmV-;1Bd*k2>b|;Bq^CtOjJd{z`(1FU66K8x|wEiTt1tBRob4C>c6!4(Z-a&wg3PC z|KQP)K6M0O?r$2Aw}5{GAW1|)R9J=WR%>(GFc6fiT5@n4OSV-3Nx|gR2HNKF|9@Qf zWRlLrI??ImLqGJG;K1Il&xfR2AwD*wJdscoS-Mi63dL)bvQ$cz8Gccyl2<4d@s(l~ zQ~^|KrT7A4uq77CR8?izgp&eivRc%ON>&VBDS8H_&NzYdrmBDIx@t6oYpLSvoWUk$u+BA2DQurs@U9;Q z=iM;$&L?r(_u%)vW$*z41NgWmGJtnbK-eyY3qQCXNdaK*hJ?W2Y-hU;f0n@mfWe~( z8|E1i?>iKLRwRFLROqcg3ebNu0emw(0iHq3aS?nFZvyet49BlC@lnDI7g&Kh90h{L zrx|YO>0=LVH^+rGO&h#(!8sq=#=PGT+O(QFXsM67o#EI9jb5(SmselbtEFyc8zSQC zHQ4KQ3P*+(RKY+M2+iV-!zrkVZb+_@Kf>v^_P9%8mAronL_8}HL~4<|384CrSOfo% zz=?#D0s%3-{T;s9Y{yZI<94%Q@ZESVuE!mN-`w8aZy~U~zq`Fj;=3^ljJqT*zQ%aH zr0{PDL2pU?gMubc4ljx_XAmR}a9Qxvw*;(si6dVrCZi~i!;w=sPH&D+^S_=HxC$b@ z=BHze>79Qw2$Bp+RV}#jF7%?RD2Hv5)UvK{7p8=^CKO2=U&sq>OkML8)U`3%WUQdP zFvjG10GQ|F#10;tHRCW^z&_w`Px3LjacXDI%xOe-9fo{D0esBu!Q~W)k7K#B2?fmE z4yTz5B*F<0c}nVME``Pxu;6ivjDYKWph1uHc?ExQ?7LGHxXCHZDzH(&Q2|*2l;EPk z`zFxvr}NUC5^$8&&z&3%|3EgClDMV(fFL&;$RoT*(Ut&{plS9oYgs?+_YWH0A-BpQlPOjJd{z`)v`lKIib|KQQ;zqFLUwg3PCkxg|31TMv)k;Z_3 z0@+DKK~z|U?Uw6O+b|G?C0PVVT3f1;Kof^sOVXCh`@de#%0Oq3R_U~VI!u=#hJ3rn z8%5S0r9N6{t^baj&a^Ug*L6*9jWJfv&=vv>ex}W$TNrHw4uTGiK9dB_dxJZeUb=afPt^B4kr((to`VLde)J*Q7;vrEkNy*f zAL|N{#tcjixk&!9@KQcUViApcizd^>YJS}3@G!Vc8w zMId3%_64{6>GK-;q2zebdY2+mB8tiN#UrP!)4YP7*HOFjk#v2pSL@Bi<>$?MrTgN6 z$b7Rw^=4D!$k2*A2;70vA}5J+@FG&E?vmf){9Q-frLs$21u}06BvsoaZvyB(RrbI? zByb|(q(DNTz$#$ zda3cR2*oc|{$WC&FaRgHX&V6c2Q34U>pOWmx|uf&M0bYyzYr7j!n9j-`n=;5p#|45 zwZd_fGnU%g#vQN(*5Y^-1(aS|Yg=moEPEuJ*eT*+ZQQ^C$ArVZT93(pjZ?dEX3ise z7%=233aH224%AZMdK}AxuP9*d4miyyv4|wV#dFeFxD*~+U@77j4FMWr;z5t}vV%PK z=~M?aJB6YHp9P2;XbPYO$^!2ffrmezmvl;iIBP7O91s7*HkFg4t$dGQH=Ecayr)=} z1e2h7_6d7U-yaV58r~svm1~$KRxkl>y}r1VIyfEeQ^A>^3N f!Lx*)E9T)Rx#d0UZGcyK00000NkvXXu0mjfxx|En diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_human_krokodil_addict.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_human_krokodil_addict.png index be585d5429dca64081c8729c6ad6803933856433..89e459d7cc54b62df67682c681ca62fadded2924 100644 GIT binary patch delta 953 zcmV;q14jJ#2)hZ8Bv8FjOjJd{z`(1FU66K8x|wEiTt1tBRVpefTL1uu002t>0Ac_D zl)ttB005H!0463T9v&WviHQI*07d`+u&}Tj8yiRf003YK8X6iz005C_as=qv=uDB` zfqy$mL_t(oh3%HxR@*QTMP;iA2{&Wo%8_iVq9n9nt}P*Lx%~fU^^6>Nh&4)A7Y}{t zu!sp~&dykoH6z6PMv`nvNYkiY$`7gJ8KYz*WipER(^QUl!bp-|N|qo~sL5DLzCa&r ziK*O~Oeec+!dAduGTlGepCpHjo=Lg~DS!7kz)@aICetF%I6xx(&k>^^i!v`hs=VYr zK$HnZiA;`AshO%+zYrDt73&w;7^Rdkn$c^cDNN1z8{JxETU^8bMt`EvO_*R!)3(N% zwrz|J>bhy*ZyL?$EdVY2xCSzy*B~Ht9nytuO@kx{u`z7`&>CIqy2h_&bO)ieD1Sn` zVTRY68U%<$tzZ>ZIc6vWb80cbrl9z4`aAmGG zw{xa)x_iHdy3S9=n}EYY<<1)8jIl1C%{~tRAYcVGtz)i=!2_4&d3ictoPGJan4gyU z;DPe`VgdJJ5z>*7396u_3g``^8-GrxphYxoaF_g%PT#e~rv!G%E5PeffD@rj@&-Wl zF0cpwA;6Y|tpJDUU;a)%KfmZY(RCN+=Zt>YU5TsilF_ekZtpGtxVXE$xen@=odrlZ(^kWd3pQoj3+AWI&x_DjiRq@#6nm2W0Yw%2JYavOD2H97q)O0Tiyh8?fC?0nIKN1aD`coC zTfwAIs>&myU~&vUJE8Od-j5U8Sv;)#gd#G?*5Pmu`q8;@YDdn@zD3tHntXr&Kl*lS zVg&NzSgv(|fWBMfG&7DM9Djh!eNr=+QmAb~a~2;F0hro4YV=4SR^Z#d*;aw+Cxt-; z+5-#~5CxzF;{ltCK+T`dOS27ND61Jxa@71YH7g0A7{9tlRI11hX-3#ou`HMYD(ob~ z0gC(O@*eZ_csyJ~kH~UW&FAy8f&o0NmdjQ3unRyq!BthfeXoA}TvnMfJ9J!vvr)hJ zg`g3DO#mVKDEQ4B^Zy4B07uee4Dg5pDF*Pv!4t1P^)o~S;D>`}PJUj`5PbB*!3!t9 b1cry-qf>UU&Lu3?00000NkvXXu0mjfKJ&hZ delta 886 zcmV-+1Bv{*3HS(*Bt)@LOjJd{z`!OZCLSIhDk>^V0000o07d`+TL1uu003eD003YK zL;wJM005M~wg3PClK=pTiHWeVup1j2NB{sD8XA#was;sm{S=Yvfqw)^L_t(oh3%H> za?>yng%#UUU4^ENv1D7QG%4iL8#E2j%lkhVXXUoT#9D=cKTL<6Nu1>DeqJlm?h5hN zY?O`uO3w>f0`w_MsP$OaY`lQ3p>y%VSPKVh4Wl>KklBWdZ%ya4>u`<7 zx8?(xY2yTE+pe?Dc3o>-R5xvl__j5S-T}}d9@mHm^acc&X=1u?oo(UdA-1-Q06J?L z(=>P)M)wdpha`+2dIY^~kN}neQ(5_EfX9y8-Oibo^z>m3O(RbSCvK#)^v+sut@Cm`{x|@DfE6^fj#8_^fy<<< z&SvxTPoL+rvq}yQRM6*hM9=3j9UhsW3_8kyzA(DwbTV2*+eLTDZ|U@3JKQC*OI`p$ zPXfG%ZIV|2vVZrHJ@5|!_BiYXcv%1TXZm8XT&=`vwOlM1eZ9I67ppa+UtV3`ECE>F zTwh&A_4O(MR_mxPz65)@#PqK)L2pt0%~%dg>Def)=VftlobbrBD$0aDDwI}<0Ud)W)RxG-IsywCxt-Q14bhN>i|OXD1^s2HQ-wlC(lYy zl)$_P;tB?YRQsML0T^5YsZuN6;t-&Dqlc@QH;H_!*Z^8#-!x0Ut{T@YY~}Mj0nU)E zJPLRtV6#APXX4wB1+?>HPK9o_8rkd&5Pv{l+LKFB*}?`<5p)SX1OX1I zKH+%>LIpi~MSvz2H9J2E@RdMw)~fpM5vcsv70RU5PXyB73)Tof8CI0Fy^~X=SMg8W z;SX*fK0(qvv{^mE-5+d9uWjjF{Xu|FY5{uJmVf($yVTc-kAI1iq3-;_m)iG{51$yc wtkSB%($hO7W(xV_c;*3A0kNC&&30#5{B$y_jlK=n!07*qoM6N<$f+_6@ZvX%Q delta 559 zcmV+~0?_@628#xe=YJ1LL_t(oh3!_+asnX?Bo`|f=qdgGkL?EV>}i6XzV_0Qn`yGk zB`CWg9I+45_@z#n^ibUgFPBRF%!8$_QVHGDcd`3ovyjLC1Z zF(7~O7>H6zlPQh7hYyl^h?CDrG*b5PMHq0#)5aJ1)R5vZP=6W6RO}{5N&&tUaq_GL zNeRqzAkJVwNVdH8>L`w5VZR?L&*a+aNIxb$3m=&i3bBFC_2YI3@f)q z(T&FcH4@NNYk%bpwY8wjF9^oELH4tVvAsyNhx|7G80Itcqu}S`h$D`e#T$R{F5eBp zq=KgYLGOwa{K1sqWAXii5}ef_xCJ!#4~UBzgc-ryKcM0=^#{!$_<7ve%|J{x2(18@ zyNQQ#FRSFhdZa z$-BPo-#{o~M(+qP#H42DnE?M1XwI5d-#r4A|GYw(wEBfW3Vgvj!*_-iWo7T=ROwax z16TNi+m}xeG!Jc7kFfcJq4YYITGby+@Ifs=tvd3DKiH%`cl`XD*ctN9AKcZxw*2(Q xps_LGOds)&;~RM-6c8SzHVyy)002ovPDHLkV1jQ&5jOw; diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_vampire.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_vampire.png index 06d1c9129e606174074b002f2fd1130e71313f01..bb0d344b4d80528d5c8eb369e4a87b5f9a7b1bf2 100644 GIT binary patch delta 48 zcmV-00MGxX2&M>-Eghbc`O(Jz;L+;8w3NTL0001qiHYH_rm(QEynAtxN@)ZHF2$j- Gw{HW4?HN!2 delta 48 zcmV-00MGxX2&M>-Egh_(`Q+OF^ycc&#+1Ld0001qiHYI9x3I9VyoP*{N@)bw;&Fbl Gw{HWbf*U3P diff --git a/modular_skyrat/modules/customization/datums/dna.dm b/modular_skyrat/modules/customization/datums/dna.dm index 54798edaa8d..8aa505e221b 100644 --- a/modular_skyrat/modules/customization/datums/dna.dm +++ b/modular_skyrat/modules/customization/datums/dna.dm @@ -252,19 +252,29 @@ GLOBAL_LIST_EMPTY(total_uf_len_by_block) /mob/living/carbon/human/updateappearance(icon_update=1, mutcolor_update=0, mutations_overlay_update=0, eyeorgancolor_update=0) ..() var/structure = dna.unique_identity + hair_color = sanitize_hexcolor(get_uni_identity_block(structure, DNA_HAIR_COLOR_BLOCK)) facial_hair_color = sanitize_hexcolor(get_uni_identity_block(structure, DNA_FACIAL_HAIR_COLOR_BLOCK)) + skin_tone = GLOB.skin_tones[deconstruct_block(get_uni_identity_block(structure, DNA_SKIN_TONE_BLOCK), GLOB.skin_tones.len)] + eye_color_left = sanitize_hexcolor(get_uni_identity_block(structure, DNA_EYE_COLOR_LEFT_BLOCK)) eye_color_right = sanitize_hexcolor(get_uni_identity_block(structure, DNA_EYE_COLOR_RIGHT_BLOCK)) + if(eyeorgancolor_update) var/obj/item/organ/internal/eyes/eye_organ = getorganslot(ORGAN_SLOT_EYES) eye_organ.eye_color_left = eye_color_left eye_organ.eye_color_right = eye_color_right eye_organ.old_eye_color_left = eye_color_left eye_organ.old_eye_color_right = eye_color_right + facial_hairstyle = GLOB.facial_hairstyles_list[deconstruct_block(get_uni_identity_block(structure, DNA_FACIAL_HAIRSTYLE_BLOCK), GLOB.facial_hairstyles_list.len)] - hairstyle = GLOB.hairstyles_list[deconstruct_block(get_uni_identity_block(structure, DNA_HAIRSTYLE_BLOCK), GLOB.hairstyles_list.len)] + + if(HAS_TRAIT(src, TRAIT_BALD)) + hairstyle = "Bald" + else + hairstyle = GLOB.hairstyles_list[deconstruct_block(get_uni_identity_block(structure, DNA_HAIRSTYLE_BLOCK), GLOB.hairstyles_list.len)] + var/features = dna.unique_features if(dna.features["mcolor"]) dna.features["mcolor"] = sanitize_hexcolor(get_uni_identity_block(features, DNA_MUTANT_COLOR_BLOCK))