From 57fa901437be04479308f270ece56e5dc6d5aa93 Mon Sep 17 00:00:00 2001
From: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Date: Sun, 16 Feb 2020 06:21:00 +1100
Subject: [PATCH] Krav Maga: Stompies Edition (#49103)
* Changes how krav maga works by making the legsweep a knockdown with stamina damage and disarm intent on someone on the floor a nonlethal strike. These hopefully respect armor. Needs further adjustments most likely
* Made harm stomp respect armor as well because 15 force kicks with no mitigation is fucking stupid and really made nonlethal stomps look like crap
* Krav Maga disarm intent is now a nonlethal jab. If jabbed, you have a probability based on stamina damage to drop everything you're holding. Krav stomp slightly more variable in damage to match nonlethal jab.
* Reduced the knockdown to 6 from 10.
---
code/datums/martial/krav_maga.dm | 49 +++++++++++++++++++-------------
1 file changed, 29 insertions(+), 20 deletions(-)
diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm
index 7ab9e3587f8..dc95d24ea37 100644
--- a/code/datums/martial/krav_maga.dm
+++ b/code/datums/martial/krav_maga.dm
@@ -89,12 +89,14 @@
/datum/martial_art/krav_maga/proc/leg_sweep(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(D.stat || D.IsParalyzed())
return 0
+ var/obj/item/bodypart/affecting = D.get_bodypart(BODY_ZONE_CHEST)
+ var/armor_block = D.run_armor_check(affecting, "melee")
D.visible_message("[A] leg sweeps [D]!", \
"Your legs are sweeped by [A]!", "You hear a sickening sound of flesh hitting flesh!", null, A)
to_chat(A, "You leg sweep [D]!")
playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, TRUE, -1)
- D.apply_damage(5, BRUTE)
- D.Paralyze(40)
+ D.apply_damage(rand(20,30), STAMINA, affecting, armor_block)
+ D.Knockdown(60)
log_combat(A, D, "leg sweeped")
return 1
@@ -130,12 +132,14 @@
if(check_streak(A,D))
return 1
log_combat(A, D, "punched")
+ var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected))
+ var/armor_block = D.run_armor_check(affecting, "melee")
var/picked_hit_type = pick("punch", "kick")
- var/bonus_damage = 10
+ var/bonus_damage = 0
if(!(D.mobility_flags & MOBILITY_STAND))
bonus_damage += 5
picked_hit_type = "stomp"
- D.apply_damage(bonus_damage, A.dna.species.attack_type)
+ D.apply_damage(rand(5,10) + bonus_damage, A.dna.species.attack_type, affecting, armor_block)
if(picked_hit_type == "kick" || picked_hit_type == "stomp")
A.do_attack_animation(D, ATTACK_EFFECT_KICK)
playsound(get_turf(D), 'sound/effects/hit_kick.ogg', 50, TRUE, -1)
@@ -151,22 +155,27 @@
/datum/martial_art/krav_maga/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(check_streak(A,D))
return 1
- var/obj/item/I = null
- if(prob(60))
- I = D.get_active_held_item()
- if(I)
- if(D.temporarilyRemoveItemFromInventory(I))
- A.put_in_hands(I)
- D.visible_message("[A] disarms [D]!", \
- "You're disarmed by [A]!", "You hear aggressive shuffling!", COMBAT_MESSAGE_RANGE, A)
- to_chat(A, "You disarm [D]!")
- playsound(D, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1)
- else
- D.visible_message("[A] fails to disarm [D]!", \
- "You're nearly disarmed by [A]!", "You hear a swoosh!", COMBAT_MESSAGE_RANGE, A)
- to_chat(A, "You fail to disarm [D]!")
- playsound(D, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1)
- log_combat(A, D, "disarmed (Krav Maga)", "[I ? " removing \the [I]" : ""]")
+ var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected))
+ var/armor_block = D.run_armor_check(affecting, "melee")
+ if((D.mobility_flags & MOBILITY_STAND))
+ D.visible_message("[A] reprimands [D]!", \
+ "You're slapped by [A]!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, A)
+ to_chat(A, "You jab [D]!")
+ A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
+ playsound(D, 'sound/effects/hit_punch.ogg', 50, TRUE, -1)
+ D.apply_damage(rand(5,10), STAMINA, affecting, armor_block)
+ log_combat(A, D, "punched nonlethally")
+ if(!(D.mobility_flags & MOBILITY_STAND))
+ D.visible_message("[A] reprimands [D]!", \
+ "You're manhandled by [A]!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, A)
+ to_chat(A, "You stomp [D]!")
+ A.do_attack_animation(D, ATTACK_EFFECT_KICK)
+ playsound(D, 'sound/effects/hit_punch.ogg', 50, TRUE, -1)
+ D.apply_damage(rand(10,15), STAMINA, affecting, armor_block)
+ log_combat(A, D, "stomped nonlethally")
+ if(prob(D.getStaminaLoss()))
+ D.visible_message("[D] sputters and recoils in pain!", "You recoil in pain as you are jabbed in a nerve!")
+ D.drop_all_held_items()
return 1
//Krav Maga Gloves