mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-17 13:42:44 +00:00
34 lines
1019 B
Plaintext
34 lines
1019 B
Plaintext
/datum/reagents/metabolism
|
|
var/metabolism_class //CHEM_TOUCH, CHEM_INGEST, or CHEM_BLOOD
|
|
var/metabolism_speed = 1 // Multiplicative, 1 is full speed, 0.5 is half, etc.
|
|
var/mob/living/carbon/parent
|
|
|
|
/datum/reagents/metabolism/New(var/max = 100, mob/living/carbon/parent_mob, var/met_class = null)
|
|
..(max, parent_mob)
|
|
|
|
if(met_class)
|
|
metabolism_class = met_class
|
|
if(istype(parent_mob))
|
|
parent = parent_mob
|
|
|
|
/datum/reagents/metabolism/proc/metabolize()
|
|
|
|
var/metabolism_type = 0 //non-human mobs
|
|
if(ishuman(parent))
|
|
var/mob/living/carbon/human/H = parent
|
|
metabolism_type = H.species.reagent_tag
|
|
|
|
for(var/datum/reagent/current in reagent_list)
|
|
current.on_mob_life(parent, metabolism_type, src)
|
|
update_total()
|
|
|
|
// "Specialized" metabolism datums
|
|
/datum/reagents/metabolism/bloodstream
|
|
metabolism_class = CHEM_BLOOD
|
|
|
|
/datum/reagents/metabolism/ingested
|
|
metabolism_class = CHEM_INGEST
|
|
metabolism_speed = 0.5
|
|
|
|
/datum/reagents/metabolism/touch
|
|
metabolism_class = CHEM_TOUCH |