diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 76c4249092..9faa8fc388 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -235,9 +235,18 @@ //if they have a neck grab on someone, that person gets hit instead var/obj/item/weapon/grab/G = locate() in M if(G && G.state >= GRAB_NECK) - visible_message("\The [M] uses [G.affecting] as a shield!") - if(Bump(G.affecting, forced=1)) - return //If Bump() returns 0 (keep going) then we continue on to attack M. + if(G.affecting.stat == DEAD) + var/shield_chance = min(80, (30 * (M.mob_size / 10))) //Small mobs have a harder time keeping a dead body as a shield than a human-sized one. Unathi would have an easier job, if they are made to be SIZE_LARGE in the future. -Mech + if(prob(shield_chance)) + visible_message("\The [M] uses [G.affecting] as a shield!") + if(Bump(G.affecting, forced=1)) + return + else + visible_message("\The [M] tries to use [G.affecting] as a shield, but fails!") + else + visible_message("\The [M] uses [G.affecting] as a shield!") + if(Bump(G.affecting, forced=1)) + return //If Bump() returns 0 (keep going) then we continue on to attack M. passthrough = !attack_mob(M, distance) else