[MIRROR] Gibs/Dead bodies no longer produce miasma (#4444)

* Gibs/Dead bodies no longer produce miasma (#57957)

* Gibs/Dead bodies no longer produce miasma

Miasma production as it is now is too little over too long a time span, and it just ends up spreading across the
station and having little effect. My goal here is to remove a source of uninteresting gas from the station's
air, and make corpses and gib piles more infectious.
I've placed the cap on disease payout at a strength of 7, so there's a slight chance of a positive disease, but
I think it's counteracted by the danger presented by just infecting yourself till you get what you want.

I've rewriten the rot component to just run a percent chance to infect someone with a disease based on the type
of rot, and moved almost all of its behavior to signals. There's one portion I can't rewrite without making
significant changes to how I handle atmos sensitivity, so that'll come later.

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Gibs/Dead bodies no longer produce miasma

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
This commit is contained in:
SkyratBot
2021-03-27 14:20:55 +00:00
committed by GitHub
co-authored by Mothblocks LemonInTheDark
parent 2ddbb74439
commit cdfbf86d07
9 changed files with 136 additions and 75 deletions
@@ -8,12 +8,15 @@
bloodiness = BLOOD_AMOUNT_PER_DECAL
beauty = -100
clean_type = CLEAN_TYPE_BLOOD
var/should_dry = TRUE
var/dryname = "dried blood" //when the blood lasts long enough, it becomes dry and gets a new name
var/drydesc = "Looks like it's been here a while. Eew." //as above
var/drytime = 0
/obj/effect/decal/cleanable/blood/Initialize()
/obj/effect/decal/cleanable/blood/Initialize(mapload)
. = ..()
if(!should_dry)
return
if(bloodiness)
start_drying()
else
@@ -98,15 +101,13 @@
. = ..()
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
/obj/effect/decal/cleanable/blood/gibs/replace_decal(obj/effect/decal/cleanable/C)
return FALSE //Never fail to place us
/obj/effect/decal/cleanable/blood/gibs/dry()
. = ..()
AddComponent(/datum/component/rot/gibs)
AddComponent(/datum/component/rot, 0, 0.7)
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target)
return FALSE
@@ -169,6 +170,7 @@
desc = "Space Jesus, why didn't anyone clean this up? They smell terrible."
icon_state = "gib1-old"
bloodiness = 0
should_dry = FALSE
dryname = "old rotting gibs"
drydesc = "Space Jesus, why didn't anyone clean this up? They smell terrible."
@@ -177,6 +179,7 @@
setDir(pick(1,2,4,8))
add_blood_DNA(list("Non-human DNA" = random_blood_type()))
AddElement(/datum/element/swabable, CELL_LINE_TABLE_SLUDGE, CELL_VIRUS_TABLE_GENERIC, rand(2,4), 10)
dry()
/obj/effect/decal/cleanable/blood/drip
name = "drips of blood"