@Override
    /**
     *  Lets player choose from options and returns successor upon success
     *  
     *  @return
     *  successor of action if available otherwise null
     */
    public IAction chooseOptions() {

        if (getSuccessors() == null || getSuccessors().size() == 0) {
            return null;
        }

        if (getSuccessors().size() == 1) {
            return getSuccessors().get(0);
        }

        Integer poll = null;
        printOptions();

        while (poll == null || poll < 0 || poll >= getSuccessors().size()) {
            poll = InputReader.readInteger();
            if (poll < 0 || poll >= getSuccessors().size()) {
                Printer.print(Settings_Output.OUT_ERROR, "Option Error", 0, "Option Error",
                        "Option out of index");
                continue;
            }
        }

        return getSuccessors().get(poll);
    }