2013-12-03 01:17:07 -08:00
|
|
|
package magic.model.event;
|
|
|
|
|
2017-08-19 21:15:44 -07:00
|
|
|
import magic.model.MagicCopyMap;
|
2020-01-15 12:02:42 -08:00
|
|
|
import magic.model.MagicSource;
|
2013-12-03 01:17:07 -08:00
|
|
|
import magic.model.condition.MagicCondition;
|
|
|
|
|
2014-03-22 19:48:25 -07:00
|
|
|
public class MagicConditionEvent extends MagicEvent {
|
2013-12-03 01:17:07 -08:00
|
|
|
|
2015-05-11 03:12:42 -07:00
|
|
|
private final MagicCondition cond;
|
2013-12-03 01:17:07 -08:00
|
|
|
|
2015-07-04 07:15:41 -07:00
|
|
|
public MagicConditionEvent(final MagicSource source, final MagicCondition condition, final MagicEventAction eventAction) {
|
2013-12-03 01:17:07 -08:00
|
|
|
super(
|
|
|
|
source,
|
2015-07-04 07:15:41 -07:00
|
|
|
eventAction,
|
2013-12-03 01:17:07 -08:00
|
|
|
""
|
|
|
|
);
|
2015-05-11 03:12:42 -07:00
|
|
|
cond = condition;
|
2013-12-03 01:17:07 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2015-05-11 03:12:42 -07:00
|
|
|
public boolean isSatisfied() {
|
|
|
|
return cond.accept(getSource()) && super.isSatisfied();
|
2013-12-03 01:17:07 -08:00
|
|
|
}
|
2017-08-19 21:15:44 -07:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public MagicEvent copy(final MagicCopyMap copyMap) {
|
|
|
|
return new MagicConditionEvent(
|
|
|
|
copyMap.copy(getSource()),
|
|
|
|
cond,
|
|
|
|
getEventAction()
|
|
|
|
);
|
|
|
|
}
|
2013-12-03 01:17:07 -08:00
|
|
|
}
|