Adding some generalized reagent processing for animals.

This commit is contained in:
MistakeNot4892
2022-08-27 14:21:08 +10:00
parent 18fee333fd
commit d272f4fa30
6 changed files with 67 additions and 24 deletions
@@ -170,6 +170,9 @@
remove_self(removed)
return
/datum/reagent/proc/affect_animal(var/mob/living/simple_mob/animal/M, var/removed)
return
/datum/reagent/proc/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
return
+10 -3
View File
@@ -36,6 +36,10 @@
if(data[taste]/totalFlavor < 0.1)
data -= taste
/datum/reagent/nutriment/affect_animal(var/mob/living/simple_mob/animal/M, var/removed)
M.add_nutrition((nutriment_factor * removed) * M.get_dietary_food_modifier(src) * 0.5)
return ..()
/datum/reagent/nutriment/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(!injectable && alien != IS_SLIME)
M.adjustToxLoss(0.1 * removed)
@@ -45,9 +49,12 @@
/datum/reagent/nutriment/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
switch(alien)
if(IS_DIONA) return
if(IS_UNATHI) removed *= 0.5
if(issmall(M)) removed *= 2 // Small bodymass, more effect from lower volume.
if(IS_DIONA)
return
if(IS_UNATHI)
removed *= 0.5
if(issmall(M))
removed *= 2 // Small bodymass, more effect from lower volume.
if(!(M.species.allergens & allergen_type)) //assuming it doesn't cause a horrible reaction, we'll be ok!
M.heal_organ_damage(0.5 * removed, 0)
M.adjust_nutrition(nutriment_factor * removed)
@@ -52,6 +52,12 @@
overdose_mod = 0.25
scannable = 1
/datum/reagent/bicaridine/affect_animal(var/mob/living/simple_mob/animal/M, var/removed)
if(istype(M, /mob/living/simple_mob/animal/sif/grafadreka))
var/mob/living/simple_mob/animal/sif/grafadreka/drake = M
drake.sap_heal_threshold = clamp(drake.sap_heal_threshold + (0.1 * removed), 0, 1)
return ..()
/datum/reagent/bicaridine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
var/chem_effective = 1 * M.species.chem_strength_heal
if(alien == IS_SLIME)
+8 -2
View File
@@ -442,15 +442,21 @@
color = "#C6E2FF"
strength = 2
overdose = 20
var/sap_regen_power = 12
/datum/reagent/toxin/sifslurry/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_DIONA) // Symbiotic bacteria.
M.adjust_nutrition(strength * removed)
return
else
M.add_modifier(/datum/modifier/slow_pulse, 30 SECONDS)
M.add_modifier(/datum/modifier/slow_pulse, 30 SECONDS)
..()
/datum/reagent/toxin/sifslurry/affect_animal(var/mob/living/simple_mob/animal/M, var/removed)
if(istype(M, /mob/living/simple_mob/animal/sif/grafadreka))
var/mob/living/simple_mob/animal/sif/grafadreka/drake = M
drake.add_sap(removed * sap_regen_power)
return ..()
/datum/reagent/toxin/sifslurry/overdose(var/mob/living/carbon/M, var/alien, var/removed) // Overdose effect.
if(alien == IS_DIONA)
return