diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index 8797ffaee06..132fdbf67ff 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -164,4 +164,33 @@ var/datum/organ/external/affected = target.get_organ(target_zone) user.visible_message("\red [user]'s hand slips, leaving a small burn on [target]'s [affected.display_name] with \the [tool]!", \ "\red Your hand slips, leaving a small burn on [target]'s [affected.display_name] with \the [tool]!") - target.apply_damage(3, BURN, affected) \ No newline at end of file + target.apply_damage(3, BURN, affected) + +/datum/surgery_step/generic/cut_limb + required_tool = /obj/item/weapon/circular_saw + + min_duration = 110 + max_duration = 160 + + can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + return ..() && target_zone != "chest" && target_zone != "groin" && target_zone != "head" + + begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/datum/organ/external/affected = target.get_organ(target_zone) + user.visible_message("[user] is beginning to cut off [target]'s [affected.display_name] with \the [tool]." , \ + "You are beginning to cut off [target]'s [affected.display_name] with \the [tool].") + target.custom_pain("Your [affected.display_name] is being ripped apart!",1) + ..() + + end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/datum/organ/external/affected = target.get_organ(target_zone) + user.visible_message("\blue [user] cuts off [target]'s [affected.display_name] with \the [tool].", \ + "\blue You cut off [target]'s [affected.display_name] with \the [tool].") + affected.droplimb(1) + + fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/datum/organ/external/affected = target.get_organ(target_zone) + user.visible_message("\red [user]'s hand slips, sawwing through the bone in [target]'s [affected.display_name] with \the [tool]!", \ + "\red Your hand slips, sawwing through the bone in [target]'s [affected.display_name] with \the [tool]!") + affected.createwound(CUT, 30) + affected.fracture()