diff --git a/code/WorkInProgress/virus2/Disease2/base.dm b/code/WorkInProgress/virus2/Disease2/base.dm
index 5ccff0caf64..932d34a8420 100644
--- a/code/WorkInProgress/virus2/Disease2/base.dm
+++ b/code/WorkInProgress/virus2/Disease2/base.dm
@@ -192,7 +192,7 @@
stage = 3
maxm = 3
activate(var/mob/living/carbon/mob,var/multiplier)
- mob.toxloss += (2*multiplier)
+ mob.adjustToxLoss(2*multiplier)
/datum/disease2/effect/scream
name = "Random screaming syndrome"
@@ -261,7 +261,7 @@
name = "Toxification syndrome"
stage = 4
activate(var/mob/living/carbon/mob,var/multiplier)
- mob.toxloss += 15
+ mob.adjustToxLoss(15)
/*
/datum/disease2/effect/hallucinations
name = "Hallucinational Syndrome"
diff --git a/code/WorkInProgress/virus2/Disease2/cureimplanter.dm b/code/WorkInProgress/virus2/Disease2/cureimplanter.dm
index a6b484a2397..52247d995ef 100644
--- a/code/WorkInProgress/virus2/Disease2/cureimplanter.dm
+++ b/code/WorkInProgress/virus2/Disease2/cureimplanter.dm
@@ -35,8 +35,8 @@
if(M.virus2)
M.virus2.cure_added(resistance)
else if(works == 1)
- M.toxloss += rand(20,50)
+ M.adjustToxLoss(rand(20,50))
else if(works == 2)
- M.toxloss += rand(50,100)
+ M.adjustToxLoss(rand(50,100))
else if(works == 3)
infect_virus2(M,virus2,1)
diff --git a/code/datums/diseases/alien_embryo.dm b/code/datums/diseases/alien_embryo.dm
index 5e74eee0cec..1008c7f54b4 100644
--- a/code/datums/diseases/alien_embryo.dm
+++ b/code/datums/diseases/alien_embryo.dm
@@ -51,11 +51,11 @@
if(prob(2))
affected_mob << "\red Your stomach hurts."
if(prob(20))
- affected_mob.toxloss += 1
+ affected_mob.adjustToxLoss(1)
affected_mob.updatehealth()
if(5)
affected_mob << "\red You feel something tearing its way out of your stomach..."
- affected_mob.toxloss += 10
+ affected_mob.adjustToxLoss(10)
affected_mob.updatehealth()
if(prob(40))
ASSERT(gibbed == 0)
diff --git a/code/datums/diseases/appendicitis.dm b/code/datums/diseases/appendicitis.dm
index 949a6fbcc5a..2bc6032bca6 100644
--- a/code/datums/diseases/appendicitis.dm
+++ b/code/datums/diseases/appendicitis.dm
@@ -22,7 +22,7 @@
if(prob(3))
affected_mob << "\red You feel a stabbing pain in your abdomen!"
affected_mob.stunned = rand(2,3)
- affected_mob.toxloss += 1
+ affected_mob.adjustToxLoss(1)
if(3)
if(prob(1))
if (affected_mob.nutrition > 100)
@@ -32,8 +32,8 @@
if (istype(location, /turf/simulated))
location.add_vomit_floor(affected_mob)
affected_mob.nutrition -= 95
- affected_mob:toxloss = max(affected_mob:getToxLoss()-1,0)
+ affected_mob:adjustToxLoss(-1)
else
affected_mob << "\red You gag as you want to throw up, but there's nothing in your stomach!"
affected_mob.weakened += 10
- affected_mob.toxloss += 3
\ No newline at end of file
+ affected_mob.adjustToxLoss(3)
\ No newline at end of file
diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm
index 473f024073e..a96dd660d1a 100644
--- a/code/datums/diseases/brainrot.dm
+++ b/code/datums/diseases/brainrot.dm
@@ -36,7 +36,7 @@
if(prob(2))
affected_mob << "\red Your try to remember something important...but can't."
/* if(prob(10))
- affected_mob.toxloss +=3
+ affected_mob.adjustToxLoss(3)
affected_mob.updatehealth()
if(prob(2))
affected_mob << "\red Your head hurts." */
@@ -46,7 +46,7 @@
if(prob(2))
affected_mob.emote("drool")
/* if(prob(15))
- affected_mob.toxloss +=4
+ affected_mob.adjustToxLoss(4)
affected_mob.updatehealth()
if(prob(2))
affected_mob << "\red Your head hurts." */
diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm
index 92ea7c5057e..3712ad2d25d 100644
--- a/code/datums/diseases/dna_spread.dm
+++ b/code/datums/diseases/dna_spread.dm
@@ -29,7 +29,7 @@
if(prob(1))
affected_mob << "\red Your stomach hurts."
if(prob(20))
- affected_mob.toxloss += 2
+ affected_mob.adjustToxLoss(2)
affected_mob.updatehealth()
if(4)
if(!src.transformed)
diff --git a/code/datums/diseases/flu.dm b/code/datums/diseases/flu.dm
index ee8a5d8d387..13f9e04d666 100644
--- a/code/datums/diseases/flu.dm
+++ b/code/datums/diseases/flu.dm
@@ -30,7 +30,7 @@
if(prob(1))
affected_mob << "\red Your stomach hurts."
if(prob(20))
- affected_mob.toxloss += 1
+ affected_mob.adjustToxLoss(1)
affected_mob.updatehealth()
if(3)
@@ -49,6 +49,6 @@
if(prob(1))
affected_mob << "\red Your stomach hurts."
if(prob(20))
- affected_mob.toxloss += 1
+ affected_mob.adjustToxLoss(1)
affected_mob.updatehealth()
return
diff --git a/code/datums/diseases/gbs.dm b/code/datums/diseases/gbs.dm
index 62091b7715c..ceddf45117f 100644
--- a/code/datums/diseases/gbs.dm
+++ b/code/datums/diseases/gbs.dm
@@ -16,7 +16,7 @@
switch(stage)
if(2)
if(prob(45))
- affected_mob.toxloss += 5
+ affected_mob.adjustToxLoss(5)
affected_mob.updatehealth()
if(prob(1))
affected_mob.emote("sneeze")
@@ -30,7 +30,7 @@
if(4)
if(prob(10))
affected_mob.emote("cough")
- affected_mob.toxloss += 5
+ affected_mob.adjustToxLoss(5)
affected_mob.updatehealth()
if(5)
affected_mob << "\red Your body feels as if it's trying to rip itself open..."
diff --git a/code/datums/diseases/rhumba_beat.dm b/code/datums/diseases/rhumba_beat.dm
index 06afd7278e3..8e70770a4a4 100644
--- a/code/datums/diseases/rhumba_beat.dm
+++ b/code/datums/diseases/rhumba_beat.dm
@@ -19,7 +19,7 @@
if(affected_mob.ckey == "rosham")
src.cure()
if(prob(45))
- affected_mob.toxloss += 5
+ affected_mob.adjustToxLoss(5)
affected_mob.updatehealth()
if(prob(1))
affected_mob << "\red You feel strange..."
@@ -39,7 +39,7 @@
affected_mob.emote("gasp")
affected_mob << "\red You feel a burning beat inside..."
if(prob(20))
- affected_mob.toxloss += 5
+ affected_mob.adjustToxLoss(5)
affected_mob.updatehealth()
if(5)
if(affected_mob.ckey == "rosham")
diff --git a/code/datums/diseases/robotic_transformation.dm b/code/datums/diseases/robotic_transformation.dm
index bd0e2b07bd4..f4363435e90 100644
--- a/code/datums/diseases/robotic_transformation.dm
+++ b/code/datums/diseases/robotic_transformation.dm
@@ -49,7 +49,7 @@
affected_mob << "\red You can feel... something...inside you."
if(5)
affected_mob <<"\red Your skin feels as if it's about to burst off..."
- affected_mob.toxloss += 10
+ affected_mob.adjustToxLoss(10)
affected_mob.updatehealth()
if(prob(40)) //So everyone can feel like robot Seth Brundle
ASSERT(src.gibbed == 0)
diff --git a/code/datums/diseases/xeno_transformation.dm b/code/datums/diseases/xeno_transformation.dm
index 92dfe91c534..90d6d656ea8 100644
--- a/code/datums/diseases/xeno_transformation.dm
+++ b/code/datums/diseases/xeno_transformation.dm
@@ -49,7 +49,7 @@
affected_mob << "\red You can feel... something...inside you."
if(5)
affected_mob <<"\red Your skin feels impossibly calloused..."
- affected_mob.toxloss += 10
+ affected_mob.adjustToxLoss(10)
affected_mob.updatehealth()
if(prob(40))
ASSERT(gibbed == 0)
diff --git a/code/datums/spells/inflict_handler.dm b/code/datums/spells/inflict_handler.dm
index c22c49f2bd9..03c6685c25a 100644
--- a/code/datums/spells/inflict_handler.dm
+++ b/code/datums/spells/inflict_handler.dm
@@ -40,7 +40,7 @@
target.heal_overall_damage(amt_dam_brute,0)
else if (amt_dam_fire <= 0)
target.heal_overall_damage(amt_dam_brute,amt_dam_fire)
- target.toxloss += amt_dam_tox
+ target.adjustToxLoss(amt_dam_tox)
target.oxyloss += amt_dam_oxy
//disabling
target.weakened += amt_weaken
diff --git a/code/defines/mob/mob.dm b/code/defines/mob/mob.dm
index f0353d0ec04..56575936ce6 100644
--- a/code/defines/mob/mob.dm
+++ b/code/defines/mob/mob.dm
@@ -450,6 +450,10 @@ the mob is also allowed to move without any sort of restriction. For instance, i
/mob/proc/getCloneLoss()
return cloneloss
+/mob/proc/adjustToxLoss(var/amount)
+ toxloss = max(toxloss + amount, 0)
+
+
// Standard for setting hasn't been agreed upon yet.
@@ -461,13 +465,6 @@ the mob is also allowed to move without any sort of restriction. For instance, i
/mob/proc/setOxyLoss(var/T)
oxyloss = T
-
-
-/mob/proc/setToxLoss(var/T)
- toxloss = T
-
-
-
/mob/proc/setFireLoss(var/T)
fireloss = T
diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm
index 7b390a14da8..b052f56c7fe 100644
--- a/code/game/atom_procs.dm
+++ b/code/game/atom_procs.dm
@@ -894,7 +894,7 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl
)
C.oxyloss = max(0, C.oxyloss-25)
- C.toxloss = max(0, C.toxloss-25)
+ C.adjustToxLoss(-25)
if(istype(C, /mob/living/carbon/human))
// ------- YOUR TARGET IS HUMAN -------
diff --git a/code/game/dna.dm b/code/game/dna.dm
index 7404cbea1ef..47dab89e77a 100644
--- a/code/game/dna.dm
+++ b/code/game/dna.dm
@@ -392,7 +392,7 @@
connected = null
O.name = text("monkey ([])",copytext(md5(M.real_name), 2, 6))
O.take_overall_damage(M.getBruteLoss() + 40, M.fireloss)
- O.toxloss += (M.getToxLoss() + 20)
+ O.adjustToxLoss(M.getToxLoss() + 20)
O.oxyloss += M.getOxyLoss()
O.stat = M.stat
O.a_intent = "hurt"
@@ -467,7 +467,7 @@
i++
updateappearance(O,O.dna.uni_identity)
O.take_overall_damage(M.getBruteLoss(), M.fireloss)
- O.toxloss += M.getToxLoss()
+ O.adjustToxLoss(M.getToxLoss())
O.oxyloss += M.getOxyLoss()
O.stat = M.stat
for (var/obj/item/weapon/implant/I in implants)
diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm
index d452b5eaa0c..e5de5447612 100644
--- a/code/game/machinery/computer/aifixer.dm
+++ b/code/game/machinery/computer/aifixer.dm
@@ -124,7 +124,7 @@
while (src.occupant.health < 100)
src.occupant.oxyloss = max (src.occupant.getOxyLoss()-1, 0)
src.occupant.fireloss = max (src.occupant.fireloss-1, 0)
- src.occupant.toxloss = max (src.occupant.getToxLoss()-1, 0)
+ src.occupant.adjustToxLoss(-1)
src.occupant.bruteloss = max (src.occupant.getBruteLoss()-1, 0)
src.occupant.updatehealth()
if (src.occupant.health >= 0 && src.occupant.stat == 2)
diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm
index d9a1f10f716..924bbfdfc25 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -174,7 +174,7 @@
//severe damage should heal waaay slower without proper chemicals
if(occupant.bodytemperature < 225)
if (occupant.getToxLoss())
- occupant.toxloss = max(0, occupant.getToxLoss() - min(1, 20/occupant.getToxLoss()))
+ occupant.adjustToxLoss(max(-1, -20/occupant.getToxLoss()))
var/heal_brute = occupant.getBruteLoss() ? min(1, 20/occupant.getBruteLoss()) : 0
var/heal_fire = occupant.fireloss ? min(1, 20/occupant.fireloss) : 0
occupant.heal_organ_damage(heal_brute,heal_fire)
diff --git a/code/modules/chemical/Chemistry-Reagents.dm b/code/modules/chemical/Chemistry-Reagents.dm
index df45f769bcd..8152683ca91 100644
--- a/code/modules/chemical/Chemistry-Reagents.dm
+++ b/code/modules/chemical/Chemistry-Reagents.dm
@@ -88,7 +88,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(prob(10))
M << "\red Your insides are burning!"
- M.toxloss+=rand(20,60)
+ M.adjustToxLoss(rand(20,60))
else if(prob(40))
M:heal_organ_damage(5,0)
..()
@@ -250,7 +250,7 @@ datum
T.wet_overlay = null
for(var/mob/living/carbon/metroid/M in T)
- M.toxloss+=rand(15,20)
+ M.adjustToxLoss(rand(15,20))
var/hotspot = (locate(/obj/effect/hotspot) in T)
if(hotspot && !istype(T, /turf/space))
@@ -324,7 +324,7 @@ datum
holder.remove_reagent("carpotoxin", 1)
if(holder.has_reagent("zombiepowder"))
holder.remove_reagent("zombiepowder", 0.5)
- M:toxloss = max(M:getToxLoss()-2,0)
+ M:adjustToxLoss(-2)
..()
return
@@ -337,7 +337,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M:toxloss += 1.5
+ M:adjustToxLoss(1.5)
..()
return
@@ -350,7 +350,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M:toxloss += 3
+ M:adjustToxLoss(3)
M:oxyloss += 3
M:sleeping += 1
..()
@@ -580,7 +580,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M:toxloss++
+ M:adjustToxLoss(1)
..()
return
@@ -633,7 +633,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M:toxloss++
+ M:adjustToxLoss(1)
M.take_organ_damage(0, 1)
..()
return
@@ -687,7 +687,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M:toxloss++
+ M:adjustToxLoss(1)
M.take_organ_damage(0, 1)
..()
return
@@ -856,7 +856,7 @@ datum
M.crit_op_stage = 0.0
if (method==INGEST)
usr << "Well, that was stupid."
- M:toxloss += 3
+ M:adjustToxLoss(3)
return
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -958,7 +958,7 @@ datum
return
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M:toxloss += 1
+ M:adjustToxLoss(1)
..()
return
@@ -982,7 +982,7 @@ datum
del(C)
for(var/mob/living/carbon/metroid/M in T)
- M.toxloss+=rand(5,10)
+ M.adjustToxLoss(rand(5,10))
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
M.clean_blood()
@@ -1016,7 +1016,7 @@ datum
/* Don't know if this is necessary.
on_mob_life(var/mob/living/carbon/M)
if(!M) M = holder.my_atom
- M:toxloss += 3.0
+ M:adjustToxLoss(3.0)
..()
return
*/
@@ -1035,9 +1035,9 @@ datum
src = null
if(istype(M, /mob/living/carbon))
if(!M.wear_mask) // If not wearing a mask
- M:toxloss += 2 // 4 toxic damage per application, doubled for some reason
+ M:adjustToxLoss(2) // 4 toxic damage per application, doubled for some reason
if(istype(M,/mob/living/carbon/human) && M:mutantrace == "plant") //plantmen take a LOT of damage
- M:toxloss += 10
+ M:adjustToxLoss(10)
//if(prob(10))
//M.make_dizzy(1) doesn't seem to do anything
@@ -1053,7 +1053,7 @@ datum
if(!M) M = holder.my_atom
if(holder.has_reagent("inaprovaline"))
holder.remove_reagent("inaprovaline", 2)
- M:toxloss++
+ M:adjustToxLoss(1)
..()
return
reaction_obj(var/obj/O, var/volume)
@@ -1202,7 +1202,7 @@ datum
if(M:getOxyLoss() && prob(40)) M:oxyloss--
if(M:getBruteLoss() && prob(40)) M:heal_organ_damage(1,0)
if(M:fireloss && prob(40)) M:heal_organ_damage(0,1)
- if(M:getToxLoss() && prob(40)) M:toxloss--
+ if(M:getToxLoss() && prob(40)) M:adjustToxLoss(-1)
..()
return
@@ -1219,7 +1219,7 @@ datum
M:oxyloss = 0
M:radiation = 0
M:heal_organ_damage(5,5)
- if(M:getToxLoss()) M:toxloss = max(0, M:getToxLoss()-5)
+ if(M:getToxLoss()) M:adjustToxLoss(-5)
if(holder.has_reagent("toxin"))
holder.remove_reagent("toxin", 5)
if(holder.has_reagent("stoxin"))
@@ -1280,7 +1280,7 @@ datum
if(M:paralysis) M:paralysis--
if(M:stunned) M:stunned--
if(M:weakened) M:weakened--
- if(prob(60)) M:toxloss++
+ if(prob(60)) M:adjustToxLoss(1)
..()
return
@@ -1326,7 +1326,7 @@ datum
return //See above, down and around. --Agouri
if(!M) M = holder.my_atom
M:radiation = max(M:radiation-7,0)
- if(M:getToxLoss()) M:toxloss--
+ if(M:getToxLoss()) M:adjustToxLoss(-1)
if(prob(15))
M.take_organ_damage(1, 0)
..()
@@ -1403,7 +1403,7 @@ datum
if(M:cloneloss) M:cloneloss = max(0, M:cloneloss-1)
if(M:getOxyLoss()) M:oxyloss = max(0, M:getOxyLoss()-3)
M:heal_organ_damage(3,3)
- if(M:getToxLoss()) M:toxloss = max(0, M:getToxLoss()-3)
+ if(M:getToxLoss()) M:adjustToxLoss(-3)
..()
return
@@ -1420,7 +1420,7 @@ datum
if(M:cloneloss) M:cloneloss = max(0, M:cloneloss-3)
if(M:getOxyLoss()) M:oxyloss = max(0, M:getOxyLoss()-3)
M:heal_organ_damage(3,3)
- if(M:getToxLoss()) M:toxloss = max(0, M:getToxLoss()-3)
+ if(M:getToxLoss()) M:adjustToxLoss(-3)
..()
return
@@ -1445,7 +1445,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M:toxloss += 2
+ M:adjustToxLoss(2)
..()
return
@@ -1458,7 +1458,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M:oxyloss += 0.5
- M:toxloss += 0.5
+ M:adjustToxLoss(0.5)
M:weakened = max(M:weakened, 10)
M:silent = max(M:silent, 10)
..()
@@ -1587,7 +1587,7 @@ datum
M:sleeping += 1
if(51 to INFINITY)
M:sleeping += 1
- M:toxloss += (data - 50)
+ M:adjustToxLoss(data - 50)
..()
return
@@ -1609,7 +1609,7 @@ datum
M:sleeping += 1
if(51 to INFINITY)
M:sleeping += 1
- M:toxloss += (data - 50)
+ M:adjustToxLoss(data - 50)
data++
..()
return
@@ -1640,7 +1640,7 @@ datum
M.jitteriness += rand(0, 5)
M.dizziness = max (0, (M.dizziness - rand(0, 15)))
M.druggy = max (0, (M.druggy - rand(0, 15)))
- M.toxloss = max (0, (M.getToxLoss() - rand(5, 15)))
+ M.adjustToxLoss(rand(-15, -5)))
M.updatehealth()
*/
..()
@@ -1701,7 +1701,7 @@ datum
reaction_turf(var/turf/simulated/T, var/volume)
for(var/mob/living/carbon/metroid/M in T)
- M.toxloss+=rand(15,30)
+ M.adjustToxLoss(rand(15,30))
sodiumchloride
name = "Table Salt"
@@ -1753,7 +1753,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M:toxloss++
+ M:adjustToxLoss(1)
..()
return
@@ -1960,7 +1960,7 @@ datum
on_mob_life(var/mob/living/M as mob)
M:nutrition += nutriment_factor
if(!M) M = holder.my_atom
- if(M:getToxLoss() && prob(20)) M:toxloss--
+ if(M:getToxLoss() && prob(20)) M:adjustToxLoss(-1)
M:nutrition++
..()
return
@@ -2014,7 +2014,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M:nutrition += nutriment_factor
- M:toxloss += 1
+ M:adjustToxLoss(1)
..()
return
@@ -2168,7 +2168,7 @@ datum
M:jitteriness = max(0,M:jitteriness-3)
M:sleeping = 0
if(M:getToxLoss() && prob(20))
- M:toxloss--
+ M:adjustToxLoss(-1)
if (M.bodytemperature < 310) //310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature+5)
..()
@@ -2205,7 +2205,7 @@ datum
M:drowsyness = max(0,M:drowsyness-1)
M:sleeping = 0
if(M:getToxLoss() && prob(20))
- M:toxloss--
+ M:adjustToxLoss(-1)
if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature-5)
return
@@ -3033,7 +3033,7 @@ datum
if(M:getOxyLoss() && prob(50)) M:oxyloss -= 2
if(M:getBruteLoss() && prob(60)) M:heal_organ_damage(2,0)
if(M:fireloss && prob(50)) M:heal_organ_damage(0,2)
- if(M:getToxLoss() && prob(50)) M:toxloss -= 2
+ if(M:getToxLoss() && prob(50)) M:adjustToxLoss(-2)
if(M.dizziness !=0) M.dizziness = max(0,M.dizziness-15)
if(M.confused !=0) M.confused = max(0,M.confused - 5)
..()
diff --git a/code/modules/mob/living/blob/blob.dm b/code/modules/mob/living/blob/blob.dm
index 84c61a0f7df..754a0cef0e5 100644
--- a/code/modules/mob/living/blob/blob.dm
+++ b/code/modules/mob/living/blob/blob.dm
@@ -67,7 +67,7 @@
blob_act()
src << "The blob attempts to reabsorb you."
- toxloss += 20
+ adjustToxLoss(20)
return
diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
index ec1bb65084e..81fa6ab7b39 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
@@ -24,7 +24,7 @@ Doesn't work on other aliens/AI.*/
set category = "Alien"
if(powerc(50,1))
- toxloss -= 50
+ adjustToxLoss(-50)
for(var/mob/O in viewers(src, null))
O.show_message(text("\green [src] has planted some alien weeds!"), 1)
new /obj/effect/alien/weeds/node(loc)
@@ -36,7 +36,7 @@ Doesn't work on other aliens/AI.*/
set category = "Alien"
if(powerc(5))
- toxloss -= 5
+ adjustToxLoss(-5)
for(var/obj/item/clothing/mask/facehugger/F in range(8,src))
F.GoActive()
emote("roar")
@@ -48,7 +48,7 @@ Doesn't work on other aliens/AI.*/
set category = "Alien"
if(powerc(10))
- toxloss -= 10
+ adjustToxLoss(-10)
var/msg = sanitize(input("Message:", "Alien Whisper") as text|null)
if(msg)
log_say("AlienWhisper: [key_name(src)]->[M.key] : [msg]")
@@ -66,8 +66,8 @@ Doesn't work on other aliens/AI.*/
if (amount)
if(powerc(amount))
if (get_dist(src,M) <= 1)
- M.toxloss += amount
- toxloss -= amount
+ M.adjustToxLoss(amount)
+ adjustToxLoss(-amount)
M << "\green [src] has transfered [amount] plasma to you."
src << {"\green You have trasferred [amount] plasma to [M]"}
else
@@ -101,7 +101,7 @@ I kind of like the right click only--the window version can get a little confusi
if(!A == "Abort Command")
if(powerc(200))//Check 2.
if(A in view(1))//Check 3.
- toxloss -= 200
+ adjustToxLoss(-200)
A.acid(src)
else
src << "\green Target is too far away."
@@ -115,7 +115,7 @@ I kind of like the right click only--the window version can get a little confusi
if(istype(O, /obj))
if(powerc(200))
if(!O.unacidable)
- toxloss -= 200
+ adjustToxLoss(-200)
O.acid()
else//So the aliens don't destroy energy fields/singularies/other aliens/etc with their acid.
src << "\green You cannot destroy this object."
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
index d79ceb9d19a..a812626b651 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
@@ -23,7 +23,7 @@
set category = "Alien"
if(powerc(500))
- toxloss -= 500
+ adjustToxLoss(-500)
src << "\green You begin to evolve!"
for(var/mob/O in viewers(src, null))
O.show_message(text("\green [src] begins to twist and contort!"), 1)
@@ -40,7 +40,7 @@
set category = "Alien"
if(powerc(100))
- toxloss -= 100
+ adjustToxLoss(-100)
var/choice = input("Choose what you wish to shape.","Resin building") as anything in list("resin wall","resin membrane") //would do it through typesof but then the player choice would have the type path and we don't want the internal workings to be exposed ICly - Urist
src << "\green You shape a [choice]."
for(var/mob/O in viewers(src, null))
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
index 50bbc47c680..ec396649eff 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
@@ -66,7 +66,7 @@
//If there are alien weeds on the ground then heal if needed or give some toxins
if(locate(/obj/effect/alien/weeds) in loc)
if(health >= 150)
- toxloss += 5
+ adjustToxLoss(5)
if(getToxLoss() > max_plasma)
toxloss = max_plasma
@@ -166,7 +166,7 @@
set category = "Alien"
if(powerc(50))
- toxloss -= 50
+ adjustToxLoss(-50)
alien_invis = 1.0
src << "\green You are now invisible."
for(var/mob/O in oviewers(src, null))
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
index 2cc8166bce3..40e669c0487 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
@@ -66,7 +66,7 @@
//If there are alien weeds on the ground then heal if needed or give some toxins
if(locate(/obj/effect/alien/weeds) in loc)
if(health >= 125)
- toxloss += 10
+ adjustToxLoss(10)
if(getToxLoss() > max_plasma)
toxloss = max_plasma
@@ -170,7 +170,7 @@
if(isalien(target))
src << "\green Your allies are not a valid target."
return
- toxloss -= 50
+ adjustToxLoss(-50)
src << "\green You spit neurotoxin at [target]."
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm
index 9c565e06539..a6f08cee3f7 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/life.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm
@@ -149,12 +149,12 @@
if(1 to 49)
src.radiation--
if(prob(25))
- src.toxloss++
+ src.adjustToxLoss(1)
src.updatehealth()
if(50 to 74)
src.radiation -= 2
- src.toxloss++
+ src.adjustToxLoss(1)
if(prob(5))
src.radiation -= 5
src.weakened = 3
@@ -164,7 +164,7 @@
if(75 to 100)
src.radiation -= 3
- src.toxloss += 3
+ src.adjustToxLoss(3)
if(prob(1))
src << "\red You mutate!"
randmutb(src)
@@ -267,7 +267,7 @@
if(Toxins_pp) // Detect toxins in air
- toxloss += breath.toxins*250
+ adjustToxLoss(breath.toxins*250)
toxins_alert = max(toxins_alert, 1)
toxins_used = breath.toxins
@@ -295,7 +295,7 @@
//If there are alien weeds on the ground then heal if needed or give some toxins
if(locate(/obj/effect/alien/weeds) in loc)
if(health >= 100)
- toxloss += 15
+ adjustToxLoss(15)
if(getToxLoss() > max_plasma)
toxloss = max_plasma
diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
index c491e3f5f67..72bcf28ad6d 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
@@ -69,7 +69,7 @@
//If there are alien weeds on the ground then heal if needed or give some toxins
if(locate(/obj/effect/alien/weeds) in loc)
if(health >= 250)
- toxloss += 20
+ adjustToxLoss(20)
if(getToxLoss() > max_plasma)
toxloss = max_plasma
else
@@ -172,7 +172,7 @@
return
if(powerc(50,1))//Can't plant eggs on spess tiles. That's silly.
- toxloss -= 200
+ adjustToxLoss(-200)
for(var/mob/O in viewers(src, null))
O.show_message(text("\green [src] has laid an egg!"), 1)
new /obj/effect/alien/egg(loc)
diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm
index f6586579cb7..f42624d3c3b 100644
--- a/code/modules/mob/living/carbon/alien/larva/life.dm
+++ b/code/modules/mob/living/carbon/alien/larva/life.dm
@@ -129,12 +129,12 @@
if(1 to 49)
radiation--
if(prob(25))
- toxloss++
+ adjustToxLoss(1)
updatehealth()
if(50 to 74)
radiation -= 2
- toxloss++
+ adjustToxLoss(1)
if(prob(5))
radiation -= 5
weakened = 3
@@ -144,7 +144,7 @@
if(75 to 100)
radiation -= 3
- toxloss += 3
+ adjustToxLoss(3)
updatehealth()
update_mind()
@@ -248,7 +248,7 @@
if(Toxins_pp) // Detect toxins in air
- toxloss += breath.toxins*250
+ adjustToxLoss(breath.toxins*250)
toxins_alert = max(toxins_alert, 1)
toxins_used = breath.toxins
@@ -276,7 +276,7 @@
//If there are alien weeds on the ground then heal if needed or give some toxins
if(locate(/obj/effect/alien/weeds) in loc)
if(health >= 25)
- toxloss += 5
+ adjustToxLoss(5)
else
bruteloss -= 5
fireloss -= 5
diff --git a/code/modules/mob/living/carbon/brain/life.dm b/code/modules/mob/living/carbon/brain/life.dm
index bd9277fa59b..1713e449595 100644
--- a/code/modules/mob/living/carbon/brain/life.dm
+++ b/code/modules/mob/living/carbon/brain/life.dm
@@ -62,12 +62,12 @@
if(1 to 49)
radiation--
if(prob(25))
- toxloss++
+ adjustToxLoss(1)
updatehealth()
if(50 to 74)
radiation -= 2
- toxloss++
+ adjustToxLoss(1)
if(prob(5))
radiation -= 5
weakened = 3
@@ -77,7 +77,7 @@
if(75 to 100)
radiation -= 3
- toxloss += 3
+ adjustToxLoss(3)
if(prob(1))
src << "\red You mutate!"
randmutb(src)
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index c6a6b28e2b5..4bbe1663bf5 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -190,12 +190,12 @@
if(1 to 49)
radiation--
if(prob(25))
- toxloss++
+ adjustToxLoss(1)
updatehealth()
if(50 to 74)
radiation -= 2
- toxloss++
+ adjustToxLoss(1)
if(prob(5))
radiation -= 5
weakened = 3
@@ -205,7 +205,7 @@
if(75 to 100)
radiation -= 3
- toxloss += 3
+ adjustToxLoss(3)
if(prob(1))
src << "\red You mutate!"
randmutb(src)
@@ -369,7 +369,7 @@
if(Toxins_pp > safe_toxins_max) // Too much toxins
var/ratio = breath.toxins/safe_toxins_max
- toxloss += min(ratio, 10) //Limit amount of damage toxin exposure can do per second
+ adjustToxLoss(min(ratio, 10)) //Limit amount of damage toxin exposure can do per second
toxins_alert = max(toxins_alert, 1)
else
toxins_alert = 0
@@ -605,8 +605,8 @@
heal_overall_damage(0,1)
if(getBruteLoss())
heal_overall_damage(1,0)
- if(getToxLoss())
- toxloss--
+ adjustToxLoss(-1)
+
if(getOxyLoss())
oxyloss--
diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm
index df3db674bbd..a82fa389ac6 100644
--- a/code/modules/mob/living/carbon/metroid/life.dm
+++ b/code/modules/mob/living/carbon/metroid/life.dm
@@ -417,7 +417,7 @@
if(prob(30))
if(getOxyLoss()>0) oxyloss = max(getOxyLoss()-1, 0)
- if(getToxLoss()>0) toxloss = max(getToxLoss()-1, 0)
+ if(getToxLoss()>0) adjustToxLoss(-1)
if(fireloss>0) fireloss = max(fireloss-1,0)
if(cloneloss>0) cloneloss = max(cloneloss-1,0)
if(getBruteLoss()>0) bruteloss = max(getBruteLoss()-1,0)
@@ -486,7 +486,7 @@
nutrition = 0
if(prob(75))
- toxloss+=rand(0,5)
+ adjustToxLoss(rand(0,5))
else
if(istype(src, /mob/living/carbon/metroid/adult))
diff --git a/code/modules/mob/living/carbon/metroid/powers.dm b/code/modules/mob/living/carbon/metroid/powers.dm
index 2073eae04f3..1bdc2b05190 100644
--- a/code/modules/mob/living/carbon/metroid/powers.dm
+++ b/code/modules/mob/living/carbon/metroid/powers.dm
@@ -72,12 +72,12 @@
if(istype(M, /mob/living/carbon))
Victim.cloneloss += rand(1,10)
- Victim.toxloss += rand(1,2)
+ Victim.adjustToxLoss(rand(1,2))
if(Victim.health <= 0)
- Victim.toxloss += rand(2,4)
+ Victim.adjustToxLoss(rand(2,4))
if(getToxLoss() > 0)
- toxloss = max(0, getToxLoss()-10)
+ adjustToxLoss(-10)
if(getOxyLoss() > 0)
oxyloss = max(0, getOxyLoss()-10)
diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm
index cd8e4f7c56b..9b9afb40841 100644
--- a/code/modules/mob/living/carbon/monkey/life.dm
+++ b/code/modules/mob/living/carbon/monkey/life.dm
@@ -149,12 +149,12 @@
if(1 to 49)
src.radiation--
if(prob(25))
- src.toxloss++
+ src.adjustToxLoss(1)
src.updatehealth()
if(50 to 74)
src.radiation -= 2
- src.toxloss++
+ src.adjustToxLoss(1)
if(prob(5))
src.radiation -= 5
src.weakened = 3
@@ -164,7 +164,7 @@
if(75 to 100)
src.radiation -= 3
- src.toxloss += 3
+ src.adjustToxLoss(3)
if(prob(1))
src << "\red You mutate!"
randmutb(src)
@@ -316,7 +316,7 @@
if(Toxins_pp > safe_toxins_max) // Too much toxins
var/ratio = breath.toxins/safe_toxins_max
- toxloss += min(ratio, 10) //Limit amount of damage toxin exposure can do per second
+ adjustToxLoss(min(ratio, 10)) //Limit amount of damage toxin exposure can do per second
toxins_alert = max(toxins_alert, 1)
else
toxins_alert = 0
diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm
index f9cb220c086..43dde57f83b 100644
--- a/code/modules/mob/living/damage_procs.dm
+++ b/code/modules/mob/living/damage_procs.dm
@@ -17,7 +17,7 @@
if(mutations & COLD_RESISTANCE) damage = 0
fireloss += (damage/(blocked+1))
if(TOX)
- toxloss += (damage/(blocked+1))
+ adjustToxLoss(damage/(blocked+1))
if(OXY)
oxyloss += (damage/(blocked+1))
if(CLONE)