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>
This commit is contained in:
bgobandit
2019-06-07 13:10:28 -04:00
committed by moo
co-authored by moo
parent d160202bf7
commit 55d7bdb145
2 changed files with 17 additions and 1 deletions
+3
View File
@@ -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].", \
"<span class='notice'>You close [M]'s [parse_zone(selected_zone)] with [close_tool] and remove [I].</span>")
+14 -1
View File
@@ -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)].", "<span class='notice'>Blood pools around the incision in your [parse_zone(target_zone)].</span>")
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 ..()