diff --git a/code/modules/client/preference_setup/vore/01_ears.dm b/code/modules/client/preference_setup/vore/01_ears.dm index 17d03232ff..22b8699730 100644 --- a/code/modules/client/preference_setup/vore/01_ears.dm +++ b/code/modules/client/preference_setup/vore/01_ears.dm @@ -69,7 +69,7 @@ if(tail_styles_list[pref.tail_style]) var/datum/sprite_accessory/tail/T = tail_styles_list[pref.tail_style] if (T.do_colouration) - . += "Change Color \ + . += "
Change Color \ \ > pref.size_multiplier + S["weight_vr"] >> pref.weight_vr + S["weight_gain"] >> pref.weight_gain + S["weight_loss"] >> pref.weight_loss + +/datum/category_item/player_setup_item/vore/size/save_character(var/savefile/S) + S["size_multiplier"] << pref.size_multiplier + S["weight_vr"] << pref.weight_vr + S["weight_gain"] << pref.weight_gain + S["weight_loss"] << pref.weight_loss + +/datum/category_item/player_setup_item/vore/size/sanitize_character() + var/valid_scales = list(RESIZE_HUGE, RESIZE_BIG, RESIZE_NORMAL, RESIZE_SMALL, RESIZE_TINY); + pref.size_multiplier = sanitize_inlist(pref.size_multiplier, valid_scales, initial(pref.size_multiplier)) + + pref.weight_vr = sanitize_integer(pref.weight_vr, WEIGHT_MIN, WEIGHT_MAX, initial(pref.weight_vr)) + pref.weight_gain = sanitize_integer(pref.weight_gain, WEIGHT_CHANGE_MIN, WEIGHT_CHANGE_MAX, initial(pref.weight_gain)) + pref.weight_loss = sanitize_integer(pref.weight_loss, WEIGHT_CHANGE_MIN, WEIGHT_CHANGE_MAX, initial(pref.weight_loss)) + +/datum/category_item/player_setup_item/vore/size/copy_to_mob(var/mob/living/carbon/human/character) + character.size_multiplier = pref.size_multiplier + character.weight = pref.weight_vr + character.weight_gain = pref.weight_gain + character.weight_loss = pref.weight_loss + +/datum/category_item/player_setup_item/vore/size/content(var/mob/user) + . += "
" + . += "Scale:[round(pref.size_multiplier*100)]%
" + . += "
" + . += "Relative Weight:[pref.weight_vr]
" + . += "Weight Gain Rate:[pref.weight_gain]
" + . += "Weight Loss Rate:[pref.weight_loss]
" + +/datum/category_item/player_setup_item/vore/size/OnTopic(var/href, var/list/href_list, var/mob/user) + if(href_list["size_multiplier"]) + var/list/size_types = player_sizes_list + var/new_size = input(user, "Choose your character's size:", "Character Preference", pref.size_multiplier) as null|anything in size_types + if(new_size) + pref.size_multiplier = size_types[new_size] + return TOPIC_REFRESH + + else if(href_list["weight"]) + var/new_weight = input(user, "Choose your character's relative body weight.\n\ + This measurement should be set relative to a normal 5'10'' person's body and not the actual size of your character.\n\ + If you set your weight to 500 because you're a naga or have metal implants then complain that you're a blob I\n\ + swear to god I will find you and I will punch you for not reading these directions!\n\ + ([WEIGHT_MIN]-[WEIGHT_MAX])", "Character Preference") as num|null + if(new_weight) + var/unit_of_measurement = alert(user, "Is that number in pounds (lb) or kilograms (kg)?", "Confirmation", "Pounds", "Kilograms") + if(unit_of_measurement == "Pounds") + new_weight = round(text2num(new_weight),4) + if(unit_of_measurement == "Kilograms") + new_weight = round(2.20462*text2num(new_weight),4) + pref.weight_vr = sanitize_integer(new_weight, WEIGHT_MIN, WEIGHT_MAX, pref.weight_vr) + return TOPIC_REFRESH + + else if(href_list["weight_gain"]) + var/weight_gain_rate = input(user, "Choose your character's rate of weight gain between 100% \ + (full realism body fat gain) and 0% (no body fat gain).\n\ + (Due to a small bug, if you want to disable weight gain, set this to 0.01 for now.)\ + ([WEIGHT_CHANGE_MIN]-[WEIGHT_CHANGE_MAX])", "Character Preference") as num|null + if(weight_gain_rate) + pref.weight_gain = round(text2num(weight_gain_rate),1) + return TOPIC_REFRESH + + else if(href_list["weight_loss"]) + var/weight_loss_rate = input(user, "Choose your character's rate of weight loss between 100% \ + (full realism body fat loss) and 0% (no body fat loss).\n\ + (Due to a small bug, if you want to disable weight loss, set this to 0.01 for now.)\ + ([WEIGHT_CHANGE_MIN]-[WEIGHT_CHANGE_MAX])", "Character Preference") as num|null + if(weight_loss_rate) + pref.weight_loss = round(text2num(weight_loss_rate),1) + return TOPIC_REFRESH + + return ..(); diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 36b1933352..051c30fbe1 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -210,8 +210,6 @@ P.digestable = src.digestable P.belly_prefs = src.vore_organs - P.weight_gain = src.weight_gain - P.weight_loss = src.weight_loss return 1 @@ -227,8 +225,6 @@ src.digestable = P.digestable src.vore_organs = P.belly_prefs - src.weight_gain = P.weight_gain - src.weight_loss = P.weight_loss if(!src.vore_organs) //Emergency double-backup to stop runtimes from doing .len on this. vore_organs = list() diff --git a/code/modules/vore/eating/vore_vr.dm b/code/modules/vore/eating/vore_vr.dm index 9655113b5e..c4157d2cb2 100644 --- a/code/modules/vore/eating/vore_vr.dm +++ b/code/modules/vore/eating/vore_vr.dm @@ -43,8 +43,6 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE //Actual preferences var/digestable = 1 var/list/belly_prefs = list() - var/weight_gain = 1 - var/weight_loss = 0.5 //Mechanically required var/path @@ -103,8 +101,6 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE S["digestable"] >> digestable S["belly_prefs"] >> belly_prefs - S["weight_gain"] >> weight_gain - S["weight_loss"] >> weight_loss return 1 @@ -117,7 +113,5 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE S["digestable"] << digestable S["belly_prefs"] << belly_prefs - S["weight_gain"] << weight_gain - S["weight_loss"] << weight_loss return 1 diff --git a/vorestation.dme b/vorestation.dme index 031ee233b2..b5b11149ce 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1031,6 +1031,7 @@ #include "code\modules\client\preference_setup\occupation\occupation.dm" #include "code\modules\client\preference_setup\skills\skills.dm" #include "code\modules\client\preference_setup\vore\01_ears.dm" +#include "code\modules\client\preference_setup\vore\02_size.dm" #include "code\modules\clothing\chameleon.dm" #include "code\modules\clothing\clothing.dm" #include "code\modules\clothing\ears\skrell.dm"