diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index b903749ea31..d5d3a6f2646 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -170,6 +170,8 @@ #define STATUS_EFFECT_IMPACT_IMMUNE /datum/status_effect/impact_immune +#define STATUS_EFFECT_RECENTLY_SUCCUMBED /datum/status_effect/recently_succumbed + //#define STATUS_EFFECT_SIGILMARK /datum/status_effect/sigil_mark #define STATUS_EFFECT_CRUSHERDAMAGETRACKING /datum/status_effect/crusher_damage //tracks total kinetic crusher damage on a target diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index ce613a49090..50ddee96a03 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -202,6 +202,12 @@ id = "impact_immune" alert_type = null +/datum/status_effect/recently_succumbed + id = "recently_succumbed" + alert_type = null + duration = 1 MINUTES + status_type = STATUS_EFFECT_REFRESH + #define LWAP_LOCK_CAP 10 /datum/status_effect/lwap_scope diff --git a/code/modules/antagonists/vampire/vamp_datum.dm b/code/modules/antagonists/vampire/vamp_datum.dm index d05fd904e83..14fae8b6418 100644 --- a/code/modules/antagonists/vampire/vamp_datum.dm +++ b/code/modules/antagonists/vampire/vamp_datum.dm @@ -135,7 +135,7 @@ continue - if(H.stat < DEAD) + if(H.stat != DEAD || H.has_status_effect(STATUS_EFFECT_RECENTLY_SUCCUMBED)) if(H.ckey || H.player_ghosted) //Requires ckey regardless if monkey or humanoid, or the body has been ghosted before it died blood = min(20, H.blood_volume) adjust_blood(H, blood * BLOOD_GAINED_MODIFIER) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 13a8c62a1ca..65654825424 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -320,7 +320,7 @@ else death() to_chat(src, "You have given up life and succumbed to death.") - + apply_status_effect(STATUS_EFFECT_RECENTLY_SUCCUMBED) /mob/living/proc/InCritical() return (health < HEALTH_THRESHOLD_CRIT && health > HEALTH_THRESHOLD_DEAD && stat == UNCONSCIOUS)