package com.hearthsim.event.effect.conditional;
import com.hearthsim.card.Card;
import com.hearthsim.card.minion.Minion;
import com.hearthsim.model.BoardModel;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.tree.HearthTreeNode;
public interface Conditional {
default boolean isSatisfied(PlayerSide side, HearthTreeNode boardState) {
return isSatisfied(side, boardState.data_);
}
boolean isSatisfied(PlayerSide side, BoardModel boardModel);
Conditional HOLDING_DRAGON = (side, boardModel) -> {
for (Card card : boardModel.modelForSide(side).getHand()) {
if (card instanceof Minion && ((Minion)card).getTribe() == Minion.MinionTribe.DRAGON) {
return true;
}
}
return false;
};
}