From fb21e779b1e35346da9100d3de78373a8ef85bf4 Mon Sep 17 00:00:00 2001
From: QuoteFox <49098813+quotefox@users.noreply.github.com>
Date: Sat, 17 Apr 2021 22:41:02 +0100
Subject: [PATCH] Nail paint cosmetics
---
code/game/objects/structures/watercloset.dm | 1 +
.../mob/living/carbon/human/human_defines.dm | 3 +
.../mob/living/carbon/human/species.dm | 6 ++
.../chemistry/reagents/other_reagents.dm | 1 +
.../code/game/objects/items/cosmetics.dm | 75 ++++++++++++++++++
hyperstation/icons/mobs/nails.dmi | Bin 0 -> 267 bytes
hyperstation/icons/obj/cosmetic.dmi | Bin 0 -> 304 bytes
.../code/modules/client/loadout/backpack.dm | 44 +++++++++-
tgstation.dme | 1 +
9 files changed, 129 insertions(+), 2 deletions(-)
create mode 100644 hyperstation/code/game/objects/items/cosmetics.dm
create mode 100644 hyperstation/icons/mobs/nails.dmi
create mode 100644 hyperstation/icons/obj/cosmetic.dmi
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index 420a92ff..2536c22b 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -453,6 +453,7 @@
H.update_inv_wear_mask()
else
H.lip_style = null
+ H.nail_style = null
H.update_body()
if(H.glasses && washglasses && wash_obj(H.glasses))
H.update_inv_glasses()
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index fd9fdcb5..021094fc 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -24,6 +24,9 @@
var/lip_style = null //no lipstick by default- arguably misleading, as it could be used for general makeup
var/lip_color = "white"
+ var/nail_style = null
+ var/nail_color = "white"
+
var/age = 30 //Player's age
var/underwear = "Nude" //Which underwear the player wants
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index e822b381..74a38d3e 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -550,6 +550,12 @@ GLOBAL_LIST_EMPTY(roundstart_races)
MA.color = "#[H.socks_color]"
standing += MA
+ // nail paint (hyper)
+ if(H.nail_style)
+ var/mutable_appearance/nail_overlay = mutable_appearance('hyperstation/icons/mobs/nails.dmi', "nails", -HANDS_PART_LAYER)
+ nail_overlay.color = H.nail_color
+ standing += nail_overlay
+
if(standing.len)
H.overlays_standing[BODY_LAYER] = standing
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index aa87217b..83f8b666 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -1242,6 +1242,7 @@
var/mob/living/carbon/human/H = M
if(H.lip_style)
H.lip_style = null
+ H.nail_style = null
H.update_body()
for(var/obj/item/I in C.held_items)
SEND_SIGNAL(I, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
diff --git a/hyperstation/code/game/objects/items/cosmetics.dm b/hyperstation/code/game/objects/items/cosmetics.dm
new file mode 100644
index 00000000..711707f1
--- /dev/null
+++ b/hyperstation/code/game/objects/items/cosmetics.dm
@@ -0,0 +1,75 @@
+//hyperstation 13 nail polish
+
+/obj/item/nailpolish
+ name = "nail polish"
+ desc = "Paint with a fine brush to do your nails, or someone elses."
+ icon = 'hyperstation/icons/obj/cosmetic.dmi'
+ icon_state = "nailcap"
+ item_state = "nailpolish"
+ w_class = WEIGHT_CLASS_SMALL
+ var/paint = "black"
+ price = 5
+ var/mutable_appearance/bottle //show the colour on the bottle.
+
+/obj/item/nailpolish/red
+ name = "red nail polish"
+ paint = "red"
+
+/obj/item/nailpolish/blue
+ name = "blue nail polish"
+ paint = "blue"
+
+/obj/item/nailpolish/aqua
+ name = "cyan nail polish"
+ paint = "aqua"
+
+/obj/item/nailpolish/black
+ name = "black nail polish"
+ paint = "black"
+
+/obj/item/nailpolish/white
+ name = "white nail polish"
+ paint = "white"
+
+/obj/item/nailpolish/navy
+ name = "navy nail polish"
+ paint = "navy"
+
+/obj/item/nailpolish/yellow
+ name = "yellow nail polish"
+ paint = "yellow"
+
+/obj/item/nailpolish/purple
+ name = "purple nail polish"
+ paint = "purple"
+
+/obj/item/nailpolish/Initialize()
+ . = ..()
+ bottle = mutable_appearance('hyperstation/icons/obj/cosmetic.dmi', "nailpolish")
+ bottle.color = paint
+ add_overlay(bottle)
+
+
+/obj/item/nailpolish/attack(mob/M, mob/user)
+ if(!ismob(M))
+ return
+
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ if(H == user)
+ user.visible_message("[user] does [user.p_their()] nails with \the [src].", \
+ "You take a moment to apply \the [src]. Perfect!")
+ H.nail_style = "nails"
+ H.nail_color = paint
+ H.update_body()
+ else
+ user.visible_message("[user] begins to do [H]'s nails with \the [src].", \
+ "You begin to apply \the [src] on [H]'s nails...")
+ if(do_after(user, 20, target = H))
+ user.visible_message("[user] does [H]'s nails with \the [src].", \
+ "You apply \the [src] on [H]'s nails.")
+ H.nail_style = "nails"
+ H.nail_color = paint
+ H.update_body()
+ else
+ to_chat(user, "Where are the nail on that?")
\ No newline at end of file
diff --git a/hyperstation/icons/mobs/nails.dmi b/hyperstation/icons/mobs/nails.dmi
new file mode 100644
index 0000000000000000000000000000000000000000..575b51320051332b9652947c4ba5422be042ab2c
GIT binary patch
literal 267
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0L3?#3!&-4XSoB=)|t_KbrSg>Hh|NsA2er%2g
z3Nn@i`2{mLJiCzw=P@u;%n1%FC@TH_CAi?@*C$%ux?1PX
zoDbd*YH-o`!6TjXKAI;Pih6o?SQrNxUpDqqnDc1Tkx3y6!J7Jp#>*o*yNy*huaH;*
zq}OT~nu{JWdlD2@@U@sxnw!C5x|FIF^V+>YTdh1@978O6lM^IZRhY%t*w|B~gbNG|
zOcXBjaPshIo%o_5ajrpdlAc7NDnA>W+Keu?6%8ytX&I{g45!#wlsZB>G=Zitc)I$z
JtaD0e0syX(SjYeX
literal 0
HcmV?d00001
diff --git a/hyperstation/icons/obj/cosmetic.dmi b/hyperstation/icons/obj/cosmetic.dmi
new file mode 100644
index 0000000000000000000000000000000000000000..2c329e9c42a5df56763c328c6516a3a939784f10
GIT binary patch
literal 304
zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQqloFA+84w9MICz3JD2ORaLF8
zuV1%r-Sg+q|NsAg`t)g@FJf^(WsD_3e!&b5&u*jvIi*!05hX6E#mPmP1tppJc?=8{
zbArPPib}tK2`>2f^@*0ZuGYCT=Yuzd8eBAf@JQ#pkLF2+qMqIz7REuwmyNv?<~*8o
zWKxJiu%^DDvAX3(ht6(e)y*p;G?Gpnof$S|#%!*{#VfQ=oIj~^?!eNJ$b(nUv%XXXhMI>Benm=g7Jy
z^QojP-;SRl0S-HrIkgkszTh};TwP|8vK#}$^iq{@*QzLIplJ-Au6{1-oD!M