@Override
    public boolean isLessThan(CardInterface card, int trump) {
        boolean retval;
        if (this.value == 0) {
            // fool will never get the trick if it wasn't the first card played
            if (card.getValue() == 0) {
                retval = false;
            } else {
                retval = true;
            }
        } else if (this.value == CardNames.getCardsPerNation() - 1) {
            // wizard on table, no other trick possible
            retval = false;
        } else if (card.getValue() == CardNames.getCardsPerNation() - 1) {
            // first wizard gets the trick
            retval = true;
        } else if (card.getNation() == trump) {
            retval = handleNewTrumpLaid(card, trump);
        } else if (card.getNation() == this.nation) {
            retval = handleSameNationLaid(card);
        } else {
            retval = false;
        }
        LOG.debug(String.format("%s is lower than %s (%s is Trump): %s", this.toString(), card.toString(), CardNames.getNationName(trump), retval));
        return retval;
    }