Refactored BattleState