Merge pull request #121 from Hekto61/master

visual bellies for taur characters
This commit is contained in:
evilew
2025-04-19 13:30:23 +02:00
committed by GitHub
14 changed files with 230 additions and 7 deletions
@@ -5,6 +5,7 @@
var/obj/item/organ/genital/butt/butt = H.getorganslot(ORGAN_SLOT_BUTT)
var/obj/item/organ/genital/belly/belly = H.getorganslot(ORGAN_SLOT_BELLY)
var/obj/item/organ/genital/breasts/breasts = H.getorganslot(ORGAN_SLOT_BREASTS)
var/obj/item/organ/genital/taur_belly/tbelly = H.getorganslot(ORGAN_SLOT_TAUR_BELLY) //GS13 TAUR BELLY EDIT
if(butt)
if(butt.max_size > 0)
@@ -18,6 +19,12 @@
belly.modify_size(size_change)
else
belly.modify_size(size_change)
if(tbelly) //GS13 TAUR BELLY EDIT
if(tbelly.max_size > 0)
if((tbelly.size + size_change) <= tbelly.max_size)
tbelly.modify_size(size_change)
else
tbelly.modify_size(size_change)
if(breasts)
if(breasts.max_size > 0)
if((breasts.cached_size + size_change) <= breasts.max_size)
@@ -0,0 +1,77 @@
/obj/item/organ/genital/taur_belly //I know, I know a this is just a copy of belly.dm code.
name = "taur belly"
desc = "You see a belly on their taur body."
icon_state = "belly"
icon = 'GainStation13/icons/obj/genitals/taur_belly/taur_belly_drake.dmi' //drake belly as placeholder
zone = BODY_ZONE_CHEST // ugh... I think this is a target on a health doll
slot = ORGAN_SLOT_TAUR_BELLY
w_class = 3
size = 0
var/max_size = 0
shape = TAUR_BELLY_SHAPE_DEF//"taur_belly"
var/statuscheck = FALSE
genital_flags = UPDATE_OWNER_APPEARANCE|GENITAL_CAN_TAUR
masturbation_verb = "massage"
var/sent_full_message = TRUE //defaults to 1 since they're full to start
//var/inflatable = FALSE //For inflation connoisseurs not implemented yet
var/size_cached = 0
var/prev_size = 0
layer_index = TAUR_BELLY_LAYER_INDEX
/obj/item/organ/genital/taur_belly/modify_size(modifier, min = TAUR_BELLY_SIZE_DEF, max = TAUR_BELLY_SIZE_MAX)
var/new_value = clamp(size_cached + modifier, starting_size, max)
if(new_value == size_cached)
return
prev_size = size_cached
size_cached = new_value
size = round(size_cached)
update()
..()
/obj/item/organ/genital/taur_belly/update_appearance()
//GS13
// Default settings
var/datum/sprite_accessory/S = GLOB.taur_belly_shapes_list[shape] //GS13 - get belly shape
var/icon_shape_state = S ? S.icon_state : "belly"
icon_state = "[icon_shape_state]_[size]"
//var/icon_shape = S ? S.icon : "hyperstation/icons/obj/genitals/belly.dmi" //fallback to default belly in case we cant find a shape
//icon = icon_shape
// Fullnes not implemented yet
/*
switch(owner.fullness)
if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG)
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi' //We use round belly to represent stuffedness
icon_state = "belly_round_[size]"
if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ)
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi'
icon_state = "belly_round_[size+1]"
if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi'
icon_state = "belly_round_[size+2]"
*/
if(owner)
if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"])
if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow...
var/mob/living/carbon/human/H = owner // only human mobs have skin_tone, which we need.
color = SKINTONE2HEX(H.skin_tone)
if(!H.dna.skin_tone_override)
icon_state += "_s"
else
color = "#[owner.dna.features["taur_belly_color"]]"
/obj/item/organ/genital/taur_belly/get_features(mob/living/carbon/human/H)
var/datum/dna/D = H.dna
if(D.species.use_skintones && D.features["genitals_use_skintone"])
color = SKINTONE2HEX(H.skin_tone)
else
color = "#[D.features["taur_belly_color"]]"
size = D.features["taur_belly_size"]
max_size = D.features["max_taur_belly_size"]
starting_size = D.features["belly_size"]
shape = D.features["taur_belly_shape"]
//inflatable = D.features["inflatable_belly"]
toggle_visibility(D.features["taur_belly_visibility"], FALSE)
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

+2
View File
@@ -190,6 +190,8 @@
#define ORGAN_SLOT_BUTT "butt"
// GS13 EDIT
#define ORGAN_SLOT_BELLY "belly"
// GS13 EDIT
#define ORGAN_SLOT_TAUR_BELLY "taur_belly"
////organ defines
#define STANDARD_ORGAN_THRESHOLD 100
+9 -3
View File
@@ -10,10 +10,11 @@
#define VAGINA_LAYER_INDEX 2
#define TESTICLES_LAYER_INDEX 3
#define BELLY_LAYER_INDEX 4
#define GENITAL_LAYER_INDEX 5
#define PENIS_LAYER_INDEX 6
#define TAUR_BELLY_LAYER_INDEX 5
#define GENITAL_LAYER_INDEX 6
#define PENIS_LAYER_INDEX 7
#define GENITAL_LAYER_INDEX_LENGTH 6 //keep it updated with each new index added, thanks.
#define GENITAL_LAYER_INDEX_LENGTH 7 //keep it updated with each new index added, thanks.
//genital flags
#define GENITAL_BLACKLISTED (1<<0) //for genitals that shouldn't be added to GLOB.genitals_list.
@@ -72,6 +73,11 @@
#define DEF_BELLY_SHAPE "Soft Belly" //GS13 - More belly types
//GS13 EDIT TAUR BELLIES
#define TAUR_BELLY_SIZE_DEF 1
#define TAUR_BELLY_SIZE_MAX 10
#define TAUR_BELLY_SHAPE_DEF "Drake Belly" // GS13 - for future taur bodies...
//GS13 Port - Add back Arousal
#define AROUSAL_MINIMUM_DEFAULT 0
#define AROUSAL_MAXIMUM_DEFAULT 100
+6
View File
@@ -58,6 +58,7 @@ GLOBAL_LIST_EMPTY(cock_shapes_list)
GLOBAL_LIST_EMPTY(balls_shapes_list)
GLOBAL_LIST_EMPTY(butt_shapes_list)
GLOBAL_LIST_EMPTY(belly_shapes_list)
GLOBAL_LIST_EMPTY(taur_belly_shapes_list) // GS13 TAUR BELLY EDIT
GLOBAL_LIST_EMPTY(breasts_shapes_list)
GLOBAL_LIST_EMPTY(vagina_shapes_list)
//longcat memes.
@@ -136,6 +137,11 @@ GLOBAL_VAR_INIT(miscreants_allowed, FALSE)
return TRUE
return FALSE
/mob/living/carbon/proc/has_taur_belly() //GS13 EDIT TAUR BELLY
if(getorganslot(ORGAN_SLOT_TAUR_BELLY))
return TRUE
return FALSE
/mob/living/carbon/proc/is_groin_exposed(list/L)
if(!L)
L = get_equipped_items()
+1
View File
@@ -58,6 +58,7 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/butt, GLOB.butt_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/testicles, GLOB.balls_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/belly, GLOB.belly_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/taur_belly, GLOB.taur_belly_shapes_list) //GS13 EDIT TAUR BELLY
for(var/gpath in subtypesof(/obj/item/organ/genital))
var/obj/item/organ/genital/G = gpath
+11
View File
@@ -106,6 +106,8 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/ears/mam_ears, GLOB.mam_ears_list)
if(!GLOB.mam_snouts_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts/mam_snouts, GLOB.mam_snouts_list)
if(!GLOB.taur_belly_shapes_list.len) //GS13 EDIT TAUR BELLY
init_sprite_accessory_subtypes(/datum/sprite_accessory/taur_belly, GLOB.taur_belly_shapes_list)
//snowflake check so people's ckey features don't get randomly put on unmonkeys/spawns
var/list/snowflake_mam_tails_list = list()
@@ -222,6 +224,15 @@
"inflatable_belly" = FALSE,
"belly_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
// GS13 EDIT END
// GS13 EDIT START - TAUR BELLY
"has_taur_belly" = FALSE,
"taur_belly_size" = TAUR_BELLY_SIZE_DEF,
"taur_belly_shape" = TAUR_BELLY_SHAPE_DEF,
"hide_taur_belly" = FALSE,
//"inflatable_belly" = FALSE,
"taur_belly_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
"taur_belly_visibility" = GEN_VISIBLE_NO_UNDIES,
// GS13 EDIT END
"balls_visibility" = GEN_VISIBLE_NO_UNDIES,
"breasts_visibility"= GEN_VISIBLE_NO_UNDIES,
+14
View File
@@ -261,6 +261,8 @@
give_genital(/obj/item/organ/genital/butt)
if(dna.features["has_belly"])
give_genital(/obj/item/organ/genital/belly)
if(dna.features["has_taur_belly"]) //GS13 EDIT TAUR BELLY
give_genital(/obj/item/organ/genital/taur_belly)
/mob/living/carbon/human/proc/give_genital(obj/item/organ/genital/G)
if(!dna || (NOGENITALS in dna.species.species_traits) || getorganslot(initial(G.slot)))
@@ -322,6 +324,8 @@
S = GLOB.butt_shapes_list[G.shape]
if(/obj/item/organ/genital/belly)
S = GLOB.belly_shapes_list[G.shape]
if(/obj/item/organ/genital/taur_belly) //GS13 EDIT TAUR BELLY
S = GLOB.taur_belly_shapes_list[G.shape]
if(!S || S.icon_state == "none")
continue
@@ -358,6 +362,8 @@
genital_overlay.color = "#[dna.features["butt_color"]]"
if("belly_color")
genital_overlay.color = "#[dna.features["belly_color"]]"
if("taur_belly_color") //GS13 EDIT TAUR BELLY
genital_overlay.color = "#[dna.features["taur_belly_color"]]"
//GS13 - Because each genital's file has different naming schemes for their icon_states,
// I've made it so each type is checked and the icon_state built based on which genital it is
@@ -365,6 +371,9 @@
if("belly")
genital_overlay.icon = G.icon
genital_overlay.icon_state = "[G.icon_state]_[aroused_state]_[layertext]"
if("taur_belly") //GS13 EDIT TAUR BELLY
//genital_overlay.icon = G.icon
genital_overlay.icon_state = "[G.icon_state]_[aroused_state]_[layertext]"
if("breasts")
genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size][(dna.species.use_skintones && !dna.skin_tone_override) ? "-s" : ""]_[aroused_state]_[layertext]"
if("penis")
@@ -405,6 +414,7 @@
var/buttCheck = getorganslot(ORGAN_SLOT_BUTT)
var/ballCheck = getorganslot(ORGAN_SLOT_TESTICLES)
var/bellyCheck = getorganslot(ORGAN_SLOT_BELLY)
var/taurbellyCheck = getorganslot(ORGAN_SLOT_TAUR_BELLY) //GS13 EDIT TAUR BELLY
if(organCheck == FALSE)
if(ishuman(src) && dna.species.use_skintones)
@@ -415,6 +425,7 @@
dna.features["butt_color"] = "[dna.species.fixed_mut_color]"
dna.features["belly_color"] = "[dna.species.fixed_mut_color]"
dna.features["testicles_color"] = "[dna.species.fixed_mut_color]"
dna.features["taur_belly_color"] = "[dna.species.fixed_mut_color]" //GS13 EDIT TAUR BELLY
return
//So people who haven't set stuff up don't get rainbow surprises.
dna.features["cock_color"] = "[dna.features["mcolor"]]"
@@ -422,6 +433,7 @@
dna.features["butt_color"] = "[dna.features["mcolor"]]"
dna.features["belly_color"] = "[dna.features["mcolor"]]"
dna.features["testicles_color"] = "[dna.features["mcolor"]]"
dna.features["taur_belly_color"] = "[dna.features["mcolor"]]" //GS13 EDIT TAUR BELLY
else //If there's a new organ, make it the same colour.
if(breastCheck == FALSE)
dna.features["breasts_color"] = dna.features["cock_color"]
@@ -433,4 +445,6 @@
dna.features["belly_color"] = dna.features["belly_color"]
else if (ballCheck == FALSE)
dna.features["testicles_color"] = dna.features["testicles_color"]
else if (taurbellyCheck == FALSE)
dna.features["taur_belly_color"] = dna.features["taur_belly_color"] //GS13 EDIT TAUR BELLY
return TRUE
@@ -152,3 +152,19 @@
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi'
icon_state = "round"
name = "Round Belly"
//GS13 EDIT TAUR BELLY
/datum/sprite_accessory/taur_belly // Generic taur belly
icon = 'GainStation13/icons/obj/genitals/taur_belly/taur_belly_drake.dmi'
icon_state = "drake"
name = "generic taur belly"
color_src = "taur_belly_color"
//taur_dimension_x = 64
feat_taur = "belly_taur"
center = TRUE
dimension_x = 64
/datum/sprite_accessory/taur_belly/drake
taur_icon = 'GainStation13/icons/obj/genitals/taur_belly/taur_belly_drake.dmi'
icon_state = "drake"
name = "Drake Belly"
+55 -3
View File
@@ -134,7 +134,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/eye_type = DEFAULT_EYES_TYPE //Eye type
var/split_eye_colors = FALSE
var/datum/species/pref_species = new /datum/species/human() //Mutant race
var/list/features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = list(), "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_fluid" = /datum/reagent/consumable/milk, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING, "belly_size" = BELLY_SIZE_DEF, "belly_shape" = DEF_BELLY_SHAPE, "inflatable_belly" = FALSE, "belly_visibility" = GEN_VISIBLE_NO_UNDIES)
var/list/features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = list(), "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_fluid" = /datum/reagent/consumable/milk, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING, "belly_size" = BELLY_SIZE_DEF, "belly_shape" = DEF_BELLY_SHAPE, "inflatable_belly" = FALSE, "belly_visibility" = GEN_VISIBLE_NO_UNDIES, "taur_belly_size" = TAUR_BELLY_SIZE_DEF, "taur_belly_shape" = TAUR_BELLY_SHAPE_DEF, /*"taur_inflatable_belly" = FALSE,*/ "taur_belly_visibility" = GEN_VISIBLE_NO_UNDIES)
var/custom_speech_verb = "default" //if your say_mod is to be something other than your races
var/custom_tongue = "default" //if your tongue is to be something other than your races
@@ -869,10 +869,26 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<b>Belly Visibility:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=belly_visibility;task=input'>[features["belly_visibility"]]</a>"
// GS13: tweak inflation description
dat += "<b>Inflation (climax with and manual belly size change in arousal menu):</b><a style='display:block;width:50px' href='?_src_=prefs;preference=inflatable_belly'>[features["inflatable_belly"] == 1 ? "Yes" : "No"]</a>"
dat += "</td>"
dat += "</tr></table>"
// GS13 EDIT TAUR BELLY START
if(features["taur"] != "None")
dat += APPEARANCE_CATEGORY_COLUMN
dat += "<h3>Taur Belly</h3>"
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=has_taur_belly'>[features["has_taur_belly"] == TRUE ? "Yes" : "No"]</a>"
if(features["has_taur_belly"])
dat += "<b>Color:</b></a><BR>"
if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE)
dat += "<span style='border: 1px solid #161616; background-color: [SKINTONE2HEX(skin_tone)];'><font color='[color_hex2num(SKINTONE2HEX(skin_tone)) < 200 ? "FFFFFF" : "000000"]'>[SKINTONE2HEX(skin_tone)]</font></span>(Skin tone overriding)<br>"
else
dat += "<span style='border: 1px solid #161616; background-color: #[features["taur_belly_color"]];'><font color='[color_hex2num(features["taur_belly_color"]) < 200 ? "FFFFFF" : "000000"]'>#[features["taur_belly_color"]]</font></span> <a href='?_src_=prefs;preference=taur_belly_color;task=input'>Change</a><br>"
dat += "<b>Belly Size:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=taur_belly_size;task=input'>[features["taur_belly_size"]]</a>"
dat += "<b>Max Fat Belly Size:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=max_taur_belly_size;task=input'>[features["max_taur_belly_size"]]</a>"
dat += "<b>Belly Shape:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=taur_belly_shape;task=input'>[features["taur_belly_shape"]]</a>"
dat += "<b>Belly Visibility:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=taur_belly_visibility;task=input'>[features["taur_belly_visibility"]]</a>"
//dat += "<b>Inflation (climax with and manual belly size change in arousal menu):</b><a style='display:block;width:50px' href='?_src_=prefs;preference=inflatable_belly'>[features["inflatable_belly"] == 1 ? "Yes" : "No"]</a>"
dat += "</td>"
dat += "</tr></table>"
//Markings
if(MARKINGS_CHAR_TAB)
@@ -2840,7 +2856,40 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/n_vis = input(user, "Belly Visibility", "Character Preference") as null|anything in CONFIG_GET(str_list/safe_visibility_toggles)
if(n_vis)
features["belly_visibility"] = n_vis
//GS13 TAUR BELLY START
if("taur_belly_color")
var/new_bellycolor = input(user, "Belly Color:", "Character Preference", "#"+features["taur_belly_color"]) as color|null
if(new_bellycolor)
var/temp_hsv = RGBtoHSV(new_bellycolor)
if(new_bellycolor == "#000000")
features["taur_belly_color"] = pref_species.default_color
else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
features["taur_belly_color"] = sanitize_hexcolor(new_bellycolor, 6)
else
to_chat(user,"<span class='danger'>Invalid color. Your color is not bright enough.</span>")
if("taur_belly_size") //GS13 Edit here if we add more belly sprites
// GS13: Adjust sprite ranges in char setup
var/new_bellysize = input(user, "Belly size :\n(1-10)", "Character Preference") as num|null
if(new_bellysize)
features["taur_belly_size"] = clamp(round(new_bellysize), 1, 10)
if("max_taur_belly_size")
var/new_bellymax = input(user, "Max belly fat size :\n(0-9)", "Character Preference") as num|null
if(new_bellymax)
features["max_taur_belly_size"] = clamp(round(new_bellymax), 0, 10)
if("taur_belly_shape") //GS13 - belly shapes
var/new_shape
new_shape = input(user, "Belly Type", "Character Preference") as null|anything in GLOB.taur_belly_shapes_list
if(new_shape)
features["taur_belly_shape"] = new_shape
if("taur_belly_visibility")
var/n_vis = input(user, "Belly Visibility", "Character Preference") as null|anything in CONFIG_GET(str_list/safe_visibility_toggles)
if(n_vis)
features["taur_belly_visibility"] = n_vis
//GS13 TAUR BELLY END
if("ooccolor")
var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference",ooccolor) as color|null
@@ -3157,6 +3206,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["has_belly"] = !features["has_belly"]
if("inflatable_belly")
features["inflatable_belly"] = !features["inflatable_belly"]
//GS13 TAUR BELLY EDIT
if("has_taur_belly")
features["has_taur_belly"] = !features["has_taur_belly"]
if("widescreenpref")
widescreenpref = !widescreenpref
user.client.view_size.setDefault(getScreenSize(widescreenpref))
+26 -1
View File
@@ -704,7 +704,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
var/savefile/S = new /savefile(path)
if(!S)
return FALSE
features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = "Plain", "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_size" = BELLY_SIZE_DEF, "belly_shape" = DEF_BELLY_SHAPE, "inflatable_belly" = FALSE, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING)
features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = "Plain", "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_size" = BELLY_SIZE_DEF, "belly_shape" = DEF_BELLY_SHAPE, "inflatable_belly" = FALSE, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING, "taur_belly_size" = TAUR_BELLY_SIZE_DEF, "taur_belly_shape" = TAUR_BELLY_SHAPE_DEF, "taur_inflatable_belly" = FALSE, "taur_belly_visibility" = GEN_VISIBLE_NO_UNDIES)
S.cd = "/"
if(!slot)
@@ -901,6 +901,16 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["feature_hide_belly"] >> features["hide_belly"]
S["feature_inflatable_belly"] >> features["inflatable_belly"]
//GS13 EDIT TAUR BELLY features
S["feature_has_taur_belly"] >> features["has_taur_belly"]
S["feature_taur_belly_size"] >> features["taur_belly_size"]
S["feature_max_taur_belly_size"] >> features["max_taur_belly_size"]
S["feature_taur_belly_shape"] >> features["taur_belly_shape"]
S["feature_taur_belly_color"] >> features["taur_belly_color"]
S["feature_hide_taur_belly"] >> features["hide_taur_belly"]
//S["feature_inflatable_belly"] >> features["inflatable_belly"]
S["feature_taur_belly_visibility"] >> features["feature_taur_belly_visibility"]
// Flavor texts, Made into a standard.
S["feature_flavor_text"] >> features["flavor_text"]
S["feature_silicon_flavor_text"] >> features["silicon_flavor_text"]
@@ -1086,6 +1096,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["butt_visibility"] = sanitize_inlist(features["butt_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES)
features["belly_visibility"] = sanitize_inlist(features["belly_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES)
//GS13 TAUR BELLY EDIT START
features["taur_belly_shape"] = sanitize_inlist(features["taur_belly_shape"], GLOB.taur_belly_shapes_list, TAUR_BELLY_SHAPE_DEF)
features["taur_belly_visibility"] = sanitize_inlist(features["taur_belly_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES)
//GS13 TAUR BELLY EDIT END
custom_speech_verb = sanitize_inlist(custom_speech_verb, GLOB.speech_verbs, "default")
custom_tongue = sanitize_inlist(custom_tongue, GLOB.roundstart_tongues, "default")
additional_language = sanitize_inlist(additional_language, GLOB.roundstart_languages, "None")
@@ -1324,6 +1339,16 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["feature_inflatable_belly"], features["inflatable_belly"])
WRITE_FILE(S["alt_titles_preferences"], alt_titles_preferences)
//GS13 TAUR BELLY EDIT START
WRITE_FILE(S["feature_has_taur_belly"], features["has_taur_belly"])
WRITE_FILE(S["feature_taur_belly_size"], features["taur_belly_size"])
WRITE_FILE(S["feature_max_taur_belly_size"], features["max_taur_belly_size"])
WRITE_FILE(S["feature_taur_belly_shape"], features["taur_belly_shape"])
WRITE_FILE(S["feature_taur_belly_color"], features["taur_belly_color"])
WRITE_FILE(S["feature_hide_taur_belly"], features["hide_taur_belly"])
//WRITE_FILE(S["feature_inflatable_belly"], features["inflatable_belly"])
//GS13 TAUR BELLY EDIT START END
WRITE_FILE(S["feature_ooc_notes"], features["ooc_notes"])
WRITE_FILE(S["feature_color_scheme"], features["color_scheme"])
@@ -129,6 +129,11 @@
var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by Undies", "Hidden by clothes", "Always hidden")
E.toggle_visibility(picked_visibility)
if(href_list["hidetaur belly"])
var/obj/item/organ/genital/taur_belly/X = usr.getorganslot("taur_belly")
var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by Undies", "Hidden by clothes", "Always hidden")
X.toggle_visibility(picked_visibility)
if(href_list["hidebutt"])
var/obj/item/organ/genital/butt/A = usr.getorganslot(ORGAN_SLOT_BUTT)
var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by Undies", "Hidden by clothes", "Always hidden")
+1
View File
@@ -4066,6 +4066,7 @@
#include "GainStation13\code\modules\mob\living\fullness.dm"
#include "GainStation13\code\modules\mob\living\nutribot.dm"
#include "GainStation13\code\modules\mob\living\species.dm"
#include "GainStation13\code\modules\mob\living\taur_belly.dm"
#include "GainStation13\code\modules\mob\living\vore\eating\trasheat_lists.dm"
#include "GainStation13\code\modules\mod\modules\modules_fat.dm"
#include "GainStation13\code\modules\power\energy_harvester.dm"