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