Slowed down the rate at which most chemicals are absorbed. This may still need balancing in some areas.

This commit is contained in:
cib
2012-03-04 17:15:43 -08:00
parent 88c8893cdb
commit 4c93cda368
2 changed files with 95 additions and 12 deletions

View File

@@ -362,7 +362,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M:adjustToxLoss(1.5)
M:adjustToxLoss(0.3)
..()
return
@@ -403,6 +403,7 @@ datum
// if(50 to INFINITY)
// M:adjustToxLoss(0.1)
data++
holder.remove_reagent(src.id, 0.1)
..()
return
@@ -602,7 +603,7 @@ datum
if(M.canmove && istype(M.loc, /turf/space))
step(M, pick(cardinal))
if(prob(5)) M:emote(pick("twitch","drool","moan"))
M:adjustToxLoss(1)
M:adjustToxLoss(0.2)
..()
return
@@ -634,7 +635,8 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.take_organ_damage(1, 0)
if(prob(50))
M.take_organ_damage(1, 0)
..()
return
@@ -647,7 +649,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M:adjustToxLoss(1)
M:adjustToxLoss(0.3)
..()
return
@@ -702,7 +704,8 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M:adjustToxLoss(1)
M.take_organ_damage(0, 1)
if(prob(50))
M.take_organ_damage(0, 1)
..()
return
reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
@@ -756,7 +759,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M:adjustToxLoss(1)
M:adjustToxLoss(0.2)
M.take_organ_damage(0, 1)
..()
return
@@ -1209,7 +1212,7 @@ datum
if(M.stat == 2.0)
return
if(!M) M = holder.my_atom
if(prob(33))
if(prob(30))
M.take_organ_damage(1, 0)
M:adjustOxyLoss(3)
if(prob(20)) M:emote("gasp")
@@ -1229,7 +1232,9 @@ datum
if(!M) M = holder.my_atom
if(!data) data = 1
data++
M:heal_organ_damage(0,2)
M:heal_organ_damage(0,1)
if(volume > REAGENTS_OVERDOSE)
M:adjustToxLoss(1)
if(data >= 125)
M:adjustToxLoss(0.1)
..()
@@ -1249,6 +1254,8 @@ datum
if(!data) data = 1
data++
M:heal_organ_damage(0,3)
if(volume > REAGENTS_OVERDOSE)
M:adjustToxLoss(1)
if(data >= 125)
M:adjustToxLoss(0.2)
..()
@@ -1270,6 +1277,8 @@ datum
M:adjustOxyLoss(-2)
if(holder.has_reagent("lexorin"))
holder.remove_reagent("lexorin", 2)
if(volume > REAGENTS_OVERDOSE)
M:adjustToxLoss(1)
if(data >= 125)
M:adjustToxLoss(0.2)
..()
@@ -1291,6 +1300,8 @@ datum
M:oxyloss = 0
if(holder.has_reagent("lexorin"))
holder.remove_reagent("lexorin", 2)
if(volume > REAGENTS_OVERDOSE)
M:adjustToxLoss(1)
if(data >= 50)
M:adjustToxLoss(0.2)
..()
@@ -1311,6 +1322,8 @@ datum
if(M:getBruteLoss() && prob(40)) M:heal_organ_damage(1,0)
if(M:getFireLoss() && prob(40)) M:heal_organ_damage(0,1)
if(M:getToxLoss() && prob(40)) M:adjustToxLoss(-1)
if(volume > REAGENTS_OVERDOSE)
M:adjustToxLoss(1)
..()
return
@@ -1389,6 +1402,8 @@ datum
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
if(prob(60)) M.adjustToxLoss(1)
if(volume > REAGENTS_OVERDOSE)
M:adjustToxLoss(1)
..()
return
@@ -1421,6 +1436,8 @@ datum
if(prob(80)) M:adjustBrainLoss(1)
if(prob(50)) M:drowsyness = max(M:drowsyness, 3)
if(prob(10)) M:emote("drool")
if(volume > REAGENTS_OVERDOSE)
M:adjustToxLoss(1)
if(data >= 50)
M:adjustToxLoss(0.4)
..()
@@ -1436,6 +1453,8 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M:radiation = max(M:radiation-3,0)
if(volume > REAGENTS_OVERDOSE)
M:adjustToxLoss(1)
if(data >= 50)
M:adjustToxLoss(0.2)
..()
@@ -1459,6 +1478,8 @@ datum
if(prob(15))
M.take_organ_damage(1, 0)
..()
if(volume > REAGENTS_OVERDOSE)
M:adjustToxLoss(1)
if(data >= 50)
M:adjustToxLoss(0.3)
return
@@ -1474,6 +1495,8 @@ datum
if(!M) M = holder.my_atom
M:adjustBrainLoss(-3)
M:adjustToxLoss(0.1)
if(volume > REAGENTS_OVERDOSE)
M:adjustToxLoss(1)
..()
return
@@ -1491,6 +1514,8 @@ datum
M:eye_blurry = max(M:eye_blurry-5 , 0)
M:eye_blind = max(M:eye_blind-5 , 0)
M:disabilities &= ~1
if(volume > REAGENTS_OVERDOSE)
M:adjustToxLoss(1)
if(data >= 100)
M:adjustToxLoss(0.2)
..()
@@ -1510,6 +1535,8 @@ datum
if(!data) data = 1
data++
M:heal_organ_damage(2,0)
if(volume > REAGENTS_OVERDOSE)
M:adjustToxLoss(1)
if(data >= 125)
M:adjustToxLoss(0.2)
..()
@@ -1528,6 +1555,8 @@ datum
data++
if(prob(5)) M:emote(pick("twitch","blink_r","shiver"))
holder.remove_reagent(src.id, 0.2)
if(volume > REAGENTS_OVERDOSE)
M:adjustToxLoss(1)
if(data >= 50)
M:adjustToxLoss(0.2)
..()
@@ -1580,6 +1609,8 @@ datum
if(!data) data = 1
data++
holder.remove_reagent(src.id, 0.1)
if(volume > REAGENTS_OVERDOSE)
M:adjustToxLoss(1)
if(data >= 100)
M:adjustToxLoss(0.1)
return
@@ -1593,7 +1624,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M:adjustToxLoss(2)
M:adjustToxLoss(1)
..()
return
@@ -1773,7 +1804,7 @@ datum
M:sleeping += 1
if(51 to INFINITY)
M:sleeping += 1
M:adjustToxLoss(data - 50)
M:adjustToxLoss(2)
..()
return
@@ -1795,7 +1826,7 @@ datum
M:sleeping += 1
if(51 to INFINITY)
M:sleeping += 1
M:adjustToxLoss(data - 50)
M:adjustToxLoss(2)
data++
..()
return
@@ -2596,6 +2627,8 @@ datum
if (!M:confused) M:confused = 1
M:confused += 2
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2615,6 +2648,7 @@ datum
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2634,6 +2668,7 @@ datum
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2654,6 +2689,7 @@ datum
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2673,6 +2709,7 @@ datum
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2692,6 +2729,7 @@ datum
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2734,6 +2772,7 @@ datum
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2753,6 +2792,7 @@ datum
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2772,6 +2812,7 @@ datum
M.slurring += 3
else if(data >= 145 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2825,6 +2866,7 @@ datum
M.slurring += 3
else if(data >= 115 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2844,6 +2886,7 @@ datum
M.slurring += 5
else if(data >= 90 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2863,6 +2906,7 @@ datum
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2918,6 +2962,7 @@ datum
if(data >= 40 && prob(33))
if (!M:confused) M:confused = 1
M:confused += 2
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2939,6 +2984,7 @@ datum
switch(data)
if(51 to INFINITY)
M:sleeping += 1
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2959,6 +3005,7 @@ datum
M.slurring += 3
else if(data >= 90)
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2978,6 +3025,7 @@ datum
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -2997,6 +3045,7 @@ datum
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3016,6 +3065,7 @@ datum
M.slurring += 3
else if(data >= 135 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3035,6 +3085,7 @@ datum
M.slurring += 3
else if(data >= 135 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3054,6 +3105,7 @@ datum
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3073,6 +3125,7 @@ datum
M.slurring += 3
else if(data >= 135 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3092,6 +3145,7 @@ datum
M.slurring += 3
else if(data >= 135 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3111,6 +3165,7 @@ datum
M.slurring += 3
else if(data >= 165 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3130,6 +3185,7 @@ datum
M.slurring += 3
else if(data >= 165 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3149,6 +3205,7 @@ datum
M.slurring += 4
else if(data >= 165 && prob(33))
M.confused = max(M:confused+4,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3168,6 +3225,7 @@ datum
M.slurring += 3
else if(data >= 165 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3189,6 +3247,7 @@ datum
M.confused = max(M:confused+3,0)
else if(data >=55)
M.druggy = max(M.druggy, 55)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3208,6 +3267,7 @@ datum
M.slurring += 3
else if(data >= 145 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3227,6 +3287,7 @@ datum
M.slurring += 3
else if(data >= 165 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3248,6 +3309,7 @@ datum
M.slurring += 3
else if(data >= 165 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3268,6 +3330,7 @@ datum
M.slurring += 3
else if(data >= 165 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3305,6 +3368,7 @@ datum
M.slurring += 3
else if(data >= 145 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3324,6 +3388,7 @@ datum
M.slurring += 3
else if(data >= 115 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3343,6 +3408,7 @@ datum
M.slurring += 3
else if(data >= 165 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3362,6 +3428,7 @@ datum
M.slurring += 4
else if(data >= 60 && prob(40))
M.confused = max(M:confused+5,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3381,6 +3448,7 @@ datum
M.slurring += 4
else if(data >= 90 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3400,6 +3468,7 @@ datum
M.slurring += 3
else if(data >= 150 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3419,6 +3488,7 @@ datum
M.slurring += 3
else if(data >= 150 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3438,6 +3508,7 @@ datum
M.slurring += 3
else if(data >= 115 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3457,6 +3528,7 @@ datum
M.slurring += 3
else if(data >= 115 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3477,6 +3549,7 @@ datum
M.slurring += 3
else if(data >= 115 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3496,6 +3569,7 @@ datum
M.slurring += 3
else if(data >= 115 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3515,6 +3589,7 @@ datum
M.slurring += 5
else if(data >= 115 && prob(33))
M.confused = max(M:confused+5,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3534,6 +3609,7 @@ datum
M.slurring += 5
else if(data >= 115 && prob(33))
M.confused = max(M:confused+5,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3553,6 +3629,7 @@ datum
M.slurring += 4
else if(data >= 115 && prob(30))
M.confused = max(M:confused+4,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3572,6 +3649,7 @@ datum
M.slurring += 10
else if(data >= 115 && prob(90))
M.confused = max(M:confused+10,10)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3591,6 +3669,7 @@ datum
M.slurring += 3
else if(data >= 115 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3610,6 +3689,7 @@ datum
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3631,6 +3711,7 @@ datum
M.confused = max(M:confused+2,0)
if (M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature-5)
holder.remove_reagent(src.id, 0.2)
..()
return
@@ -3650,6 +3731,7 @@ datum
M.slurring += 15
else if(data >= 115 && prob(33))
M.confused = max(M:confused+15,15)
holder.remove_reagent(src.id, 0.2)
..()
return

View File

@@ -20,7 +20,8 @@
// Factor of how fast mob nutrition decreases
#define HUNGER_FACTOR 0.1
#define REAGENTS_METABOLISM 0.4
#define REAGENTS_METABOLISM 0.05
#define REAGENTS_OVERDOSE 30
#define MINIMUM_AIR_RATIO_TO_SUSPEND 0.05
//Minimum ratio of air that must move to/from a tile to suspend group processing