diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 3e014582c94..f327da094f4 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -19,6 +19,8 @@ datum var/list/data = null var/volume = 0 var/nutriment_factor = 0 + var/custom_metabolism = REAGENTS_METABOLISM + var/mildly_toxic = 0 //var/list/viruses = list() var/color = "#000000" // rgb: 0, 0, 0 (does not support alpha channels - yet!) @@ -68,7 +70,14 @@ datum on_mob_life(var/mob/living/M as mob) if(!istype(M, /mob/living)) return //Noticed runtime errors from pacid trying to damage ghosts, this should fix. --NEO - holder.remove_reagent(src.id, REAGENTS_METABOLISM) //By default it slowly disappears. + // Certain elements in too large amounts cause side-effects + + if(mildly_toxic && istype(M, /mob/living/carbon/human/)) + var/mob/living/carbon/human/H = M + if(H.side_effects.len == 0) + M.add_side_effect(pick("Headache", "Bad Stomach", "Itch")) + + holder.remove_reagent(src.id, custom_metabolism) //By default it slowly disappears. return on_move(var/mob/M) @@ -199,6 +208,7 @@ datum description = "A ubiquitous chemical substance that is composed of hydrogen and oxygen." reagent_state = LIQUID color = "#0064C8" // rgb: 0, 100, 200 + custom_metabolism = 0.01 reaction_turf(var/turf/simulated/T, var/volume) if (!istype(T)) return @@ -309,24 +319,28 @@ datum description = "A Toxic chemical." reagent_state = LIQUID color = "#CF3600" // rgb: 207, 54, 0 + custom_metabolism = 0.01 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - M.adjustToxLoss(1.5*REM) + // Toxins are really weak, but without being treated, last very long. + M.adjustToxLoss(0.2) ..() return cyanide + // Fast and lethal name = "Cyanide" id = "cyanide" description = "A highly toxic chemical." reagent_state = LIQUID color = "#CF3600" // rgb: 207, 54, 0 + custom_metabolism = 0.4 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - M.adjustToxLoss(3*REM) - M.adjustOxyLoss(3*REM) + M.adjustToxLoss(4) + M.adjustOxyLoss(4) M.sleeping += 1 ..() return @@ -405,6 +419,8 @@ datum reagent_state = LIQUID color = "#E895CC" // rgb: 232, 149, 204 + custom_metabolism = 0.1 + on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(!data) data = 1 @@ -540,12 +556,17 @@ datum reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 + custom_metabolism = 0.01 + copper name = "Copper" id = "copper" description = "A highly ductile metal." color = "#6E3B08" // rgb: 110, 59, 8 + mildly_toxic = 1 + custom_metabolism = 0.01 + nitrogen name = "Nitrogen" id = "nitrogen" @@ -553,6 +574,9 @@ datum reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 + mildly_toxic = 1 + custom_metabolism = 0.01 + hydrogen name = "Hydrogen" id = "hydrogen" @@ -560,6 +584,9 @@ datum reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 + mildly_toxic = 1 + custom_metabolism = 0.01 + potassium name = "Potassium" id = "potassium" @@ -567,6 +594,10 @@ datum reagent_state = SOLID color = "#A0A0A0" // rgb: 160, 160, 160 + + mildly_toxic = 1 + custom_metabolism = 0.01 + mercury name = "Mercury" id = "mercury" @@ -589,6 +620,9 @@ datum reagent_state = SOLID color = "#BF8C00" // rgb: 191, 140, 0 + mildly_toxic = 1 + custom_metabolism = 0.01 + carbon name = "Carbon" id = "carbon" @@ -596,6 +630,9 @@ datum reagent_state = SOLID color = "#1C1300" // rgb: 30, 20, 0 + mildly_toxic = 1 + custom_metabolism = 0.01 + reaction_turf(var/turf/T, var/volume) src = null if(!istype(T, /turf/space)) @@ -634,6 +671,9 @@ datum reagent_state = SOLID color = "#808080" // rgb: 128, 128, 128 + mildly_toxic = 1 + custom_metabolism = 0.01 + phosphorus name = "Phosphorus" id = "phosphorus" @@ -641,6 +681,9 @@ datum reagent_state = SOLID color = "#832828" // rgb: 131, 40, 40 + mildly_toxic = 1 + custom_metabolism = 0.01 + lithium name = "Lithium" id = "lithium" @@ -826,6 +869,9 @@ datum reagent_state = LIQUID color = "#808080" // rgb: 128, 128, 128 + mildly_toxic = 1 + custom_metabolism = 0.01 + nitroglycerin name = "Nitroglycerin" id = "nitroglycerin" @@ -833,6 +879,9 @@ datum reagent_state = LIQUID color = "#808080" // rgb: 128, 128, 128 + mildly_toxic = 1 + custom_metabolism = 0.01 + radium name = "Radium" id = "radium" @@ -1403,6 +1452,7 @@ datum description = "Synaptizine is used to treat various diseases." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 + custom_metabolism = 0.01 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -1440,6 +1490,7 @@ datum description = "Hyronalin is a medicinal drug used to counter the effect of radiation poisoning." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 + custom_metabolism = 0.05 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -1453,6 +1504,7 @@ datum description = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 + custom_metabolism = 0.05 on_mob_life(var/mob/living/M as mob) if(M.stat == 2.0) @@ -1471,6 +1523,7 @@ datum description = "Alkysine is a drug used to lessen the damage to neurological tissue after a catastrophic injury. Can heal brain tissue." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 + custom_metabolism = 0.05 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -1516,11 +1569,11 @@ datum description = "Hyperzine is a highly effective, long lasting, muscle stimulant." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 + custom_metabolism = 0.03 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(5)) M.emote(pick("twitch","blink_r","shiver")) - holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM) ..() return @@ -1535,9 +1588,9 @@ datum if(!M) M = holder.my_atom if(M.bodytemperature < 170) M.adjustCloneLoss(-1) - M.adjustOxyLoss(-3) - M.heal_organ_damage(3,3) - M.adjustToxLoss(-3) + M.adjustOxyLoss(-1) + M.heal_organ_damage(1,1) + M.adjustToxLoss(-1) ..() return @@ -1564,9 +1617,9 @@ datum description = "An all-purpose antiviral agent." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 + custom_metabolism = 0.01 - on_mob_life(var/mob/living/M as mob)//no more mr. panacea - holder.remove_reagent(src.id, 0.2) + on_mob_life(var/mob/living/M as mob) ..() return @@ -1612,6 +1665,7 @@ datum description = "A powerful hallucinogen. Not a thing to be messed with." reagent_state = LIQUID color = "#B31008" // rgb: 139, 166, 233 + custom_metabolism = 0.05 on_mob_life(var/mob/living/M) if(!M) M = holder.my_atom diff --git a/code/setup.dm b/code/setup.dm index 33202de26f0..bb9989c098e 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -74,7 +74,7 @@ #define HUNGER_FACTOR 0.05 // How many units of reagent are consumed per tick, by default. -#define REAGENTS_METABOLISM 0.4 +#define REAGENTS_METABOLISM 0.2 // By defining the effect multiplier this way, it'll exactly adjust // all effects according to how they originally were with the 0.4 metabolism