319801d6e5
Replace the brittle 'self.position == other.position_before' check with a symmetric cell-intersection test: two rats are considered colliding if any of their current/previous cells overlap. This handles both 'both rats in same cell' and 'one rat enters the cell the other just left'. Also remove the erroneous hasattr(other_unit, 'fuck') guard that prevented Male.fuck() from being called on Female (Female has no fuck method, but only Male should initiate reproduction). Add tests/test_rat_reproduction.py with 8 scenarios covering overlapping rats, baby rats, already-pregnant females, far-apart rats, female self-initiation, sound playback, and procreate interval spawning.