mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Adds selectable sets of contamination flavors for bellies.
-Divides item contamination flavors into categories to match better with the "belly" types. -The selection menu shows up when itemweak mode is selected. -The selection should save for each belly along with other prefs. -The flavors have been cropped into following categories: ->All, contains the whole list as before apart from possible specific ones. Is the designated default option. ->Acrid, contains flavors implying regular nasty digestion. ->Dirty, contains flavors related to visual contamination. ->Musky, contains suggestively sloppy flavors without excess filth. ->Smelly, contains more airborne flavors without visual slop or crud. ->Wet, contains flavors of more neutral-ish soakage.
This commit is contained in:
@@ -161,6 +161,177 @@ var/global/list/edible_trash = list(/obj/item/trash,
|
||||
/obj/item/device/mmi/digital/posibrain,
|
||||
/obj/item/device/aicard)
|
||||
|
||||
var/global/list/cont_flavors = list(
|
||||
"All" = cont_flavors_all,
|
||||
"Acrid" = cont_flavors_acrid,
|
||||
"Dirty" = cont_flavors_dirty,
|
||||
"Musky" = cont_flavors_musky,
|
||||
"Smelly" = cont_flavors_smelly,
|
||||
"Wet" = cont_flavors_wet)
|
||||
|
||||
var/global/list/cont_flavors_all = list("soggy",
|
||||
"soaked",
|
||||
"dirty",
|
||||
"nasty",
|
||||
"slimy",
|
||||
"drenched",
|
||||
"sloppy",
|
||||
"grimy",
|
||||
"sludgy",
|
||||
"stinky",
|
||||
"mucky",
|
||||
"stained",
|
||||
"soiled",
|
||||
"filthy",
|
||||
"saucy",
|
||||
"foul",
|
||||
"icky",
|
||||
"tarnished",
|
||||
"unsanitary",
|
||||
"messy",
|
||||
"begrimed",
|
||||
"cruddy",
|
||||
"funky",
|
||||
"disgusting",
|
||||
"repulsive",
|
||||
"noxious",
|
||||
"gruesome",
|
||||
"gross",
|
||||
"putrid",
|
||||
"yucky",
|
||||
"tainted",
|
||||
"putrescent",
|
||||
"unsavory",
|
||||
"smelly",
|
||||
"smutty",
|
||||
"acrid",
|
||||
"pungent",
|
||||
"unclean",
|
||||
"contaminated",
|
||||
"gunky",
|
||||
"gooey",
|
||||
"sticky",
|
||||
"drippy",
|
||||
"oozing",
|
||||
"sloshed",
|
||||
"digested",
|
||||
"sopping",
|
||||
"damp",
|
||||
"gloppy",
|
||||
"begraggled",
|
||||
"churned",
|
||||
"juicy")
|
||||
|
||||
var/global/list/cont_flavors_wet = list("soggy",
|
||||
"soaked",
|
||||
"slimy",
|
||||
"drenched",
|
||||
"sloppy",
|
||||
"sludgy",
|
||||
"gooey",
|
||||
"sticky",
|
||||
"drippy",
|
||||
"oozing",
|
||||
"sloshed",
|
||||
"sopping",
|
||||
"damp",
|
||||
"gloppy",
|
||||
"juicy")
|
||||
|
||||
var/global/list/cont_flavors_smelly = list("nasty",
|
||||
"stinky",
|
||||
"filthy",
|
||||
"foul",
|
||||
"icky",
|
||||
"funky",
|
||||
"disgusting",
|
||||
"repulsive",
|
||||
"noxious",
|
||||
"gross",
|
||||
"putrid",
|
||||
"yucky",
|
||||
"putrescent",
|
||||
"unsavory",
|
||||
"smelly",
|
||||
"pungent")
|
||||
|
||||
var/global/list/cont_flavors_acrid = list("nasty",
|
||||
"slimy",
|
||||
"sloppy",
|
||||
"grimy",
|
||||
"sludgy",
|
||||
"mucky",
|
||||
"stained",
|
||||
"saucy",
|
||||
"foul",
|
||||
"icky",
|
||||
"disgusting",
|
||||
"repulsive",
|
||||
"noxious",
|
||||
"gruesome",
|
||||
"gross",
|
||||
"putrid",
|
||||
"yucky",
|
||||
"tainted",
|
||||
"putrescent",
|
||||
"unsavory",
|
||||
"smelly",
|
||||
"acrid",
|
||||
"pungent",
|
||||
"gooey",
|
||||
"sticky",
|
||||
"drippy",
|
||||
"oozing",
|
||||
"sloshed",
|
||||
"digested",
|
||||
"gloppy",
|
||||
"churned")
|
||||
|
||||
var/global/list/cont_flavors_dirty = list("dirty",
|
||||
"nasty",
|
||||
"slimy",
|
||||
"sloppy",
|
||||
"grimy",
|
||||
"mucky",
|
||||
"stained",
|
||||
"soiled",
|
||||
"filthy",
|
||||
"saucy",
|
||||
"tarnished",
|
||||
"unsanitary",
|
||||
"messy",
|
||||
"begrimed",
|
||||
"cruddy",
|
||||
"gruesome",
|
||||
"gross",
|
||||
"tainted",
|
||||
"unsavory",
|
||||
"smutty",
|
||||
"unclean",
|
||||
"contaminated",
|
||||
"gunky",
|
||||
"gooey",
|
||||
"sticky",
|
||||
"gloppy",
|
||||
"begraggled")
|
||||
|
||||
var/global/list/cont_flavors_musky = list("soggy",
|
||||
"nasty",
|
||||
"slimy",
|
||||
"drenched",
|
||||
"sloppy",
|
||||
"musky",
|
||||
"saucy",
|
||||
"messy",
|
||||
"funky",
|
||||
"tainted",
|
||||
"smelly",
|
||||
"smutty",
|
||||
"gooey",
|
||||
"sticky",
|
||||
"drippy",
|
||||
"juicy")
|
||||
|
||||
/hook/startup/proc/init_vore_datum_ref_lists()
|
||||
var/paths
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
var/transferlocation // Location that the prey is released if they struggle and get dropped off.
|
||||
var/release_sound = TRUE // Boolean for now, maybe replace with something else later
|
||||
var/mode_flags = 0 // Stripping, numbing, etc.
|
||||
var/cont_flavor = "All" // Selected contamination mode.
|
||||
|
||||
//I don't think we've ever altered these lists. making them static until someone actually overrides them somewhere.
|
||||
//Actual full digest modes
|
||||
@@ -41,7 +42,7 @@
|
||||
var/tmp/static/list/mode_flag_list = list("Numbing" = DM_FLAG_NUMBING, "Itemweak" = DM_FLAG_ITEMWEAK, "Stripping" = DM_FLAG_STRIPPING)
|
||||
//Transformation modes
|
||||
var/tmp/static/list/transform_modes = list(DM_TRANSFORM_MALE,DM_TRANSFORM_FEMALE,DM_TRANSFORM_KEEP_GENDER,DM_TRANSFORM_CHANGE_SPECIES_AND_TAUR,DM_TRANSFORM_CHANGE_SPECIES_AND_TAUR_EGG,DM_TRANSFORM_REPLICA,DM_TRANSFORM_REPLICA_EGG,DM_TRANSFORM_KEEP_GENDER_EGG,DM_TRANSFORM_MALE_EGG,DM_TRANSFORM_FEMALE_EGG, DM_EGG)
|
||||
|
||||
|
||||
//List of slots that stripping handles strips
|
||||
var/tmp/static/list/slots = list(slot_back,slot_handcuffed,slot_l_store,slot_r_store,slot_wear_mask,slot_l_hand,slot_r_hand,slot_wear_id,slot_glasses,slot_gloves,slot_head,slot_shoes,slot_belt,slot_wear_suit,slot_w_uniform,slot_s_store,slot_l_ear,slot_r_ear)
|
||||
|
||||
@@ -136,7 +137,8 @@
|
||||
"digest_messages_prey",
|
||||
"examine_messages",
|
||||
"emote_lists",
|
||||
"mode_flags"
|
||||
"mode_flags",
|
||||
"cont_flavor"
|
||||
)
|
||||
|
||||
/obj/belly/New(var/newloc)
|
||||
@@ -611,6 +613,7 @@
|
||||
dupe.bulge_size = bulge_size
|
||||
dupe.shrink_grow_size = shrink_grow_size
|
||||
dupe.mode_flags = mode_flags
|
||||
dupe.cont_flavor = cont_flavor
|
||||
|
||||
//// Object-holding variables
|
||||
//struggle_messages_outside - strings
|
||||
|
||||
@@ -38,8 +38,9 @@
|
||||
if(isitem(A) && !did_an_item)
|
||||
var/obj/item/I = A
|
||||
if(mode_flags & DM_FLAG_ITEMWEAK)
|
||||
I.gurgle_contaminate(contents, owner)
|
||||
I.gurgle_contaminate(contents, cont_flavor)
|
||||
items_preserved |= I
|
||||
to_update = TRUE
|
||||
else
|
||||
digest_item(I)
|
||||
to_update = TRUE
|
||||
@@ -52,11 +53,11 @@
|
||||
|
||||
if(L.absorbed)
|
||||
L.Weaken(5)
|
||||
|
||||
|
||||
//Handle 'human'
|
||||
if(ishuman(L))
|
||||
var/mob/living/carbon/human/H = L
|
||||
|
||||
|
||||
//Numbing flag
|
||||
if(mode_flags & DM_FLAG_NUMBING)
|
||||
if(H.bloodstr.get_reagent_amount("numbenzyme") < 2)
|
||||
@@ -69,7 +70,7 @@
|
||||
if(I)
|
||||
H.unEquip(I,force = TRUE)
|
||||
if(mode_flags & DM_FLAG_ITEMWEAK)
|
||||
I.gurgle_contaminate(contents, owner)
|
||||
I.gurgle_contaminate(contents, cont_flavor)
|
||||
items_preserved |= I
|
||||
else
|
||||
digest_item(I)
|
||||
@@ -154,7 +155,7 @@
|
||||
|
||||
for (var/target in touchable_mobs)
|
||||
var/mob/living/M = target
|
||||
|
||||
|
||||
if(M.absorbed && owner.nutrition >= 100)
|
||||
M.absorbed = 0
|
||||
to_chat(M,"<span class='notice'>You suddenly feel solid again </span>")
|
||||
@@ -167,7 +168,7 @@
|
||||
|
||||
for (var/target in touchable_mobs)
|
||||
var/mob/living/M = target
|
||||
|
||||
|
||||
if(prob(10)) //Less often than gurgles. People might leave this on forever.
|
||||
play_sound = pick(digestion_sounds)
|
||||
|
||||
@@ -181,13 +182,13 @@
|
||||
|
||||
for (var/target in touchable_mobs)
|
||||
var/mob/living/M = target
|
||||
|
||||
|
||||
if(prob(10)) //Infinite gurgles!
|
||||
play_sound = pick(digestion_sounds)
|
||||
|
||||
if(M.size_multiplier > shrink_grow_size) //Shrink until smol.
|
||||
M.resize(M.size_multiplier-0.01) //Shrink by 1% per tick.
|
||||
|
||||
|
||||
if(M.nutrition >= 100) //Absorbing bodymass results in nutrition if possible.
|
||||
var/oldnutrition = (M.nutrition * 0.05)
|
||||
M.nutrition = (M.nutrition * 0.95)
|
||||
@@ -198,7 +199,7 @@
|
||||
|
||||
for (var/target in touchable_mobs)
|
||||
var/mob/living/M = target
|
||||
|
||||
|
||||
if(prob(10))
|
||||
play_sound = pick(digestion_sounds)
|
||||
|
||||
@@ -212,14 +213,14 @@
|
||||
|
||||
for (var/target in touchable_mobs)
|
||||
var/mob/living/M = target
|
||||
|
||||
|
||||
if(prob(10))
|
||||
play_sound = pick(digestion_sounds)
|
||||
|
||||
if(M.size_multiplier > shrink_grow_size && owner.size_multiplier < 2) //Grow until either pred is large or prey is small.
|
||||
owner.resize(owner.size_multiplier+0.01) //Grow by 1% per tick.
|
||||
M.resize(M.size_multiplier-0.01) //Shrink by 1% per tick
|
||||
|
||||
|
||||
if(M.nutrition >= 100)
|
||||
var/oldnutrition = (M.nutrition * 0.05)
|
||||
M.nutrition = (M.nutrition * 0.95)
|
||||
@@ -227,7 +228,7 @@
|
||||
|
||||
///////////////////////////// DM_HEAL /////////////////////////////
|
||||
else if(digest_mode == DM_HEAL)
|
||||
|
||||
|
||||
if(prob(50)) //Wet heals! The secret is you can leave this on for gurgle noises for fun.
|
||||
play_sound = pick(digestion_sounds)
|
||||
|
||||
@@ -260,5 +261,5 @@
|
||||
M.updateVRPanel()
|
||||
if(owner.client)
|
||||
owner.updateVRPanel()
|
||||
|
||||
|
||||
return SSBELLIES_PROCESSED
|
||||
|
||||
@@ -5,20 +5,33 @@ var/image/gurgled_overlay = image('icons/effects/sludgeoverlay_vr.dmi')
|
||||
var/cleanname
|
||||
var/cleandesc
|
||||
|
||||
/obj/item/proc/gurgle_contaminate(var/atom/movable/item_storage = null)
|
||||
/obj/item/proc/gurgle_contaminate(var/atom/movable/item_storage = null, var/cont_flavor = "All")
|
||||
if(!can_gurgle())
|
||||
return FALSE
|
||||
|
||||
if(!gurgled)
|
||||
gurgled = TRUE
|
||||
overlays += gurgled_overlay
|
||||
var/gurgleflavor = pick("soggy","soaked","dirty","nasty","slimy","drenched","sloppy","grimy","sludgy","stinky","mucky","stained","soiled","filthy","saucy","foul","icky","tarnished","unsanitary","messy","begrimed","cruddy","funky","disgusting","repulsive","noxious","gruesome","gross","putrid","yucky","tainted","putrescent","unsavory","smelly","smutty","acrid","pungent","unclean","contaminated","gunky","gooey","sticky","drippy","oozing","sloshed","digested","sopping","damp","gloppy","begraggled","churned")
|
||||
switch(cont_flavor)
|
||||
if("All")
|
||||
cont_flavor = cont_flavors_all
|
||||
if("Acrid")
|
||||
cont_flavor = cont_flavors_acrid
|
||||
if("Dirty")
|
||||
cont_flavor = cont_flavors_dirty
|
||||
if("Musky")
|
||||
cont_flavor = cont_flavors_musky
|
||||
if("Smelly")
|
||||
cont_flavor = cont_flavors_smelly
|
||||
if("Wet")
|
||||
cont_flavor = cont_flavors_wet
|
||||
var/gurgleflavor = pick(cont_flavor)
|
||||
cleanname = src.name
|
||||
cleandesc = src.desc
|
||||
name = "[gurgleflavor] [cleanname]"
|
||||
desc = "[cleandesc] It seems to be covered in ominously foul residue and needs a wash."
|
||||
for(var/obj/item/O in contents)
|
||||
O.gurgle_contaminate(item_storage)
|
||||
O.gurgle_contaminate(item_storage, cont_flavor)
|
||||
return TRUE
|
||||
|
||||
/obj/item/proc/can_gurgle()
|
||||
|
||||
@@ -204,6 +204,9 @@
|
||||
dat += " [english_list(flag_list)]"
|
||||
else
|
||||
dat += " None"
|
||||
if(selected.mode_flags & DM_FLAG_ITEMWEAK)
|
||||
dat += "<br><a href='?src=\ref[src];b_cont_flavor=\ref[selected]'>Contamination Mode:</a>"
|
||||
dat += "[selected.cont_flavor]"
|
||||
|
||||
//Belly verb
|
||||
dat += "<br><a href='?src=\ref[src];b_verb=\ref[selected]'>Vore Verb:</a>"
|
||||
@@ -514,14 +517,14 @@
|
||||
var/new_mode = input("Choose Mode (currently [selected.digest_mode])") as null|anything in menu_list
|
||||
if(!new_mode)
|
||||
return 0
|
||||
|
||||
|
||||
if(new_mode == DM_TRANSFORM) //Snowflek submenu
|
||||
var/list/tf_list = selected.transform_modes
|
||||
var/new_tf_mode = input("Choose TF Mode (currently [selected.tf_mode])") as null|anything in tf_list
|
||||
if(!new_tf_mode)
|
||||
return 0
|
||||
selected.tf_mode = new_tf_mode
|
||||
|
||||
|
||||
selected.digest_mode = new_mode
|
||||
selected.items_preserved.Cut() //Re-evaltuate all items in belly on belly-mode change
|
||||
|
||||
@@ -533,6 +536,13 @@
|
||||
selected.mode_flags ^= selected.mode_flag_list[toggle_addon]
|
||||
selected.items_preserved.Cut() //Re-evaltuate all items in belly on addon toggle
|
||||
|
||||
if(href_list["b_cont_flavor"])
|
||||
var/list/menu_list = cont_flavors.Copy()
|
||||
var/new_flavor = input("Choose Contamination Mode (currently [selected.cont_flavor])") as null|anything in menu_list
|
||||
if(!new_flavor)
|
||||
return 0
|
||||
selected.cont_flavor = new_flavor
|
||||
|
||||
if(href_list["b_desc"])
|
||||
var/new_desc = html_encode(input(usr,"Belly Description ([BELLIES_DESC_MAX] char limit):","New Description",selected.desc) as message|null)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user