From c8ca1942909b42280c40da1ae4ef489d414a5184 Mon Sep 17 00:00:00 2001
From: whataboutism-alos <90494794+whataboutism-alos@users.noreply.github.com>
Date: Sun, 4 Feb 2024 20:45:07 -0700
Subject: [PATCH 1/3] 1.0.0

Add: Creates vox scutes for arms, legs, and hands
---
 code/modules/appearance_modifier/vox_mods.dm |  62 +++++++++++++++++++
 icons/mob/appearancemods/vox_scutes.dmi      | Bin 0 -> 767 bytes
 icons/mob/species/vox/bodyparts.dmi          | Bin 1804 -> 1764 bytes
 3 files changed, 62 insertions(+)
 create mode 100644 icons/mob/appearancemods/vox_scutes.dmi

diff --git a/code/modules/appearance_modifier/vox_mods.dm b/code/modules/appearance_modifier/vox_mods.dm
index c6a4a6f426df..875d5b68b50d 100644
--- a/code/modules/appearance_modifier/vox_mods.dm
+++ b/code/modules/appearance_modifier/vox_mods.dm
@@ -1,3 +1,5 @@
+/// Vox Tail marks
+//  - These give funny patterns.to vox tails.
 /datum/appearance_modifier/vox_tail_mark
 	name = "Error! (Vox Tail Mark)"
 	abstract_type = /datum/appearance_modifier/vox_tail_mark
@@ -19,3 +21,63 @@
 /datum/appearance_modifier/vox_tail_mark/stripe
 	name = "Vox Tail Stripe"
 	state2use = "stripe"
+
+/// Vox Scutes (Ends of limbs)
+//  - This complements the secondary limb recolor to
+//    give vox players wildly expanded customization
+//  - These are split up so they don't overlay
+//    prosthetics or can be asymmetrical &/or
+//    differently colored.
+/datum/appearance_modifier/vox_scute
+	name = "Error! (Vox Scute)"
+	abstract_type = /datum/appearance_modifier/vox_scute
+
+	icon2use = 'icons/mob/appearancemods/vox_scutes.dmi'
+
+	species_can_use = list(SPECIES_VOX)
+
+/datum/appearance_modifier/vox_scute/leg
+	name = "Error! (Vox Scute Leg)"
+	abstract_type = /datum/appearance_modifier/vox_scute/leg
+	bodyzones_affected = list(BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)
+
+/datum/appearance_modifier/vox_scute/leg/right
+	name = "Vox Scute (Leg, Right)"
+	bodyzones_affected = list(BODY_ZONE_R_LEG)
+	state2use = "vox_digitigrade_r_leg"
+
+/datum/appearance_modifier/vox_scute/leg/left
+	name = "Vox Scute (Leg, Left)"
+	bodyzones_affected = list(BODY_ZONE_L_LEG)
+	state2use = "vox_digitigrade_l_leg"
+
+/datum/appearance_modifier/vox_scute/arm
+	name = "Error! (Vox Scute Arm)"
+	abstract_type = /datum/appearance_modifier/vox_scute/arm
+	bodyzones_affected = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM)
+
+/datum/appearance_modifier/vox_scute/arm/right
+	name = "Vox Scute (Arm, Right)"
+	bodyzones_affected = list(BODY_ZONE_R_ARM)
+	state2use = "vox_r_arm"
+
+/datum/appearance_modifier/vox_scute/arm/left
+	name = "Vox Scute (Arm, Right)"
+	bodyzones_affected = list(BODY_ZONE_L_ARM)
+	state2use = "vox_l_arm"
+
+/datum/appearance_modifier/vox_scute/hand
+	name = "Error! (Vox Scute Hand)"
+	abstract_type = /datum/appearance_modifier/vox_scute/hand
+	bodyzones_affected = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM)
+	affects_hands = TRUE
+
+/datum/appearance_modifier/vox_scute/hand/right
+	name = "Vox Scute (Hand, Right)"
+	bodyzones_affected = list(BODY_ZONE_R_ARM)
+	state2use = "vox_r_hand"
+
+/datum/appearance_modifier/vox_scute/hand/left
+	name = "Vox Scute (Hand, Left)"
+	bodyzones_affected = list(BODY_ZONE_L_ARM)
+	state2use = "vox_l_hand"
diff --git a/icons/mob/appearancemods/vox_scutes.dmi b/icons/mob/appearancemods/vox_scutes.dmi
new file mode 100644
index 0000000000000000000000000000000000000000..c820090990d2ff021057e98927d60bee0871d45e
GIT binary patch
literal 767
zcmV<b0s#GqP)<h;3K|Lk000e1NJLTq006)M006)Q0{{R3pz?7v0000gP)t-sz`($I
zdU|AJWR#SYwzjrKMMb2fq$(;ZkB^Uyjg5bQf2yjgprD|@z`&kCVI}|o00DGTPE!Ct
z=GbNc005tQR9JLGWpiV4X>fFDZ*Bkpc$}4yy$ZuH5QAs?DNM4L{;gd~Ldej(f^oU4
zec(87HfbNfPCIoe_9lToAyBKX{V-0dyNz;1j<f`IQRm%WiYGyG*_@72I3(-R*TiHJ
zX4$OEOS3jSH&Os`+(0QFY-Zf_;Wz1vldPQypzr7?Km}1aqqf|amjhW!WZ3}bO&)DE
z<^NHw>Zk5=)f?I-gKONLfGYq10oX}IK~#90?b|y}!$1%QVA~sT6j6YJQczinpayI?
z5;Tb%Q3EFcLIq7axB&;?0!Bz&gqA}QfgI1ivg@o@JoJAJ@$T%5>HI5B5C8zcU$Jdk
zjt(2Ok@`)Q^=w=ZC^Yv#b(ZyoxTQYcCj->CpsN@Ag%jlgx;#wG1D5r2zfgUEe75LM
z>ec-K00000*2EIO{lm=j05<hJAUbwAoLMBI$YB7>tU}%TqSWF)aIvxPw?6;?006*m
z)zLi6XXX++yEEl7yR9GcGnc#*494p9vw8q?8gOxLTz5+p^SN<7j-3XWH|9<QoNfXD
z0000Q3X8<=09F_yK$RD)!UB1L>sy#6rXy8e(Bui;P<qkpQu7dBtMY;_Pw)fQ$V63M
z(B%n^`F>?pUeM(UWpT3!+#f@&??mA}u>b%7006*0CBG7vH0&V%a;8gDVk8FF{=w=F
zU2%6u8nAgpuX6FnN7C0`T#GPY+3gE^rdQYE_MS9=_T&#Q%oGDougKL~$?x_~qyZ_Z
zzfbwic%+Es=?882$Ys~~Nf@{=8ZAF=y?cJu5dZ)H0DhE|0g`t6--yq@dCLQaVgj)F
xvaE?0abeK%fY*}0?%lOKKu7?=L#eK7>JvljEUmZ^$F2YX002ovPDHLkV1g9UTU`JE

literal 0
HcmV?d00001

diff --git a/icons/mob/species/vox/bodyparts.dmi b/icons/mob/species/vox/bodyparts.dmi
index 8663e45da8455737a5c1030962995193a9ed2083..0ff117392cfb3a19aa3c9e03d506f018094b5c6e 100644
GIT binary patch
delta 1683
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
T;Ly0r78B~Ymusza;LX1Pyq7Jf

delta 1723
zcmV;s21NPf4U7(uWq&_EKaY=(e}8|KN>~#B0004WQchC<K<3zH00029dQ@0+L}hbh
za%pgMX>V=-0C=38lD!JUFbsre`zcJam;S9?N<zrcyn=Bn#TMiTWRv#so1|+gO1Bey
zC*6T^b1kd7F~zOc6LO?+Fc)*)?X`Lmq%aSsqgDaQhx8d@a(@YDnN8!%J_5#M`%Eh!
zj*C^RmR*mFK73<a5zE%GY-=Yb13D0%Us2gsw!sZx?-*!+4Gv+s4!w}v8l#iPU~vo}
zPl-G`z&~9-E9a(ciuGCFhBD9@rsOz-000HHNkl<Zc%1E>4RfO)5QfFCA~YW)XaE0C
zy~T8<y@XvL!GA;B_sKLj)5U$)SESB?+B5(F000006hO6ItDX*5*YCc42e<$B%?Wg!
z6sNFIL2Z52w)EZdEqc|po$A>HJ?TpgmhHQii`Ulo{<Li?SlD-}Rh?9T?_zudzdcE?
z22|E>hHi1V8`$lsIQo$)P_ZMRwyWRtgHoMR1J|PWhkvM(`=D6hvIl$twe_h0Z&1e<
zFf3h^jo%7T(h*Ry0d@5g2AN2lN*o5c0BZ1j{<Za+krY%vJ{`YxQmFvB2iMkL91;wS
z#y^KCX%v>nu*&*l=SR`LV=aCoc{RN81^5b7&;A)x{s?VXzZr+2qtCz=Fusw2Z$cOJ
zmuX6fkAF(Kj;pOt7ok+bF!Gn8lt4-OU!}IbR~Y5|vH0Hg0RR91000000002^dFa{&
z)MjEGNVZ0EE%lULPDUlHY#tNmKzj9>Nnz|%#(`jdPBlCEWKHPzI-_{TL^5E#gOpRB
zh%R6Nv!lk^H4U&uayQzB4VW?ntPPrFra}gUPJgAz7BgT98<0`F<_sv+O9S~!nd{vR
z8IU)`Fs)6vbLI1xztj*Y6q#iJlRLYbjQr&;V2YIq0000000000{0QDXLVTofWU;Q$
zB))ZR{loD@pMwzh@NqA4@{EDKc>fG-T>mIkFfP&KQCg6HT53E#>hO`x=r;#y(@+zx
zfPeSna)gdTCtYNMU2XYg#DL2B&HLTIj|D89NGgE#;e0rfT%fk5IUdgZ?$y`#4%0X9
zFd69er7n0oP0#1kW8`!`N6z5d`i-~FSHQKojZxAlwKO^$P62(Y;B+`_TAw!l_8m^{
zPeD1y(k?s-M>njkf76zaQN;fjsjctFAAjjOWPNJu0{{R300000000000000000000
z0001Znqtow*(=uakLk#KLP+=#7P(peH^M_!^yG4Cw=US1Ec1Yvt#C0HE~H)F<3}bJ
zw32y1%nrC{)|;I6g2fx>N}mGlbJJ{x{JKM1T%Sqwv-s`%4*&oF00000000000Dl00
z-v##$kza!?_A-v0!o5W0_pskN@@=5`*SYBUBBxjrJr#Rf%vxwC7!Y2V@=uff8!++j
zQY+8{?Dh@NLJx?(@J+|wwpHwPT&p3C0r9sTMLS8c*Kw`Jx?{jD3~)?G*J%cbS0QEx
zV}QH3OYl`!e=M^+@p~gn*J1ohrGE>BH*bKx(kB@3M7A~_!GI<HQhfjb0000000000
z0Dv`kxIe$#o%zhI|J&l>{`}1Q`vr{f6on0O{~zGF_xJOdeXQTOzdt|s{(d3zK9(=s
z--uuC#(W`D!tAp+ce!MUP0uIK%iJ4K3gI6AgsC@i?y{@_tHFDjF#8<u0e|uiZovSa
zg!KpF`h|oQV$t;rRY@EJ1eaoy)0^)B1;&6K8=(Etgm^0_oG3c>D5Wj0&(IflNitxv
zfA}>l1b>}zHCtYuu&hf+83cu83d`~X$p9=*00000000000002sKhl5x>|SJkayw()
zOSkqX>AouRY9Y??G2^UT-+usEM5<2<v484tLM4*_sRxId9T0WXM0}9nR9nfOZ*@#;
zA>_W`e_9W4+}zhZr8pppn5952s-2zV6BD!3d>xctl27RYdgf*bMddUR<LhJlfS;R;
z3%FS`J-{@E)J1t6?*KD9`#Dc~PUxaWi-&;fqe6pGE6uxpp(k#zFn@mPO`3W#2?qG%
z5I#mOW&K1%L@ZIyeTu-$&f@zsEb{ya6F-EyXHG;t*@Q8`naCOuVT_318@(v-0@3+>
zo$yzHuR`<V*B6ofUmV~<X{Uhg`2^AJ^+z;6zng;c7a#E&xcn|{?%dje%kbeM`}bi}
z3}75^L&_S<s03T&)ihqy)^J*TK6A;hv#_9!g7N*Q{8UNc*XMKE8q>@g{sIqzNm8Ds
RF?Ij|002ovPDHLkV1ggXHIM)R


From b5b536283d165428879e6134ca9afa5a6b189929 Mon Sep 17 00:00:00 2001
From: alos <90494794+whataboutism-alos@users.noreply.github.com>
Date: Sun, 4 Feb 2024 22:04:05 -0700
Subject: [PATCH 2/3] 1.0.1

caught misplaced . within code comment
---
 code/modules/appearance_modifier/vox_mods.dm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/code/modules/appearance_modifier/vox_mods.dm b/code/modules/appearance_modifier/vox_mods.dm
index 875d5b68b50d..369cd66465e3 100644
--- a/code/modules/appearance_modifier/vox_mods.dm
+++ b/code/modules/appearance_modifier/vox_mods.dm
@@ -1,5 +1,5 @@
 /// Vox Tail marks
-//  - These give funny patterns.to vox tails.
+//  - These give funny patterns to vox tails.
 /datum/appearance_modifier/vox_tail_mark
 	name = "Error! (Vox Tail Mark)"
 	abstract_type = /datum/appearance_modifier/vox_tail_mark

From 0d9673953fc005f507e751528d0f71c58dd77884 Mon Sep 17 00:00:00 2001
From: whataboutism-alos <90494794+whataboutism-alos@users.noreply.github.com>
Date: Mon, 5 Feb 2024 00:04:05 -0700
Subject: [PATCH 3/3] 1.1.0

---
 code/modules/appearance_modifier/vox_mods.dm |   2 +-
 icons/mob/appearancemods/vox_scutes.dmi      | Bin 767 -> 753 bytes
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/code/modules/appearance_modifier/vox_mods.dm b/code/modules/appearance_modifier/vox_mods.dm
index 875d5b68b50d..964dffc2d85b 100644
--- a/code/modules/appearance_modifier/vox_mods.dm
+++ b/code/modules/appearance_modifier/vox_mods.dm
@@ -62,7 +62,7 @@
 	state2use = "vox_r_arm"
 
 /datum/appearance_modifier/vox_scute/arm/left
-	name = "Vox Scute (Arm, Right)"
+	name = "Vox Scute (Arm, Left)"
 	bodyzones_affected = list(BODY_ZONE_L_ARM)
 	state2use = "vox_l_arm"
 
diff --git a/icons/mob/appearancemods/vox_scutes.dmi b/icons/mob/appearancemods/vox_scutes.dmi
index c820090990d2ff021057e98927d60bee0871d45e..c97e905c50c302f2119c167462ae8a5c384f3b12 100644
GIT binary patch
delta 536
zcmV+z0_Xkz1@Q%tEGxFQwq#^vl$4ZudU{1gMWm#pDk>_EkB^OwjemcCs;a7>prF9O
zz-+=xR*_e`f67TjK~#90?b|<2!!Q&E@H950su-w(m?K3n6M_;6mLO0ECWJTuP$pQi
z!3{V77l;JnBCH&W3X#TtYp0F{!}nWSJJ0Xyn5U#c0002+YumIPYAQ7KQgy7XCrrT9
zqJLK}_M<z>1MGI1m;;veazCm*z<jsp&(y2?0RR91e*mm2@!WspIe<((2ZV<%hqKC}
z$RU7a2M(t#gn8vRU}Mj3e*gdg0D%8$q`8^T%q4bC=gMtzTXk73^G-0+JObM70*F(<
z^`&v&ZK9}a<9-x51(+|?P619o0ssI20D7Wv;x~ZA#u1>M7p#T_BHpsoJTV<<=LO9?
z!Aqt0f4Z(TH}RczUeL`Ge83trQ9Cc_<_V7Z_sZINK{rn*i~A*TABI}r6NUGQ1poj5
z0090*;yXZoC9ZFz{Lh&&J0*tV;Ci;dy2Dt!dM*WQ9<i&U5)Md@y|@;%SlR6dd1Y7k
z;^hk|fbGd2UYIKaPHvdhN5fy897_Q?Q~#LrVi%)QF_!0FY{O@6c8y+yz=g70e%<=?
z{Hh}W0002=;_^2ZtA5F_{qMy4-(ui^wBpy)=3!YM@8ZU6;DEP=Ur!ze4iF}Q;Hgp9
a_4N(c0V?FF%256Q0000<MNUMnLSTaOc>Li2

delta 550
zcmV+>0@?lX1^)$*EGv3?dSql|l$4aVwzfq@MWm#pDk>_EkB^OwjemcCs;a7>prF9O
zz@9;2CXrXWf7nSxK~#90?b|y}!$1%QVA~sT6j6YJQczinpayI?5;Tb%Q3EFcLIq7a
zxB&;?0!Bz&gqA}QfgI1ivg@o@JoJAJ@$T%5>HI5B5C8zcU$Jdkjt(2Ok@`)Q^=w=Z
zC^Yv#b(ZyoxTQYcCj->CpsN@Ag%jlgx;#wG1D5r2f4@+DfPA*-PwLhE000000M^73
zzx~6^^8hyWJRmxDIh<J}qR3$Y%dA4(`l8h0KX9?J@3%hy0002MZ`IK}%xC5jJG(RG
zGP|uG@-vsb6AZ@c^|N{aa~g1QZd`Xu6!W=pJ&v6Qm^bE51DtLG000008VZZV?*LX9
zBS4iGf2_g+d4cO&m?owpRbJ5K3Eoh8(d$z45MQhEf-X<+1J=kyRbJ5L36A-GWmR6#
z<q2hRvkBZEL#^*b;XSbc00000z&|Cw5|=dWApdfvOH*Pb2G{<<>JD9TcSjnqc|@;r
z@yAEf*IrzUFkjj23wx$l*W&h`G=TQx4=>CVa05=S$kkiP@Agil0V%1!Px;Mwq=@C|
z2W|MsW!Lyg7`QMREkAC(dw$gs00000ew35}l6L#wh|j-y%L9gD0<ihAtce$KVbJn`
o*OI^P-L*VGNC3e@sjh446GQ7Pt+)}#t^fc407*qoM6N<$f}-UDjsO4v