diff --git a/GainStation13/code/modules/food_and_drinks/drinks/drinks.dm b/GainStation13/code/modules/food_and_drinks/drinks/drinks.dm
new file mode 100644
index 00000000..626e64fb
--- /dev/null
+++ b/GainStation13/code/modules/food_and_drinks/drinks/drinks.dm
@@ -0,0 +1,26 @@
+////////////////////////////////////////////////////////////////////////////////
+/// GS13 Drinks
+////////////////////////////////////////////////////////////////////////////////
+
+/obj/item/reagent_containers/food/drinks/soda_cans/fizzwiz
+ name = "Fizz Wiz"
+ desc = "Unleash your inner magic!"
+ icon = 'GainStation13/icons/obj/drinks.dmi'
+ lefthand_file = 'GainStation13/icons/obj/food_lefthand.dmi'
+ righthand_file = 'GainStation13/icons/obj/food_righthand.dmi'
+ icon_state = "fizzwiz"
+ list_reagents = list(/datum/reagent/consumable/space_cola = 25, /datum/reagent/consumable/fizulphite = 15)
+ foodtype = SUGAR
+ price = 3
+
+
+/obj/item/reagent_containers/food/drinks/soda_cans/soothseltz
+ name = "Soothing Seltzer"
+ desc = "A useful drink that helps relieve a bloated stomach."
+ icon = 'GainStation13/icons/obj/drinks.dmi'
+ lefthand_file = 'GainStation13/icons/obj/food_lefthand.dmi'
+ righthand_file = 'GainStation13/icons/obj/food_righthand.dmi'
+ icon_state = "soothseltz"
+ list_reagents = list(/datum/reagent/consumable/space_cola = 25, /datum/reagent/consumable/extilphite = 15)
+ foodtype = SUGAR
+ price = 3
diff --git a/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm b/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm
index e77d7ed1..cb556971 100644
--- a/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm
+++ b/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm
@@ -12,3 +12,44 @@
/datum/reagent/consumable/lipoifier/on_mob_life(mob/living/carbon/M)
M.adjust_fatness(10, FATTENING_TYPE_CHEM)
return ..()
+
+
+//BURPY CHEM
+
+/datum/reagent/consumable/fizulphite
+ name = "Fizulphite"
+ description = "A strange chemical that produces large amounts of gas when in contact with organic, typically fleshy environments."
+ color = "#4cffed" // rgb: 102, 99, 0
+ reagent_state = LIQUID
+ taste_description = "fizziness"
+ metabolization_rate = 2 * REAGENTS_METABOLISM
+
+/datum/reagent/consumable/fizulphite/on_mob_life(mob/living/carbon/M)
+ if(M && M?.client?.prefs.weight_gain_chems)
+ M.burpslurring = max(M.burpslurring,50)
+ M.burpslurring += 2
+ else
+ M.burpslurring += 0
+ ..()
+
+//ANTI-BURPY CHEM
+
+/datum/reagent/consumable/extilphite
+ name = "Extilphite"
+ description = "A very useful chemical that helps soothe bloated stomachs."
+ color = "#2aed96"
+ reagent_state = LIQUID
+ taste_description = "smoothness"
+ metabolization_rate = 0.8 * REAGENTS_METABOLISM
+
+/datum/reagent/consumable/extilphite/on_mob_life(mob/living/carbon/M)
+ if(M && M?.client?.prefs.weight_gain_chems)
+ M.burpslurring -= 3
+ else
+ M.burpslurring -= 0
+
+ if(M.fullness>10)
+ M.fullness -= 6
+ else
+ M.fullness -= 0
+ ..()
diff --git a/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm b/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm
index af04badf..79ed2dc7 100644
--- a/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm
+++ b/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm
@@ -1,5 +1,26 @@
+//GS13 - fat chems
+
+
+//WG chem
/datum/chemical_reaction/lipoifier
name = "lipoifier"
id = /datum/reagent/consumable/lipoifier
results = list(/datum/reagent/consumable/lipoifier = 3)
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/cornoil = 1, /datum/reagent/medicine/synthflesh = 1)
+
+
+//BURP CHEM
+
+/datum/chemical_reaction/fizulphite
+ name = "fizulphite"
+ id = /datum/reagent/consumable/fizulphite
+ results = list(/datum/reagent/consumable/fizulphite = 3)
+ required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/nitrogen = 1, /datum/reagent/oxygen = 3)
+
+//ANTI-BURP / ANTI-FULLNESS CHEM
+
+/datum/chemical_reaction/extilphite
+ name = "extilphite"
+ id = /datum/reagent/consumable/extilphite
+ results = list(/datum/reagent/consumable/extilphite = 3)
+ required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/sodium = 2, /datum/reagent/carbon = 2)
diff --git a/GainStation13/code/modules/vending/gatocola.dm b/GainStation13/code/modules/vending/gatocola.dm
index b8d91b9f..a484830e 100644
--- a/GainStation13/code/modules/vending/gatocola.dm
+++ b/GainStation13/code/modules/vending/gatocola.dm
@@ -18,7 +18,8 @@
)
premium = list(
/obj/item/reagent_containers/food/drinks/soda_cans/air = 20,
-
+ /obj/item/reagent_containers/food/drinks/soda_cans/fizzwiz = 5,
+ /obj/item/reagent_containers/food/drinks/soda_cans/soothseltz = 8,
)
refill_canister = /obj/item/vending_refill/mealdor
diff --git a/GainStation13/icons/obj/drinks.dmi b/GainStation13/icons/obj/drinks.dmi
new file mode 100644
index 00000000..d24ee43b
Binary files /dev/null and b/GainStation13/icons/obj/drinks.dmi differ
diff --git a/GainStation13/icons/obj/food_lefthand.dmi b/GainStation13/icons/obj/food_lefthand.dmi
new file mode 100644
index 00000000..b6942354
Binary files /dev/null and b/GainStation13/icons/obj/food_lefthand.dmi differ
diff --git a/GainStation13/icons/obj/food_righthand.dmi b/GainStation13/icons/obj/food_righthand.dmi
new file mode 100644
index 00000000..b758ecd6
Binary files /dev/null and b/GainStation13/icons/obj/food_righthand.dmi differ
diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm
index e9d90e23..8f21bd85 100644
--- a/code/__DEFINES/combat.dm
+++ b/code/__DEFINES/combat.dm
@@ -25,6 +25,7 @@
#define EFFECT_IRRADIATE "irradiate"
#define EFFECT_STUTTER "stutter"
#define EFFECT_SLUR "slur"
+#define EFFECT_BURPSLUR "burpslur" //GS13 - uncontrolled burp effect
#define EFFECT_EYE_BLUR "eye_blur"
#define EFFECT_DROWSY "drowsy"
#define EFFECT_JITTER "jitter"
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 34568594..03c6eea8 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -1019,7 +1019,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "
Citadel Preferences
" //Because fuck me if preferences can't be fucking modularized and expected to update in a reasonable timeframe.
dat += "Arousal:[arousable == TRUE ? "Enabled" : "Disabled"]
"
dat += "Exhibitionist:[features["exhibitionist"] == TRUE ? "Yes" : "No"]
"
- dat += "Voracious MediHound sleepers: [(cit_toggles & MEDIHOUND_SLEEPER) ? "Yes" : "No"]
"
dat += "Hear Vore Sounds: [(cit_toggles & EATING_NOISES) ? "Yes" : "No"]
"
dat += "Hear Vore Digestion Sounds: [(cit_toggles & DIGESTION_NOISES) ? "Yes" : "No"]
"
dat += "Allow trash forcefeeding (requires Trashcan quirk) [(cit_toggles & TRASH_FORCEFEED) ? "Yes" : "No"]
"
diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm
index f5b00200..563f7dd8 100644
--- a/code/modules/mob/living/carbon/carbon_defines.dm
+++ b/code/modules/mob/living/carbon/carbon_defines.dm
@@ -64,3 +64,4 @@
var/drunkenness = 0 //Overall drunkenness - check handle_alcohol() in life.dm for effects
+ var/burpyness = 0 // GS13 - dumb name, I know. Trying to keep it closely related to "drunkenness"
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 89b05771..3aeedfb9 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -812,6 +812,7 @@
remove_all_embedded_objects()
set_heartattack(FALSE)
drunkenness = 0
+ burpyness = 0 //GS13 - lil GS13 addition
for(var/datum/mutation/human/HM in dna.mutations)
if(HM.quality != POSITIVE)
dna.remove_mutation(HM.name)
diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm
index ca11c14d..048fb2a4 100644
--- a/code/modules/mob/living/carbon/life.dm
+++ b/code/modules/mob/living/carbon/life.dm
@@ -624,6 +624,9 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
if(slurring || drunkenness)
slurring = max(slurring-1,0,drunkenness)
+ if(burpslurring)
+ burpslurring = max(burpslurring-1,0)
+
if(cultslurring)
cultslurring = max(cultslurring-1, 0)
diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm
index 60ba3cb7..dd54990c 100644
--- a/code/modules/mob/living/damage_procs.dm
+++ b/code/modules/mob/living/damage_procs.dm
@@ -94,6 +94,8 @@
radiation += max(effect * hit_percent, 0)
if(EFFECT_SLUR)
slurring = max(slurring,(effect * hit_percent))
+ if(EFFECT_BURPSLUR)
+ burpslurring = max(burpslurring,(effect * hit_percent)) //GS13
if(EFFECT_STUTTER)
if((status_flags & CANSTUN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) // stun is usually associated with stutter
stuttering = max(stuttering,(effect * hit_percent))
@@ -107,7 +109,7 @@
return 1
-/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = FALSE, stamina = 0, jitter = 0, kd_stamoverride, kd_stammax)
+/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, burpslur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = FALSE, stamina = 0, jitter = 0, kd_stamoverride, kd_stammax)
if(blocked >= 100)
return 0
if(stun)
@@ -120,6 +122,8 @@
apply_effect(irradiate, EFFECT_IRRADIATE, blocked)
if(slur)
apply_effect(slur, EFFECT_SLUR, blocked)
+ if(burpslur)
+ apply_effect(burpslur, EFFECT_BURPSLUR, blocked) //GS13
if(stutter)
apply_effect(stutter, EFFECT_STUTTER, blocked)
if(eyeblur)
diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm
index 0de4cc2e..8f77323b 100644
--- a/code/modules/mob/living/living_defines.dm
+++ b/code/modules/mob/living/living_defines.dm
@@ -100,6 +100,7 @@
//Speech
var/stuttering = 0
var/slurring = 0
+ var/burpslurring = 0 //GS13
var/cultslurring = 0
var/derpspeech = 0
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index ab9409e2..7694e7f8 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -369,6 +369,9 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
if(slurring)
message = slur(message,slurring)
+ if(burpslurring)
+ message = burpslur(message,burpslurring) //GS13
+
if(cultslurring)
message = cultslur(message)
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index 42048e65..a03d5883 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -104,6 +104,47 @@
. += "[newletter]"
return sanitize(.)
+
+//GS13 - BURP SLURRING, USED IN SOME CHEMS OR EFFECTS
+
+/proc/burpslur(phrase, strength = 50)
+ strength = min(50, strength)
+ phrase = html_decode(phrase)
+ var/leng = length(phrase)
+ . = ""
+ var/newletter = ""
+ var/rawchar = ""
+ for(var/i = 1, i <= leng, i += length(rawchar))
+ rawchar = newletter = phrase[i]
+ if(rand(1,100)<=strength * 0.5)
+ var/lowerletter = lowertext(newletter)
+ if(lowerletter == "o")
+ newletter = " -*BURRP*- "
+ else if(lowerletter == "s")
+ newletter = " -*URP*- "
+ else if(lowerletter == "a")
+ newletter = " -*GWUURRP*- "
+ else if(lowerletter == "u")
+ newletter = " -*BUUUURRP*- "
+ else if(lowerletter == "c")
+ newletter = " -*BURP*- "
+ if(rand(1,100) <= strength * 0.25)
+ if(newletter == " ")
+ newletter = "...*GWWUUARRP*..."
+ else if(newletter == ".")
+ newletter = " -*BWUUARRP*-."
+ switch(rand(1,100) <= strength * 0.5)
+ if(1)
+ newletter += " -*BURRP*- "
+ if(10)
+ newletter += "[newletter]"
+ if(20)
+ newletter += "[newletter][newletter]"
+ . += "[newletter]"
+ return sanitize(.)
+
+/////////////////////////
+
/// Makes you talk like you got cult stunned, which is slurring but with some dark messages
/proc/cultslur(phrase) // Inflicted on victims of a stun talisman
phrase = html_decode(phrase)
diff --git a/tgstation.dme b/tgstation.dme
index 0f6a1b3d..104053fe 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3337,6 +3337,7 @@
#include "GainStation13\code\obj\items\minor_items.dm"
#include "GainStation13\code\obj\structure\scale.dm"
#include "GainStation13\code\obj\weapons\fatoray.dm"
+#include "GainStation13\code\modules\food_and_drinks\drinks\drinks.dm"
#include "hyperstation\code\__DEFINES\economy.dm"
#include "hyperstation\code\__DEFINES\wendigo.dm"
#include "hyperstation\code\controllers\subsystem\economy.dm"