public int replaceDamage(final int damage, Card source, boolean isCombat) {

        int restDamage = staticReplaceDamage(damage, source, isCombat);

        if (source.getName().equals("Szadek, Lord of Secrets") && isCombat) {
            source.addCounter(Counters.P1P1, restDamage);
            for (int i = 0; i < restDamage; i++) {
                CardList lib = AllZoneUtil.getPlayerCardsInLibrary(this);
                if (lib.size() > 0) {
                    AllZone.getGameAction().moveToGraveyard(lib.get(0));
                }
            }
            return 0;
        }

        if (AllZoneUtil.isCardInPlay("Crumbling Sanctuary")) {
            for (int i = 0; i < restDamage; i++) {
                CardList lib = AllZoneUtil.getPlayerCardsInLibrary(this);
                if (lib.size() > 0) {
                    AllZone.getGameAction().exile(lib.get(0));
                }
            }
            //return so things like Lifelink, etc do not trigger.  This is a replacement effect I think.
            return 0;
        }

        return restDamage;
    }