At a first glance...
It looks like the turret and poison dart use ent_move, not c_move, and the dart is PASSABLE when near the turret.

*try using c_move instead with POLYGON flag ON or proper bounding box settings for the obstacle wall?
*keep the obstacle wall and the player some distance from the turret?
*change the distance the poison dart is PASSABLE when fired (maybe use turret.max_x * 1.05 instead of 100)?