mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Replaces random disease with necrosis
This commit is contained in:
@@ -643,25 +643,26 @@
|
||||
ghost << sound('sound/effects/genetics.ogg')
|
||||
M.visible_message("<span class='notice'>[M] doesn't appear to respond, perhaps try again later?</span>")
|
||||
if(!M.suiciding && !ghost && !(NOCLONE in M.mutations))
|
||||
var/time_dead = world.time - M.timeofdeath
|
||||
M.visible_message("<span class='warning'>[M] seems to rise from the dead!</span>")
|
||||
M.setOxyLoss(0)
|
||||
M.adjustBruteLoss(rand(0,15))
|
||||
M.adjustToxLoss(rand(0,15))
|
||||
M.adjustFireLoss(rand(0,15))
|
||||
if(ishuman(M) && M.mind && prob(10)) // To prevent people from using this on monkies to cause pandemics
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
// Their body is being suffused with magical life-inducing stuff - so other things get lively, too
|
||||
// Things are going to get interesting for the reviving party, too
|
||||
var/virus_type = pick(list(
|
||||
/datum/disease/advance/flu,
|
||||
/datum/disease/advance/cold,
|
||||
/datum/disease/brainrot,
|
||||
/datum/disease/magnitis,
|
||||
/datum/disease/fake_gbs, // honk
|
||||
/datum/disease/cold9
|
||||
))
|
||||
var/datum/disease/D = new virus_type()
|
||||
H.AddDisease(D)
|
||||
var/necrosis_prob = 40 * min((20 MINUTES), max((time_dead - (1 MINUTES)), 0)) / ((20 MINUTES) - (1 MINUTES))
|
||||
to_chat(world, "Necrosis prob: [necrosis_prob]")
|
||||
for(var/obj/item/organ/O in (H.organs | H.internal_organs))
|
||||
// Per non-vital body part:
|
||||
// 0% chance of necrosis within 1 minute of death
|
||||
// 40% chance of necrosis after 20 minutes of death
|
||||
if(!O.vital && prob(necrosis_prob))
|
||||
// side effects may include: Organ failure
|
||||
O.necrotize(FALSE)
|
||||
if(O.status & ORGAN_DEAD)
|
||||
O.germ_level = INFECTION_LEVEL_THREE
|
||||
H.update_body()
|
||||
|
||||
M.update_revive()
|
||||
M.stat = UNCONSCIOUS
|
||||
|
||||
@@ -66,7 +66,7 @@ var/list/organ_cache = list()
|
||||
blood_DNA = list()
|
||||
blood_DNA[dna.unique_enzymes] = dna.b_type
|
||||
|
||||
/obj/item/organ/proc/die()
|
||||
/obj/item/organ/proc/necrotize(update_sprite=TRUE)
|
||||
if(status & ORGAN_ROBOT)
|
||||
return
|
||||
damage = max_damage
|
||||
@@ -105,10 +105,10 @@ var/list/organ_cache = list()
|
||||
if(germ_level >= INFECTION_LEVEL_TWO)
|
||||
germ_level += rand(2,6)
|
||||
if(germ_level >= INFECTION_LEVEL_THREE)
|
||||
die()
|
||||
necrotize()
|
||||
|
||||
if(damage >= max_damage)
|
||||
die()
|
||||
necrotize()
|
||||
|
||||
else if(owner.bodytemperature >= 170) //cryo stops germs from moving and doing their bad stuffs
|
||||
//** Handle antibiotics and curing infections
|
||||
@@ -117,7 +117,7 @@ var/list/organ_cache = list()
|
||||
|
||||
//check if we've hit max_damage
|
||||
if(damage >= max_damage)
|
||||
die()
|
||||
necrotize()
|
||||
|
||||
/obj/item/organ/proc/is_preserved()
|
||||
if(istype(loc,/obj/item/device/mmi))
|
||||
|
||||
@@ -68,6 +68,19 @@
|
||||
var/can_stand
|
||||
var/wound_cleanup_timer
|
||||
|
||||
/obj/item/organ/external/necrotize(update_sprite=TRUE)
|
||||
if(status & (ORGAN_ROBOT|ORGAN_DEAD))
|
||||
return
|
||||
to_chat(owner, "<span class='notice'>You can't feel your [name] anymore...</span>")
|
||||
status |= ORGAN_DEAD
|
||||
if(dead_icon)
|
||||
icon_state = dead_icon
|
||||
if(owner)
|
||||
owner.update_body(update_sprite)
|
||||
owner.bad_external_organs |= src
|
||||
if(vital)
|
||||
owner.death()
|
||||
|
||||
/obj/item/organ/external/Destroy()
|
||||
if(parent && parent.children)
|
||||
parent.children -= src
|
||||
@@ -541,10 +554,7 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
parent.germ_level++
|
||||
|
||||
if(germ_level >= INFECTION_LEVEL_THREE && antibiotics < 30) //overdosing is necessary to stop severe infections
|
||||
if(!(status & ORGAN_DEAD))
|
||||
status |= ORGAN_DEAD
|
||||
to_chat(owner, "<span class='notice'>You can't feel your [name] anymore...</span>")
|
||||
owner.update_body(1)
|
||||
necrotize()
|
||||
|
||||
germ_level++
|
||||
owner.adjustToxLoss(1)
|
||||
|
||||
Reference in New Issue
Block a user