From 28577a116d9496ff9742b25754a14549bf05e1b6 Mon Sep 17 00:00:00 2001 From: Durandaal <125332955+Durandaal@users.noreply.github.com> Date: Sat, 21 Mar 2026 22:14:49 -0500 Subject: [PATCH] private-struggle --- code/modules/vore/eating/belly_obj_vr.dm | 75 +++++++++++++++------- code/modules/vore/eating/exportpanel_vr.dm | 2 + code/modules/vore/eating/vorepanel_vr.dm | 12 ++++ tgui/packages/tgui/interfaces/VorePanel.js | 12 +++- 4 files changed, 77 insertions(+), 24 deletions(-) diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 068b7177638..326580cb172 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -66,6 +66,7 @@ var/override_min_prey_size = FALSE //If true, exceeding override prey number will override minimum size requirements var/override_min_prey_num = 1 //We check belly contents against this to override min size var/belly_overall_mult = 1 //Multiplier applied ontop of any other specific multipliers //RS Edit. Added from VS. + var/private_struggle = FALSE //RS Edit: Adds private struggling CHOMPStation PR7443 //RS Edit: Ports Slow Body Digestion, CHOMPStation PR 5161 var/slow_digestion = FALSE var/slow_brutal = FALSE @@ -395,7 +396,7 @@ "fullness3_messages", "fullness4_messages", "fullness5_messages", // End reagent bellies - "autotransferchance", //RS Add Start || Port Chop 2821, 2979, 6155 + "autotransferchance", //RS Add Start || Port Chomp 2821, 2979, 6155 "autotransferwait", "autotransferlocation", "autotransfer_enabled", @@ -404,7 +405,8 @@ "autotransfer_min_amount", "autotransfer_max_amount", "belly_healthbar_overlay_theme", - "belly_healthbar_overlay_color" //RS ADD END + "belly_healthbar_overlay_color", //RS ADD END + "private struggle" //RS add || CHOMPStation PR7443 ) if (save_digest_mode == 1) @@ -1431,8 +1433,13 @@ struggle_outer_message = "[struggle_outer_message]" struggle_user_message = "[struggle_user_message]" - for(var/mob/M in hearers(4, owner)) - M.show_message(struggle_outer_message, 2) // hearable + //RS Edit start || Ports CHOMPStation PR7443 + if(private_struggle) + to_chat(owner, struggle_outer_message) + else + for(var/mob/M in hearers(4, owner)) + M.show_message(struggle_outer_message, 2) // hearable + //RS Edit end //to_chat(R, struggle_user_message) RS remove - moved to bottom of proc var/sound/struggle_snuggle @@ -1445,14 +1452,17 @@ howner.vs_animate(belly_sprite_to_affect) // End RS edit - if(is_wet) - if(!fancy_vore) - struggle_snuggle = sound(get_sfx("classic_struggle_sounds")) - else - struggle_snuggle = sound(get_sfx("fancy_prey_struggle")) - playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) + //RS Edit start || Ports CHOMPStation PR7443 + if(!private_struggle) + if(is_wet) + if(!fancy_vore) + struggle_snuggle = sound(get_sfx("classic_struggle_sounds")) + else + struggle_snuggle = sound(get_sfx("fancy_prey_struggle")) + playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) else playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) + //RS Edit end if(escapable) //If the stomach has escapable enabled. if(prob(escapechance)) //Let's have it check to see if the prey escapes first. @@ -1495,7 +1505,11 @@ to_chat(R, escape_item_prey_message) //RS edit to_chat(owner, escape_item_owner_message) //RS edit for(var/mob/M in hearers(4, owner)) - M.show_message(escape_item_outside_message, 2) //RS edit + //RS Edit begin || CHOMPStation PR7443 + if(!private_struggle) + for(var/mob/M in hearers(4, owner)) + M.show_message(escape_item_outside_message, 2) + //RS Edit end return if(escapable && (R.loc == src) && !R.absorbed) //Does the owner still have escapable enabled? //RS edit start - VS 15559 @@ -1528,8 +1542,11 @@ release_specific_contents(R) to_chat(R, escape_prey_message) //RS edit to_chat(owner, escape_owner_message) //RS edit - for(var/mob/M in hearers(4, owner)) - M.show_message(escape_outside_message, 2) // RS edit + //RS Edit begin || CHOMPStation PR7443 + if(!private_struggle) + for(var/mob/M in hearers(4, owner)) + M.show_message(escape_outside_message, 2) + //RS Edit end return else if(!(R.loc == src)) //Aren't even in the belly. Quietly fail. return @@ -1731,20 +1748,29 @@ struggle_user_message = "[struggle_user_message]" for(var/mob/M in hearers(4, owner)) - M.show_message(struggle_outer_message, 2) // hearable + //RS Edit || CHOMPStation PR7443 + if(private_struggle) + to_chat(owner, struggle_outer_message) + else + for(var/mob/M in hearers(4, owner)) + M.show_message(struggle_outer_message, 2) // hearable + //RS Edit end //to_chat(R, struggle_user_message) RS remove - moved to bottom of proc var/sound/struggle_snuggle var/sound/struggle_rustle = sound(get_sfx("rustle")) - if(is_wet) - if(!fancy_vore) - struggle_snuggle = sound(get_sfx("classic_struggle_sounds")) + //RS Edit start || CHOMPStation PR7443 + if(!private_struggle) + if(is_wet) + if(!fancy_vore) + struggle_snuggle = sound(get_sfx("classic_struggle_sounds")) + else + struggle_snuggle = sound(get_sfx("fancy_prey_struggle")) + playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) else - struggle_snuggle = sound(get_sfx("fancy_prey_struggle")) - playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) - else - playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) + //RS Edit end //RS Edit Start - virgo port //absorb resists @@ -1808,8 +1834,11 @@ release_specific_contents(R) to_chat(R, escape_absorbed_prey_message) //RS edit to_chat(owner, escape_absorbed_owner_message) //RS edit - for(var/mob/M in hearers(4, owner)) - M.show_message(escape_absorbed_outside_message, 2)//RS edit + //RS Edit begin || CHOMPStation PR7443 + if(!private_struggle) + for(var/mob/M in hearers(4, owner)) + M.show_message(escape_absorbed_outside_message, 2) + //RS Edit end return else if(!(R.loc == src)) //Aren't even in the belly. Quietly fail. return diff --git a/code/modules/vore/eating/exportpanel_vr.dm b/code/modules/vore/eating/exportpanel_vr.dm index 45e01c9e788..2fa87586719 100644 --- a/code/modules/vore/eating/exportpanel_vr.dm +++ b/code/modules/vore/eating/exportpanel_vr.dm @@ -211,4 +211,6 @@ belly_data["autotransfer_min_amount"] = B.autotransfer_min_amount belly_data["autotransfer_max_amount"] = B.autotransfer_max_amount + belly_data["private_struggle"] = B.private_struggle //RS Edit || Ports CHOMPStation PR7443 + return data diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index 51a1e297c07..e35d578684f 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -261,6 +261,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", "max_mush" = selected.max_mush, "min_mush" = selected.min_mush, // End reagent bellies + "private_struggle" = selected.private_struggle //RS Edit || Ports CHOMPStation PR7443 ) var/list/addons = list() @@ -692,6 +693,12 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", host.client.prefs_vr.autotransferable = host.autotransferable unsaved_changes = TRUE return TRUE //RS Add End + //RS Add start || Ports CHOMPStation PR7443 + if("private_struggle") + host.vore_selected.private_struggle = !host.vore_selected.private_struggle + unsaved_changes = TRUE + return TRUE + //RS Add end if("toggle_drop_vore") host.drop_vore = !host.drop_vore unsaved_changes = TRUE @@ -1318,6 +1325,11 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", host.vore_selected.release_sound = "Splatter" // defaults as to avoid potential bugs . = TRUE + //RS Edit || Ports CHOMPStation PR7443 + if("b_private_struggle") + host.vore_selected.private_struggle = !host.vore_selected.private_struggle + . = TRUE + //RS Edit end if("b_release") var/choice if(host.vore_selected.fancy_vore) diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js index dc882b42d9a..55b606d5b65 100644 --- a/tgui/packages/tgui/interfaces/VorePanel.js +++ b/tgui/packages/tgui/interfaces/VorePanel.js @@ -566,6 +566,7 @@ const VoreSelectedBellyOptions = (props, context) => { override_min_prey_size, override_min_prey_num, drainmode, // RS Edit || ports VOREStation PR 15876 + private_struggle, // RS Edit || ports VOREStation PR 7443 } = belly; return ( @@ -651,7 +652,16 @@ const VoreSelectedBellyOptions = (props, context) => { content={capitalize(eating_privacy_local)} /> - + +