public void Battle(Player player, Enemy enemy) throws IOException {

        //  open up standard input
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        // Determine who goes first
        isFirst(player, enemy);

        while (player.getHealth() > 0 && enemy.getHealth() > 0) {
            String input = null;
            // User's turn
            if (myTurn) {
                // List attack's
                System.out.println("Attack list: ");
                for (int i = 0; i < player.getAbilities().size(); i++) {
                    System.out.println(i + 1 + ":" + player.getAbilities().get(i).getName());
                }
                System.out.print("\nEnter value: ");
                // Get input
                input = br.readLine();

                // Check that input is a number between 1-4
                while (!isInteger(input) || Integer.parseInt(input) > player.getAbilities().size() || Integer.parseInt(input) < 1) {
                    System.out.print("Please enter a valid number: ");
                    input = br.readLine();
                }

                // Assign value to ability
                int value = Integer.parseInt(input) - 1;
                Ability ability = player.getAbilities().get(value);
                // Do battle stuff
                combatAction(player, enemy, ability);
                myTurn = false;
            } else {
                // Enemy turn
                int value = util.RNG.rand(0, enemy.getAbilities().size() - 1);
                Ability ability = enemy.getAbilities().get(value);
                combatAction(enemy, player, ability);
                myTurn = true;
            }
        }

        if (player.getHealth() <= 0) {
            System.out.println(player.getName() + " faints...\n");
        } else {
            System.out.println(player.getName() + " wins!\n");
            //player.levelUp();
        }
    }