diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index c3bb679b08..cb50cf6a0d 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -105,6 +105,8 @@ "Your chilly flesh stands out in goosebumps." ) + var/metabolic_rate = 1 + // HUD data vars. var/datum/hud_data/hud var/hud_type diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 64cbd4a32c..29d997cde5 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -19,6 +19,7 @@ var/list/data = null var/volume = 0 var/metabolism = REM // This would be 0.2 normally + var/mrate_static = FALSE //If the reagent should always process at the same speed, regardless of species, make this TRUE var/ingest_met = 0 var/touch_met = 0 var/dose = 0 @@ -60,6 +61,8 @@ if(overdose && (volume > overdose) && (location != CHEM_TOUCH)) overdose(M, alien) var/removed = metabolism + if(!mrate_static == TRUE) + removed *= M.species.metabolic_rate if(ingest_met && (location == CHEM_INGEST)) removed = ingest_met if(touch_met && (location == CHEM_TOUCH)) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm index fcabfa811c..96aa1c238d 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm @@ -4,6 +4,7 @@ id = "blood" reagent_state = LIQUID metabolism = REM * 5 + mrate_static = TRUE color = "#C80000" glass_name = "tomato juice" @@ -75,6 +76,7 @@ id = "antibodies" reagent_state = LIQUID color = "#0050F0" + mrate_static = TRUE /datum/reagent/antibodies/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) if(src.data) @@ -89,6 +91,7 @@ reagent_state = LIQUID color = "#0064C877" metabolism = REM * 10 + mrate_static = TRUE glass_name = "water" glass_desc = "The father of all refreshments." diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm index 89837746c3..617fb31e58 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm @@ -12,6 +12,7 @@ reagent_state = SOLID color = "#1C1300" ingest_met = REM * 5 + mrate_static = TRUE /datum/reagent/carbon/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) if(alien == IS_DIONA) @@ -66,6 +67,8 @@ var/targ_temp = 310 var/halluci = 0 + mrate_static = TRUE + glass_name = "ethanol" glass_desc = "A well-known alcohol with a variety of applications." diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index 525309f93b..33f42c3eb0 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -6,6 +6,7 @@ description = "All the vitamins, minerals, and carbohydrates the body needs in pure form." reagent_state = SOLID metabolism = REM * 4 + mrate_static = TRUE var/nutriment_factor = 30 // Per unit var/injectable = 0 color = "#664330" diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm index 2cb1bcaa5b..3f6a499ee0 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm @@ -8,6 +8,7 @@ color = "#00BFFF" overdose = REAGENTS_OVERDOSE * 2 metabolism = REM * 0.5 + mrate_static = TRUE scannable = 1 /datum/reagent/inaprovaline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) @@ -91,6 +92,7 @@ description = "Dexalin Plus is used in the treatment of oxygen deprivation. It is highly effective." reagent_state = LIQUID color = "#0040FF" + mrate_static = TRUE //Until it's not crazy strong, at least overdose = REAGENTS_OVERDOSE * 0.5 scannable = 1 @@ -123,6 +125,7 @@ reagent_state = LIQUID color = "#8080FF" metabolism = REM * 0.5 + mrate_static = TRUE scannable = 1 /datum/reagent/cryoxadone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) @@ -139,6 +142,7 @@ reagent_state = LIQUID color = "#80BFFF" metabolism = REM * 0.5 + mrate_static = TRUE scannable = 1 /datum/reagent/clonexadone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) @@ -159,6 +163,7 @@ overdose = 60 scannable = 1 metabolism = 0.02 + mrate_static = TRUE /datum/reagent/paracetamol/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) M.add_chemical_effect(CE_PAINKILLER, 50) @@ -176,6 +181,7 @@ overdose = 30 scannable = 1 metabolism = 0.02 + mrate_static = TRUE /datum/reagent/tramadol/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) M.add_chemical_effect(CE_PAINKILLER, 80) @@ -192,6 +198,7 @@ color = "#800080" overdose = 20 metabolism = 0.02 + mrate_static = TRUE /datum/reagent/oxycodone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) M.add_chemical_effect(CE_PAINKILLER, 200) @@ -311,6 +318,7 @@ reagent_state = LIQUID color = "#FF3300" metabolism = REM * 0.3 + mrate_static = TRUE overdose = REAGENTS_OVERDOSE * 0.5 /datum/reagent/hyperzine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) @@ -376,6 +384,7 @@ reagent_state = LIQUID color = "#C1C1C1" metabolism = REM * 0.05 + mrate_static = TRUE overdose = REAGENTS_OVERDOSE scannable = 1 @@ -430,6 +439,7 @@ reagent_state = LIQUID color = "#BF80BF" metabolism = 0.01 + mrate_static = TRUE data = 0 /datum/reagent/methylphenidate/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) @@ -450,6 +460,7 @@ reagent_state = LIQUID color = "#FF80FF" metabolism = 0.01 + mrate_static = TRUE data = 0 /datum/reagent/citalopram/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) @@ -470,6 +481,7 @@ reagent_state = LIQUID color = "#FF80BF" metabolism = 0.01 + mrate_static = TRUE data = 0 /datum/reagent/paroxetine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm index 92d09d1e18..7a94e64ac6 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm @@ -111,6 +111,7 @@ reagent_state = LIQUID color = "#C8A5DC" affects_dead = 1 //This can even heal dead people. + mrate_static = TRUE //Just in case glass_name = "liquid gold" glass_desc = "It's magic. We don't have to explain it." @@ -182,6 +183,7 @@ description = "Adrenaline is a hormone used as a drug to treat cardiac arrest and other cardiac dysrhythmias resulting in diminished or absent cardiac output." reagent_state = LIQUID color = "#C8A5DC" + mrate_static = TRUE /datum/reagent/adrenaline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) if(alien == IS_DIONA) @@ -195,6 +197,7 @@ id = "holywater" description = "An ashen-obsidian-water mix, this solution will alter certain sections of the brain's rationality." color = "#E0E8EF" + mrate_static = TRUE glass_name = "holy water" glass_desc = "An ashen-obsidian-water mix, this solution will alter certain sections of the brain's rationality." diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm index 0d83a5725c..dd31ac05e4 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm @@ -7,6 +7,7 @@ reagent_state = LIQUID color = "#CF3600" metabolism = REM * 0.25 // 0.05 by default. Hopefully enough to get some help, or die horribly, whatever floats your boat + mrate_static = TRUE var/strength = 4 // How much damage it deals per unit /datum/reagent/toxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)