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.Actor; import net.demilich.metastone.game.entities.Entity; public class GraveyardContainsCondition extends Condition { public GraveyardContainsCondition(ConditionDesc desc) { super(desc); } @Override protected boolean isFulfilled(GameContext context, Player player, ConditionDesc desc, Entity source, Entity target) { String cardId = (String) desc.get(ConditionArg.CARD_ID); for (Entity deadEntity : player.getGraveyard()) { Card card = null; if (deadEntity instanceof Actor) { Actor actor = (Actor) deadEntity; card = actor.getSourceCard(); } else if (deadEntity instanceof Card) { continue; } if (card.getCardId().equals(cardId)) { return true; } } return false; } }