mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 20:45:28 +01:00
Fixes zombie powder (#63575)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user