package magic.model.event;
import magic.model.MagicGame;
import magic.model.MagicPermanent;
import magic.model.action.PlayAbilityAction;
import magic.model.condition.MagicCondition;
public class MagicPlayAbilityEvent extends MagicEvent {
private final MagicCondition cond;
public MagicPlayAbilityEvent(final MagicPermanent source) {
this(source, MagicCondition.ABILITY_ONCE_CONDITION);
}
public MagicPlayAbilityEvent(final MagicPermanent source, final MagicCondition condition) {
super(
source,
EVENT_ACTION,
""
);
cond = condition;
}
private static final MagicEventAction EVENT_ACTION = (final MagicGame game, final MagicEvent event) ->
game.doAction(new PlayAbilityAction(event.getPermanent()));
@Override
public boolean isSatisfied() {
return cond.accept(getSource()) && super.isSatisfied();
}
}