@Override
    public boolean canPlay() {
        if (AllZone.getStack().isSplitSecondOnStack()) return false;

        Card card = getSourceCard();

        if (card.isUnCastable())
            return false;

        if (payCosts != null)
            if (!Cost_Payment.canPayAdditionalCosts(payCosts, this))
                return false;

        if (!this.getRestrictions().canPlay(card, this))
            return false;

        return (card.isInstant() || card.hasKeyword("Flash") || Phase.canCastSorcery(card.getController()));
    }//canPlay()