mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-08-31 09:08:56 +01:00
Adding some generalized reagent processing for animals.
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user