private static void upkeep_Karma() {
        final Player player = AllZone.getPhase().getPlayerTurn();
        CardList karmas = AllZoneUtil.getCardsInPlay("Karma");
        CardList swamps = AllZoneUtil.getPlayerTypeInPlay(player, "Swamp");

        // determine how much damage to deal the current player
        final int damage = swamps.size();

        // if there are 1 or more Karmas on the  
        // battlefield have each of them deal damage.
        if (0 < karmas.size()) {
            for (Card karma : karmas) {
                final Card src = karma;
                Ability ability = new Ability(src, "0") {
                    @Override
                    public void resolve() {
                        if (damage > 0) {
                            player.addDamage(damage, src);
                        }
                    }
                };// Ability
                if (damage > 0) {

                    StringBuilder sb = new StringBuilder();
                    sb.append("Karma deals ").append(damage).append(" damage to ").append(player);
                    ability.setStackDescription(sb.toString());

                    AllZone.getStack().addSimultaneousStackEntry(ability);

                }
            }
        }// if
    }