diff --git a/code/modules/martial_arts/combos/krav_maga/leg_sweep.dm b/code/modules/martial_arts/combos/krav_maga/leg_sweep.dm index 0defb3e9eff..596da4533f6 100644 --- a/code/modules/martial_arts/combos/krav_maga/leg_sweep.dm +++ b/code/modules/martial_arts/combos/krav_maga/leg_sweep.dm @@ -11,4 +11,5 @@ target.apply_damage(5, BRUTE) target.Weaken(2) add_attack_logs(user, target, "Melee attacked with martial-art [src] : Leg Sweep", ATKLOG_ALL) + user.mind.martial_art.in_stance = FALSE return MARTIAL_COMBO_DONE_CLEAR_COMBOS diff --git a/code/modules/martial_arts/combos/krav_maga/lung_punch.dm b/code/modules/martial_arts/combos/krav_maga/lung_punch.dm index e71289f9174..8f91e82c253 100644 --- a/code/modules/martial_arts/combos/krav_maga/lung_punch.dm +++ b/code/modules/martial_arts/combos/krav_maga/lung_punch.dm @@ -9,4 +9,5 @@ target.AdjustLoseBreath(5) target.adjustOxyLoss(10) add_attack_logs(user, target, "Melee attacked with martial-art [src] : Lung Punch", ATKLOG_ALL) + user.mind.martial_art.in_stance = FALSE return MARTIAL_COMBO_DONE_CLEAR_COMBOS diff --git a/code/modules/martial_arts/combos/krav_maga/neck_chop.dm b/code/modules/martial_arts/combos/krav_maga/neck_chop.dm index c0e2f71b6a5..343222bd6a6 100644 --- a/code/modules/martial_arts/combos/krav_maga/neck_chop.dm +++ b/code/modules/martial_arts/combos/krav_maga/neck_chop.dm @@ -6,7 +6,8 @@ target.visible_message("[user] karate chops [target]'s neck!", \ "[user] karate chops your neck, rendering you unable to speak for a short time!") playsound(get_turf(user), 'sound/effects/hit_punch.ogg', 50, 1, -1) - target.apply_damage(5, BRUTE) + target.apply_damage(5, BRUTE, BODY_ZONE_HEAD) target.AdjustSilence(10) add_attack_logs(user, target, "Melee attacked with martial-art [src] : Neck Chop", ATKLOG_ALL) + user.mind.martial_art.in_stance = FALSE return MARTIAL_COMBO_DONE_CLEAR_COMBOS diff --git a/code/modules/martial_arts/krav_maga.dm b/code/modules/martial_arts/krav_maga.dm index c84d89715e5..2388a2d24a4 100644 --- a/code/modules/martial_arts/krav_maga.dm +++ b/code/modules/martial_arts/krav_maga.dm @@ -3,6 +3,20 @@ var/datum/action/neck_chop/neckchop = new/datum/action/neck_chop() var/datum/action/leg_sweep/legsweep = new/datum/action/leg_sweep() var/datum/action/lung_punch/lungpunch = new/datum/action/lung_punch() + var/datum/action/neutral_stance/neutral = new/datum/action/neutral_stance() + +/datum/action/neutral_stance + name = "Neutral Stance - You relax, cancelling your last Krav Maga stance attack." + button_icon_state = "neutralstance" + +/datum/action/neutral_stance/Trigger() + var/mob/living/carbon/human/H = owner + if(!H.mind.martial_art.in_stance) + to_chat(owner, "You cannot cancel an attack you haven't prepared!") + return + to_chat(owner, "You cancel your prepared attack.") + owner.visible_message(" [owner] relaxes [owner.p_their()] stance.") + H.mind.martial_art.combos.Cut() /datum/action/neck_chop name = "Neck Chop - Injures the neck, stopping the victim from speaking for a while." @@ -18,7 +32,7 @@ H.mind.martial_art.combos.Cut() H.mind.martial_art.combos.Add(/datum/martial_combo/krav_maga/neck_chop) H.mind.martial_art.reset_combos() - + H.mind.martial_art.in_stance = TRUE /datum/action/leg_sweep name = "Leg Sweep - Trips the victim, rendering them prone and unable to move for a short time." button_icon_state = "legsweep" @@ -33,6 +47,7 @@ H.mind.martial_art.combos.Cut() H.mind.martial_art.combos.Add(/datum/martial_combo/krav_maga/leg_sweep) H.mind.martial_art.reset_combos() + H.mind.martial_art.in_stance = TRUE /datum/action/lung_punch//referred to internally as 'quick choke' name = "Lung Punch - Delivers a strong punch just above the victim's abdomen, constraining the lungs. The victim will be unable to breathe for a short time." @@ -48,11 +63,13 @@ H.mind.martial_art.combos.Cut() H.mind.martial_art.combos.Add(/datum/martial_combo/krav_maga/lung_punch) H.mind.martial_art.reset_combos() + H.mind.martial_art.in_stance = TRUE /datum/martial_art/krav_maga/teach(mob/living/carbon/human/H, make_temporary=0) ..() to_chat(H, "You know the arts of Krav Maga!") to_chat(H, "Place your cursor over a move at the top of the screen to see what it does.") + neutral.Grant(H) neckchop.Grant(H) legsweep.Grant(H) lungpunch.Grant(H) @@ -60,6 +77,7 @@ /datum/martial_art/krav_maga/remove(mob/living/carbon/human/H) ..() to_chat(H, "You suddenly forget the arts of Krav Maga...") + neutral.Remove(H) neckchop.Remove(H) legsweep.Remove(H) lungpunch.Remove(H) diff --git a/code/modules/martial_arts/martial.dm b/code/modules/martial_arts/martial.dm index d84ca1cd78b..15f4b7ac837 100644 --- a/code/modules/martial_arts/martial.dm +++ b/code/modules/martial_arts/martial.dm @@ -18,6 +18,7 @@ var/list/combos = list() // What combos can the user do? List of combo types var/list/datum/martial_art/current_combos = list() // What combos are currently (possibly) being performed var/last_hit = 0 // When the last hit happened + var/in_stance = FALSE // If the user is preparing a martial arts stance /datum/martial_art/New() . = ..()