diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 27b0fcfac1..93706ccdb4 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -1324,7 +1324,7 @@
// Puke if toxloss is too high
if(!stat)
- if (getToxLoss() >= 45 && nutrition > 20)
+ if (getToxLoss() >= 45)
spawn vomit()
//0.1% chance of playing a scary sound to someone who's in complete darkness
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index be397a6def..ba5b8fd24c 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -814,38 +814,35 @@ default behaviour is:
return
if(!lastpuke)
-
+ lastpuke = 1
if (nutrition <= 100)
src << "You gag as you want to throw up, but there's nothing in your stomach!"
src.Weaken(10)
- src.adjustToxLoss(3)
- return
-
- lastpuke = 1
- src << "You feel nauseous..."
-
- if(!skip_wait)
- sleep(150) //15 seconds until second warning
- src << "You feel like you are about to throw up!"
- sleep(100) //and you have 10 more for mad dash to the bucket
-
- Stun(5)
- src.visible_message("[src] throws up!","You throw up!")
- playsound(loc, 'sound/effects/splat.ogg', 50, 1)
-
- var/turf/simulated/T = get_turf(src)
- if(istype(T))
- if(blood_vomit)
- T.add_blood_floor(src)
- else
- T.add_vomit_floor(src, 1)
-
- if(blood_vomit)
- if(getBruteLoss() < 50)
- adjustBruteLoss(3)
else
- nutrition -= 40
- adjustToxLoss(-3)
+ src << "You feel nauseous..."
+
+ if(!skip_wait)
+ sleep(150) //15 seconds until second warning
+ src << "You feel like you are about to throw up!"
+ sleep(100) //and you have 10 more for mad dash to the bucket
+
+ Stun(5)
+ src.visible_message("[src] throws up!","You throw up!")
+ playsound(loc, 'sound/effects/splat.ogg', 50, 1)
+
+ var/turf/simulated/T = get_turf(src)
+ if(istype(T))
+ if(blood_vomit)
+ T.add_blood_floor(src)
+ else
+ T.add_vomit_floor(src, 1)
+
+ if(blood_vomit)
+ if(getBruteLoss() < 50)
+ adjustBruteLoss(3)
+ else
+ nutrition -= 40
+ adjustToxLoss(-3)
sleep(350)
lastpuke = 0
diff --git a/html/changelogs/EmperorJon - Vomit.yml b/html/changelogs/EmperorJon - Vomit.yml
new file mode 100644
index 0000000000..48b6b3519e
--- /dev/null
+++ b/html/changelogs/EmperorJon - Vomit.yml
@@ -0,0 +1,15 @@
+# Your name.
+author: Yoshax
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - bugfix: "Having between 25 and 100 nutrition and over 45 toxin damage will no longer cause you to gag ad-infinitum and die. It now respects vomit time restraints."
+ - tweak: "Gagging now occurs only when the mob has no nutrition at all. It no longer causes three toxin damage, only weakens as before."
+ - tweak: "Vomiting and/or gagging from toxins now occurs regardless of nutrition, not only 20+."