Add faction to attack effects
Separate impact detection to allow logic to avoid friendly fire
Add collisionNonFriendlyDetected() to BattleState