mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2026-08-30 16:16:47 +01:00
Merge pull request #520 from Pin-alternative/rework
Reworks to genitals
This commit is contained in:
@@ -190,7 +190,7 @@
|
||||
aroused_state = FALSE
|
||||
|
||||
/obj/item/organ/genital/proc/generate_fluid(datum/reagents/R)
|
||||
var/amount = clamp((fluid_rate * ((world.time - last_orgasmed) / (10 SECONDS)) * fluid_mult),0,fluid_max_volume)
|
||||
var/amount = get_fluid()
|
||||
R.clear_reagents()
|
||||
R.maximum_volume = fluid_max_volume
|
||||
if(fluid_id)
|
||||
@@ -325,7 +325,7 @@
|
||||
|
||||
var/obj/item/organ/genital/G = A
|
||||
var/datum/sprite_accessory/S
|
||||
var/size = G.size
|
||||
var/size = G.size_to_state()
|
||||
switch(G.type)
|
||||
if(/obj/item/organ/genital/penis)
|
||||
S = GLOB.cock_shapes_list[G.shape]
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
icon = 'icons/obj/genitals/breasts.dmi'
|
||||
zone = BODY_ZONE_CHEST
|
||||
slot = ORGAN_SLOT_BREASTS
|
||||
size = BREASTS_SIZE_DEF // "c". Refer to the breast_values static list below for the cups associated number values
|
||||
size = 3
|
||||
fluid_id = /datum/reagent/consumable/milk
|
||||
fluid_rate = MILK_RATE
|
||||
shape = DEF_BREASTS_SHAPE
|
||||
@@ -19,19 +19,12 @@
|
||||
orgasm_verb = "leaking"
|
||||
fluid_transfer_factor = 0.5
|
||||
layer_index = BREASTS_LAYER_INDEX
|
||||
var/static/list/breast_values = list("a" = 1, "b" = 2, "c" = 3, "d" = 4, "e" = 5, "f" = 6, "g" = 7, "h" = 8, "i" = 9, "j" = 10, "k" = 11, "l" = 12, "m" = 13, "n" = 14, "o" = 15, "huge" = 16, "massive" = 17, "giga" = 25, "impossible" = 30, "flat" = 0)
|
||||
var/cached_size //these two vars pertain size modifications and so should be expressed in NUMBERS.
|
||||
var/prev_size //former cached_size value, to allow update_size() to early return should be there no significant changes.
|
||||
|
||||
/obj/item/organ/genital/breasts/Initialize(mapload, do_update = TRUE)
|
||||
if(do_update)
|
||||
cached_size = breast_values[size]
|
||||
prev_size = cached_size
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/genital/breasts/update_appearance()
|
||||
. = ..()
|
||||
var/lowershape = lowertext(shape)
|
||||
var/size_state = size_to_state()
|
||||
switch(lowershape)
|
||||
if("pair")
|
||||
desc = "You see a pair of breasts."
|
||||
@@ -41,13 +34,13 @@
|
||||
desc = "You see three sets of breasts, running from their chest to their belly."
|
||||
else
|
||||
desc = "You see some breasts, they seem to be quite exotic."
|
||||
if(size == "huge")
|
||||
desc = "You see [pick("some serious honkers", "a real set of badonkers", "some dobonhonkeros", "massive dohoonkabhankoloos", "two big old tonhongerekoogers", "a couple of giant bonkhonagahoogs", "a pair of humongous hungolomghnonoloughongous")]. Their volume is way beyond cupsize now, measuring in about [round(cached_size*(owner ? get_size(owner) : 1))]cm in diameter."
|
||||
if(size_state == "huge")
|
||||
desc = "You see [pick("some serious honkers", "a real set of badonkers", "some dobonhonkeros", "massive dohoonkabhankoloos", "two big old tonhongerekoogers", "a couple of giant bonkhonagahoogs", "a pair of humongous hungolomghnonoloughongous")]. Their volume is way beyond cupsize now, measuring in about [round(size*(owner ? get_size(owner) : 1))]cm in diameter."
|
||||
else
|
||||
if (size == "flat")
|
||||
if (size_state == "flat")
|
||||
desc += " They're very small and flatchested, however."
|
||||
else
|
||||
desc += " You estimate that they're [uppertext(size)]-cups."
|
||||
desc += " You estimate that they're [uppertext(size_state)]-cups."
|
||||
|
||||
if((genital_flags & GENITAL_FUID_PRODUCTION) && aroused_state)
|
||||
var/datum/reagent/R = GLOB.chemical_reagents_list[fluid_id]
|
||||
@@ -55,7 +48,7 @@
|
||||
desc += " They're leaking [lowertext(R.name)]."
|
||||
var/datum/sprite_accessory/S = GLOB.breasts_shapes_list[shape]
|
||||
var/icon_shape = S ? S.icon_state : "pair"
|
||||
var/icon_size = clamp(breast_values[size], BREASTS_ICON_MIN_SIZE, BREASTS_ICON_MAX_SIZE)
|
||||
var/icon_size = clamp(GLOB.breast_values[size_state], BREASTS_ICON_MIN_SIZE, BREASTS_ICON_MAX_SIZE)
|
||||
icon_state = "breasts_[icon_shape]_[icon_size]"
|
||||
if(owner)
|
||||
if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"])
|
||||
@@ -74,45 +67,49 @@
|
||||
//this is far too lewd wah
|
||||
|
||||
/obj/item/organ/genital/breasts/modify_size(modifier, min = -INFINITY, max = INFINITY)
|
||||
var/new_value = clamp(cached_size + modifier, min, max)
|
||||
if(new_value == cached_size)
|
||||
var/new_value = clamp(size + modifier, max(min, min_size ? min_size : -INFINITY), min(max_size ? max_size : INFINITY, max))
|
||||
if(new_value == size)
|
||||
return
|
||||
prev_size = cached_size
|
||||
cached_size = new_value
|
||||
prev_size = size
|
||||
size = new_value
|
||||
update()
|
||||
..()
|
||||
|
||||
/obj/item/organ/genital/breasts/size_to_state()
|
||||
var/str_size
|
||||
switch(size)
|
||||
if(0) //flatchested
|
||||
str_size = "flat"
|
||||
if(1 to 8) //modest
|
||||
str_size = GLOB.breast_values[size]
|
||||
if(9 to 15) //massive
|
||||
str_size = GLOB.breast_values[size]
|
||||
if(16 to 17) //ridiculous
|
||||
str_size = GLOB.breast_values[size]
|
||||
if(18 to 24) //AWOOOOGAAAAAAA
|
||||
str_size = "massive"
|
||||
if(25 to 29) //AWOOOOOOGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
str_size = "giga"
|
||||
if(30 to INFINITY) //AWWWWWWWWWWWWWOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOGGGGGAAAAAAAAAAAAAAAAAAAAAA
|
||||
str_size = "impossible"
|
||||
return str_size
|
||||
|
||||
/obj/item/organ/genital/breasts/update_size()//wah
|
||||
var/rounded_cached = round(cached_size)
|
||||
if(cached_size < 0)//I don't actually know what round() does to negative numbers, so to be safe!!fixed
|
||||
var/rounded_size = round(size)
|
||||
var/size_state = size_to_state()
|
||||
if(rounded_size < 0)//I don't actually know what round() does to negative numbers, so to be safe!!fixed
|
||||
if(owner)
|
||||
to_chat(owner, "<span class='warning'>You feel your breasts shrinking away from your body as your chest flattens out.</span>")
|
||||
QDEL_IN(src, 1)
|
||||
return
|
||||
switch(rounded_cached)
|
||||
if(0) //flatchested
|
||||
size = "flat"
|
||||
if(1 to 8) //modest
|
||||
size = breast_values[rounded_cached]
|
||||
if(9 to 15) //massive
|
||||
size = breast_values[rounded_cached]
|
||||
if(16 to 17) //ridiculous
|
||||
size = breast_values[rounded_cached]
|
||||
if(18 to 24) //AWOOOOGAAAAAAA
|
||||
size = "massive"
|
||||
if(25 to 29) //AWOOOOOOGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
size = "giga"
|
||||
if(30 to INFINITY) //AWWWWWWWWWWWWWOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOGGGGGAAAAAAAAAAAAAAAAAAAAAA
|
||||
size = "impossible"
|
||||
|
||||
|
||||
if((rounded_cached < 18 || rounded_cached == 25 || rounded_cached == 30) && owner )//Because byond doesn't count from 0, I have to do this.
|
||||
if((rounded_size < 18 || rounded_size == 25 || rounded_size == 30) && owner )//Because byond doesn't count from 0, I have to do this.
|
||||
var/mob/living/carbon/human/H = owner
|
||||
var/r_prev_size = round(prev_size)
|
||||
if (rounded_cached > r_prev_size)
|
||||
to_chat(H, "<span class='warning'>Your breasts [pick("swell up to", "flourish into", "expand into", "burst forth into", "grow eagerly into", "amplify into")] a [uppertext(size)]-cup.</span>")
|
||||
else if (rounded_cached < r_prev_size)
|
||||
to_chat(H, "<span class='warning'>Your breasts [pick("shrink down to", "decrease into", "diminish into", "deflate into", "shrivel regretfully into", "contracts into")] a [uppertext(size)]-cup.</span>")
|
||||
if (rounded_size > r_prev_size)
|
||||
to_chat(H, "<span class='warning'>Your breasts [pick("swell up to", "flourish into", "expand into", "burst forth into", "grow eagerly into", "amplify into")] a [uppertext(size_state)]-cup.</span>")
|
||||
else if (rounded_size < r_prev_size)
|
||||
to_chat(H, "<span class='warning'>Your breasts [pick("shrink down to", "decrease into", "diminish into", "deflate into", "shrivel regretfully into", "contracts into")] a [uppertext(size_state)]-cup.</span>")
|
||||
|
||||
/obj/item/organ/genital/breasts/get_features(mob/living/carbon/human/H)
|
||||
var/datum/dna/D = H.dna
|
||||
@@ -120,16 +117,13 @@
|
||||
color = SKINTONE2HEX(H.skin_tone)
|
||||
else
|
||||
color = "#[D.features["breasts_color"]]"
|
||||
size = D.features["breasts_size"]
|
||||
size = GLOB.breast_values[D.features["breasts_size"]]
|
||||
max_size = D.features["breasts_max_size"]
|
||||
min_size = D.features["breasts_min_size"]
|
||||
shape = D.features["breasts_shape"]
|
||||
if(!D.features["breasts_producing"])
|
||||
genital_flags &= ~ (GENITAL_FUID_PRODUCTION|CAN_CLIMAX_WITH|CAN_MASTURBATE_WITH)
|
||||
if(!isnum(size))
|
||||
cached_size = breast_values[size]
|
||||
else
|
||||
cached_size = size
|
||||
size = breast_values[size]
|
||||
prev_size = cached_size
|
||||
prev_size = size
|
||||
toggle_visibility(D.features["breasts_visibility"], FALSE)
|
||||
if(D.features["breasts_stuffing"])
|
||||
toggle_visibility(GEN_ALLOW_EGG_STUFFING, FALSE)
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
slot = ORGAN_SLOT_BUTT
|
||||
w_class = 3
|
||||
size = 0
|
||||
max_size = BUTT_SIZE_MAX
|
||||
var/size_name = "nonexistent"
|
||||
shape = "Pair" //turn this into a default constant if for some inexplicable reason we get more than one butt type but I doubt it.
|
||||
genital_flags = UPDATE_OWNER_APPEARANCE|GENITAL_UNDIES_HIDDEN|CAN_CUM_INTO|HAS_EQUIPMENT
|
||||
@@ -15,8 +16,8 @@
|
||||
var/prev_size //former size value, to allow update_size() to early return should be there no significant changes.
|
||||
layer_index = BUTT_LAYER_INDEX
|
||||
|
||||
/obj/item/organ/genital/butt/modify_size(modifier, min = -INFINITY, max = BUTT_SIZE_MAX)
|
||||
var/new_value = clamp(size_cached + modifier, min, max)
|
||||
/obj/item/organ/genital/butt/modify_size(modifier, min = -INFINITY, max = INFINITY)
|
||||
var/new_value = clamp(size_cached + modifier, max(min, min_size ? min_size : -INFINITY), min(max_size ? max_size : INFINITY, max))
|
||||
if(new_value == size_cached)
|
||||
return
|
||||
prev_size = size_cached
|
||||
@@ -88,6 +89,8 @@
|
||||
else
|
||||
color = "#[D.features["butt_color"]]"
|
||||
size = D.features["butt_size"]
|
||||
max_size = D.features["butt_max_size"]
|
||||
min_size = D.features["butt_min_size"]
|
||||
prev_size = size
|
||||
size_cached = size
|
||||
toggle_visibility(D.features["butt_visibility"], FALSE)
|
||||
|
||||
@@ -14,18 +14,20 @@
|
||||
shape = DEF_COCK_SHAPE
|
||||
size = 2 //arbitrary value derived from length and diameter for sprites.
|
||||
layer_index = PENIS_LAYER_INDEX
|
||||
var/length = 6 //inches
|
||||
|
||||
var/length = 6 //inches
|
||||
var/max_length = 9
|
||||
var/min_length = 2
|
||||
var/prev_length = 6 //really should be renamed to prev_length
|
||||
var/diameter = 4.38
|
||||
var/diameter_ratio = COCK_DIAMETER_RATIO_DEF //0.25; check citadel_defines.dm
|
||||
|
||||
/obj/item/organ/genital/penis/modify_size(modifier, min = -INFINITY, max = INFINITY)
|
||||
var/new_value = clamp(length + modifier, min, max)
|
||||
var/new_value = clamp(length + modifier, max(min, min_size ? min_size : -INFINITY), min(max_length ? max_length : INFINITY, max))
|
||||
if(new_value == length)
|
||||
return
|
||||
prev_length = length
|
||||
length = clamp(length + modifier, min, max)
|
||||
length = new_value
|
||||
update()
|
||||
..()
|
||||
|
||||
@@ -95,6 +97,8 @@
|
||||
else
|
||||
color = "#[D.features["cock_color"]]"
|
||||
length = D.features["cock_length"]
|
||||
max_length = D.features["cock_max_length"]
|
||||
min_length = D.features["cock_min_length"]
|
||||
diameter_ratio = D.features["cock_diameter_ratio"]
|
||||
shape = D.features["cock_shape"]
|
||||
prev_length = length
|
||||
|
||||
@@ -844,6 +844,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
tauric_shape = TRUE
|
||||
dat += "<b>Penis Shape:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=cock_shape;task=input'>[features["cock_shape"]][tauric_shape ? " (Taur)" : ""]</a>"
|
||||
dat += "<b>Penis Length:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=cock_length;task=input'>[features["cock_length"]] inch(es)</a>"
|
||||
dat += "<b>Max Length:</b><a style='display:block;width:120px' href='?_src_=prefs;preference=cock_max_length;task=input'>[features["cock_max_length"] ? features["cock_max_length"] : "Disabled"]</a>"
|
||||
dat += "<b>Min Length:</b><a style='display:block;width:120px' href='?_src_=prefs;preference=cock_min_length;task=input'>[features["cock_min_length"] ? features["cock_min_length"] : "Disabled"]</a>"
|
||||
dat += "<b>Diameter Ratio:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=cock_diameter_ratio;task=input'>[features["cock_diameter_ratio"]]</a>" //SPLURT Edit
|
||||
dat += "<b>Penis Visibility:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=cock_visibility;task=input'>[features["cock_visibility"]]</a>"
|
||||
dat += "<b>Egg Stuffing:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=cock_stuffing'>[features["cock_stuffing"] == TRUE ? "Yes" : "No"]</a>" //SPLURT Edit
|
||||
@@ -859,6 +861,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Testicles Visibility:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=balls_visibility;task=input'>[features["balls_visibility"]]</a>"
|
||||
//SPLURT Edit
|
||||
dat += "<b>Egg Stuffing:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=balls_stuffing'>[features["balls_stuffing"] == TRUE ? "Yes" : "No"]</a>"
|
||||
dat += "<b>Max Size:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=balls_max_size;task=input'>[features["balls_max_size"] ? features["balls_max_size"] : "Disabled"]</a>"
|
||||
dat += "<b>Min Size:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=balls_min_size;task=input'>[features["balls_min_size"] ? features["balls_min_size"] : "Disabled"]</a>"
|
||||
dat += "<b>Produces:</b>"
|
||||
var/datum/reagent/balls_fluid = find_reagent_object_from_type(features["balls_fluid"])
|
||||
if(balls_fluid && (balls_fluid in GLOB.genital_fluids_list))
|
||||
@@ -907,6 +911,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Lactates:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_producing'>[features["breasts_producing"] == TRUE ? "Yes" : "No"]</a>"
|
||||
//SPLURT Edit
|
||||
dat += "<b>Egg Stuffing:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_stuffing'>[features["breasts_stuffing"] == TRUE ? "Yes" : "No"]</a>"
|
||||
dat += "<b>Max Size:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_max_size;task=input'>[features["breasts_max_size"] ? features["breasts_max_size"] : "Disabled"]</a>"
|
||||
dat += "<b>Min Size:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_min_size;task=input'>[features["breasts_min_size"] ? features["breasts_min_size"] : "Disabled"]</a>"
|
||||
if(features["breasts_producing"] == TRUE)
|
||||
dat += "<b>Produces:</b>"
|
||||
var/datum/reagent/breasts_fluid = find_reagent_object_from_type(features["breasts_fluid"])
|
||||
@@ -930,6 +936,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Butt Visibility:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=butt_visibility;task=input'>[features["butt_visibility"]]</a>"
|
||||
//SPLURT Edit
|
||||
dat += "<b>Egg Stuffing:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=butt_stuffing'>[features["butt_stuffing"] == TRUE ? "Yes" : "No"]</a>"
|
||||
dat += "<b>Max Size:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=butt_max_size;task=input'>[features["butt_max_size"] ? features["butt_max_size"] : "Disabled"]</a>"
|
||||
dat += "<b>Min Size:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=butt_min_size;task=input'>[features["butt_min_size"] ? features["butt_min_size"] : "Disabled"]</a>"
|
||||
dat += "<b>Butthole Sprite:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=has_anus'>[features["has_anus"] == TRUE ? "Yes" : "No"]</a>"
|
||||
if(features["has_anus"])
|
||||
dat += "<b>Butthole Color:</b></a><BR>"
|
||||
@@ -953,6 +961,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Color:</b></a><BR>"
|
||||
dat += "<span style='border: 1px solid #161616; background-color: #[features["belly_color"]];'><font color='[color_hex2num(features["belly_color"]) < 200 ? "FFFFFF" : "000000"]'>#[features["belly_color"]]</font></span> <a href='?_src_=prefs;preference=belly_color;task=input'>Change</a><br>"
|
||||
dat += "<b>Belly Size:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=belly_size;task=input'>[features["belly_size"]]</a>"
|
||||
dat += "<b>Max Size:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=belly_max_size;task=input'>[features["belly_max_size"] ? features["belly_max_size"] : "Disabled" ]</a>"
|
||||
dat += "<b>Min Size:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=belly_min_size;task=input'>[features["belly_min_size"] ? features["belly_min_size"] : "Disabled" ]</a>"
|
||||
dat += "<b>Belly Visibility:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=belly_visibility;task=input'>[features["belly_visibility"]]</a>"
|
||||
dat += "<b>Egg Stuffing:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=belly_stuffing'>[features["belly_stuffing"] == TRUE ? "Yes" : "No"]</a>"
|
||||
dat += "</td>"
|
||||
@@ -2987,6 +2997,82 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if(n_vis)
|
||||
features["belly_visibility"] = n_vis
|
||||
|
||||
if("cock_max_length")
|
||||
var/max_B = CONFIG_GET(number/penis_max_inches_prefs)
|
||||
var/new_size = input(user, "Max size:\n([features["cock_length"]]-[max_B])(0 = disabled)", "Character Preference") as num|null
|
||||
if(new_size)
|
||||
features["cock_max_length"] = clamp(round(new_size), features["cock_length"], max_B)
|
||||
else
|
||||
features -= "cock_max_length"
|
||||
|
||||
if("balls_max_size")
|
||||
var/new_size = input(user, "Max size:\n([BALLS_SIZE_MIN]-[BALLS_SIZE_MAX])(0 = disabled)", "Character Preference") as num|null
|
||||
if(new_size)
|
||||
features["balls_max_size"] = clamp(round(new_size), BALLS_SIZE_MIN, BALLS_SIZE_MAX)
|
||||
else
|
||||
features -= "balls_max_size"
|
||||
|
||||
if("breasts_max_size")
|
||||
var/new_size = input(user, "Breast Max Size (cancel to disable)", "Character Preference") as null|anything in GLOB.breast_values
|
||||
if(new_size)
|
||||
features["breasts_max_size"] = new_size
|
||||
else
|
||||
features -= "breasts_max_size"
|
||||
|
||||
if("belly_max_size")
|
||||
var/max_B = CONFIG_GET(number/belly_max_size_prefs)
|
||||
var/new_size = input(user, "Max size:\n([features["belly_size"]]-[max_B])(0 = disabled)", "Character Preference") as num|null
|
||||
if(new_size)
|
||||
features["belly_max_size"] = clamp(round(new_size), features["belly_size"], max_B)
|
||||
else
|
||||
features -= "belly_max_size"
|
||||
|
||||
if("butt_max_size")
|
||||
var/max_B = CONFIG_GET(number/butt_max_size_prefs)
|
||||
var/new_size = input(user, "Max size:\n([features["butt_size"]]-[max_B])(0 = disabled)", "Character Preference") as num|null
|
||||
if(new_size)
|
||||
features["butt_max_size"] = clamp(round(new_size), features["butt_size"], max_B)
|
||||
else
|
||||
features -= "butt_max_size"
|
||||
|
||||
if("cock_min_length")
|
||||
var/min_B = CONFIG_GET(number/penis_min_inches_prefs)
|
||||
var/new_size = input(user, "Min size:\n([min_B]-[features["cock_length"]])(0 = disabled)", "Character Preference") as num|null
|
||||
if(new_size)
|
||||
features["cock_min_length"] = clamp(round(new_size), min_B, features["cock_length"])
|
||||
else
|
||||
features -= "cock_min_length"
|
||||
|
||||
if("balls_min_size")
|
||||
var/new_size = input(user, "Min size:\n([BALLS_SIZE_MIN]-[BALLS_SIZE_MAX])(0 = disabled)", "Character Preference") as num|null
|
||||
if(new_size)
|
||||
features["balls_min_size"] = clamp(round(new_size), BALLS_SIZE_MIN, BALLS_SIZE_MAX)
|
||||
else
|
||||
features -= "balls_min_size"
|
||||
|
||||
if("breasts_min_size")
|
||||
var/new_size = input(user, "Breast Min Size (cancel to disable)", "Character Preference") as null|anything in GLOB.breast_values
|
||||
if(new_size)
|
||||
features["breasts_min_size"] = new_size
|
||||
else
|
||||
features -= "breasts_min_size"
|
||||
|
||||
if("belly_min_size")
|
||||
var/min_B = CONFIG_GET(number/belly_min_size_prefs)
|
||||
var/new_size = input(user, "Min size:\n([min_B]-[features["belly_size"]])(0 = disabled)", "Character Preference") as num|null
|
||||
if(new_size)
|
||||
features["belly_min_size"] = clamp(round(new_size), min_B, features["belly_size"])
|
||||
else
|
||||
features -= "belly_min_size"
|
||||
|
||||
if("butt_min_size")
|
||||
var/min_B = CONFIG_GET(number/butt_min_size_prefs)
|
||||
var/new_size = input(user, "Min size:\n([min_B]-[features["butt_size"]])(0 = disabled)", "Character Preference") as num|null
|
||||
if(new_size)
|
||||
features["butt_min_size"] = clamp(round(new_size), min_B, features["butt_size"])
|
||||
else
|
||||
features -= "butt_min_size"
|
||||
|
||||
if("ooccolor")
|
||||
var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference",ooccolor) as color|null
|
||||
if(new_ooccolor)
|
||||
@@ -4162,3 +4248,4 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
#undef DEFAULT_SLOT_AMT
|
||||
#undef HANDS_SLOT_AMT
|
||||
#undef BACKPACK_SLOT_AMT
|
||||
|
||||
|
||||
@@ -1054,6 +1054,28 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
|
||||
S["feature_inert_eggs"] >> features["inert_eggs"]
|
||||
|
||||
if(S["features_cock_max_length"])
|
||||
S["features_cock_max_length"] >> features["cock_max_length"]
|
||||
if(S["features_balls_max_size"])
|
||||
S["features_balls_max_size"] >> features["balls_max_size"]
|
||||
if(S["features_breasts_max_size"])
|
||||
S["features_breasts_max_size"] >> features["breasts_max_size"]
|
||||
if(S["features_belly_max_size"])
|
||||
S["features_belly_max_size"] >> features["belly_max_size"]
|
||||
if(S["features_butt_max_size"])
|
||||
S["features_butt_max_size"] >> features["butt_max_size"]
|
||||
|
||||
if(S["features_cock_min_length"])
|
||||
S["features_cock_min_length"] >> features["cock_min_length"]
|
||||
if(S["features_balls_min_size"])
|
||||
S["features_balls_min_size"] >> features["balls_min_size"]
|
||||
if(S["features_breasts_min_size"])
|
||||
S["features_breasts_min_size"] >> features["breasts_min_size"]
|
||||
if(S["features_belly_min_size"])
|
||||
S["features_belly_min_size"] >> features["belly_min_size"]
|
||||
if(S["features_butt_min_size"])
|
||||
S["features_butt_min_size"] >> features["butt_min_size"]
|
||||
|
||||
var/char_vr_path = "[vr_path]/character_[default_slot]_v2.json"
|
||||
if(fexists(char_vr_path))
|
||||
var/list/json_from_file = json_decode(file2text(char_vr_path))
|
||||
@@ -1413,6 +1435,19 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
|
||||
WRITE_FILE(S["feature_inert_eggs"], features["inert_eggs"])
|
||||
|
||||
|
||||
WRITE_FILE(S["features_cock_max_length"], features["cock_max_length"])
|
||||
WRITE_FILE(S["features_balls_max_size"], features["balls_max_size"])
|
||||
WRITE_FILE(S["features_breasts_max_size"], features["breasts_max_size"])
|
||||
WRITE_FILE(S["features_belly_max_size"], features["belly_max_size"])
|
||||
WRITE_FILE(S["features_butt_max_size"], features["butt_max_size"])
|
||||
|
||||
WRITE_FILE(S["features_cock_min_length"], features["cock_min_length"])
|
||||
WRITE_FILE(S["features_balls_min_size"], features["balls_min_size"])
|
||||
WRITE_FILE(S["features_breasts_min_size"], features["breasts_min_size"])
|
||||
WRITE_FILE(S["features_belly_min_size"], features["belly_min_size"])
|
||||
WRITE_FILE(S["features_butt_min_size"], features["butt_min_size"])
|
||||
|
||||
WRITE_FILE(S["feature_neckfire"], features["neckfire"])
|
||||
WRITE_FILE(S["feature_neckfire_color"], features["neckfire_color"])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user