From 9db41ec546e1ddd3a0e59e1c5a9d38483a42fb1a Mon Sep 17 00:00:00 2001 From: Joan Lung Date: Tue, 24 Jan 2017 18:34:50 -0500 Subject: [PATCH] Soul Vesseled corpses can be consumed by Vitality Matrices (#23158) * Soul Vesseled corpses can be drained by Vitality Matrices * L. * scarabs don't need this --- code/__DEFINES/status_effects.dm | 2 ++ code/datums/status_effects/debuffs.dm | 11 +++++++++++ .../clock_cult/clock_effects/clock_sigils.dm | 2 +- .../gamemodes/clock_cult/clock_items/soul_vessel.dm | 1 + tgstation.dme | 1 + 5 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 code/datums/status_effects/debuffs.dm diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index e80157fa638..1e1cd7a6175 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -19,3 +19,5 @@ ///////////// // DEBUFFS // ///////////// + +#define STATUS_EFFECT_SIGILMARK /datum/status_effect/sigil_mark diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm new file mode 100644 index 00000000000..40ff8d7ae01 --- /dev/null +++ b/code/datums/status_effects/debuffs.dm @@ -0,0 +1,11 @@ +//Largely negative status effects go here, even if they have small benificial effects + +/datum/status_effect/sigil_mark //allows the affected target to always trigger sigils while mindless + id = "sigil_mark" + duration = -1 + alert_type = null + var/stat_allowed = DEAD //if owner's stat is below this, will remove itself + +/datum/status_effect/sigil_mark/tick() + if(owner.stat < stat_allowed) + qdel(src) diff --git a/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm b/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm index 888f4351505..dda549356ea 100644 --- a/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm +++ b/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm @@ -35,7 +35,7 @@ if(isliving(AM)) var/mob/living/L = AM if(L.stat <= stat_affected) - if((!is_servant_of_ratvar(L) || (is_servant_of_ratvar(L) && affects_servants)) && L.mind && (!isdrone(L) || istype(L, /mob/living/simple_animal/drone/cogscarab))) + if((!is_servant_of_ratvar(L) || (affects_servants && is_servant_of_ratvar(L))) && (L.mind || L.has_status_effect(STATUS_EFFECT_SIGILMARK)) && !isdrone(L)) var/obj/item/I = L.null_rod_check() if(I) L.visible_message("[L]'s [I.name] [resist_string], protecting them from [src]'s effects!", \ diff --git a/code/game/gamemodes/clock_cult/clock_items/soul_vessel.dm b/code/game/gamemodes/clock_cult/clock_items/soul_vessel.dm index 588c21a9b3e..2ca4d5ad585 100644 --- a/code/game/gamemodes/clock_cult/clock_items/soul_vessel.dm +++ b/code/game/gamemodes/clock_cult/clock_items/soul_vessel.dm @@ -89,6 +89,7 @@ H.death() if(!prev_fakedeath) H.status_flags &= ~FAKEDEATH + H.apply_status_effect(STATUS_EFFECT_SIGILMARK) //let them be affected by vitality matrices picked_fluff_name = "Slave" braintype = picked_fluff_name brainmob.timeofhostdeath = H.timeofdeath diff --git a/tgstation.dme b/tgstation.dme index 5167f6b9a4c..69559a654c8 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -275,6 +275,7 @@ #include "code\datums\ruins\lavaland.dm" #include "code\datums\ruins\space.dm" #include "code\datums\status_effects\buffs.dm" +#include "code\datums\status_effects\debuffs.dm" #include "code\datums\status_effects\gas.dm" #include "code\datums\status_effects\status_effect.dm" #include "code\datums\weather\weather.dm"