mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-18 02:24:11 +01:00
Revives Organ Datumization (#23397)
* first runthrough lol * okay make this shit actually work * nerfs slime people * fixes * more changes * fix * bim bim bam bam * ok back in the head becuz i dont give a shit * Sirryan review * Sirryan review * Fixes CI * Stealthy CI fail --------- Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
This commit is contained in:
@@ -205,12 +205,12 @@
|
||||
return
|
||||
|
||||
if(target.undergoing_cardiac_arrest()) // Can have a heart attack and heart is either missing, necrotic, or not beating
|
||||
var/obj/item/organ/internal/heart/heart = target.get_int_organ(/obj/item/organ/internal/heart)
|
||||
var/datum/organ/heart/heart = target.get_int_organ_datum(ORGAN_DATUM_HEART)
|
||||
if(!heart)
|
||||
user.visible_message("<span class='boldnotice'>[defib_ref] buzzes: Resuscitation failed - Failed to pick up any heart electrical activity.</span>")
|
||||
else if(heart.status & ORGAN_DEAD)
|
||||
else if(heart.linked_organ.status & ORGAN_DEAD)
|
||||
user.visible_message("<span class='boldnotice'>[defib_ref] buzzes: Resuscitation failed - Heart necrosis detected.</span>")
|
||||
if(!heart || (heart.status & ORGAN_DEAD))
|
||||
if(!heart || (heart.linked_organ.status & ORGAN_DEAD))
|
||||
playsound(get_turf(defib_ref), 'sound/machines/defib_failed.ogg', 50, 0)
|
||||
busy = FALSE
|
||||
return
|
||||
@@ -384,8 +384,8 @@
|
||||
return
|
||||
|
||||
if(electrocute_mob(affecting, power_source, origin)) // shock anyone touching them >:)
|
||||
var/obj/item/organ/internal/heart/HE = affecting.get_organ_slot("heart")
|
||||
if(HE.parent_organ == "chest" && affecting.has_both_hands()) // making sure the shock will go through their heart (drask hearts are in their head), and that they have both arms so the shock can cross their heart inside their chest
|
||||
var/datum/organ/heart/heart = affecting.get_int_organ_datum(ORGAN_DATUM_HEART)
|
||||
if(heart.linked_organ.parent_organ == "chest" && affecting.has_both_hands()) // making sure the shock will go through their heart (drask hearts are in their head), and that they have both arms so the shock can cross their heart inside their chest
|
||||
affecting.visible_message("<span class='danger'>[affecting]'s entire body shakes as a shock travels up [affecting.p_their()] arm!</span>", \
|
||||
"<span class='userdanger'>You feel a powerful shock travel up your [affecting.hand ? affecting.get_organ("l_arm") : affecting.get_organ("r_arm")] and back down your [affecting.hand ? affecting.get_organ("r_arm") : affecting.get_organ("l_arm")]!</span>")
|
||||
affecting.set_heartattack(TRUE)
|
||||
|
||||
@@ -153,9 +153,14 @@
|
||||
if(HAS_TRAIT(src, TRAIT_VIRUSIMMUNE) && !D.bypasses_immunity)
|
||||
return FALSE
|
||||
|
||||
for(var/thing in D.required_organs)
|
||||
if(!((locate(thing) in bodyparts) || (locate(thing) in internal_organs)))
|
||||
return FALSE
|
||||
for(var/organ in D.required_organs)
|
||||
if(istext(organ) && get_int_organ_datum(organ))
|
||||
continue
|
||||
if(locate(organ) in internal_organs)
|
||||
continue
|
||||
if(locate(organ) in bodyparts)
|
||||
continue
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/human/monkey/CanContractDisease(datum/disease/D)
|
||||
|
||||
@@ -87,7 +87,10 @@
|
||||
cure_chance = 10
|
||||
stage_prob = 5
|
||||
severity = HARMFUL
|
||||
required_organs = list(/obj/item/organ/internal/heart)
|
||||
disease_flags = CURABLE
|
||||
required_organs = list(ORGAN_DATUM_HEART)
|
||||
bypasses_immunity = TRUE
|
||||
virus_heal_resistant = TRUE
|
||||
|
||||
/datum/disease/critical/heart_failure/stage_act()
|
||||
if(..())
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
viable_mobtypes = list(/mob/living/carbon/human)
|
||||
cure_chance = 5 // Like hell are you getting out of hell
|
||||
desc = "A rare highly transmittable virulent virus. Few samples exist, rumoured to be carefully grown and cultured by clandestine bio-weapon specialists. Causes fever, blood vomiting, lung damage, weight loss, and fatigue."
|
||||
required_organs = list(/obj/item/organ/internal/lungs)
|
||||
required_organs = list(ORGAN_DATUM_LUNGS)
|
||||
severity = HARMFUL
|
||||
bypasses_immunity = TRUE // Fungal and bacterial in nature; also infects the lungs
|
||||
bypasses_immunity = TRUE //Fungal and bacterial in nature; also infects the lungs
|
||||
|
||||
/datum/disease/tuberculosis/stage_act()
|
||||
if(!..())
|
||||
|
||||
Reference in New Issue
Block a user