diff --git a/code/datums/martial/_martial.dm b/code/datums/martial/_martial.dm
index d55330653f..d8a888871e 100644
--- a/code/datums/martial/_martial.dm
+++ b/code/datums/martial/_martial.dm
@@ -10,7 +10,6 @@
var/help_verb
var/pacifism_check = TRUE //are the martial arts combos/attacks unable to be used by pacifist.
var/allow_temp_override = TRUE //if this martial art can be overridden by temporary martial arts
- var/damage_base //this is set by damage_roll proc and is a random value between your species punchdamagelow and punchdamagehigh.
/datum/martial_art/proc/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
return FALSE
@@ -37,7 +36,7 @@
streak = ""
/datum/martial_art/proc/damage_roll(mob/living/carbon/human/A, mob/living/carbon/human/D)
- //Here we roll for our damage to be added into the damage_base var. This is changed depending on whether we are in combat mode, lying down, or if our target is in combat mode.
+ //Here we roll for our damage to be added into the damage var in the various attack procs. This is changed depending on whether we are in combat mode, lying down, or if our target is in combat mode.
var/damage = rand(A.dna.species.punchdamagelow, A.dna.species.punchdamagehigh)
if(!(D.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
damage *= 1.5
@@ -45,8 +44,7 @@
damage *= 0.5
if(!(A.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
damage *= 0.25
- damage_base = damage
- return
+ return damage
/datum/martial_art/proc/teach(mob/living/carbon/human/H, make_temporary = FALSE)
if(!istype(H) || !H.mind)
diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm
index 002da527c6..df7e92b1bf 100644
--- a/code/datums/martial/boxing.dm
+++ b/code/datums/martial/boxing.dm
@@ -17,7 +17,7 @@
var/atk_verb = pick("left hook","right hook","straight punch")
damage_roll(A,D)
- var/extra_damage = damage_base
+ var/extra_damage = damage_roll(A,D)
if(extra_damage == A.dna.species.punchdamagelow)
playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1)
D.visible_message("[A] has attempted to [atk_verb] [D]!", \
diff --git a/code/datums/martial/cqc.dm b/code/datums/martial/cqc.dm
index fb1e85486e..39fac11129 100644
--- a/code/datums/martial/cqc.dm
+++ b/code/datums/martial/cqc.dm
@@ -42,11 +42,12 @@
/datum/martial_art/cqc/proc/Slam(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!can_use(A))
return FALSE
+ var/damage = (damage_roll(A,D) + 5)
if(CHECK_MOBILITY(D, MOBILITY_STAND))
D.visible_message("[A] slams [D] into the ground!", \
"[A] slams you into the ground!")
playsound(get_turf(A), 'sound/weapons/slam.ogg', 50, 1, -1)
- D.apply_damage(damage_base + 5, BRUTE)
+ D.apply_damage(damage, BRUTE)
D.DefaultCombatKnockdown(120)
log_combat(A, D, "slammed (CQC)")
return TRUE
@@ -54,29 +55,33 @@
/datum/martial_art/cqc/proc/Kick(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!can_use(A))
return FALSE
- if(CHECK_MOBILITY(D, MOBILITY_STAND))
- D.visible_message("[A] kicks [D] back!", \
- "[A] kicks you back!")
- playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1)
- var/atom/throw_target = get_edge_target_turf(D, A.dir)
- D.throw_at(throw_target, 1, 14, A)
- D.apply_damage(damage_base + 5, BRUTE)
- log_combat(A, D, "kicked (CQC)")
+ var/damage = damage_roll(A,D)
if(!CHECK_MOBILITY(D, MOBILITY_STAND) && CHECK_MOBILITY(D, MOBILITY_USE))
log_combat(A, D, "knocked out (Head kick)(CQC)")
D.visible_message("[A] kicks [D]'s head, knocking [D.p_them()] out!", \
"[A] kicks your head, knocking you out!")
playsound(get_turf(A), 'sound/weapons/genhit1.ogg', 50, 1, -1)
D.SetSleeping(300)
- D.adjustOrganLoss(ORGAN_SLOT_BRAIN, damage_base + 10, 150)
+ D.apply_damage(damage + 5, BRUTE)
+ var/atom/throw_target = get_edge_target_turf(D, A.dir)
+ D.throw_at(throw_target, 1, 14, A)
+ D.adjustOrganLoss(ORGAN_SLOT_BRAIN, damage + 10, 150)
+ else
+ D.visible_message("[A] kicks [D]!", \
+ "[A] kicks you!")
+ playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1)
+ D.Dizzy(damage)
+ D.apply_damage(damage + 15, BRUTE)
+ log_combat(A, D, "kicked (CQC)")
return TRUE
/datum/martial_art/cqc/proc/Pressure(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!can_use(A))
return FALSE
+ var/damage = (damage_roll(A,D) + 55)
log_combat(A, D, "pressured (CQC)")
D.visible_message("[A] punches [D]'s neck!")
- D.apply_damage(damage_base + 55, STAMINA)
+ D.apply_damage(damage, STAMINA)
playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1)
return TRUE
@@ -85,11 +90,12 @@
return
if(!can_use(A))
return FALSE
+ var/damage = (damage_roll(A,D) + 15)
if(!D.stat)
log_combat(A, D, "restrained (CQC)")
D.visible_message("[A] locks [D] into a restraining position!", \
"[A] locks you into a restraining position!")
- D.apply_damage(damage_base + 15, STAMINA)
+ D.apply_damage(damage, STAMINA)
D.Stun(100)
restraining = TRUE
addtimer(VARSET_CALLBACK(src, restraining, FALSE), 50, TIMER_UNIQUE)
@@ -98,6 +104,7 @@
/datum/martial_art/cqc/proc/Consecutive(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!can_use(A))
return FALSE
+ var/damage = damage_roll(A,D)
if(!D.stat)
log_combat(A, D, "consecutive CQC'd (CQC)")
D.visible_message("[A] strikes [D]'s abdomen, neck and back consecutively", \
@@ -106,14 +113,13 @@
var/obj/item/I = D.get_active_held_item()
if(I && D.temporarilyRemoveItemFromInventory(I))
A.put_in_hands(I)
- D.apply_damage(damage_base + 45, STAMINA)
- D.apply_damage(damage_base + 20, BRUTE)
+ D.apply_damage(damage + 45, STAMINA)
+ D.apply_damage(damage + 20, BRUTE)
return TRUE
/datum/martial_art/cqc/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(A.a_intent == INTENT_GRAB && A!=D && can_use(A)) // A!=D prevents grabbing yourself
add_to_streak("G",D)
- damage_roll(A,D)
if(check_streak(A,D)) //if a combo is made no grab upgrade is done
return TRUE
old_grab_state = A.grab_state
@@ -131,13 +137,12 @@
if(!can_use(A))
return FALSE
add_to_streak("H",D)
- damage_roll(A,D)
if(check_streak(A,D))
return TRUE
log_combat(A, D, "attacked (CQC)")
A.do_attack_animation(D)
var/picked_hit_type = pick("CQC'd", "Big Bossed")
- var/bonus_damage = (damage_base + 7)
+ var/bonus_damage = (damage_roll(A,D) + 7)
if(!CHECK_MOBILITY(D, MOBILITY_STAND))
bonus_damage += 5
picked_hit_type = "stomps on"
@@ -162,8 +167,8 @@
if(!can_use(A))
return FALSE
add_to_streak("D",D)
- damage_roll(A,D)
var/obj/item/I = null
+ var/damage = (damage_roll(A,D)*0.5)
if(check_streak(A,D))
return TRUE
if(prob(65))
@@ -175,7 +180,7 @@
if(I && D.temporarilyRemoveItemFromInventory(I))
A.put_in_hands(I)
D.Jitter(2)
- D.apply_damage(damage_base*0.5, BRUTE)
+ D.apply_damage(damage, BRUTE)
else
D.visible_message("[A] attempted to disarm [D]!", \
"[A] attempted to disarm [D]!")
diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm
index 53b277d099..8ea1c2efca 100644
--- a/code/datums/martial/krav_maga.dm
+++ b/code/datums/martial/krav_maga.dm
@@ -98,38 +98,40 @@
/datum/martial_art/krav_maga/proc/leg_sweep(mob/living/carbon/human/A, mob/living/carbon/human/D)
var/obj/item/bodypart/affecting = D.get_bodypart(BODY_ZONE_CHEST)
var/armor_block = D.run_armor_check(affecting, "melee")
+ var/damage = damage_roll(A,D)
if(!CHECK_MOBILITY(D, MOBILITY_STAND))
return FALSE
D.visible_message("[A] leg sweeps [D]!", \
"[A] leg sweeps you!")
playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1)
- D.apply_damage(damage_base + 25, STAMINA, affecting, armor_block)
+ D.apply_damage(damage + 25, STAMINA, affecting, armor_block)
D.DefaultCombatKnockdown(80, override_hardstun = 1, override_stamdmg = 0)
log_combat(A, D, "leg sweeped")
return TRUE
/datum/martial_art/krav_maga/proc/quick_choke(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)//is actually lung punch
+ var/damage = damage_roll(A,D)
D.visible_message("[A] pounds [D] on the chest!", \
"[A] slams your chest! You can't breathe!")
playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1)
if(D.losebreath <= 10)
D.losebreath = CLAMP(D.losebreath + 5, 0, 10)
- D.adjustOxyLoss(damage_base + 5)
+ D.adjustOxyLoss(damage + 5)
log_combat(A, D, "quickchoked")
return TRUE
/datum/martial_art/krav_maga/proc/neck_chop(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
+ var/damage = (damage_roll(A,D)*0.5)
D.visible_message("[A] karate chops [D]'s neck!", \
"[A] karate chops your neck, rendering you unable to speak!")
playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1)
- D.apply_damage(damage_base*0.5, BRUTE)
+ D.apply_damage(damage, BRUTE)
if(D.silent <= 10)
D.silent = CLAMP(D.silent + 10, 0, 10)
log_combat(A, D, "neck chopped")
return TRUE
/datum/martial_art/krav_maga/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
- damage_roll(A,D)
if(check_streak(A,D))
return TRUE
log_combat(A, D, "grabbed (Krav Maga)")
@@ -138,16 +140,15 @@
/datum/martial_art/krav_maga/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected))
var/armor_block = D.run_armor_check(affecting, "melee")
- damage_roll(A,D)
if(check_streak(A,D))
return TRUE
log_combat(A, D, "punched")
var/picked_hit_type = pick("punches", "kicks")
- var/bonus_damage = 0
+ var/bonus_damage = damage_roll(A,D)
if(CHECK_MOBILITY(D, MOBILITY_STAND))
bonus_damage += 10
picked_hit_type = "stomps on"
- D.apply_damage(damage_base + bonus_damage, BRUTE, affecting, armor_block)
+ D.apply_damage(bonus_damage, BRUTE, affecting, armor_block)
if(picked_hit_type == "kicks" || picked_hit_type == "stomps on")
A.do_attack_animation(D, ATTACK_EFFECT_KICK)
playsound(get_turf(D), 'sound/effects/hit_kick.ogg', 50, 1, -1)
@@ -160,18 +161,18 @@
return TRUE
/datum/martial_art/krav_maga/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
- damage_roll(A,D)
if(check_streak(A,D))
return TRUE
var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected))
var/armor_block = D.run_armor_check(affecting, "melee")
+ var/damage = damage_roll(A,D)
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(damage_base + 5, STAMINA, affecting, armor_block)
+ D.apply_damage(damage + 5, STAMINA, affecting, armor_block)
log_combat(A, D, "punched nonlethally")
else
D.visible_message("[A] reprimands [D]!", \
@@ -179,7 +180,7 @@
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(damage_base + 10, STAMINA, affecting, armor_block)
+ D.apply_damage(damage + 10, 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!")
diff --git a/code/datums/martial/mushpunch.dm b/code/datums/martial/mushpunch.dm
index 67f3b45767..3fd0a637c2 100644
--- a/code/datums/martial/mushpunch.dm
+++ b/code/datums/martial/mushpunch.dm
@@ -4,16 +4,16 @@
/datum/martial_art/mushpunch/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
var/atk_verb
+ var/damage = (damage_roll(A,D)*3)
to_chat(A, "You begin to wind up an attack...")
if(!do_after(A, 25, target = D))
to_chat(A, "Your attack was interrupted!")
- damage_roll(A,D)
return TRUE //martial art code was a mistake
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
atk_verb = pick("punches", "smashes", "ruptures", "cracks")
D.visible_message("[A] [atk_verb] [D] with inhuman strength, sending [D.p_them()] flying backwards!", \
"[A] [atk_verb] you with inhuman strength, sending you flying backwards!")
- D.apply_damage(damage_base*3, BRUTE) //KAPOW
+ D.apply_damage(damage, BRUTE) //KAPOW
playsound(D, 'sound/effects/meteorimpact.ogg', 25, 1, -1)
var/throwtarget = get_edge_target_turf(A, get_dir(A, get_step_away(D, A)))
D.throw_at(throwtarget, 4, 2, A)//So stuff gets tossed around at the same time.
diff --git a/code/datums/martial/plasma_fist.dm b/code/datums/martial/plasma_fist.dm
index cb17e4cd4b..c751d3b146 100644
--- a/code/datums/martial/plasma_fist.dm
+++ b/code/datums/martial/plasma_fist.dm
@@ -44,11 +44,13 @@
return
/datum/martial_art/plasma_fist/proc/Throwback(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ var/damage = (damage_roll(A,D)*3)
D.visible_message("[A] has hit [D] with Plasma Punch!", \
"[A] has hit [D] with Plasma Punch!")
playsound(D.loc, 'sound/weapons/punch1.ogg', 50, 1, -1)
var/atom/throw_target = get_edge_target_turf(D, get_dir(D, get_step_away(D, A)))
D.throw_at(throw_target, 200, 4,A)
+ D.apply_damage(damage, BRUTE)
A.say("HYAH!", forced="plasma fist")
log_combat(A, D, "threw back (Plasma Fist)")
return
@@ -65,21 +67,18 @@
/datum/martial_art/plasma_fist/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("H",D)
- damage_roll(A,D)
if(check_streak(A,D))
return TRUE
return FALSE
/datum/martial_art/plasma_fist/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("D",D)
- damage_roll(A,D)
if(check_streak(A,D))
return TRUE
return FALSE
/datum/martial_art/plasma_fist/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("G",D)
- damage_roll(A,D)
if(check_streak(A,D))
return TRUE
return FALSE
diff --git a/code/datums/martial/psychotic_brawl.dm b/code/datums/martial/psychotic_brawl.dm
index d8cde9b33d..06d07260ed 100644
--- a/code/datums/martial/psychotic_brawl.dm
+++ b/code/datums/martial/psychotic_brawl.dm
@@ -4,19 +4,17 @@
pacifism_check = FALSE //Quite uncontrollable and unpredictable, people will still end up harming others with it.
/datum/martial_art/psychotic_brawling/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
- damage_roll(A,D)
return psycho_attack(A,D)
/datum/martial_art/psychotic_brawling/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
- damage_roll(A,D)
return psycho_attack(A,D)
/datum/martial_art/psychotic_brawling/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
- damage_roll(A,D)
return psycho_attack(A,D)
/datum/martial_art/psychotic_brawling/proc/psycho_attack(mob/living/carbon/human/A, mob/living/carbon/human/D)
var/atk_verb
+ var/damage = damage_roll(A,D)
switch(rand(1,8))
if(1)
D.help_shake_act(A)
@@ -47,10 +45,10 @@
D.visible_message("[A] [atk_verb] [D]!", \
"[A] [atk_verb] you!")
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 40, 1, -1)
- D.apply_damage(damage_base*1.5, BRUTE, BODY_ZONE_HEAD)
- A.apply_damage(damage_base, BRUTE, BODY_ZONE_HEAD)
+ D.apply_damage(damage*1.5, BRUTE, BODY_ZONE_HEAD)
+ A.apply_damage(damage, BRUTE, BODY_ZONE_HEAD)
if(!istype(D.head,/obj/item/clothing/head/helmet/) && !istype(D.head,/obj/item/clothing/head/hardhat))
- D.adjustOrganLoss(ORGAN_SLOT_BRAIN, damage_base)
+ D.adjustOrganLoss(ORGAN_SLOT_BRAIN, damage)
A.Stun(rand(10,45))
D.DefaultCombatKnockdown(rand(5,30))//CIT CHANGE - makes stuns from martial arts always use Knockdown instead of Stun for the sake of consistency
if(5,6)
@@ -58,7 +56,7 @@
atk_verb = pick("punches", "kicks", "hits", "slams into")
D.visible_message("[A] [atk_verb] [D] with inhuman strength, sending [D.p_them()] flying backwards!", \
"[A] [atk_verb] you with inhuman strength, sending you flying backwards!")
- D.apply_damage(damage_base*2, BRUTE)
+ D.apply_damage(damage*2, BRUTE)
playsound(get_turf(D), 'sound/effects/meteorimpact.ogg', 25, 1, -1)
var/throwtarget = get_edge_target_turf(A, get_dir(A, get_step_away(D, A)))
D.throw_at(throwtarget, 4, 2, A)//So stuff gets tossed around at the same time.
diff --git a/code/datums/martial/rising_bass.dm b/code/datums/martial/rising_bass.dm
index e219fb8e03..470126b9b6 100644
--- a/code/datums/martial/rising_bass.dm
+++ b/code/datums/martial/rising_bass.dm
@@ -78,6 +78,7 @@
return TRUE
/datum/martial_art/the_rising_bass/proc/sideKick(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ var/damage = (damage_roll(A,D)*0.5)
if(CHECK_MOBILITY(D, MOBILITY_STAND))
var/dir = A.dir & (NORTH | SOUTH) ? pick(EAST, WEST) : pick(NORTH, SOUTH)
var/oppdir = dir == NORTH ? SOUTH : dir == SOUTH ? NORTH : dir == EAST ? WEST : EAST
@@ -87,7 +88,7 @@
D.visible_message("[A] kicks [D] in the side, sliding them over!", \
"[A] kicks you in the side, forcing you to step away!")
playsound(get_turf(A), 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
- D.apply_damage(damage_base*0.5, BRUTE, BODY_ZONE_CHEST)
+ D.apply_damage(damage, BRUTE, BODY_ZONE_CHEST)
D.DefaultCombatKnockdown(60)
var/L = !checkfordensity(H,D) ? (!checkfordensity(K,D) ? D.loc : K) : H
D.forceMove(L)
@@ -96,6 +97,7 @@
return TRUE
/datum/martial_art/the_rising_bass/proc/shoulderFlip(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ var/damage = (damage_roll(A,D) + 25)
if(CHECK_MOBILITY(D, MOBILITY_STAND))
var/turf/H = get_step(A, get_dir(D,A))
var/L = checkfordensity(H,D) ? H : A.loc
@@ -104,8 +106,8 @@
"[A] flips you over their shoulder, slamming you into the ground!")
playsound(get_turf(A), 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
D.emote("scream")
- D.apply_damage(damage_base, BRUTE, BODY_ZONE_CHEST)
- D.apply_damage(damage_base + 25, BRUTE, BODY_ZONE_HEAD)
+ D.apply_damage(damage, BRUTE, BODY_ZONE_CHEST)
+ D.apply_damage(damage, BRUTE, BODY_ZONE_HEAD)
D.Sleeping(60)
D.DefaultCombatKnockdown(300)
D.forceMove(L)
@@ -114,6 +116,7 @@
return FALSE
/datum/martial_art/the_rising_bass/proc/repulsePunch(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ var/damage = damage_roll(A,D)
if(CHECK_MOBILITY(D, MOBILITY_STAND) && repulsecool < world.time)
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
D.visible_message("[A] smashes [D] in the chest, throwing them away!", \
@@ -121,7 +124,7 @@
playsound(get_turf(A), 'sound/weapons/punch1.ogg', 50, 1, -1)
var/atom/F = get_edge_target_turf(D, get_dir(A, get_step_away(D, A)))
D.throw_at(F, 10, 1)
- D.apply_damage(damage_base, BRUTE, BODY_ZONE_CHEST)
+ D.apply_damage(damage, BRUTE, BODY_ZONE_CHEST)
D.DefaultCombatKnockdown(90)
log_combat(A, D, "repulse punched (Rising Bass)")
repulsecool = world.time + 3 SECONDS
@@ -129,12 +132,13 @@
return FALSE
/datum/martial_art/the_rising_bass/proc/footSmash(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ var/damage = (damage_roll(A,D)*0.5)
if(CHECK_MOBILITY(D, MOBILITY_STAND))
A.do_attack_animation(D, ATTACK_EFFECT_KICK)
D.visible_message("[A] smashes their foot down on [D]'s foot!", \
"[A] smashes your foot!")
playsound(get_turf(A), 'sound/weapons/punch1.ogg', 50, 1, -1)
- D.apply_damage(damage_base*0.5, BRUTE, pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
+ D.apply_damage(damage, BRUTE, pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
D.dropItemToGround(D.get_active_held_item())
log_combat(A, D, "foot smashed (Rising Bass)")
return TRUE
@@ -156,21 +160,18 @@
/datum/martial_art/the_rising_bass/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("D",D)
- damage_roll(A,D)
if(check_streak(A,D))
return TRUE
return ..()
/datum/martial_art/the_rising_bass/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("H",D)
- damage_roll(A,D)
if(check_streak(A,D))
return TRUE
return ..()
/datum/martial_art/the_rising_bass/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("G",D)
- damage_roll(A,D)
if(check_streak(A,D))
return TRUE
return ..()
diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm
index 691b2655d1..61e41d89c7 100644
--- a/code/datums/martial/sleeping_carp.dm
+++ b/code/datums/martial/sleeping_carp.dm
@@ -31,45 +31,48 @@
var/atk_verb = pick("precisely kick", "brutally chop", "cleanly hit", "viciously slam")
///this is the critical hit damage added to the attack if it rolls, it starts at 0 because it'll be changed when rolled
var/crit_damage = 0
+ var/damage = damage_roll(A,D)
D.visible_message("[A] [atk_verb]s [D]!", \
"[A] [atk_verb]s you!", null, null, A)
to_chat(A, "You [atk_verb] [D]!")
if(prob(10))
- crit_damage += (damage_base*2 + 15)
+ crit_damage += (damage*2 + 15)
playsound(get_turf(D), 'sound/weapons/bite.ogg', 50, TRUE, -1)
D.visible_message("[D] staggers as the blow strikes them with inhuman force!", "You are struck with incredible precision by [A]!")
log_combat(A, D, "critcal strong punched (Sleeping Carp)")//log it here because a critical can swing for 40 force and it's important for the sake of how hard they hit
else
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 25, TRUE, -1)
log_combat(A, D, "strong punched (Sleeping Carp)")//so as to not double up on logging
- D.apply_damage((damage_base + 15) + crit_damage, BRUTE, affecting)
+ D.apply_damage((damage + 15) + crit_damage, BRUTE, affecting)
return
///Crashing Wave Kick: Harm Disarm combo, throws people seven tiles backwards
/datum/martial_art/the_sleeping_carp/proc/launchKick(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ var/damage = (damage_roll(A,D) + 15)
A.do_attack_animation(D, ATTACK_EFFECT_KICK)
D.visible_message("[A] kicks [D] square in the chest, sending them flying!", \
"You are kicked square in the chest by [A], sending you flying!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, A)
playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, TRUE, -1)
var/atom/throw_target = get_edge_target_turf(D, A.dir)
D.throw_at(throw_target, 7, 14, A)
- D.apply_damage(damage_base + 15, BRUTE, BODY_ZONE_CHEST)
+ D.apply_damage(damage, BRUTE, BODY_ZONE_CHEST)
log_combat(A, D, "launchkicked (Sleeping Carp)")
return
///Keelhaul: Harm Grab combo, knocks people down, deals stamina damage while they're on the floor
/datum/martial_art/the_sleeping_carp/proc/dropKick(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ var/damage = damage_roll(A,D)
A.do_attack_animation(D, ATTACK_EFFECT_KICK)
playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, TRUE, -1)
if((D.mobility_flags & MOBILITY_STAND))
- D.apply_damage(damage_base, BRUTE, BODY_ZONE_HEAD)
+ D.apply_damage(damage, BRUTE, BODY_ZONE_HEAD)
D.DefaultCombatKnockdown(50, override_hardstun = 0.01, override_stamdmg = 0)
- D.apply_damage(damage_base + 35, STAMINA, BODY_ZONE_HEAD) //A cit specific change form the tg port to really punish anyone who tries to stand up
+ D.apply_damage(damage + 35, STAMINA, BODY_ZONE_HEAD) //A cit specific change form the tg port to really punish anyone who tries to stand up
D.visible_message("[A] kicks [D] in the head, sending them face first into the floor!", \
"You are kicked in the head by [A], sending you crashing to the floor!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, A)
- else if(!(D.mobility_flags & MOBILITY_STAND))
- D.apply_damage(damage_base*0.5, BRUTE, BODY_ZONE_HEAD)
- D.apply_damage(damage_base + 35, STAMINA, BODY_ZONE_HEAD)
+ else
+ D.apply_damage(damage*0.5, BRUTE, BODY_ZONE_HEAD)
+ D.apply_damage(damage + 35, STAMINA, BODY_ZONE_HEAD)
D.drop_all_held_items()
D.visible_message("[A] kicks [D] in the head!", \
"You are kicked in the head by [A]!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, A)
@@ -78,7 +81,6 @@
/datum/martial_art/the_sleeping_carp/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("G",D)
- damage_roll(A,D)
if(check_streak(A,D))
return TRUE
log_combat(A, D, "grabbed (Sleeping Carp)")
@@ -86,7 +88,7 @@
/datum/martial_art/the_sleeping_carp/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("H",D)
- damage_roll(A,D)
+ var/damage = (damage_roll(A,D) + 5)
if(check_streak(A,D))
return TRUE
var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected))
@@ -95,7 +97,7 @@
D.visible_message("[A] [atk_verb]s [D]!", \
"[A] [atk_verb]s you!", null, null, A)
to_chat(A, "You [atk_verb] [D]!")
- D.apply_damage(damage_base + 5, BRUTE, affecting)
+ D.apply_damage(damage, BRUTE, affecting)
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 25, TRUE, -1)
log_combat(A, D, "punched (Sleeping Carp)")
return TRUE
@@ -103,7 +105,6 @@
/datum/martial_art/the_sleeping_carp/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("D",D)
- damage_roll(A,D)
if(check_streak(A,D))
return TRUE
log_combat(A, D, "disarmed (Sleeping Carp)")
diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm
index f616bc3a0d..f7923d029f 100644
--- a/code/datums/martial/wrestling.dm
+++ b/code/datums/martial/wrestling.dm
@@ -227,6 +227,7 @@
if(!A.pulling || A.pulling != D)
to_chat(A, "You need to have [D] in a cinch!")
return
+ var/damage = damage_roll(A,D)
D.forceMove(A.loc)
A.setDir(get_dir(A, D))
D.setDir(get_dir(D, A))
@@ -309,11 +310,11 @@
switch(rand(1,3))
if (2)
- D.apply_damage(damage_base + 25, BRUTE)
+ D.apply_damage(damage + 25, BRUTE)
if (3)
D.ex_act(EXPLODE_LIGHT)
else
- D.apply_damage(damage_base + 15, BRUTE)
+ D.apply_damage(damage + 15, BRUTE)
else
D.ex_act(EXPLODE_LIGHT)
@@ -337,6 +338,7 @@
if(!D)
return
var/turf/T = get_turf(A)
+ var/damage = damage_roll(A,D)
if (T && isturf(T) && D && isturf(D.loc))
for (var/i = 0, i < 4, i++)
A.setDir(turn(A.dir, 90))
@@ -345,7 +347,7 @@
addtimer(CALLBACK(src, .proc/CheckStrikeTurf, A, T), 4)
A.visible_message("[A] headbutts [D]!")
- D.apply_damage(damage_base + 15, BRUTE)
+ D.apply_damage(damage + 15, BRUTE)
playsound(A.loc, "swing_hit", 50, 1)
D.Unconscious(20)
log_combat(A, D, "headbutted")
@@ -353,13 +355,14 @@
/datum/martial_art/wrestling/proc/kick(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!D)
return
+ var/damage = damage_roll(A,D)
A.emote("scream")
A.emote("flip")
A.setDir(turn(A.dir, 90))
A.visible_message("[A] roundhouse-kicks [D]!")
playsound(A.loc, "swing_hit", 50, 1)
- D.apply_damage(damage_base + 15, STAMINA)
+ D.apply_damage(damage + 15, STAMINA)
var/turf/T = get_edge_target_turf(A, get_dir(A, get_step_away(D, A)))
if (T && isturf(T))
@@ -373,7 +376,8 @@
var/obj/surface = null
var/turf/ST = null
var/falling = 0
-
+ var/damage = damage_roll(A,D)
+
for (var/obj/O in oview(1, A))
if (O.density == 1)
if (O == A)
@@ -401,7 +405,7 @@
A.pixel_y = 0
if (falling == 1)
A.visible_message("...and dives head-first into the ground, ouch!")
- A.apply_damage(damage_base + 15, BRUTE)
+ A.apply_damage(damage + 15, BRUTE)
A.DefaultCombatKnockdown(60)
to_chat(A, "[D] is too far away!")
return FALSE
@@ -427,9 +431,9 @@
if (prob(33) || D.stat)
D.ex_act(EXPLODE_LIGHT)
else
- D.apply_damage(damage_base + 25, BRUTE)
+ D.apply_damage(damage + 25, BRUTE)
else
- D.apply_damage(damage_base + 25, BRUTE)
+ D.apply_damage(damage + 25, BRUTE)
D.DefaultCombatKnockdown(40)
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index 48358f58ae..3d7315b88d 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -94,7 +94,7 @@
item_state = "rapid"
enhancement = 10 //omae wa mou shindeiru
var/warcry = "AT"
- secondary_trait = TRAIT_NOHARDCRIT
+ secondary_trait = TRAIT_NOSOFTCRIT //basically extra health
/obj/item/clothing/gloves/fingerless/pugilist/rapid/Initialize()
. = ..()
@@ -111,7 +111,7 @@
return FALSE
-/obj/item/clothing/gloves/fingerless/pugilist/rapid/attack_self(mob/user)
+/obj/item/clothing/gloves/fingerless/pugilist/rapid/AltClick(mob/user)
var/input = stripped_input(user,"What do you want your battlecry to be? Max length of 6 characters.", ,"", 7)
if(input)
warcry = input
@@ -138,7 +138,7 @@
return FALSE
-/obj/item/clothing/gloves/fingerless/pugilist/rapid/hug/attack_self(mob/user)
+/obj/item/clothing/gloves/fingerless/pugilist/rapid/hug/AltClick(mob/user)
return FALSE
/obj/item/clothing/gloves/botanic_leather