diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm
index a05575f575d..39074c65664 100644
--- a/code/__DEFINES/combat.dm
+++ b/code/__DEFINES/combat.dm
@@ -60,6 +60,7 @@
#define UNARMED_ATTACK 2
#define PROJECTILE_ATTACK 3
#define THROWN_PROJECTILE_ATTACK 4
+#define LEAP_ATTACK 5
//Gun Stuff
#define SAWN_INTACT 0
diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm
index be831bbe0d1..479cb278e91 100644
--- a/code/game/objects/items/weapons/shields.dm
+++ b/code/game/objects/items/weapons/shields.dm
@@ -2,6 +2,13 @@
name = "shield"
block_chance = 50
+/obj/item/weapon/shield/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type)
+ if(attack_type == THROWN_PROJECTILE_ATTACK)
+ final_block_chance += 30
+ if(attack_type == LEAP_ATTACK)
+ final_block_chance = 100
+ return ..()
+
/obj/item/weapon/shield/riot
name = "riot shield"
desc = "A shield adept at blocking blunt objects from connecting with the torso of the shield wielder."
@@ -18,11 +25,6 @@
attack_verb = list("shoved", "bashed")
var/cooldown = 0 //shield bash cooldown. based on world.time
-/obj/item/weapon/shield/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type)
- if(attack_type == THROWN_PROJECTILE_ATTACK)
- final_block_chance += 30
- return ..()
-
/obj/item/weapon/shield/riot/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/melee/baton))
if(cooldown < world.time - 25)
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
index f0af54a45ab..60a1e5daa5f 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
@@ -96,7 +96,7 @@
var/blocked = 0
if(ishuman(A))
var/mob/living/carbon/human/H = A
- if(H.check_shields(90, "the [name]", src, attack_type = THROWN_PROJECTILE_ATTACK))
+ if(H.check_shields(0, "the [name]", src, attack_type = LEAP_ATTACK))
blocked = 1
if(!blocked)
L.visible_message("[src] pounces on [L]!", "[src] pounces on you!")
@@ -107,6 +107,8 @@
L.Weaken(5)
sleep(2)//Runtime prevention (infinite bump() calls on hulks)
step_towards(src,L)
+ else
+ weakened = 2
toggle_leap(0)
pounce_cooldown = !pounce_cooldown
@@ -168,4 +170,4 @@
src.throwing = 0
- return 1
\ No newline at end of file
+ return 1