public static int shieldDamage(Card attacker, Card defender) {

        if (!canDestroyBlocker(defender, attacker, null, false)) return 100;

        int flankingMagnitude = 0;
        if (attacker.hasKeyword("Flanking")
                && !defender.hasKeyword("Flanking")) {

            flankingMagnitude = attacker.getAmountOfKeyword("Flanking");

            if (flankingMagnitude >= defender.getNetDefense())
                return 0;
            if (flankingMagnitude >= defender.getNetDefense() - defender.getDamage()
                    && !defender.hasKeyword("Indestructible"))
                return 0;

        }//flanking

        int defBushidoMagnitude = defender.getKeywordMagnitude("Bushido");

        int defenderDefense = defender.getNetDefense() - flankingMagnitude + defBushidoMagnitude;

        return defenderDefense;
    }//shieldDamage