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:
Verkister
2018-05-01 13:34:42 +03:00
parent 33efa72b95
commit 7b0bdccade
5 changed files with 218 additions and 20 deletions

View File

@@ -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

View File

@@ -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
@@ -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

View File

@@ -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
@@ -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)

View File

@@ -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()

View File

@@ -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>"
@@ -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)