From bc7a4f67d6f0e1154201c6e7d8c5df4e7dcf775c Mon Sep 17 00:00:00 2001
From: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
Date: Sat, 30 Mar 2024 09:38:59 -0600
Subject: [PATCH] Fixes Hemophage and Humanoid skintone issues (#1305)
## About The Pull Request
Adds greyscale versions of human sprites so that it doesn't try to add
skin tone on top of mutant color selections. It'll make playing
porcealine white (or any light color) characters possible.
Specifically, some mutant human bodypart varients have been added that
use these new greyscale human sprites I've cooked up.
Before

After

## Why It's Good For The Game
This annoyed the shit out of me when trying to color my hemophage. More
flexibility in making characters. (You don't have to pick anthromorph
just to avoid this)
## Proof Of Testing


## Changelog
:cl:
fix: Humanoid and Hemophage sprites no longer have base skin tone
issues. Added human greyscale sprites.
/:cl:
---------
Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
---
code/__DEFINES/~~bubber_defines/species.dm | 3 +-
...hot_humanoids__datum_species_hemophage.png | Bin 1081 -> 1100 bytes
...shot_humanoids__datum_species_humanoid.png | Bin 2675 -> 2655 bytes
.../hemophage/hemophage_species.dm | 17 ++++++++
.../human/species_types/humanoid_overrides.dm | 9 ++++
.../bodyparts/species_parts/misc_bodyparts.dm | 40 +++++++++++++++---
.../mob/species/human_parts_greyscale.dmi | Bin 2320 -> 3084 bytes
.../modules/hemophages/code/species.dm | 5 ---
tgstation.dme | 2 +-
9 files changed, 63 insertions(+), 13 deletions(-)
create mode 100644 modular_zubbers/code/modules/mob/living/carbon/human/species_types/humanoid_overrides.dm
delete mode 100644 modular_zubbers/modules/hemophages/code/species.dm
diff --git a/code/__DEFINES/~~bubber_defines/species.dm b/code/__DEFINES/~~bubber_defines/species.dm
index 507a232760f..f5f035de26d 100644
--- a/code/__DEFINES/~~bubber_defines/species.dm
+++ b/code/__DEFINES/~~bubber_defines/species.dm
@@ -1,3 +1,4 @@
#define SPECIES_SHADEKIN "shadekin"
+#define SPECIES_MUTANT_HUMAN "mhuman" // Hemophages and Demihuman sprite overrides
#define SPECIES_ABDUCTOR_STATION "lesser_abductor"
-#define BODYPART_ICON_SHADEKIN 'modular_zubbers/icons/mob/species/human_parts_greyscale.dmi'
+#define BODYPART_ICON_BUBBER 'modular_zubbers/icons/mob/species/human_parts_greyscale.dmi'
diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_hemophage.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_hemophage.png
index da1219f9949f6ce3dc7c4d69e245a67357e369b6..a10ac2d72ef6567d423725f5b7bb9d869d4e82d7 100644
GIT binary patch
delta 953
zcmV;q14jJ02+RnOB!7NTOjJd{z`zm`5*8K~7#J8D8X6rP9RS_{0Pz5nzqSAX00930
ziHV5-zW}hXumG9>0M7t5I6;n(lNuT!R$61Tv$J$}fOmU?QBPX{!~g)=008g+5fl_6
zCMFmh9H*+b)YspMi=qI^03;+TEiE(4&C%}e?j0T^rKz@baR`C{wg9Yl60wn-fqx50
zL_t(oh3%Hza@!yfg|Pq;D~b&Q3i40VDvoTw{|j~(IcX=bxRdEcFN(&t?6do6K{96<
z`>SKsG`t$Xn`Tv!8zH5v5jg0gsq0eG0Zq~?SKz4vLF(cjK(
cK>C8K0At-=ojVl10(SsfacxgfpAUF?2=#WPw-40LyEJZ0Dqok0QhB@
z0nCBrItxCq4?y~s>2PfZdO{KOQ0bc-+UB=@1baR^YG#{6gr4(sAG-
z8drQu{z%7r?cpkgr{o=w^nWTKu+l^F0f6d5;Tiac0CxiJ0s@TX?Q8lpy}nKi-=;6=
zr?hMs=cE0$xL@HD&LtUw}Dn)gaTml5@fS31#Jto;NcP#
zfEj#1qlfUkf@J&VUVjB<=@haGbOIPGpbCHzOagpf1T=r#FU>uG!6=(|a%leH3Vp#n
z05lTUfIY%z5tao3W7YdW8xfGNVM6S$;}{Qz=NAg_@_abNalGz{UN!h@tlM{*!!>V^
zei5qqHv*lHglc{w)bjrW5CB`!Tm#IoA=LoM{40cc=@DuH*d`oYDEV^hA?UG~KMlC`
b2)~b?Gayz{lCLXf00000NkvXXu0mjfgP^Yo
delta 916
zcmV;F18e-u2)PK5Bwue(OjJd{z`zm`5*8K~7#J8D8X6rP9RU9Tl)ttB?f?J)0Evl-
z0JH$Gu&@Bx0074T0GR+aI6;n(lNuT!R$61Tv$J$}fOmU?QBPYD6ci#RCKwzXr>eHp
z*WZbYqLGgk1nx!2*O9A%e+NlKK~z|U?Uvng+aM5yu>b{!An{vlCsiET@BfV5MNZlY
zEbe4-(Tn1-E&1$zS|Q9?#=dpzhJkkj_%Q4`@*t#?Jpu<^41HZnI$$Vz=L)=3AV^)@
z1IQ7Fr1fo(`h!&aaj&EzbaewfP=H6Fpa3N_p=-g*Ej|+Z6Vpabf67q#jLm%54Sa@3
ziZCmsW-^~iUS3o_v(8P^RU2-u7mzuf_
z0rEqzgdPD9As@aQ5uke@z_7lhvlLx`pbTPgu>pwAdh0#BEum)+VuB)Ut|N*bJQM&^
z(a@p7WYZ0RM->2mf7$K;?t#@h%PF%DKsl>)csg4?lu+qxQj^X%K-O?p>v;EN4y~_s
z2ryGl&SmFPo=g>>jn+7W7UxmxdcDtP(ud>e`Q_*7c+iviyr7GIIzjg7)Y2hhW>`VQ
z3h<=TbWRA;6u0yMPR1
z`}mr^EU&K%!;j@l`uXkcysT_p@Sv%$OVO9Lsk6)Ze7RiN^@0aq(7$VdaezNJdw?C7
zGw-$s;NP3UHwnAV+=0=_zqzLr4GZVuT_p)yzG&xf1koiFfEa0aoYg40CEztiwI}Ua
z@6|}vSBB6+e{yIMh!SRyxP%}QuzP|IVI1iSp#3n~kWW%_{$z|&G(ah14Ch3bWUb5z
z{;Zu2V+J{8X`B8J<{x0!?(CVHMSBk>-ylFf_;z$X0_MZE>}`VpzUyH(a~UBN0F$?%
zP<1J2TcG6xm*@bTPZ^CK!s`l(?YnywxUEyDDzF9Mf3Scq07`HL@Ocu@{Bgf@_W%x~
zLfy%s`DbhrFo;^psA2Dru}AoDa0~GV`5Z0|n=mlVN
qaHZtyBCUs@$7cRC;MODjIer0_3Q+s<#b3n$00009}72
diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_humanoid.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_humanoid.png
index daf59febb0397641c4c5014bd50a7c5408b2be80..30838bfd388c61c2408da81d4406b6838183c7c4 100644
GIT binary patch
delta 2526
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