From b7ba0f286a5bd6b9775ee2b12b2b77535c4e086f Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Thu, 17 Dec 2020 07:57:31 +0100 Subject: [PATCH] [MIRROR] Removes roundstart miasma, from everything. (#2202) * Removes roundstart miasma. Yes, even the gibs that are marked as miasma producers. Fuck you. Carbons now start listening for death at init, then get the component when they die. Gibs behave just as they used to. (#55343) * Removes roundstart miasma, from everything. Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> --- code/datums/components/rot.dm | 4 ++++ code/game/objects/effects/decals/cleanable/humans.dm | 2 ++ code/modules/mob/living/carbon/carbon.dm | 7 ++++++- code/modules/mob/living/carbon/human/dummy.dm | 3 +++ code/modules/mob/living/carbon/life.dm | 1 - 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/code/datums/components/rot.dm b/code/datums/components/rot.dm index 535bd97301f..8271c25f0fd 100644 --- a/code/datums/components/rot.dm +++ b/code/datums/components/rot.dm @@ -10,6 +10,10 @@ START_PROCESSING(SSprocessing, src) +/datum/component/rot/Destroy(force, silent) + STOP_PROCESSING(SSprocessing, src) + . = ..() + /datum/component/rot/process(delta_time) var/atom/A = parent diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 4eb88bdc62d..989d2919efc 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -60,6 +60,8 @@ . = ..() reagents.add_reagent(/datum/reagent/liquidgibs, 5) RegisterSignal(src, COMSIG_MOVABLE_PIPE_EJECTING, .proc/on_pipe_eject) + if(mapload) //Don't rot at roundstart for the love of god + return if(already_rotting) start_rotting(rename=FALSE) else diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 8889dd9fb50..2b6a6b1778c 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -1,9 +1,11 @@ -/mob/living/carbon/Initialize() +/mob/living/carbon/Initialize(mapload) . = ..() create_reagents(1000) assign_bodypart_ownership() update_body_parts() //to update the carbon's new bodyparts appearance GLOB.carbon_list += src + if(!mapload) //I don't want no gas leaks on my space ruin you hear? + RegisterSignal(src, COMSIG_LIVING_DEATH, .proc/attach_rot) /mob/living/carbon/Destroy() //This must be done first, so the mob ghosts correctly before DNA etc is nulled @@ -1325,3 +1327,6 @@ return return ..() + +/mob/living/carbon/proc/attach_rot(mapload) + AddComponent(/datum/component/rot/corpse) diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm index 904b27adb9a..3ac0640413e 100644 --- a/code/modules/mob/living/carbon/human/dummy.dm +++ b/code/modules/mob/living/carbon/human/dummy.dm @@ -14,6 +14,9 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) /mob/living/carbon/human/dummy/Life() return +/mob/living/carbon/human/dummy/attach_rot(mapload) + return + /mob/living/carbon/human/dummy/proc/wipe_state() delete_equipment() cut_overlays(TRUE) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 6c589f87aba..af2743192e1 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -28,7 +28,6 @@ if(stat == DEAD) stop_sound_channel(CHANNEL_HEARTBEAT) - LoadComponent(/datum/component/rot/corpse) else var/bprv = handle_bodyparts() if(bprv & BODYPART_LIFE_UPDATE_HEALTH)