From 0a5cca9d336a2c9ce3a839d7d64d1a4ebe4e7502 Mon Sep 17 00:00:00 2001 From: haha26 Date: Tue, 3 Aug 2021 20:22:32 -0400 Subject: [PATCH] Fix hiding butt Should allow players to properly hide and reveal the new anus organ by bringing it in line with belly code. --- code/__HELPERS/mobs.dm | 5 +++-- code/modules/client/preferences.dm | 22 ++++++++++++++++++- code/modules/client/preferences_savefile.dm | 3 ++- .../code/modules/arousal/arousalhud.dm | 6 ++++- .../code/modules/arousal/organs/belly.dm | 1 + .../code/modules/arousal/organs/genitals.dm | 5 ++--- 6 files changed, 34 insertions(+), 8 deletions(-) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index af7e92b1..ed0434f2 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -182,7 +182,7 @@ "has_cock" = FALSE, "cock_shape" = pick(GLOB.cock_shapes_list), "cock_length" = 6, - "belly_size" = 1, + "belly_size" = 1, "butt_size" = 1, "cock_girth_ratio" = COCK_GIRTH_RATIO_DEF, "cock_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), @@ -190,10 +190,11 @@ "sheath_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "has_belly" = FALSE, "hide_belly" = FALSE, - "inflatable_belly" = FALSE, + "inflatable_belly" = FALSE, "belly_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "has_balls" = FALSE, "has_anus" = FALSE, + "butt_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "balls_internal" = FALSE, "balls_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "balls_amount" = 2, diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index b1c2229c..b23d6fd6 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -148,6 +148,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) "inflatable_belly" = FALSE, "belly_color" = "fff", "has_anus" = FALSE, + "butt_color" = "fff", "has_balls" = FALSE, "balls_internal" = FALSE, "balls_color" = "fff", @@ -932,6 +933,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "[features["has_anus"] == TRUE ? "Yes" : "No"]" if(features["has_anus"]) dat += "Butt Size: [features["butt_size"]]" + if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) + dat += "Color:
" + dat += "   (Skin tone overriding)
" + else + dat += "Color:
" + dat += "    Change
" + dat += "" dat += "" @@ -2274,6 +2282,17 @@ GLOBAL_LIST_EMPTY(preferences_datums) else to_chat(user,"Invalid color. Your color is not bright enough.") + if("butt_color") + var/new_bellycolor = input(user, "Butt Color:", "Character Preference") as color|null + if(new_bellycolor) + var/temp_hsv = RGBtoHSV(new_bellycolor) + if(new_bellycolor == "#000000") + features["butt_color"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + features["butt_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 @@ -2356,7 +2375,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("butt_size") var/new_buttsize = input(user, "Butt size :\n(0-4)", "Character Preference") as num|null - features["butt_size"] = clamp(new_buttsize, 0, 4) + if(new_buttsize) + features["butt_size"] = clamp(new_buttsize, 0, 4) if("vag_shape") var/new_shape diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index f4c91da8..5f0f1e4f 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -434,13 +434,14 @@ 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 - //belly features + //belly features S["feature_has_belly"] >> features["has_belly"] S["feature_belly_color"] >> features["belly_color"] S["feature_hide_belly"] >> features["hide_belly"] S["feature_inflatable_belly"] >> features["inflatable_belly"] //anus features S["feature_has_anus"] >> features["has_anus"] + S["feature_butt_color"] >> features["butt_color"] //flavor text //Let's make our players NOT cry desperately as we wipe their savefiles of their special snowflake texts: diff --git a/hyperstation/code/modules/arousal/arousalhud.dm b/hyperstation/code/modules/arousal/arousalhud.dm index cf903eb7..55d58183 100644 --- a/hyperstation/code/modules/arousal/arousalhud.dm +++ b/hyperstation/code/modules/arousal/arousalhud.dm @@ -44,7 +44,6 @@ dat += "(Shrink your belly down a size)
" - if(user.pulling) dat += "Climax over [user.pulling]" //you can cum on objects if you really want... dat += "(Orgasm over a person or object.)
" @@ -127,6 +126,11 @@ 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["hideanus"]) + var/obj/item/organ/genital/anus/A = usr.getorganslot("anus") + var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by clothes", "Always hidden") + A.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/modular_citadel/code/modules/arousal/organs/belly.dm b/modular_citadel/code/modules/arousal/organs/belly.dm index abf371b9..c8d7636c 100644 --- a/modular_citadel/code/modules/arousal/organs/belly.dm +++ b/modular_citadel/code/modules/arousal/organs/belly.dm @@ -10,6 +10,7 @@ var/statuscheck = FALSE shape = "round" masturbation_verb = "massage" + can_masturbate_with = FALSE can_climax = FALSE var/sent_full_message = TRUE //defaults to 1 since they're full to start var/inflatable = FALSE //For inflation connoisseurs diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm index a33c68d8..d8ede410 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals.dm @@ -258,8 +258,6 @@ A.color = "#[skintone2hex(skin_tone)]" A.update() - - /mob/living/carbon/human/proc/give_breasts() if(!dna) return FALSE @@ -504,7 +502,8 @@ genital_overlay.color = "#[H.dna.features["vag_color"]]" if("belly_color") genital_overlay.color = "#[H.dna.features["belly_color"]]" - + if("butt_color") + genital_overlay.color = "#[H.dna.features["butt_color"]]" standing += genital_overlay