diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index 02f18a39cd4..f0b6f20aacc 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -43,10 +43,21 @@ return ..() /obj/item/wirecutters/suicide_act(mob/user) - user.visible_message("[user] is cutting at [user.p_their()] arteries with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + user.visible_message("[user] is cutting at [user.p_their()] [is_robotic_suicide(user) ? "wiring" : "arteries"] with [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, usesound, 50, 1, -1) return BRUTELOSS +/obj/item/wirecutters/proc/is_robotic_suicide(mob/user) + if(!ishuman(user)) + return FALSE + + var/mob/living/carbon/human/H = user + var/obj/item/organ/external/chest/chest = H.bodyparts_by_name["chest"] + if(!chest) + return FALSE + + return chest.is_robotic() + /obj/item/wirecutters/security name = "security wirecutters" desc = "A pair of wirecutters with a tactical grip and robust build." @@ -125,15 +136,27 @@ random_color = FALSE /obj/item/wirecutters/power/suicide_act(mob/user) - user.visible_message("[user] is wrapping \the [src] around [user.p_their()] neck. It looks like [user.p_theyre()] trying to rip [user.p_their()] head off!") - playsound(loc, 'sound/items/jaws_cut.ogg', 50, 1, -1) - if(ishuman(user)) - var/mob/living/carbon/human/H = user - var/obj/item/organ/external/head/head = H.bodyparts_by_name["head"] - if(head) - head.droplimb(0, DROPLIMB_BLUNT, FALSE, TRUE) - playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) - return BRUTELOSS + user.visible_message("[user] is wrapping [src] around [user.p_their()] neck. It looks like [user.p_theyre()] trying to rip [user.p_their()] head off!") + + if(!use_tool(user, user, 3 SECONDS, volume = tool_volume)) + return SHAME + + if(!ishuman(user)) + return BRUTELOSS + + var/mob/living/carbon/human/H = user + var/obj/item/organ/external/head/head = H.bodyparts_by_name["head"] + if(!head) + user.visible_message("...but [user.p_they()] [user.p_are()] already headless! How embarassing.") + return SHAME + + head.droplimb(FALSE, DROPLIMB_SHARP, FALSE, TRUE) + + if(user.stat != DEAD) + user.visible_message("...but [user.p_they()] didn't need it anyway! How embarassing.") + return SHAME + + return OXYLOSS /obj/item/wirecutters/power/attack_self(mob/user) playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, 1) diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm index 438421f849c..06188fd2244 100644 --- a/code/game/objects/items/tools/wrench.dm +++ b/code/game/objects/items/tools/wrench.dm @@ -20,9 +20,27 @@ tool_behaviour = TOOL_WRENCH /obj/item/wrench/suicide_act(mob/user) - user.visible_message("[user] is beating [user.p_themselves()] to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1) - return BRUTELOSS + user.visible_message("[user] is unsecuring [user.p_their()] head with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + + if(!use_tool(user, user, 3 SECONDS, volume = tool_volume)) + return SHAME + + if(!ishuman(user)) + return BRUTELOSS + + var/mob/living/carbon/human/H = user + var/obj/item/organ/external/head/head = H.bodyparts_by_name["head"] + if(!head) + user.visible_message("...but [user.p_they()] [user.p_are()] already headless! How embarassing.") + return SHAME + + head.droplimb(TRUE, DROPLIMB_SHARP, FALSE, TRUE) + + if(user.stat != DEAD) + user.visible_message("...but [user.p_they()] didn't need it anyway! How embarassing.") + return SHAME + + return OXYLOSS /obj/item/wrench/cyborg name = "automatic wrench"