From 83aa5b374d0e43b99d2b9072f723b6090f392fa0 Mon Sep 17 00:00:00 2001
From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com>
Date: Mon, 22 May 2023 06:59:12 +1000
Subject: [PATCH] Adds new preference for vore privacy
---
.../living/simple_mob/subtypes/vore/vore.dm | 1 +
code/modules/vore/eating/belly_obj_vr.dm | 44 +++++++++++++++++--
code/modules/vore/eating/living_vr.dm | 29 +++++++++++-
code/modules/vore/eating/vore_vr.dm | 8 ++++
code/modules/vore/eating/vorepanel_vr.dm | 20 +++++++++
code/modules/vore/mouseray.dm | 1 +
tgui/packages/tgui/interfaces/VorePanel.js | 33 ++++++++++++++
7 files changed, 131 insertions(+), 5 deletions(-)
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm b/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm
index 6b3abf5134..500fcc3723 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm
@@ -29,6 +29,7 @@
selective_preference = client.prefs_vr.selective_preference
appendage_color = client.prefs_vr.appendage_color
appendage_alt_setting = client.prefs_vr.appendage_alt_setting
+ eating_privacy_global = client.prefs_vr.eating_privacy_global
drop_vore = client.prefs_vr.drop_vore
stumble_vore = client.prefs_vr.stumble_vore
diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm
index 9513df1ec1..57659a2b8f 100644
--- a/code/modules/vore/eating/belly_obj_vr.dm
+++ b/code/modules/vore/eating/belly_obj_vr.dm
@@ -55,7 +55,11 @@
var/emote_active = TRUE // Are we even giving emotes out at all or not?
var/next_emote = 0 // When we're supposed to print our next emote, as a world.time
var/selective_preference = DM_DIGEST // Which type of selective bellymode do we default to?
+<<<<<<< HEAD
var/is_feedable = TRUE // If this belly shows up in belly selections for others. //CHOMPAdd
+=======
+ var/eating_privacy_local = "default" //Overrides eating_privacy_global if not "default". Determines if attempt/success messages are subtle/loud
+>>>>>>> b17b584f03... Merge pull request #14874 from Runa-Dacino/subtlenoms
// Generally just used by AI
var/autotransferchance = 0 // % Chance of prey being autotransferred to transfer location
@@ -296,7 +300,8 @@
"egg_name",
"is_feedable", //CHOMP end of variables from CHOMP
"egg_type",
- "save_digest_mode"
+ "save_digest_mode",
+ "eating_privacy_local"
)
if (save_digest_mode == 1)
@@ -605,16 +610,32 @@
if(!ishuman(owner))
owner.update_icons()
+ //Determines privacy
+ var/privacy_range = world.view
+ var/privacy_volume = 100
+ switch(eating_privacy_local) //Third case of if("loud") not defined, as it'd just leave privacy_range and volume untouched
+ if("default")
+ if(owner.eating_privacy_global)
+ privacy_range = 1
+ privacy_volume = 25
+ if("subtle")
+ privacy_range = 1
+ privacy_volume = 25
+
//Print notifications/sound if necessary
if(!silent && count)
- owner.visible_message("[owner] [release_verb] everything from their [lowertext(name)]!")
+ owner.visible_message("[owner] [release_verb] everything from their [lowertext(name)]!", range = privacy_range)
var/soundfile
if(!fancy_vore)
soundfile = classic_release_sounds[release_sound]
else
soundfile = fancy_release_sounds[release_sound]
if(soundfile)
+<<<<<<< HEAD
playsound(src, soundfile, vol = sound_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) //CHOPEdit
+=======
+ playsound(src, soundfile, vol = privacy_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE)
+>>>>>>> b17b584f03... Merge pull request #14874 from Runa-Dacino/subtlenoms
return count
@@ -673,18 +694,34 @@
if(!ishuman(owner))
owner.update_icons()
+ //Determines privacy
+ var/privacy_range = world.view
+ var/privacy_volume = 100
+ switch(eating_privacy_local) //Third case of if("loud") not defined, as it'd just leave privacy_range and volume untouched
+ if("default")
+ if(owner.eating_privacy_global)
+ privacy_range = 1
+ privacy_volume = 25
+ if("subtle")
+ privacy_range = 1
+ privacy_volume = 25
+
//Print notifications/sound if necessary
if(istype(M, /mob/observer)) //CHOMPEdit
silent = TRUE
if(!silent)
- owner.visible_message("[owner] [release_verb] [M] from their [lowertext(name)]!")
+ owner.visible_message("[owner] [release_verb] [M] from their [lowertext(name)]!",range = privacy_range)
var/soundfile
if(!fancy_vore)
soundfile = classic_release_sounds[release_sound]
else
soundfile = fancy_release_sounds[release_sound]
if(soundfile)
+<<<<<<< HEAD
playsound(src, soundfile, vol = sound_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) //CHOPEdit
+=======
+ playsound(src, soundfile, vol = privacy_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE)
+>>>>>>> b17b584f03... Merge pull request #14874 from Runa-Dacino/subtlenoms
//Should fix your view not following you out of mobs sometimes!
if(ismob(M))
var/mob/ourmob = M
@@ -1537,6 +1574,7 @@
dupe.emote_active = emote_active
dupe.selective_preference = selective_preference
dupe.save_digest_mode = save_digest_mode
+ dupe.eating_privacy_local = eating_privacy_local
//// Object-holding variables
//struggle_messages_outside - strings
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 6c6d3fe047..6ac50295df 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -52,7 +52,11 @@
var/selective_preference = DM_DEFAULT // Preference for selective bellymode
var/appendage_color = "#e03997" //Default pink. Used for the 'long_vore' trait.
var/appendage_alt_setting = FALSE // Dictates if 'long_vore' user pulls prey to them or not. 1 = user thrown towards target.
+<<<<<<< HEAD
var/digestion_in_progress = FALSE // CHOMPEdit: Gradual corpse gurgles
+=======
+ var/eating_privacy_global = FALSE //Makes eating attempt/success messages only reach for subtle range if true, overwritten by belly-specific var
+>>>>>>> b17b584f03... Merge pull request #14874 from Runa-Dacino/subtlenoms
var/regen_sounds = list(
'sound/effects/mob_effects/xenochimera/regen_1.ogg',
'sound/effects/mob_effects/xenochimera/regen_2.ogg',
@@ -289,6 +293,7 @@
P.slip_vore = src.slip_vore
P.throw_vore = src.throw_vore
P.stumble_vore = src.stumble_vore
+ P.eating_privacy_global = src.eating_privacy_global
P.nutrition_message_visible = src.nutrition_message_visible
P.nutrition_messages = src.nutrition_messages
@@ -347,6 +352,7 @@
slip_vore = P.slip_vore
throw_vore = P.throw_vore
stumble_vore = P.stumble_vore
+ eating_privacy_global = P.eating_privacy_global
nutrition_message_visible = P.nutrition_message_visible
nutrition_messages = P.nutrition_messages
@@ -638,6 +644,18 @@
to_chat(user, "They aren't aren't in a state to be devoured.")
return FALSE
+ //Determining vore attempt privacy
+ var/message_range = world.view
+ if(!pred.is_slipping && !prey.is_slipping) //We only care about privacy preference if it's NOT a spontaneous vore.
+ switch(belly.eating_privacy_local) //if("loud") case not added, as it would not modify message_range
+ if("default")
+ if(pred.eating_privacy_global)
+ message_range = 1
+ if("subtle")
+ message_range = 1
+
+
+
// Slipnoms from chompstation downstream, credit to cadyn for the original PR.
// Prepare messages
if(prey.is_slipping)
@@ -654,7 +672,10 @@
success_msg = "[user] manages to make [pred] [lowertext(belly.vore_verb)] [prey] into their [lowertext(belly.name)]!"
// Announce that we start the attempt!
- user.visible_message(attempt_msg)
+
+
+ user.visible_message(attempt_msg, range = message_range)
+
// Now give the prey time to escape... return if they did
var/swallow_time
@@ -671,7 +692,7 @@
return FALSE // Prey escpaed (or user disabled) before timer expired.
// If we got this far, nom successful! Announce it!
- user.visible_message(success_msg)
+ user.visible_message(success_msg, range = message_range)
// Actually shove prey into the belly.
if(istype(prey.loc, /obj/item/weapon/holder))
@@ -1138,7 +1159,11 @@
dispvoreprefs += "Spontaneous transformation: [allow_spontaneous_tf ? "Enabled" : "Disabled"]
"
dispvoreprefs += "Can be stepped on/over: [step_mechanics_pref ? "Allowed" : "Disallowed"]
"
dispvoreprefs += "Can be picked up: [pickup_pref ? "Allowed" : "Disallowed"]
"
+<<<<<<< HEAD
dispvoreprefs += "Current active belly: [vore_selected ? vore_selected.name : "None"]
"
+=======
+ dispvoreprefs += "Global Vore Privacy is: [eating_privacy_global ? "Subtle" : "Loud"]
"
+>>>>>>> b17b584f03... Merge pull request #14874 from Runa-Dacino/subtlenoms
user << browse("