mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-30 08:29:57 +01:00
Cultist Memory (#10622)
This commit is contained in:
@@ -48,11 +48,12 @@
|
||||
|
||||
/datum/reagent/blood/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(ishuman(M))
|
||||
if (M.mind && M.mind.vampire)
|
||||
if(M.mind)
|
||||
var/datum/vampire/vampire = M.mind.antag_datums[MODE_VAMPIRE]
|
||||
if(M.dna.unique_enzymes == data["blood_DNA"]) //so vampires can't drink their own blood
|
||||
return
|
||||
M.mind.vampire.blood_usable += removed
|
||||
to_chat(M, "<span class='notice'>You have accumulated [M.mind.vampire.blood_usable] [M.mind.vampire.blood_usable > 1 ? "units" : "unit"] of usable blood. It tastes quite stale.</span>")
|
||||
vampire.blood_usable += removed
|
||||
to_chat(M, "<span class='notice'>You have accumulated [vampire.blood_usable] [vampire.blood_usable > 1 ? "units" : "unit"] of usable blood. It tastes quite stale.</span>")
|
||||
return
|
||||
if(dose > 5)
|
||||
M.adjustToxLoss(removed)
|
||||
|
||||
@@ -218,11 +218,12 @@
|
||||
/datum/reagent/water/holywater/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
if(ishuman(M))
|
||||
if (M.mind && M.mind.vampire)
|
||||
var/datum/vampire/vampire = M.mind.vampire
|
||||
vampire.frenzy += removed * 5
|
||||
else if(M.mind && cult.is_antagonist(M.mind) && prob(10))
|
||||
cult.remove_antagonist(M.mind)
|
||||
if(M.mind)
|
||||
var/datum/vampire/vampire = M.mind.antag_datums[MODE_VAMPIRE]
|
||||
if(vampire)
|
||||
vampire.frenzy += removed * 5
|
||||
if(cult.is_antagonist(M.mind) && prob(10))
|
||||
cult.remove_antagonist(M.mind)
|
||||
if(alien && alien == IS_UNDEAD)
|
||||
M.adjust_fire_stacks(10)
|
||||
M.IgniteMob()
|
||||
|
||||
@@ -44,32 +44,34 @@
|
||||
if(51 to INFINITY) icon_state = "full"
|
||||
|
||||
/obj/item/reagent_containers/blood/attack(mob/living/carbon/human/M as mob, mob/living/carbon/human/user as mob, var/target_zone)
|
||||
if (user == M && (user.mind.vampire))
|
||||
if (being_feed)
|
||||
to_chat(user, "<span class='notice'>You are already feeding on \the [src].</span>")
|
||||
return
|
||||
if (reagents.get_reagent_amount(/datum/reagent/blood))
|
||||
user.visible_message("<span class='warning'>[user] raises \the [src] up to their mouth and bites into it.</span>", "<span class='notice'>You raise \the [src] up to your mouth and bite into it, starting to drain its contents.<br>You need to stand still.</span>")
|
||||
being_feed = TRUE
|
||||
vampire_marks = TRUE
|
||||
if (!LAZYLEN(src.other_DNA))
|
||||
LAZYADD(src.other_DNA, M.dna.unique_enzymes)
|
||||
src.other_DNA_type = "saliva"
|
||||
if(user == M && user.mind)
|
||||
var/datum/vampire/vampire = user.mind.antag_datums[MODE_VAMPIRE]
|
||||
if(vampire)
|
||||
if (being_feed)
|
||||
to_chat(user, "<span class='notice'>You are already feeding on \the [src].</span>")
|
||||
return
|
||||
if (reagents.get_reagent_amount(/datum/reagent/blood))
|
||||
user.visible_message("<span class='warning'>[user] raises \the [src] up to their mouth and bites into it.</span>", "<span class='notice'>You raise \the [src] up to your mouth and bite into it, starting to drain its contents.<br>You need to stand still.</span>")
|
||||
being_feed = TRUE
|
||||
vampire_marks = TRUE
|
||||
if (!LAZYLEN(src.other_DNA))
|
||||
LAZYADD(src.other_DNA, M.dna.unique_enzymes)
|
||||
src.other_DNA_type = "saliva"
|
||||
|
||||
while (do_after(user, 25, 5, 1))
|
||||
var/blood_taken = 0
|
||||
blood_taken = min(5, reagents.get_reagent_amount(/datum/reagent/blood)/4)
|
||||
while (do_after(user, 25, 5, 1))
|
||||
var/blood_taken = 0
|
||||
blood_taken = min(5, reagents.get_reagent_amount(/datum/reagent/blood)/4)
|
||||
|
||||
reagents.remove_reagent(/datum/reagent/blood, blood_taken*4)
|
||||
user.mind.vampire.blood_usable += blood_taken
|
||||
reagents.remove_reagent(/datum/reagent/blood, blood_taken*4)
|
||||
vampire.blood_usable += blood_taken
|
||||
|
||||
if (blood_taken)
|
||||
to_chat(user, "<span class='notice'>You have accumulated [user.mind.vampire.blood_usable] [user.mind.vampire.blood_usable > 1 ? "units" : "unit"] of usable blood. It tastes quite stale.</span>")
|
||||
if (blood_taken)
|
||||
to_chat(user, "<span class='notice'>You have accumulated [vampire.blood_usable] [vampire.blood_usable > 1 ? "units" : "unit"] of usable blood. It tastes quite stale.</span>")
|
||||
|
||||
if (reagents.get_reagent_amount(/datum/reagent/blood) < 1)
|
||||
break
|
||||
user.visible_message("<span class='warning'>[user] licks [user.get_pronoun("his")] fangs dry, lowering \the [src].</span>", "<span class='notice'>You lick your fangs clean of the tasteless blood.</span>")
|
||||
being_feed = FALSE
|
||||
if (reagents.get_reagent_amount(/datum/reagent/blood) < 1)
|
||||
break
|
||||
user.visible_message("<span class='warning'>[user] licks [user.get_pronoun("his")] fangs dry, lowering \the [src].</span>", "<span class='notice'>You lick your fangs clean of the tasteless blood.</span>")
|
||||
being_feed = FALSE
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user