diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index cabcfeb221c..ebbd9d0bb00 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -221,6 +221,8 @@ if(dismember_at_max_damage && body_part != UPPER_TORSO && body_part != LOWER_TORSO) // We've ensured all damage to the mob is retained, now let's drop it, if necessary. droplimb(1) //Clean loss, just drop the limb and be done + if(dismember_at_max_damage && (body_part == UPPER_TORSO || body_part == LOWER_TORSO)) + disembowel() // See if bones need to break check_fracture() @@ -230,7 +232,10 @@ if(!cannot_amputate && (brute_dam) >= (max_damage)) if(prob(brute / 2)) if(sharp) - droplimb(0, DROPLIMB_SHARP) + if(body_part == UPPER_TORSO || body_part == LOWER_TORSO) + disembowel() + else + droplimb(0, DROPLIMB_SHARP) if(owner_old) owner_old.updatehealth() @@ -523,7 +528,7 @@ Note that amputating the affected organ does in fact remove the infection from t qdel(src) // If you flashed away to ashes, YOU FLASHED AWAY TO ASHES return null -/obj/item/organ/external/chest/proc/droplimb() +/obj/item/organ/external/proc/disembowel() if(!owner || !hasorgans(src)) return @@ -543,25 +548,6 @@ Note that amputating the affected organ does in fact remove the infection from t C.visible_message("[C]'s internal organs spill out onto the floor!") return TRUE -/obj/item/organ/external/groin/proc/droplimb() - if(!owner || !hasorgans(src)) - return - - var/mob/living/carbon/C = owner - - var/organ_spilled = FALSE - var/turf/T = get_turf(C) - C.add_splatter_floor(T) - playsound(get_turf(C), 'sound/effects/splat.ogg', 25, 1) - for(var/X in C.internal_organs) - var/obj/item/organ/O = X - O.remove(C) - O.forceMove(T) - organ_spilled = TRUE - - if(organ_spilled) - C.visible_message("[C]'s internal organs spill out onto the floor!") - return TRUE /obj/item/organ/external/attackby(obj/item/I, mob/user, params) if(I.sharp)