From b898e266ef0cd0af54f1ebd66d990f15911acb9a Mon Sep 17 00:00:00 2001 From: ShadowLarkens Date: Sat, 17 Jan 2026 18:13:41 -0800 Subject: [PATCH] The Great Slobber Update (#19018) * Add Major Slobberer trait * Add a mode addon to bellies that lets you wetten prey with them * Add tooltip * Fix this * consistency --------- Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com> --- code/__defines/belly_modes_vr.dm | 1 + code/__defines/traits/declarations.dm | 2 ++ .../carbon/human/species/station/traits/neutral.dm | 12 ++++++++++++ code/modules/vore/eating/belly_obj.dm | 2 +- code/modules/vore/eating/bellymodes_vr.dm | 4 ++++ code/modules/vore/eating/living_vr.dm | 3 +++ tgui/packages/tgui/interfaces/VorePanel/constants.ts | 4 +++- 7 files changed, 26 insertions(+), 2 deletions(-) diff --git a/code/__defines/belly_modes_vr.dm b/code/__defines/belly_modes_vr.dm index 3912747afcc..c058e7da9e6 100644 --- a/code/__defines/belly_modes_vr.dm +++ b/code/__defines/belly_modes_vr.dm @@ -26,6 +26,7 @@ #define DM_FLAG_MUFFLEITEMS 0x200 #define DM_FLAG_TURBOMODE 0x400 #define DM_FLAG_ABSORBEDVORE 0x800 +#define DM_FLAG_WETTENS 0x1000 //Item related modes #define IM_HOLD "Hold" diff --git a/code/__defines/traits/declarations.dm b/code/__defines/traits/declarations.dm index 1f2ce348eeb..6512463e5fe 100644 --- a/code/__defines/traits/declarations.dm +++ b/code/__defines/traits/declarations.dm @@ -53,3 +53,5 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_ELECTROVORE "electrovore" // allows draining or recharging of power cells via nutrition #define TRAIT_ELECTROVORE_OBLIGATE "electrovore_obligate" +// adds wet stacks when licking someone +#define TRAIT_SLOBBER "slobber" diff --git a/code/modules/mob/living/carbon/human/species/station/traits/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits/neutral.dm index b7efbb8497e..35e58617a84 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits/neutral.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits/neutral.dm @@ -1940,3 +1940,15 @@ /datum/trait/neutral/abnormal_mind/apply(datum/species/S, mob/living/carbon/human/H, trait_prefs) ..() ADD_TRAIT(H, UNIQUE_MINDSTRUCTURE, ROUNDSTART_TRAIT) + +/datum/trait/neutral/slobber + name = "Major Slobberer" + desc = "You produce more saliva than most people and leave people dripping when you lick them." + tutorial = "Lick someone! Consensually please!" + + cost = 0 + custom_only = FALSE + +/datum/trait/neutral/slobber/apply(var/datum/species/S, var/mob/living/carbon/human/human) + ..() + ADD_TRAIT(human, TRAIT_SLOBBER, ROUNDSTART_TRAIT) diff --git a/code/modules/vore/eating/belly_obj.dm b/code/modules/vore/eating/belly_obj.dm index 91ddbbc62dd..ce6e52d02be 100644 --- a/code/modules/vore/eating/belly_obj.dm +++ b/code/modules/vore/eating/belly_obj.dm @@ -130,7 +130,7 @@ //Actual full digest modes var/tmp/static/list/digest_modes = list(DM_HOLD,DM_DIGEST,DM_ABSORB,DM_DRAIN,DM_SELECT,DM_UNABSORB,DM_HEAL,DM_SHRINK,DM_GROW,DM_SIZE_STEAL,DM_EGG) //Digest mode addon flags - var/tmp/static/list/mode_flag_list = list("Numbing" = DM_FLAG_NUMBING, "Stripping" = DM_FLAG_STRIPPING, "Leave Remains" = DM_FLAG_LEAVEREMAINS, "Muffles" = DM_FLAG_THICKBELLY, "Affect Worn Items" = DM_FLAG_AFFECTWORN, "Jams Sensors" = DM_FLAG_JAMSENSORS, "Complete Absorb" = DM_FLAG_FORCEPSAY, "Spare Prosthetics" = DM_FLAG_SPARELIMB, "Slow Body Digestion" = DM_FLAG_SLOWBODY, "Muffle Items" = DM_FLAG_MUFFLEITEMS, "TURBO MODE" = DM_FLAG_TURBOMODE, "Absorbed prey can devour" = DM_FLAG_ABSORBEDVORE) + var/tmp/static/list/mode_flag_list = list("Numbing" = DM_FLAG_NUMBING, "Stripping" = DM_FLAG_STRIPPING, "Leave Remains" = DM_FLAG_LEAVEREMAINS, "Muffles" = DM_FLAG_THICKBELLY, "Affect Worn Items" = DM_FLAG_AFFECTWORN, "Jams Sensors" = DM_FLAG_JAMSENSORS, "Complete Absorb" = DM_FLAG_FORCEPSAY, "Spare Prosthetics" = DM_FLAG_SPARELIMB, "Slow Body Digestion" = DM_FLAG_SLOWBODY, "Muffle Items" = DM_FLAG_MUFFLEITEMS, "TURBO MODE" = DM_FLAG_TURBOMODE, "Absorbed Prey Can Devour" = DM_FLAG_ABSORBEDVORE, "Makes Prey Wet" = DM_FLAG_WETTENS) //Item related modes var/tmp/static/list/item_digest_modes = list(IM_HOLD,IM_DIGEST_FOOD,IM_DIGEST,IM_DIGEST_PARALLEL) //drain modes diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index d8618328324..c85264b4890 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -206,6 +206,10 @@ else if(!(mode_flags & DM_FLAG_FORCEPSAY) && L.forced_psay) L.forced_psay = FALSE + // Wet flag + if(mode_flags & DM_FLAG_WETTENS) + L.set_wet_stacks(20) + //Handle 'human' if(ishuman(L)) var/mob/living/carbon/human/H = L diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 576eb4ec7d4..8b3e8df1471 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -460,6 +460,9 @@ return visible_message(span_vwarning("[src] licks [tasted]!"),span_notice("You lick [tasted]. They taste rather like [tasted.get_taste_message()]."),span_infoplain(span_bold("Slurp!"))) //balloon_alert_visible("licks [tasted]!", "tastes like [tasted.get_taste_message()]") + // This has already passed consent tests + if(HAS_TRAIT(src, TRAIT_SLOBBER)) + tasted.adjust_wet_stacks(2) /mob/living/proc/get_taste_message(allow_generic = 1) if(!vore_taste && !allow_generic) diff --git a/tgui/packages/tgui/interfaces/VorePanel/constants.ts b/tgui/packages/tgui/interfaces/VorePanel/constants.ts index c1fbefc79ee..9d4451a65c8 100644 --- a/tgui/packages/tgui/interfaces/VorePanel/constants.ts +++ b/tgui/packages/tgui/interfaces/VorePanel/constants.ts @@ -85,7 +85,9 @@ export const modeToTooltip = { 'Slow Body Digestion': 'Continues to digest a body after the prey has died.', 'Muffle Items': ' Muffles noise from items inside the vorgan.', 'TURBO MODE': 'Heavily increases tick speed of the vorgan (6x).', - 'Absorbed Devour': 'Allows absorbed prey to devour other prey.', + 'Absorbed Prey Can Devour': 'Allows absorbed prey to devour other prey.', + 'Makes Prey Wet': + 'Prey will be constantly made wet. This means they will drip if you let them out.', } as const; export const spriteToTooltip = {