private void executeBattleCommand(String[] commandString, Player player) throws CommandException {
        if (AttackCommand.isAttackCommand(commandString[0])) {
            BattleFeedbackEnum feedback = null;
            AttackCommand firstCommand = AttackCommand.toCommand(commandString[0]);
            switch (firstCommand) {
            case TARGET:
                feedback = target(commandString, player);
                break;
            case REPAIR:
                feedback = repair(commandString, player);
                break;
            case ESCAPE:
                feedback = escape(player);
                break;
            }

            if (feedback != null) {
                handleBattleFeedback(feedback, player, battlePlayer, false);
                if (state == GameState.BATTLE) {
                    if (battlePlayer instanceof AIPlayer) {
                        handleBattleFeedback(PlayerManagerAI.attackPlayer((AIPlayer) battlePlayer, player, battleCounter),
                                battlePlayer, player, true);
                    } else {
                        // future code for hotseat human battles
                    }
                }
            }
        } else {
            throw new CommandException("Invalid battle command: " + commandString[0]);
        }
    }