From 55d7bdb145f33e73bf654f470a500e87e0977cca Mon Sep 17 00:00:00 2001 From: bgobandit Date: Fri, 7 Jun 2019 13:10:28 -0400 Subject: [PATCH] Surgical incisions cause actual bleeding; clamping bleeders and/or cauterizing stops that bleeding. (#44283) * Surgical incisions cause actual bleeding; clamping bleeders actually stops said bleeding. * Cautery now stops bleeding as well, slight nerf to bleed_rate * Update code/modules/surgery/organic_steps.dm Co-Authored-By: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com> * Update code/modules/surgery/organic_steps.dm Co-Authored-By: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com> --- code/modules/surgery/helpers.dm | 3 +++ code/modules/surgery/organic_steps.dm | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm index 64bfe52c622..ee7688431d1 100644 --- a/code/modules/surgery/helpers.dm +++ b/code/modules/surgery/helpers.dm @@ -95,6 +95,9 @@ if(is_robotic) close_tool_type = /obj/item/screwdriver if(istype(close_tool, close_tool_type) || iscyborg(user)) + if (ishuman(M)) + var/mob/living/carbon/human/H = M + H.bleed_rate = max( (H.bleed_rate - 3), 0) M.surgeries -= S user.visible_message("[user] closes [M]'s [parse_zone(selected_zone)] with [close_tool] and removes [I].", \ "You close [M]'s [parse_zone(selected_zone)] with [close_tool] and remove [I].") diff --git a/code/modules/surgery/organic_steps.dm b/code/modules/surgery/organic_steps.dm index 01eb751f39f..6e4dda01c30 100644 --- a/code/modules/surgery/organic_steps.dm +++ b/code/modules/surgery/organic_steps.dm @@ -16,6 +16,14 @@ return TRUE +/datum/surgery_step/incise/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + if ishuman(target) + var/mob/living/carbon/human/H = target + if (!(NOBLOOD in H.dna.species.species_traits)) + H.visible_message("Blood pools around the incision in [H]'s [parse_zone(target_zone)].", "Blood pools around the incision in your [parse_zone(target_zone)].") + H.bleed_rate += 3 + return TRUE + //clamp bleeders /datum/surgery_step/clamp_bleeders name = "clamp bleeders" @@ -29,9 +37,11 @@ /datum/surgery_step/clamp_bleeders/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) if(locate(/datum/surgery_step/saw) in surgery.steps) target.heal_bodypart_damage(20,0) + if (ishuman(target)) + var/mob/living/carbon/human/H = target + H.bleed_rate = max( (H.bleed_rate - 3), 0) return ..() - //retract skin /datum/surgery_step/retract_skin name = "retract skin" @@ -64,6 +74,9 @@ /datum/surgery_step/close/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) if(locate(/datum/surgery_step/saw) in surgery.steps) target.heal_bodypart_damage(45,0) + if (ishuman(target)) + var/mob/living/carbon/human/H = target + H.bleed_rate = max( (H.bleed_rate - 3), 0) return ..()