diff --git a/code/modules/reagents/chemistry/reagents/toxins.dm b/code/modules/reagents/chemistry/reagents/toxins.dm index 1721d81d766..07d36742fad 100644 --- a/code/modules/reagents/chemistry/reagents/toxins.dm +++ b/code/modules/reagents/chemistry/reagents/toxins.dm @@ -49,7 +49,14 @@ /datum/reagent/slimejelly/on_mob_life(mob/living/M) var/update_flags = STATUS_UPDATE_NONE - if(M.get_blood_id() != id) // no effect on slime people + var/mob/living/carbon/C = M + if(iscarbon(C) && C.mind?.has_antag_datum(/datum/antagonist/vampire)) + M.set_nutrition(min(NUTRITION_LEVEL_WELL_FED, M.nutrition + 10)) + if(M.get_blood_id() != id) + M.blood_volume = min(M.blood_volume + REAGENTS_METABOLISM, BLOOD_VOLUME_NORMAL) + return ..() | update_flags + + if(M.get_blood_id() != id) if(prob(10)) to_chat(M, "Your insides are burning!") update_flags |= M.adjustToxLoss(rand(2, 6) * REAGENTS_EFFECT_MULTIPLIER, FALSE) // avg 0.4 toxin per cycle, not unreasonable @@ -68,7 +75,6 @@ B.basecolor = color B.update_icon() - /datum/reagent/slimetoxin name = "Mutation Toxin" id = "mutationtoxin" diff --git a/code/modules/reagents/chemistry/reagents/water.dm b/code/modules/reagents/chemistry/reagents/water.dm index 7c248dbd8b7..6d909c8c320 100644 --- a/code/modules/reagents/chemistry/reagents/water.dm +++ b/code/modules/reagents/chemistry/reagents/water.dm @@ -103,7 +103,7 @@ taste_description = "blood" taste_mult = 1.3 -/datum/reagent/blood/reaction_mob(mob/living/M, method=REAGENT_TOUCH, volume) +/datum/reagent/blood/reaction_mob(mob/living/M, method = REAGENT_TOUCH, volume) if(data && data["viruses"]) for(var/thing in data["viruses"]) var/datum/disease/D = thing @@ -120,6 +120,7 @@ var/mob/living/carbon/C = M if(C.mind?.has_antag_datum(/datum/antagonist/vampire)) C.set_nutrition(min(NUTRITION_LEVEL_WELL_FED, C.nutrition + 10)) + C.blood_volume = min(C.blood_volume + round(volume, 0.1), BLOOD_VOLUME_NORMAL) ..() /datum/reagent/blood/on_new(list/data) diff --git a/code/modules/reagents/chemistry/reagents_datum.dm b/code/modules/reagents/chemistry/reagents_datum.dm index edc0466fe9b..3e1b919aa51 100644 --- a/code/modules/reagents/chemistry/reagents_datum.dm +++ b/code/modules/reagents/chemistry/reagents_datum.dm @@ -72,8 +72,9 @@ if(can_become_addicted) if(is_type_in_list(src, M.reagents.addiction_list)) to_chat(M, "You feel slightly better, but for how long?") //sate_addiction handles this now, but kept this for the feed back. - var/mob/living/carbon/C = M + if(C.mind?.has_antag_datum(/datum/antagonist/vampire)) + return if(method == REAGENT_INGEST && istype(C) && C.get_blood_id() == id) if(id == "blood" && !(data?["blood_type"] in get_safe_blood(C.dna?.blood_type)) || C.dna?.species.name != data?["species"] && (data?["species_only"] || C.dna?.species.own_species_blood)) C.reagents.add_reagent("toxin", volume * 0.5)