package net.demilich.metastone.game.spells.trigger;
import net.demilich.metastone.game.Attribute;
import net.demilich.metastone.game.cards.CardType;
import net.demilich.metastone.game.entities.Entity;
import net.demilich.metastone.game.entities.minions.Race;
import net.demilich.metastone.game.events.CardPlayedEvent;
import net.demilich.metastone.game.events.GameEvent;
import net.demilich.metastone.game.events.GameEventType;
import net.demilich.metastone.game.spells.desc.trigger.EventTriggerArg;
import net.demilich.metastone.game.spells.desc.trigger.EventTriggerDesc;
public class CardPlayedTrigger extends GameEventTrigger {
public CardPlayedTrigger(EventTriggerDesc desc) {
super(desc);
}
@Override
protected boolean fire(GameEvent event, Entity host) {
CardPlayedEvent cardPlayedEvent = (CardPlayedEvent) event;
CardType cardType = (CardType) desc.get(EventTriggerArg.CARD_TYPE);
if (cardType != null && !cardPlayedEvent.getCard().getCardType().isCardType(cardType)) {
return false;
}
Race race = (Race) desc.get(EventTriggerArg.RACE);
if (race != null && cardPlayedEvent.getCard().getAttribute(Attribute.RACE) != race) {
return false;
}
return true;
}
@Override
public GameEventType interestedIn() {
return GameEventType.PLAY_CARD;
}
}