Fixes zombie powder (#63575)

This commit is contained in:
vincentiusvin
2021-12-28 13:00:13 +07:00
committed by GitHub
parent c664e94531
commit 17a77d58ca
3 changed files with 19 additions and 21 deletions
+1 -1
View File
@@ -556,7 +556,7 @@
if(stat != DEAD)
tod = null
/// Induces fake death on a living mob.
/mob/living/proc/fakedeath(source, silent = FALSE)
if(stat == DEAD)
return
+1 -1
View File
@@ -40,7 +40,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
var/datum/reagents/holder = null
/// LIQUID, SOLID, GAS
var/reagent_state = LIQUID
/// special data associated with this like viruses etc
/// Special data associated with the reagent that will be passed on upon transfer to a new holder.
var/list/data
/// increments everytime on_mob_life is called
var/current_cycle = 0
@@ -225,31 +225,30 @@
toxpwr = 0.5
taste_description = "death"
penetrates_skin = NONE
var/fakedeath_active = FALSE
ph = 13
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
/datum/reagent/toxin/zombiepowder/on_mob_metabolize(mob/living/L)
..()
ADD_TRAIT(L, TRAIT_FAKEDEATH, type)
if(fakedeath_active)
L.fakedeath(type)
/datum/reagent/toxin/zombiepowder/on_mob_end_metabolize(mob/living/L)
L.cure_fakedeath(type)
..()
/datum/reagent/toxin/zombiepowder/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume)
/datum/reagent/toxin/zombiepowder/on_mob_metabolize(mob/living/holder_mob)
. = ..()
exposed_mob.adjustOxyLoss(0.5*REM, 0)
if(methods & INGEST)
var/datum/reagent/toxin/zombiepowder/zombiepowder = exposed_mob.reagents.has_reagent(/datum/reagent/toxin/zombiepowder)
if(istype(zombiepowder))
zombiepowder.fakedeath_active = TRUE
holder_mob.adjustOxyLoss(0.5*REM, 0)
if(data?["method"] & INGEST)
holder_mob.fakedeath(type)
/datum/reagent/toxin/zombiepowder/on_mob_end_metabolize(mob/living/holder_mob)
holder_mob.cure_fakedeath(type)
return ..()
/datum/reagent/toxin/zombiepowder/on_transfer(atom/target_atom, methods, trans_volume)
. = ..()
var/datum/reagent/zombiepowder = target_atom.reagents.has_reagent(/datum/reagent/toxin/zombiepowder)
if(!zombiepowder || !(methods & INGEST))
return
LAZYINITLIST(zombiepowder.data)
zombiepowder.data["method"] |= INGEST
/datum/reagent/toxin/zombiepowder/on_mob_life(mob/living/M, delta_time, times_fired)
..()
if(fakedeath_active)
if(HAS_TRAIT(M, TRAIT_FAKEDEATH) && HAS_TRAIT(M, TRAIT_DEATHCOMA))
return TRUE
switch(current_cycle)
if(1 to 5)
@@ -259,7 +258,6 @@
if(5 to 8)
M.adjustStaminaLoss(40 * REM * delta_time, 0)
if(9 to INFINITY)
fakedeath_active = TRUE
M.fakedeath(type)
/datum/reagent/toxin/ghoulpowder