diff --git a/code/game/sound.dm b/code/game/sound.dm
index 08685cb0a2..4635415058 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -265,6 +265,13 @@
'sound/vore/sunesound/prey/death_07.ogg','sound/vore/sunesound/prey/death_08.ogg','sound/vore/sunesound/prey/death_09.ogg',
'sound/vore/sunesound/prey/death_10.ogg')
//END VORESTATION EDIT
+ //CHOMPEdit Begin
+ if ("belches") soundin = pick(
+ 'sound/vore/belches/belch1.ogg','sound/vore/belches/belch2.ogg','sound/vore/belches/belch3.ogg','sound/vore/belches/belch4.ogg',
+ 'sound/vore/belches/belch5.ogg','sound/vore/belches/belch6.ogg','sound/vore/belches/belch7.ogg','sound/vore/belches/belch8.ogg',
+ 'sound/vore/belches/belch9.ogg','sound/vore/belches/belch10.ogg','sound/vore/belches/belch11.ogg','sound/vore/belches/belch12.ogg',
+ 'sound/vore/belches/belch13.ogg','sound/vore/belches/belch14.ogg','sound/vore/belches/belch15.ogg',)
+ //CHOMPEdit End
if ("terminal_type")
soundin = pick('sound/machines/terminal_button01.ogg', 'sound/machines/terminal_button02.ogg', 'sound/machines/terminal_button03.ogg', \
'sound/machines/terminal_button04.ogg', 'sound/machines/terminal_button05.ogg', 'sound/machines/terminal_button06.ogg', \
diff --git a/code/modules/client/preference_setup/global/setting_datums.dm b/code/modules/client/preference_setup/global/setting_datums.dm
index d500c18b6e..24ce8f1d33 100644
--- a/code/modules/client/preference_setup/global/setting_datums.dm
+++ b/code/modules/client/preference_setup/global/setting_datums.dm
@@ -98,14 +98,21 @@ var/list/_client_preferences_by_type
key = "DIGEST_NOISES"
enabled_description = "Noisy"
disabled_description = "Silent"
-
+//CHOMPEdit; belching
+/datum/client_preference/belch_noises
+ description = "Burping"
+ key = "BELCH_NOISES"
+ enabled_description = "Noisy"
+ disabled_description = "Silent"
+ enabled_by_default = FALSE
+//CHOMPEdit end
/datum/client_preference/emote_noises
description = "Emote Noises" //MERP
key = "EMOTE_NOISES"
enabled_description = "Noisy"
disabled_description = "Silent"
/datum/client_preference/whisubtle_vis
- description = "Whi/Subtles Ghost Visible"
+ description = "Whi/Subtles Ghost Visible"
key = "WHISUBTLE_VIS"
enabled_description = "Visible"
disabled_description = "Hidden"
@@ -152,7 +159,7 @@ var/list/_client_preferences_by_type
key = "SOUND_AIRPUMP"
enabled_description = "Audible"
disabled_description = "Silent"
-
+
/datum/client_preference/old_door_sounds
description ="Old Door Sounds"
key = "SOUND_OLDDOORS"
diff --git a/code/modules/client/preferences_vr.dm b/code/modules/client/preferences_vr.dm
index 783ee0c4ae..35d29d87df 100644
--- a/code/modules/client/preferences_vr.dm
+++ b/code/modules/client/preferences_vr.dm
@@ -40,6 +40,23 @@
feedback_add_details("admin_verb","TDigestNoise") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+//CHOMPEdit: belching
+/client/verb/toggle_belch_noises()
+ set name = "Audible belching"
+ set category = "Preferences"
+ set desc = "Toggles audible belches."
+
+ var/pref_path = /datum/client_preference/belch_noises
+
+ toggle_preference(pref_path)
+
+ to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear belching.")
+
+ SScharacter_setup.queue_preferences_save(prefs)
+
+ feedback_add_details("admin_verb","TBelchNoise")
+//CHOMPEdit End
+
/client/verb/toggle_emote_noises()
set name = "Emote Noises"
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 26203c928f..53a6d8389d 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -982,6 +982,16 @@
var/growlmultiplier = 100 - (nutrition / 250 * 100)
playsound(src, growlsound, vol = growlmultiplier, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/client_preference/digestion_noises)
// VOREStation Edit End
+ //CHOMPEdit Begin
+ if(nutrition > 500 && noisy_full == TRUE)
+ var/belch_prob = 10 //Maximum belch prob.
+ if(nutrition < 4075)
+ belch_prob = ((nutrition-500)/3575)*20 //Scale belch prob with fullness if not already at max. If editing make sure the multiplier matches the max prob above.
+ if(prob(belch_prob))
+ var/sound/belchsound = sound(get_sfx("belches"))
+ playsound(src, belchsound, vol = (30+(belch_prob*2)), vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/client_preference/belch_noises)
+ custom_emote(AUDIBLE_MESSAGE, "belches.") //Don't know if this should stay, I'll leave in in for now.
+ //CHOMPEdit End
// TODO: stomach and bloodstream organ.
if(!isSynthetic())
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 381f4a1e84..fb42b37915 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -35,6 +35,7 @@
var/vis_height = 32 // Sprite height used for resize features.
var/show_vore_fx = TRUE // Show belly fullscreens
var/latejoin_vore = FALSE //CHOMPedit: If enabled, latejoiners can spawn into this, assuming they have a client
+ var/noisy_full = FALSE //CHOMPEdit: Enables belching when a mob has overeaten
//
// Hook for generic creation of stuff on new creatures
diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm
index a2e176f1e5..35a3e667ad 100644
--- a/code/modules/vore/eating/vorepanel_vr.dm
+++ b/code/modules/vore/eating/vorepanel_vr.dm
@@ -279,6 +279,7 @@
//CHOMPedit start, liquid belly prefs
"liq_rec" = host.receive_reagents,
"liq_giv" = host.give_reagents,
+ "noisy_full" = host.noisy_full //Belching while full
//CHOMPedit end
)
@@ -510,6 +511,11 @@
host.client.prefs_vr.give_reagents = host.give_reagents
unsaved_changes = TRUE
return TRUE
+ //Belch code
+ if("toggle_noisy_full")
+ host.noisy_full = !host.noisy_full
+ unsaved_changes = TRUE
+ return TRUE
//CHOMPedit end
diff --git a/sound/vore/belches/belch1.ogg b/sound/vore/belches/belch1.ogg
new file mode 100644
index 0000000000..875e1be1b1
Binary files /dev/null and b/sound/vore/belches/belch1.ogg differ
diff --git a/sound/vore/belches/belch10.ogg b/sound/vore/belches/belch10.ogg
new file mode 100644
index 0000000000..5b96e8f2c4
Binary files /dev/null and b/sound/vore/belches/belch10.ogg differ
diff --git a/sound/vore/belches/belch11.ogg b/sound/vore/belches/belch11.ogg
new file mode 100644
index 0000000000..d1ab4d425b
Binary files /dev/null and b/sound/vore/belches/belch11.ogg differ
diff --git a/sound/vore/belches/belch12.ogg b/sound/vore/belches/belch12.ogg
new file mode 100644
index 0000000000..dfd6b6210f
Binary files /dev/null and b/sound/vore/belches/belch12.ogg differ
diff --git a/sound/vore/belches/belch13.ogg b/sound/vore/belches/belch13.ogg
new file mode 100644
index 0000000000..1863c1d817
Binary files /dev/null and b/sound/vore/belches/belch13.ogg differ
diff --git a/sound/vore/belches/belch14.ogg b/sound/vore/belches/belch14.ogg
new file mode 100644
index 0000000000..8941c9b31f
Binary files /dev/null and b/sound/vore/belches/belch14.ogg differ
diff --git a/sound/vore/belches/belch15.ogg b/sound/vore/belches/belch15.ogg
new file mode 100644
index 0000000000..8cb87ee579
Binary files /dev/null and b/sound/vore/belches/belch15.ogg differ
diff --git a/sound/vore/belches/belch2.ogg b/sound/vore/belches/belch2.ogg
new file mode 100644
index 0000000000..df18412d04
Binary files /dev/null and b/sound/vore/belches/belch2.ogg differ
diff --git a/sound/vore/belches/belch3.ogg b/sound/vore/belches/belch3.ogg
new file mode 100644
index 0000000000..5aae9d182d
Binary files /dev/null and b/sound/vore/belches/belch3.ogg differ
diff --git a/sound/vore/belches/belch4.ogg b/sound/vore/belches/belch4.ogg
new file mode 100644
index 0000000000..a69f66b369
Binary files /dev/null and b/sound/vore/belches/belch4.ogg differ
diff --git a/sound/vore/belches/belch5.ogg b/sound/vore/belches/belch5.ogg
new file mode 100644
index 0000000000..c95bf30e0a
Binary files /dev/null and b/sound/vore/belches/belch5.ogg differ
diff --git a/sound/vore/belches/belch6.ogg b/sound/vore/belches/belch6.ogg
new file mode 100644
index 0000000000..8e981f3b50
Binary files /dev/null and b/sound/vore/belches/belch6.ogg differ
diff --git a/sound/vore/belches/belch7.ogg b/sound/vore/belches/belch7.ogg
new file mode 100644
index 0000000000..70d5aab6c8
Binary files /dev/null and b/sound/vore/belches/belch7.ogg differ
diff --git a/sound/vore/belches/belch8.ogg b/sound/vore/belches/belch8.ogg
new file mode 100644
index 0000000000..1703c9999d
Binary files /dev/null and b/sound/vore/belches/belch8.ogg differ
diff --git a/sound/vore/belches/belch9.ogg b/sound/vore/belches/belch9.ogg
new file mode 100644
index 0000000000..ffb092b1da
Binary files /dev/null and b/sound/vore/belches/belch9.ogg differ
diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js
index 6404770837..53a9c071de 100644
--- a/tgui/packages/tgui/interfaces/VorePanel.js
+++ b/tgui/packages/tgui/interfaces/VorePanel.js
@@ -163,6 +163,9 @@ const digestModeToPreyMode = {
*
* return tabIndex===4 ? null : (
*
+ * New preference added, noisy_full
+ * noisy_full enables belching when nutrition exceeds 500, very similar to the noisy preference.
+ *
* That's everything so far.
*
*/
@@ -939,6 +942,7 @@ const VoreUserPreferences = (props, context) => {
step_mechanics_active,
pickup_mechanics_active,
noisy,
+ noisy_full,
liq_rec,
liq_giv,
} = data.prefs;
@@ -1074,6 +1078,18 @@ const VoreUserPreferences = (props, context) => {
: "Click here to turn on hunger noises.")}
content={noisy ? "Hunger Noises Enabled" : "Hunger Noises Disabled"} />
+
+