private static CardList getAffectedCards(StaticAbility stAb) {
		HashMap<String, String> params = stAb.getMapParams();
		Card hostCard = stAb.getHostCard();
		Player controller = hostCard.getController();
		
		if(params.containsKey("CharacteristicDefining"))
			return new CardList(hostCard); // will always be the card itself
		
		// non - CharacteristicDefining
		CardList affectedCards;
		String affectedZone = "Battlefield"; // default
		
		if (params.containsKey("AffectedZone"))
			affectedZone = params.get("AffectedZone");
		
		affectedCards = AllZoneUtil.getCardsInZone(affectedZone);
		
		if (params.containsKey("Affected")) {
			if (params.get("Affected").contains("Self") && !params.get("Affected").contains(","))
				affectedCards = new CardList(hostCard);
			else if (params.get("Affected").contains("EnchantedBy"))
				affectedCards = new CardList(hostCard.getEnchantingCard());
		}
		
		if (params.containsKey("Affected"))
			affectedCards = affectedCards.getValidCards(params.get("Affected").split(","), controller, hostCard);
		
		return affectedCards;
	}