Bugfix: Fix metabolism rates for foods, drinks and sleep toxins.

This commit is contained in:
cib
2013-01-16 02:55:23 +01:00
parent e8a4dd33c5
commit e181b90ca2
+82 -50
View File
@@ -2,6 +2,7 @@
#define LIQUID 2
#define GAS 3
#define REAGENTS_OVERDOSE 30
#define FOOD_METABOLISM 0.4
//The reaction procs must ALWAYS set src = null, this detaches the proc from the object (the reagent)
//so that it can continue working when the reagent is deleted while the proc is still active.
@@ -310,25 +311,25 @@ datum
if(!M) M = holder.my_atom
M.drowsyness = max(M.drowsyness-2*REAGENTS_EFFECT_MULTIPLIER, 0)
if(holder.has_reagent("toxin"))
holder.remove_reagent("toxin", 2*REAGENTS_EFFECT_MULTIPLIER)
holder.remove_reagent("toxin", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("stoxin"))
holder.remove_reagent("stoxin", 2*REAGENTS_EFFECT_MULTIPLIER)
holder.remove_reagent("stoxin", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("plasma"))
holder.remove_reagent("plasma", 1*REAGENTS_EFFECT_MULTIPLIER)
holder.remove_reagent("plasma", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("sacid"))
holder.remove_reagent("sacid", 1*REAGENTS_EFFECT_MULTIPLIER)
holder.remove_reagent("sacid", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("cyanide"))
holder.remove_reagent("cyanide", 1*REAGENTS_EFFECT_MULTIPLIER)
holder.remove_reagent("cyanide", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("amatoxin"))
holder.remove_reagent("amatoxin", 2*REAGENTS_EFFECT_MULTIPLIER)
holder.remove_reagent("amatoxin", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("chloralhydrate"))
holder.remove_reagent("chloralhydrate", 5*REAGENTS_EFFECT_MULTIPLIER)
holder.remove_reagent("chloralhydrate", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("carpotoxin"))
holder.remove_reagent("carpotoxin", 1*REAGENTS_EFFECT_MULTIPLIER)
holder.remove_reagent("carpotoxin", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("zombiepowder"))
holder.remove_reagent("zombiepowder", 0.5*REAGENTS_EFFECT_MULTIPLIER)
holder.remove_reagent("zombiepowder", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("mindbreaker"))
holder.remove_reagent("mindbreaker", 2*REAGENTS_EFFECT_MULTIPLIER)
holder.remove_reagent("mindbreaker", 10*REAGENTS_METABOLISM)
M.hallucination = max(0, M.hallucination - 5*REAGENTS_EFFECT_MULTIPLIER)
M.adjustToxLoss(-2*REAGENTS_EFFECT_MULTIPLIER)
..()
@@ -359,6 +360,8 @@ datum
M.adjustToxLoss(3*REAGENTS_EFFECT_MULTIPLIER)
M.adjustOxyLoss(3*REAGENTS_EFFECT_MULTIPLIER)
M.sleeping += 1
// Sleep toxins should always be consumed pretty fast
holder.remove_reagent(src.id, 0.1)
..()
return
@@ -428,6 +431,8 @@ datum
M.stuttering = 0
M.confused = 0
M.jitteriness = 0
// Sleep toxins should always be consumed pretty fast
holder.remove_reagent(src.id, 0.1)
..()
return
@@ -933,12 +938,13 @@ datum
id = "virusfood"
description = "A mixture of water, milk, and oxygen. Virus cells can use this mixture to reproduce."
reagent_state = LIQUID
nutriment_factor = 2 * REAGENTS_METABOLISM
nutriment_factor = 2 * FOOD_METABOLISM
color = "#899613" // rgb: 137, 150, 19
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.nutrition += nutriment_factor*REAGENTS_EFFECT_MULTIPLIER
holder.remove_reagent(src.id, FOOD_METABOLISM)
..()
return
@@ -1160,7 +1166,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(holder.has_reagent("inaprovaline"))
holder.remove_reagent("inaprovaline", 2*REAGENTS_EFFECT_MULTIPLIER)
holder.remove_reagent("inaprovaline", 10*REAGENTS_METABOLISM)
M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER)
..()
return
@@ -1279,7 +1285,7 @@ datum
if(!M) M = holder.my_atom
M.adjustOxyLoss(-2*REAGENTS_EFFECT_MULTIPLIER)
if(holder.has_reagent("lexorin"))
holder.remove_reagent("lexorin", 2*REAGENTS_EFFECT_MULTIPLIER)
holder.remove_reagent("lexorin", 10*REAGENTS_METABOLISM)
..()
return
@@ -1296,7 +1302,7 @@ datum
if(!M) M = holder.my_atom
M.adjustOxyLoss(-M.getOxyLoss())
if(holder.has_reagent("lexorin"))
holder.remove_reagent("lexorin", 2*REAGENTS_EFFECT_MULTIPLIER)
holder.remove_reagent("lexorin", 10*REAGENTS_METABOLISM)
..()
return
@@ -1396,7 +1402,7 @@ datum
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
if(holder.has_reagent("mindbreaker"))
holder.remove_reagent("mindbreaker", 5)
holder.remove_reagent("mindbreaker", 10*REAGENTS_METABOLISM)
M.hallucination = max(0, M.hallucination - 10*REAGENTS_EFFECT_MULTIPLIER)
if(prob(60)) M.adjustToxLoss(1)
..()
@@ -1713,6 +1719,9 @@ datum
if(61 to INFINITY)
M.sleeping += 1
M.adjustToxLoss((data - 50) * REAGENTS_EFFECT_MULTIPLIER)
// Sleep toxins should always be consumed pretty fast
holder.remove_reagent(src.id, 0.1)
..()
return
@@ -1736,6 +1745,8 @@ datum
M.sleeping += 1
M.adjustToxLoss(data - 50)
data++
// Sleep toxins should always be consumed pretty fast
holder.remove_reagent(src.id, 0.1)
..()
return
@@ -1748,12 +1759,13 @@ datum
id = "nutriment"
description = "All the vitamins, minerals, and carbohydrates the body needs in pure form."
reagent_state = SOLID
nutriment_factor = 15 * REAGENTS_METABOLISM
nutriment_factor = 15 * FOOD_METABOLISM
color = "#664330" // rgb: 102, 67, 48
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.nutrition += nutriment_factor // For hunger and fatness
holder.remove_reagent(src.id, FOOD_METABOLISM)
..()
return
@@ -1761,21 +1773,21 @@ datum
name = "Coco Powder"
id = "coco"
description = "A fatty, bitter paste made from coco beans."
nutriment_factor = 5 * REAGENTS_METABOLISM
nutriment_factor = 5 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
sprinkles
name = "Sprinkles"
id = "sprinkles"
description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
syndicream
name = "Cream filling"
id = "syndicream"
description = "Delicious cream filling of a mysterious origin. Tastes criminally good."
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#AB7878" // rgb: 171, 120, 120
cornoil
@@ -1783,7 +1795,7 @@ datum
id = "cornoil"
description = "An oil derived from various types of corn."
reagent_state = LIQUID
nutriment_factor = 20 * REAGENTS_METABOLISM
nutriment_factor = 20 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
reaction_turf(var/turf/simulated/T, var/volume)
@@ -1817,7 +1829,7 @@ datum
name = "Dry Ramen"
id = "dry_ramen"
description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water."
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
hot_ramen
@@ -1825,7 +1837,7 @@ datum
id = "hot_ramen"
description = "The noodles are boiled, the flavors are artificial, just like being back in school."
reagent_state = LIQUID
nutriment_factor = 5 * REAGENTS_METABOLISM
nutriment_factor = 5 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob)
@@ -1839,7 +1851,7 @@ datum
id = "hell_ramen"
description = "The noodles are boiled, the flavors are artificial, just like being back in school."
reagent_state = LIQUID
nutriment_factor = 5 * REAGENTS_METABOLISM
nutriment_factor = 5 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob)
@@ -1851,7 +1863,7 @@ datum
name = "flour"
id = "flour"
description = "This is what you rub all over yourself to pretend to be a ghost."
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#FFFFFF" // rgb: 0, 0, 0
reaction_turf(var/turf/T, var/volume)
@@ -1864,7 +1876,7 @@ datum
id = "cherryjelly"
description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
reagent_state = LIQUID
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#801E28" // rgb: 128, 30, 40
//Drugs
@@ -1917,7 +1929,7 @@ datum
id = "lipozine"
description = "A chemical compound that causes a powerful fat-burning reaction."
reagent_state = LIQUID
nutriment_factor = 10 * REAGENTS_METABOLISM
nutriment_factor = 10 * FOOD_METABOLISM
color = "#BBEDA4" // rgb: 187, 237, 164
on_mob_life(var/mob/living/M as mob)
@@ -1934,7 +1946,7 @@ datum
id = "soysauce"
description = "A salty sauce made from the soy plant."
reagent_state = LIQUID
nutriment_factor = 2 * REAGENTS_METABOLISM
nutriment_factor = 2 * FOOD_METABOLISM
color = "#792300" // rgb: 121, 35, 0
ketchup
@@ -1942,7 +1954,7 @@ datum
id = "ketchup"
description = "Ketchup, catsup, whatever. It's tomato paste."
reagent_state = LIQUID
nutriment_factor = 5 * REAGENTS_METABOLISM
nutriment_factor = 5 * FOOD_METABOLISM
color = "#731008" // rgb: 115, 16, 8
sodiumchloride
@@ -1981,7 +1993,7 @@ datum
if(1 to 15)
M.bodytemperature += 5 * TEMPERATURE_DAMAGE_COEFFICIENT
if(holder.has_reagent("frostoil"))
holder.remove_reagent("frostoil", 5)
holder.remove_reagent("frostoil", 10*REAGENTS_METABOLISM)
if(istype(M, /mob/living/carbon/metroid))
M.bodytemperature += rand(5,20)
if(15 to 25)
@@ -2067,7 +2079,7 @@ datum
if(1 to 15)
M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT
if(holder.has_reagent("capsaicin"))
holder.remove_reagent("capsaicin", 5)
holder.remove_reagent("capsaicin", 10*REAGENTS_METABOLISM)
if(istype(M, /mob/living/carbon/metroid))
M.bodytemperature -= rand(5,20)
if(15 to 25)
@@ -2101,11 +2113,12 @@ datum
id = "coco"
description = "A fatty, bitter paste made from coco beans."
reagent_state = SOLID
nutriment_factor = 5 * REAGENTS_METABOLISM
nutriment_factor = 5 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..()
return
@@ -2114,13 +2127,14 @@ datum
id = "hot_coco"
description = "Made with love! And coco beans."
reagent_state = LIQUID
nutriment_factor = 2 * REAGENTS_METABOLISM
nutriment_factor = 2 * FOOD_METABOLISM
color = "#403010" // rgb: 64, 48, 16
on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..()
return
@@ -2173,15 +2187,17 @@ datum
name = "Sprinkles"
id = "sprinkles"
description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
if(istype(M, /mob/living/carbon/human) && M.job in list("Security Officer", "Head of Security", "Detective", "Warden"))
if(!M) M = holder.my_atom
M.heal_organ_damage(1,1)
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..()
return
..()
@@ -2190,16 +2206,18 @@ datum
name = "Cream filling"
id = "syndicream"
description = "Delicious cream filling of a mysterious origin. Tastes criminally good."
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#AB7878" // rgb: 171, 120, 120
on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
if(istype(M, /mob/living/carbon/human) && M.mind)
if(M.mind.special_role)
if(!M) M = holder.my_atom
M.heal_organ_damage(1,1)
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..()
return
..()
@@ -2209,11 +2227,12 @@ datum
id = "cornoil"
description = "An oil derived from various types of corn."
reagent_state = LIQUID
nutriment_factor = 20 * REAGENTS_METABOLISM
nutriment_factor = 20 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..()
return
reaction_turf(var/turf/simulated/T, var/volume)
@@ -2255,11 +2274,12 @@ datum
id = "dry_ramen"
description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water."
reagent_state = SOLID
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..()
return
@@ -2268,11 +2288,12 @@ datum
id = "hot_ramen"
description = "The noodles are boiled, the flavors are artificial, just like being back in school."
reagent_state = LIQUID
nutriment_factor = 5 * REAGENTS_METABOLISM
nutriment_factor = 5 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature + (10 * TEMPERATURE_DAMAGE_COEFFICIENT))
..()
@@ -2283,11 +2304,12 @@ datum
id = "hell_ramen"
description = "The noodles are boiled, the flavors are artificial, just like being back in school."
reagent_state = LIQUID
nutriment_factor = 5 * REAGENTS_METABOLISM
nutriment_factor = 5 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT
..()
return
@@ -2297,11 +2319,12 @@ datum
id = "flour"
description = "This is what you rub all over yourself to pretend to be a ghost."
reagent_state = SOLID
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#FFFFFF" // rgb: 0, 0, 0
on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..()
return
@@ -2315,11 +2338,12 @@ datum
id = "cherryjelly"
description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
reagent_state = LIQUID
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#801E28" // rgb: 128, 30, 40
on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..()
return
@@ -2332,7 +2356,7 @@ datum
id = "drink"
description = "Uh, some kind of drink."
reagent_state = LIQUID
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#E78108" // rgb: 231, 129, 8
var/adj_dizzy = 0
var/adj_drowsy = 0
@@ -2342,12 +2366,15 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
if (adj_dizzy) M.dizziness = max(0,M.dizziness + adj_dizzy)
if (adj_drowsy) M.drowsyness = max(0,M.drowsyness + adj_drowsy)
if (adj_sleepy) M.sleeping = max(0,M.sleeping + adj_sleepy)
if (adj_temp)
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature + (25 * TEMPERATURE_DAMAGE_COEFFICIENT))
// Drinks should be used up faster than other reagents.
holder.remove_reagent(src.id, FOOD_METABOLISM)
..()
return
@@ -2448,7 +2475,7 @@ datum
name = "Potato Juice"
id = "potato"
description = "Juice of the potato. Bleh."
nutriment_factor = 2 * REAGENTS_METABOLISM
nutriment_factor = 2 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
milk
@@ -2460,7 +2487,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(M.getBruteLoss() && prob(20)) M.heal_organ_damage(1,0)
if(holder.has_reagent("capsaicin"))
holder.remove_reagent("capsaicin", 2)
holder.remove_reagent("capsaicin", 10*REAGENTS_METABOLISM)
..()
return
@@ -2480,7 +2507,7 @@ datum
name = "Hot Chocolate"
id = "hot_coco"
description = "Made with love! And coco beans."
nutriment_factor = 2 * REAGENTS_METABOLISM
nutriment_factor = 2 * FOOD_METABOLISM
color = "#403010" // rgb: 64, 48, 16
adj_temp = 5
@@ -2498,7 +2525,9 @@ datum
..()
M.make_jittery(5)
if(adj_temp > 0 && holder.has_reagent("frostoil"))
holder.remove_reagent("frostoil", 5)
holder.remove_reagent("frostoil", 10*REAGENTS_METABOLISM)
holder.remove_reagent(src.id, 0.1)
return
icecoffee
@@ -2704,6 +2733,7 @@ datum
on_mob_life(var/mob/living/M as mob)
M:nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
if(!src.data) data = 1
src.data++
@@ -2749,7 +2779,7 @@ datum
name = "Beer"
id = "beer"
description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
nutriment_factor = 2 * REAGENTS_METABOLISM
nutriment_factor = 2 * FOOD_METABOLISM
color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
..()
@@ -2877,6 +2907,7 @@ datum
on_mob_life(var/mob/living/M as mob)
..()
M:nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
M:drowsyness = max(0,M:drowsyness-7)
//if(!M:sleeping_willingly)
// M:sleeping = max(0,M.sleeping-2)
@@ -3026,11 +3057,12 @@ datum
id = "doctorsdelight"
description = "A gulp a day keeps the MediBot away. That's probably for the best."
reagent_state = LIQUID
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
M:nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
if(!M) M = holder.my_atom
if(M:getOxyLoss() && prob(50)) M:adjustOxyLoss(-2)
if(M:getBruteLoss() && prob(60)) M:heal_organ_damage(2,0)
@@ -3296,14 +3328,14 @@ datum
name = "Banana Mama"
id = "bananahonk"
description = "A drink from Clown Heaven."
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#664300" // rgb: 102, 67, 0
silencer
name = "Silencer"
id = "silencer"
description = "A drink from Mime Heaven."
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#664300" // rgb: 102, 67, 0
changelingsting
@@ -3348,5 +3380,5 @@ datum
name = "Driest Martini"
id = "driestmartini"
description = "Only for the experienced. You think you see sand floating in the glass."
nutriment_factor = 1 * REAGENTS_METABOLISM
nutriment_factor = 1 * FOOD_METABOLISM
color = "#2E6671" // rgb: 46, 102, 113