From d1f8f37c327aab446db7e42a809560fac53bbee9 Mon Sep 17 00:00:00 2001 From: QuoteFox <49098813+quotefox@users.noreply.github.com> Date: Mon, 25 Jan 2021 18:34:52 +0000 Subject: [PATCH] Bellies + Genitals hide fix Can now how have bellies --- code/__HELPERS/mobs.dm | 2 + code/modules/client/preferences.dm | 26 ++++++++++ code/modules/client/preferences_savefile.dm | 3 ++ .../code/modules/arousal/arousalhud.dm | 9 ++++ hyperstation/icons/obj/genitals/belly.dmi | Bin 0 -> 1135 bytes .../code/modules/arousal/organs/belly.dm | 47 ++++++++++++++++++ .../code/modules/arousal/organs/genitals.dm | 45 ++++++++++++++--- .../organs/genitals_sprite_accessories.dm | 9 ++++ .../modules/client/preferences_savefile.dm | 7 ++- tgstation.dme | 1 + 10 files changed, 141 insertions(+), 8 deletions(-) create mode 100644 hyperstation/icons/obj/genitals/belly.dmi create mode 100644 modular_citadel/code/modules/arousal/organs/belly.dm diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 854fa01e..eb44679a 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -186,6 +186,8 @@ "cock_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "has_sheath" = FALSE, "sheath_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), + "has_belly" = FALSE, + "belly_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "has_balls" = FALSE, "balls_internal" = FALSE, "balls_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 1653fc96..a9a73b32 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -134,6 +134,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) "cock_color" = "fff", "has_sheath" = FALSE, "sheath_color" = "fff", + "has_belly" = FALSE, + "belly_color" = "fff", "has_balls" = FALSE, "balls_internal" = FALSE, "balls_color" = "fff", @@ -891,6 +893,17 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Nothing?" //This else is a safeguard for errors, and if it happened, they wouldn't be able to change this pref, //DO NOT REMOVE IT UNLESS YOU HAVE A GOOD IDEA + dat += APPEARANCE_CATEGORY_COLUMN + dat += "

Belly

" + dat += "[features["has_belly"] == TRUE ? "Yes" : "No"]" + if(features["has_belly"]) + if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) + dat += "Color:
" + dat += "   (Skin tone overriding)
" + else + dat += "Color:
" + dat += "    Change
" + dat += "" dat += "" @@ -2170,6 +2183,17 @@ GLOBAL_LIST_EMPTY(preferences_datums) else to_chat(user,"Invalid color. Your color is not bright enough.") + if("belly_color") + var/new_bellycolor = input(user, "Belly Color:", "Character Preference") as color|null + if(new_bellycolor) + var/temp_hsv = RGBtoHSV(new_bellycolor) + if(new_bellycolor == "#000000") + features["belly_color"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + features["belly_color"] = sanitize_hexcolor(new_bellycolor) + else + to_chat(user,"Invalid color. Your color is not bright enough.") + if("balls_shape") var/new_shape new_shape = input(user, "Testicle Type:", "Character Preference") as null|anything in GLOB.balls_shapes_list @@ -2375,6 +2399,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["has_cock"] = !features["has_cock"] if(features["has_cock"] == FALSE) features["has_balls"] = FALSE + if("has_belly") + features["has_belly"] = !features["has_belly"] if("has_balls") features["has_balls"] = !features["has_balls"] if("has_ovi") diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 1b33e6cb..bea01129 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -411,6 +411,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //womb features S["feature_has_womb"] >> features["has_womb"] S["feature_can_get_preg"] >> features["can_get_preg"] //hyperstation 13 + //balls features + S["feature_has_belly"] >> features["has_belly"] + S["feature_belly_color"] >> features["belly_color"] //flavor text //Let's make our players NOT cry desperately as we wipe their savefiles of their special snowflake texts: if((S["flavor_text"] != "") && (S["flavor_text"] != null) && S["flavor_text"]) //If old text isn't null and isn't "" but still exists. diff --git a/hyperstation/code/modules/arousal/arousalhud.dm b/hyperstation/code/modules/arousal/arousalhud.dm index 15672682..da4acc80 100644 --- a/hyperstation/code/modules/arousal/arousalhud.dm +++ b/hyperstation/code/modules/arousal/arousalhud.dm @@ -26,6 +26,10 @@ if (B) //they have a boobiedoo dat += "[B.mode == "hidden" ? "Breasts (Hidden)" : (B.mode == "clothes" ? "Breasts (Hidden by Clothes)" : (B.mode == "visable" ? "Breasts (Visable)" : "Breasts (Visable)"))]
" + var/obj/item/organ/genital/belly/E = user.getorganslot("belly") + if (E) + dat += "[E.mode == "hidden" ? "Belly (Hidden)" : (B.mode == "clothes" ? "Belly (Hidden by Clothes)" : (B.mode == "visable" ? "Belly (Visable)" : "Belly (Visable)"))]
" + dat += {"
Contexual Options

"} //Options dat += "Masturbate" @@ -114,6 +118,11 @@ var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by clothes", "Always hidden") B.toggle_visibility(picked_visibility) + if(href_list["hidebelly"]) + var/obj/item/organ/genital/belly/E = usr.getorganslot("belly") + var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by clothes", "Always hidden") + E.toggle_visibility(picked_visibility) + if(href_list["hidetesticles"]) var/obj/item/organ/genital/testicles/T = usr.getorganslot("testicles") var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by clothes", "Always hidden") diff --git a/hyperstation/icons/obj/genitals/belly.dmi b/hyperstation/icons/obj/genitals/belly.dmi new file mode 100644 index 0000000000000000000000000000000000000000..8402984ffe74e842a1a81e73f0b395101cf94278 GIT binary patch literal 1135 zcmV-#1d#iQP)3~;(r!pE@BglQ z1WsZbBuMQ2u`^buNyewu2S@^uVQkp2)od4g00zT{DRu*NC#6P2rnibd4l1FP=yW<+ z1ai);_3`mi^S@Nc0Z@3D=^g;T(#P3rLkN7nd|b{P6#s#|7%la2@n$}!^QZstpJ#0f z%mMxbbIsA3P<>4P&-u@K3Fd?#w)Fq>Ft(q9@M-uL!gcL`=3#6+#1cd-LFBcIryj2E zsx6T+?Ab>Np=60yCLuZMqFZO`SbnZN8m1gPNuCy&c;^c~4PmaAOJ5HL<-xf;%#r|I z2=NO43w;^IVsm%`JVh5U!r&rRrXV_8dwE&t>-1F86${MS1OA`O4MB8{@roa0!CdbK z@Bo0UaHN4N07jB}08nWQy>p4k^N{?f5Oc9cq6@%hfL8!|kO}{Hk8*^k5)h;egdiUj zfRUyYZXr%-81cCP;2FmhWbo&DXQ9#U#t#7BZUq23djtr-ywH2M3LI55#UKuqbB!eQ z$R7OiLVsbiduCDHFaTm&*ZB+EH8~Pfk2I1J!6>SLt^)@(jA`hAs{X=}xdG63=#y-d zr0v$4{zBWrNbv#5t{ym5{e{NsT|jT^h)q&99PgAfQ_;JdUzCymf`czFrBv~+=-ur* zC%eDZCSdD_bs9A;04=@g|2vfD`CNA{d~YDow<{X6m4Da<0-^nO;i3aBXpDSuT)qI{ z)P5EX@?;!RXUgvb*rzLmS|*(C7rNd-2;t{Pn}Enrb-BZEs+tZkfO>1)X`DK6J58Oj zge{}o_Bj17T<(nCor9E7YD~00NTOYe4FK-Aa9{u+OZW3Gz~?m80Xa?I4l~Ba)*9s% z;`j3?&%kMftXMOcdRG;|vb;e}r0ib;rR3@3{$NePwE)g&yr%Zv_&UbP47A;dQ;bP> z&<5n)Of6MTqF%`KxWkzMqv?QT0qS2!tpSdHb^Vv@t%zD@_EtdC*!G_Zn*g}rHUNIp zfg@Gg0&HBOe-6M!(hTy}7|5B)D&dzmotVSD$F~aYX#Nj7?6AWQo6NdD?BU> alt_titles_preferences alt_titles_preferences = SANITIZE_LIST(alt_titles_preferences) if(SSjob) @@ -21,7 +21,7 @@ if(alt_titles_preferences[job.title]) if(!(alt_titles_preferences[job.title] in job.alt_titles)) alt_titles_preferences.Remove(job.title) - + //gear loadout var/text_to_load S["loadout"] >> text_to_load @@ -86,6 +86,9 @@ WRITE_FILE(S["feature_flavor_text"], features["flavor_text"]) //custom job titles WRITE_FILE(S["alt_titles_preferences"], alt_titles_preferences) + //belly + WRITE_FILE(S["feature_has_belly"], features["has_belly"]) + WRITE_FILE(S["feature_belly_color"], features["belly_color"]) //gear loadout if(islist(chosen_gear)) diff --git a/tgstation.dme b/tgstation.dme index 5d5cd039..9ea813c0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3160,6 +3160,7 @@ #include "modular_citadel\code\modules\admin\holder2.dm" #include "modular_citadel\code\modules\admin\secrets.dm" #include "modular_citadel\code\modules\arousal\arousal.dm" +#include "modular_citadel\code\modules\arousal\organs\belly.dm" #include "modular_citadel\code\modules\arousal\organs\breasts.dm" #include "modular_citadel\code\modules\arousal\organs\eggsack.dm" #include "modular_citadel\code\modules\arousal\organs\genitals.dm"