diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index 3f3322c3ec..ac113b4e08 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -53,9 +53,10 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
GLOB.breasts_size_list = list("a","b","c","d","e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
- for(var/K in GLOB.breast_shapes_list)
+ for(var/K in GLOB.breasts_shapes_list)
var/datum/sprite_accessory/breasts/value = GLOB.breasts_shapes_list[K]
GLOB.breasts_shapes_icons[K] = value.icon_state
+
init_sprite_accessory_subtypes(/datum/sprite_accessory/testicles, GLOB.balls_shapes_list)
for(var/K in GLOB.balls_shapes_list)
var/datum/sprite_accessory/testicles/value = GLOB.balls_shapes_list[K]
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 91e7b2a5bc..01b0b0415d 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -702,6 +702,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
else
dat += "Testicles Color:"
dat += " Change
"
+ dat += "Testicles showing:[features["balls_shape"]]"
dat += APPEARANCE_CATEGORY_COLUMN
dat += "Has Vagina:"
dat += "[features["has_vag"] == TRUE ? "Yes" : "No"]"
@@ -1837,7 +1838,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
features["cock_color"] = sanitize_hexcolor(new_cockcolor)
else
- user << "Invalid color. Your color is not bright enough."
+ to_chat(user,"Invalid color. Your color is not bright enough.")
if("cock_length")
var/new_length = input(user, "Penis length in inches:\n([COCK_SIZE_MIN]-[COCK_SIZE_MAX])", "Character Preference") as num|null
@@ -1859,7 +1860,13 @@ GLOBAL_LIST_EMPTY(preferences_datums)
else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
features["balls_color"] = sanitize_hexcolor(new_ballscolor)
else
- user << "Invalid color. Your color is not bright enough."
+ 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
+ if(new_shape)
+ features["balls_shape"] = new_shape
if("egg_size")
var/new_size
@@ -1875,7 +1882,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
features["eggsack_egg_color"] = sanitize_hexcolor(new_egg_color)
else
- user << "Invalid color. Your color is not bright enough."
+ to_chat(user,"Invalid color. Your color is not bright enough.")
if("breasts_size")
var/new_size
@@ -1898,7 +1905,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
features["breasts_color"] = sanitize_hexcolor(new_breasts_color)
else
- user << "Invalid color. Your color is not bright enough."
+ to_chat(user,"Invalid color. Your color is not bright enough.")
if("vag_shape")
var/new_shape
@@ -1915,7 +1922,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
features["vag_color"] = sanitize_hexcolor(new_vagcolor)
else
- user << "Invalid color. Your color is not bright enough."
+ to_chat(user,"Invalid color. Your color is not bright enough.")
if("ooccolor")
var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference",ooccolor) as color|null
diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm
index 460c6b4188..cbf14e420a 100644
--- a/modular_citadel/code/modules/arousal/organs/genitals.dm
+++ b/modular_citadel/code/modules/arousal/organs/genitals.dm
@@ -141,14 +141,14 @@
if (NOGENITALS in dna.species.species_traits)
return
//Order should be very important. FIRST vagina, THEN testicles, THEN penis, as this affects the order they are rendered in.
- if(dna.features["has_breasts"])
- give_breasts()
if(dna.features["has_vag"])
give_vagina()
if(dna.features["has_womb"])
give_womb()
if(dna.features["has_balls"])
give_balls()
+ if(dna.features["has_breasts"]) // since we have multi-boobs as a thing, we'll want to at least draw over these. but not over the pingas.
+ give_breasts()
if(dna.features["has_cock"])
give_penis()
if(dna.features["has_ovi"])