diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index 6cdf9168036..bf79cbda345 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -155,7 +155,7 @@ SUBSYSTEM_DEF(throwing) /datum/thrownthing/proc/hitcheck() for (var/thing in get_turf(thrownthing)) var/atom/movable/AM = thing - if (AM == thrownthing || AM == thrower) + if (AM == thrownthing || (AM == thrower && !ismob(thrownthing))) continue if (AM.density && !(AM.pass_flags & LETPASSTHROW) && !(AM.flags_1 & ON_BORDER_1)) finalize(hit=TRUE, target=AM) diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index d8b0fdfbca0..c9a1b1adec0 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -9,7 +9,7 @@ var/obj/item/projectile/P = mover return !P.can_hit_target(src, P.permutated, src == P.original, TRUE) if(mover.throwing) - return (mover.throwing.thrower == src || !density || !(mobility_flags & MOBILITY_STAND)) + return (!density || !(mobility_flags & MOBILITY_STAND) || (mover.throwing.thrower == src && !ismob(mover))) if(buckled == mover) return TRUE if(ismob(mover))