diff --git a/code/modules/mob/living/carbon/breathe.dm b/code/modules/mob/living/carbon/breathe.dm
index d11043ebf77..c14e6350831 100644
--- a/code/modules/mob/living/carbon/breathe.dm
+++ b/code/modules/mob/living/carbon/breathe.dm
@@ -13,10 +13,10 @@
//First, check if we can breathe at all
if(health < config.health_threshold_crit && !(CE_STABLE in chem_effects)) //crit aka circulatory shock
- losebreath++
+ AdjustLosebreath(1)
if(losebreath>0) //Suffocating so do not take a breath
- losebreath--
+ AdjustLosebreath(-1)
if (prob(10)) //Gasp per 10 ticks? Sounds about right.
spawn emote("gasp")
else
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 6063526c897..ceb06bf3893 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -860,6 +860,12 @@
resting = max(resting + amount,0)
return
+/mob/proc/AdjustLosebreath(amount)
+ losebreath = Clamp(0, losebreath + amount, 25)
+
+/mob/proc/SetLosebreath(amount)
+ losebreath = Clamp(0, amount, 25)
+
/mob/proc/get_species()
return ""
diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm
index 890ff2e8732..492ec9cb05a 100644
--- a/code/modules/mob/mob_grab.dm
+++ b/code/modules/mob/mob_grab.dm
@@ -277,7 +277,7 @@
msg_admin_attack("[key_name(assailant)] strangled (kill intent) [key_name(affecting)]")
affecting.setClickCooldown(10)
- affecting.losebreath += 1
+ affecting.AdjustLosebreath(1)
affecting.set_dir(WEST)
adjust_position()
diff --git a/code/modules/organs/internal/lungs.dm b/code/modules/organs/internal/lungs.dm
index c00d5df7a83..c42167f1311 100644
--- a/code/modules/organs/internal/lungs.dm
+++ b/code/modules/organs/internal/lungs.dm
@@ -19,7 +19,7 @@
owner.drip(10)
if(prob(8))
spawn owner.emote("me", 1, "gasps for air!")
- owner.losebreath += 15
+ owner.AdjustLosebreath(15)
/obj/item/organ/internal/lungs/proc/rupture()
var/obj/item/organ/external/parent = owner.get_organ(parent_organ)
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
index d61ace5b17f..aced9105d7a 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
@@ -356,11 +356,11 @@
if(alien == IS_SKRELL)
M.take_organ_damage(2.4 * removed, 0)
if(M.losebreath < 10)
- M.losebreath++
+ M.AdjustLosebreath(1)
else
M.take_organ_damage(3 * removed, 0)
if(M.losebreath < 15)
- M.losebreath++
+ M.AdjustLosebreath(1)
/datum/reagent/mutagen
name = "Unstable mutagen"
@@ -524,7 +524,7 @@
/datum/reagent/chloralhydrate/overdose(var/mob/living/carbon/M, var/alien, var/removed)
..()
- M.losebreath = (min(M.losebreath + 1, 10))
+ M.SetLosebreath(10)
M.adjustOxyLoss(removed * overdose_mod)
/datum/reagent/chloralhydrate/beer2 //disguised as normal beer for use by emagged brobots
diff --git a/code/modules/surgery/face.dm b/code/modules/surgery/face.dm
index a0ad788bdd9..f9c6a6b2855 100644
--- a/code/modules/surgery/face.dm
+++ b/code/modules/surgery/face.dm
@@ -43,7 +43,7 @@
user.visible_message("[user]'s hand slips, slicing [target]'s throat wth \the [tool]!" , \
"Your hand slips, slicing [target]'s throat wth \the [tool]!" )
affected.createwound(CUT, 60)
- target.losebreath += 10
+ target.AdjustLosebreath(10)
/datum/surgery_step/face/mend_vocal
allowed_tools = list(
@@ -71,7 +71,7 @@
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
user.visible_message("[user]'s hand slips, clamping [target]'s trachea shut for a moment with \the [tool]!", \
"Your hand slips, clamping [user]'s trachea shut for a moment with \the [tool]!")
- target.losebreath += 10
+ target.AdjustLosebreath(10)
/datum/surgery_step/face/fix_face
allowed_tools = list(
diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm
index 9dc0f658361..562cc8e380b 100644
--- a/code/modules/surgery/organs_internal.dm
+++ b/code/modules/surgery/organs_internal.dm
@@ -120,7 +120,7 @@
if(I.organ_tag == O_EYES)
target.sdisabilities &= ~BLIND
if(I.organ_tag == O_LUNGS)
- target.losebreath = 0
+ target.SetLosebreath(0)
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)