package net.demilich.metastone.game.spells.desc.condition; import net.demilich.metastone.game.GameContext; import net.demilich.metastone.game.Player; import net.demilich.metastone.game.cards.Card; import net.demilich.metastone.game.entities.Entity; import net.demilich.metastone.game.spells.desc.filter.EntityFilter; public class DeckContainsCondition extends Condition { public DeckContainsCondition(ConditionDesc desc) { super(desc); } @Override protected boolean isFulfilled(GameContext context, Player player, ConditionDesc desc, Entity source, Entity target) { EntityFilter cardFilter = (EntityFilter) desc.get(ConditionArg.CARD_FILTER); for (Card card : player.getDeck()) { if (cardFilter == null || cardFilter.matches(context, player, card)) { return true; } } return false; } }