- if (IS_DEAD(targ)) return false;
- if (STAT(FROZEN, targ)) return false;
+ if (game_stopped) return false;
+
+ // damage to dead/frozen players is good only if it happens in the frame they get killed / frozen
+ // so that stats for weapons that shoot multiple projectiles per shot are properly counted
+ if (IS_DEAD(targ) && time > targ.death_time) return false;
+ if (STAT(FROZEN, targ) && time > targ.freeze_time) return false;