[MIRROR] Internal wounds & spleen tweak (#12182)

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-12-30 04:29:03 +01:00
committed by GitHub
co-authored by Cameron Lennox
parent f25ceeab1d
commit 9f23aa6a9e
6 changed files with 17 additions and 5 deletions
+2
View File
@@ -82,6 +82,8 @@
var/obj/item/organ/external/E = O.parent_organ
var/datum/wound/W = new /datum/wound/internal_bleeding(5)
E.wounds += W
E.update_damages()
M.handle_organs(TRUE) //Force an update so we start processing the internal bleeding.
if(M.stat == DEAD || M.allow_spontaneous_tf)
M.LoadComponent(/datum/component/xenochimera)
@@ -17,11 +17,11 @@
last_dam = damage_this_tick
// Takes care of organ related updates, such as broken and missing limbs
/mob/living/carbon/human/proc/handle_organs()
/mob/living/carbon/human/proc/handle_organs(force = FALSE)
var/force_process = recheck_bad_external_organs()
if(force_process)
if(force_process || force)
bad_external_organs.Cut()
for(var/obj/item/organ/external/Ex in organs)
bad_external_organs += Ex //VOREStation Edit - Silly and slow to |= this
+2
View File
@@ -1072,6 +1072,8 @@
if(prob(selection.w_class * 5) && (affected.robotic < ORGAN_ROBOT)) //I'M SO ANEMIC I COULD JUST -DIE-.
var/datum/wound/internal_bleeding/I = new (min(selection.w_class * 5, 15))
affected.wounds += I
affected.update_damages()
H.handle_organs(TRUE) //Force an update so we start processing the internal bleeding.
H.custom_pain("Something tears wetly in your [affected] as [selection] is pulled free!", 50)
if (ishuman(U))
+2
View File
@@ -41,6 +41,8 @@
var/datum/wound/W = new /datum/wound/internal_bleeding(20)
owner.adjustToxLoss(25)
groin.wounds += W
groin.update_damages()
owner.handle_organs(TRUE) //Force an update so we start processing the internal bleeding.
inflamed = 1
*/
/obj/item/organ/internal/appendix/removed()
+7 -3
View File
@@ -17,13 +17,15 @@
//High toxins levels are dangerous
if(owner.getToxLoss() >= 30 && !owner.reagents.has_reagent(REAGENT_ID_ANTITOXIN))
//Healthy liver suffers on its own
if (src.damage < min_broken_damage)
if(src.damage < min_broken_damage)
src.damage += 0.2 * spleen_tick
owner.adjustToxLoss(-0.2) //The spleen takes damage but reduces toxins, up until it's broken.
//Damaged one shares the fun
else
var/obj/item/organ/internal/O = pick(owner.internal_organs)
if(O)
O.damage += 0.2 * spleen_tick
owner.adjustToxLoss(-0.1) //Only half as effective.
else if(!src.is_broken()) // If the spleen isn't severely damaged, it can help fight infections. Key word, can.
var/obj/item/organ/external/OEx = pick(owner.organs)
@@ -66,10 +68,12 @@
..()
if(owner)
owner.add_modifier(/datum/modifier/trait/haemophilia, round(15 MINUTES * spleen_efficiency))
var/obj/item/organ/external/Target = owner.get_organ(parent_organ)
var/obj/item/organ/external/target = owner.get_organ(parent_organ)
var/datum/wound/W = new /datum/wound/internal_bleeding(round(20 * spleen_efficiency))
owner.adjustToxLoss(15 * spleen_efficiency)
Target.wounds += W
target.wounds += W
target.update_damages()
owner.handle_organs(TRUE) //Force an update so we start processing the internal bleeding.
/obj/item/organ/internal/spleen/minor
name = "vestigial spleen"
+2
View File
@@ -176,6 +176,8 @@
to_chat(user, span_danger(" You tear some blood vessels trying to fit such a big object in this cavity."))
var/datum/wound/internal_bleeding/I = new (10)
affected.wounds += I
affected.update_damages()
affected.owner.handle_organs(TRUE) //Force an update so we start processing the internal bleeding.
affected.owner.custom_pain("You feel something rip in your [affected.name]!", 1)
affected.implants += tool
tool.loc = affected