From 963ed4b7923504a66184c2032c13ee93c577d6e5 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Sat, 9 Dec 2023 16:27:13 +0300 Subject: [PATCH] [MIRROR] Adds neck-snapping to CQC and Sleeping carp [MDB IGNORE] (#1034) * Adds neck-snapping to CQC and Sleeping carp (#79956) --------- Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> --- code/datums/martial/cqc.dm | 18 ++++++++++++++++++ code/datums/martial/sleeping_carp.dm | 16 ++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/code/datums/martial/cqc.dm b/code/datums/martial/cqc.dm index a8cae64cd0d..de609a82015 100644 --- a/code/datums/martial/cqc.dm +++ b/code/datums/martial/cqc.dm @@ -210,6 +210,24 @@ log_combat(attacker, defender, "sweeped (CQC)") reset_streak() return TRUE + if((attacker.grab_state == GRAB_KILL) && attacker.zone_selected == BODY_ZONE_HEAD && defender.stat != DEAD) + var/obj/item/bodypart/head = defender.get_bodypart("head") + if(head) + playsound(defender, 'sound/effects/wounds/crack1.ogg', 100) + defender.visible_message( + span_danger("[attacker] snaps the neck of [defender]!"), + span_userdanger("Your neck is snapped by [attacker]!"), + span_hear("You hear a sickening snap!"), + ignored_mobs = attacker + ) + to_chat(attacker, span_danger("In a swift motion, you snap the neck of [defender]!")) + log_combat(attacker, defender, "snapped neck") + defender.apply_damage(100, BRUTE, BODY_ZONE_HEAD, wound_bonus=CANT_WOUND) + if(!HAS_TRAIT(defender, TRAIT_NODEATH)) + defender.death() + defender.investigate_log("has had [defender.p_their()] neck snapped by [attacker].", INVESTIGATE_DEATHS) + + return TRUE add_to_streak("H", defender) if(check_streak(attacker, defender)) diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index a6158c6b314..272cb54c8db 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -107,6 +107,22 @@ return ..() /datum/martial_art/the_sleeping_carp/harm_act(mob/living/attacker, mob/living/defender) + if((attacker.grab_state == GRAB_KILL) && attacker.zone_selected == BODY_ZONE_HEAD && defender.stat != DEAD) + var/obj/item/bodypart/head = defender.get_bodypart("head") + if(head) + playsound(defender, 'sound/effects/wounds/crack1.ogg', 100) + defender.visible_message( + span_danger("[attacker] snaps the neck of [defender]!"), + span_userdanger("Your neck is snapped by [attacker]!"), + span_hear("You hear a sickening snap!"), + ignored_mobs = attacker + ) + to_chat(attacker, span_danger("In a swift motion, you snap the neck of [defender]!")) + log_combat(attacker, defender, "snapped neck") + defender.apply_damage(100, BRUTE, BODY_ZONE_HEAD, wound_bonus=CANT_WOUND) + if(!HAS_TRAIT(defender, TRAIT_NODEATH)) + defender.death() + defender.investigate_log("has had [defender.p_their()] neck snapped by [attacker].", INVESTIGATE_DEATHS) add_to_streak("H", defender) if(check_streak(attacker, defender)) return TRUE