remove getEvent in MagicDiesTrigger, implement should override executeTrigger
instead added combine static factory method to compose a trigger with MagicSourceEventmaster
parent
b06bacb09a
commit
5fd20a5987
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
final MagicPlayer opponent = permanent.getOpponent();
|
final MagicPlayer opponent = permanent.getOpponent();
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
permanent.getOpponent(),
|
permanent.getOpponent(),
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -22,7 +22,7 @@ def event = {
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return event(permanent);
|
return event(permanent);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return permanent.getCounters(MagicCounterType.Charge) == 0 ?
|
return permanent.getCounters(MagicCounterType.Charge) == 0 ?
|
||||||
new MagicEvent(
|
new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return permanent.getCounters(MagicCounterType.Charge) == 0 ?
|
return permanent.getCounters(MagicCounterType.Charge) == 0 ?
|
||||||
new MagicEvent(
|
new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
final MagicTargetChoice targetChoice = new MagicTargetChoice(
|
final MagicTargetChoice targetChoice = new MagicTargetChoice(
|
||||||
new MagicTargetFilter.MagicCMCCardFilter(
|
new MagicTargetFilter.MagicCMCCardFilter(
|
||||||
MagicTargetFilter.TARGET_CREATURE_CARD_FROM_GRAVEYARD,
|
MagicTargetFilter.TARGET_CREATURE_CARD_FROM_GRAVEYARD,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
MagicTargetChoice.TARGET_CREATURE_YOU_CONTROL,
|
MagicTargetChoice.TARGET_CREATURE_YOU_CONTROL,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
new MagicMayChoice(
|
new MagicMayChoice(
|
||||||
|
|
|
@ -25,7 +25,7 @@ def event = {
|
||||||
},
|
},
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return event(permanent);
|
return event(permanent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
MagicTargetChoice.TARGET_CREATURE,
|
MagicTargetChoice.TARGET_CREATURE,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
MagicTargetChoice.NEG_TARGET_CREATURE,
|
MagicTargetChoice.NEG_TARGET_CREATURE,
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
},
|
},
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
final int cmc = permanent.getGame().filterPermanents(
|
final int cmc = permanent.getGame().filterPermanents(
|
||||||
permanent.getController(),
|
permanent.getController(),
|
||||||
MagicTargetFilter.TARGET_SPIRIT_YOU_CONTROL
|
MagicTargetFilter.TARGET_SPIRIT_YOU_CONTROL
|
||||||
).size()+1;
|
).size()+1;
|
||||||
return new MagicSoulshiftTrigger(cmc).getEvent(permanent);
|
return new MagicSoulshiftTrigger(cmc).executeTrigger(game, permanent, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -24,7 +24,7 @@ def event = {
|
||||||
},
|
},
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return event(permanent);
|
return event(permanent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -22,7 +22,7 @@ def event = {
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return event(permanent);
|
return event(permanent);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
new MagicMayChoice(
|
new MagicMayChoice(
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
MagicTargetChoice.NEG_TARGET_PLAYER,
|
MagicTargetChoice.NEG_TARGET_PLAYER,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
new MagicMayChoice(
|
new MagicMayChoice(
|
||||||
|
|
|
@ -1,26 +1,30 @@
|
||||||
def WhenDies = new MagicWhenDiesTrigger() {
|
def Action = {
|
||||||
@Override
|
final MagicGame game, final MagicEvent event ->
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
game.doAction(new MagicPlayTokenAction(event.getPlayer(), TokenCardDefinitions.get("GW Elemental")));
|
||||||
return new MagicEvent(
|
} as MagicEventAction
|
||||||
permanent,
|
|
||||||
this,
|
def Event = {
|
||||||
"PN puts a green and white Elemental creature token onto the battlefield with " +
|
final MagicPermanent permanent ->
|
||||||
"\"This creature's power and toughness are each equal to the number of creatures you control.\""
|
return new MagicEvent(
|
||||||
);
|
permanent,
|
||||||
}
|
Action,
|
||||||
@Override
|
"PN puts a green and white Elemental creature token onto the battlefield with " +
|
||||||
public void executeEvent(final MagicGame game, final MagicEvent event) {
|
"\"This creature's power and toughness are each equal to the number of creatures you control.\""
|
||||||
game.doAction(new MagicPlayTokenAction(event.getPlayer(), TokenCardDefinitions.get("GW Elemental")));
|
);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[
|
[
|
||||||
WhenDies,
|
new MagicWhenDiesTrigger() {
|
||||||
|
@Override
|
||||||
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
|
return Event(permanent);
|
||||||
|
}
|
||||||
|
},
|
||||||
new MagicWhenOtherSpellIsCastTrigger() {
|
new MagicWhenOtherSpellIsCastTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicCardOnStack cardOnStack) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicCardOnStack cardOnStack) {
|
||||||
return permanent.isEnemy(cardOnStack) && permanent.isController(game.getTurnPlayer()) ?
|
return permanent.isEnemy(cardOnStack) && permanent.isController(game.getTurnPlayer()) ?
|
||||||
WhenDies.getEvent(permanent) : MagicEvent.NONE;
|
Event(permanent) : MagicEvent.NONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
new MagicWhenDiesTrigger() {
|
new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -26,8 +26,10 @@ import magic.model.event.MagicKickerCost;
|
||||||
import magic.model.event.MagicMultikickerCost;
|
import magic.model.event.MagicMultikickerCost;
|
||||||
import magic.model.event.MagicMonstrosityActivation;
|
import magic.model.event.MagicMonstrosityActivation;
|
||||||
import magic.model.event.MagicBestowActivation;
|
import magic.model.event.MagicBestowActivation;
|
||||||
|
import magic.model.event.MagicRuleEventAction;
|
||||||
import magic.model.mstatic.MagicCDA;
|
import magic.model.mstatic.MagicCDA;
|
||||||
import magic.model.mstatic.MagicStatic;
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.trigger.MagicTrigger;
|
||||||
import magic.model.trigger.MagicAllyGrowTrigger;
|
import magic.model.trigger.MagicAllyGrowTrigger;
|
||||||
import magic.model.trigger.MagicAnnihilatorTrigger;
|
import magic.model.trigger.MagicAnnihilatorTrigger;
|
||||||
import magic.model.trigger.MagicAttacksPumpTrigger;
|
import magic.model.trigger.MagicAttacksPumpTrigger;
|
||||||
|
@ -38,7 +40,6 @@ import magic.model.trigger.MagicComesIntoPlayWithCounterTrigger;
|
||||||
import magic.model.trigger.MagicCumulativeUpkeepTrigger;
|
import magic.model.trigger.MagicCumulativeUpkeepTrigger;
|
||||||
import magic.model.trigger.MagicDamageGrowTrigger;
|
import magic.model.trigger.MagicDamageGrowTrigger;
|
||||||
import magic.model.trigger.MagicDevourTrigger;
|
import magic.model.trigger.MagicDevourTrigger;
|
||||||
import magic.model.trigger.MagicDieDrawCardTrigger;
|
|
||||||
import magic.model.trigger.MagicEchoTrigger;
|
import magic.model.trigger.MagicEchoTrigger;
|
||||||
import magic.model.trigger.MagicEntersDamageTargetTrigger;
|
import magic.model.trigger.MagicEntersDamageTargetTrigger;
|
||||||
import magic.model.trigger.MagicEntersExileCreatureOrSacrificeTrigger;
|
import magic.model.trigger.MagicEntersExileCreatureOrSacrificeTrigger;
|
||||||
|
@ -693,32 +694,50 @@ public enum MagicAbility {
|
||||||
},
|
},
|
||||||
EntersEffect("enters effect", 10) {
|
EntersEffect("enters effect", 10) {
|
||||||
protected void addAbilityImpl(final MagicAbilityStore card, final String arg) {
|
protected void addAbilityImpl(final MagicAbilityStore card, final String arg) {
|
||||||
card.add(MagicWhenComesIntoPlayTrigger.create(arg));
|
card.add(MagicTrigger.combine(
|
||||||
|
MagicWhenComesIntoPlayTrigger.NONE,
|
||||||
|
MagicRuleEventAction.create(arg)
|
||||||
|
));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
EntersMayEffect("enters effect PN may", 10) {
|
EntersMayEffect("enters effect PN may", 10) {
|
||||||
protected void addAbilityImpl(final MagicAbilityStore card, final String arg) {
|
protected void addAbilityImpl(final MagicAbilityStore card, final String arg) {
|
||||||
card.add(MagicWhenComesIntoPlayTrigger.createMay(arg));
|
card.add(MagicTrigger.combine(
|
||||||
|
MagicWhenComesIntoPlayTrigger.NONE,
|
||||||
|
MagicRuleEventAction.createMay(arg)
|
||||||
|
));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
DiesEffect("dies effect", 10) {
|
DiesEffect("dies effect", 10) {
|
||||||
protected void addAbilityImpl(final MagicAbilityStore card, final String arg) {
|
protected void addAbilityImpl(final MagicAbilityStore card, final String arg) {
|
||||||
card.add(MagicWhenDiesTrigger.create(arg));
|
card.add(MagicTrigger.combine(
|
||||||
|
MagicWhenDiesTrigger.NONE,
|
||||||
|
MagicRuleEventAction.create(arg)
|
||||||
|
));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
DiesMayEffect("dies effect PN may", 10) {
|
DiesMayEffect("dies effect PN may", 10) {
|
||||||
protected void addAbilityImpl(final MagicAbilityStore card, final String arg) {
|
protected void addAbilityImpl(final MagicAbilityStore card, final String arg) {
|
||||||
card.add(MagicWhenDiesTrigger.createMay(arg));
|
card.add(MagicTrigger.combine(
|
||||||
|
MagicWhenDiesTrigger.NONE,
|
||||||
|
MagicRuleEventAction.createMay(arg)
|
||||||
|
));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
LeavesEffect("leaves effect", 10) {
|
LeavesEffect("leaves effect", 10) {
|
||||||
protected void addAbilityImpl(final MagicAbilityStore card, final String arg) {
|
protected void addAbilityImpl(final MagicAbilityStore card, final String arg) {
|
||||||
card.add(MagicWhenLeavesPlayTrigger.create(arg));
|
card.add(MagicTrigger.combine(
|
||||||
|
MagicWhenLeavesPlayTrigger.NONE,
|
||||||
|
MagicRuleEventAction.create(arg)
|
||||||
|
));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
LeavesMayEffect("leaves effect PN may", 10) {
|
LeavesMayEffect("leaves effect PN may", 10) {
|
||||||
protected void addAbilityImpl(final MagicAbilityStore card, final String arg) {
|
protected void addAbilityImpl(final MagicAbilityStore card, final String arg) {
|
||||||
card.add(MagicWhenLeavesPlayTrigger.createMay(arg));
|
card.add(MagicTrigger.combine(
|
||||||
|
MagicWhenLeavesPlayTrigger.NONE,
|
||||||
|
MagicRuleEventAction.createMay(arg)
|
||||||
|
));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ControlEnchanted("control enchanted", 10) {
|
ControlEnchanted("control enchanted", 10) {
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
package magic.model.event;
|
|
||||||
|
|
||||||
import magic.model.MagicGame;
|
|
||||||
import magic.model.MagicPayedCost;
|
|
||||||
import magic.model.MagicPermanent;
|
|
||||||
import magic.model.action.MagicPermanentAction;
|
|
||||||
import magic.model.action.MagicTapAction;
|
|
||||||
import magic.model.choice.MagicTargetChoice;
|
|
||||||
import magic.model.condition.MagicCondition;
|
|
||||||
import magic.model.target.MagicTapTargetPicker;
|
|
||||||
|
|
||||||
public abstract class MagicTapCreatureActivation extends MagicPermanentActivation {
|
|
||||||
|
|
||||||
public MagicTapCreatureActivation(
|
|
||||||
final MagicActivationHints hints,
|
|
||||||
final String text) {
|
|
||||||
super(MagicActivation.NO_COND,hints,text);
|
|
||||||
}
|
|
||||||
|
|
||||||
public MagicTapCreatureActivation(
|
|
||||||
final MagicCondition[] conds,
|
|
||||||
final MagicActivationHints hints,
|
|
||||||
final String text) {
|
|
||||||
super(conds,hints,text);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
|
|
||||||
return new MagicEvent(
|
|
||||||
source,
|
|
||||||
MagicTargetChoice.NEG_TARGET_CREATURE,
|
|
||||||
MagicTapTargetPicker.Tap,
|
|
||||||
this,
|
|
||||||
"Tap target creature$."
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void executeEvent(final MagicGame game, final MagicEvent event) {
|
|
||||||
event.processTargetPermanent(game,new MagicPermanentAction() {
|
|
||||||
public void doAction(final MagicPermanent creature) {
|
|
||||||
game.doAction(new MagicTapAction(creature,true));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
package magic.model.trigger;
|
|
||||||
|
|
||||||
import magic.model.MagicGame;
|
|
||||||
import magic.model.MagicLocationType;
|
|
||||||
import magic.model.MagicPermanent;
|
|
||||||
import magic.model.action.MagicDrawAction;
|
|
||||||
import magic.model.choice.MagicSimpleMayChoice;
|
|
||||||
import magic.model.event.MagicEvent;
|
|
||||||
|
|
||||||
//When C is put into a graveyard from the battlefield, you may or must draw a card.
|
|
||||||
public class MagicDieDrawCardTrigger extends MagicWhenDiesTrigger {
|
|
||||||
|
|
||||||
private final boolean mustDraw;
|
|
||||||
|
|
||||||
public MagicDieDrawCardTrigger(final boolean mandatory) {
|
|
||||||
this.mustDraw = mandatory;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
|
||||||
return mustDraw ?
|
|
||||||
new MagicEvent(
|
|
||||||
permanent,
|
|
||||||
this,
|
|
||||||
"PN draws a card."
|
|
||||||
):
|
|
||||||
new MagicEvent(
|
|
||||||
permanent,
|
|
||||||
new MagicSimpleMayChoice(
|
|
||||||
MagicSimpleMayChoice.DRAW_CARDS,
|
|
||||||
1,
|
|
||||||
MagicSimpleMayChoice.DEFAULT_NONE
|
|
||||||
),
|
|
||||||
this,
|
|
||||||
"PN may$ draw a card."
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void executeEvent(final MagicGame game, final MagicEvent event) {
|
|
||||||
if (mustDraw || event.isYes()) {
|
|
||||||
game.doAction(new MagicDrawAction(event.getPlayer()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -6,12 +6,12 @@ import magic.model.MagicLocationType;
|
||||||
import magic.model.MagicPermanent;
|
import magic.model.MagicPermanent;
|
||||||
import magic.model.action.MagicChangeCountersAction;
|
import magic.model.action.MagicChangeCountersAction;
|
||||||
import magic.model.action.MagicPermanentAction;
|
import magic.model.action.MagicPermanentAction;
|
||||||
|
import magic.model.action.MagicMoveCardAction;
|
||||||
import magic.model.choice.MagicMayChoice;
|
import magic.model.choice.MagicMayChoice;
|
||||||
import magic.model.choice.MagicTargetChoice;
|
import magic.model.choice.MagicTargetChoice;
|
||||||
import magic.model.event.MagicEvent;
|
import magic.model.event.MagicEvent;
|
||||||
import magic.model.target.MagicPumpTargetPicker;
|
import magic.model.target.MagicPumpTargetPicker;
|
||||||
|
|
||||||
|
|
||||||
public class MagicModularTrigger extends MagicWhenDiesTrigger {
|
public class MagicModularTrigger extends MagicWhenDiesTrigger {
|
||||||
|
|
||||||
private static final MagicModularTrigger INSTANCE = new MagicModularTrigger();
|
private static final MagicModularTrigger INSTANCE = new MagicModularTrigger();
|
||||||
|
@ -23,7 +23,7 @@ public class MagicModularTrigger extends MagicWhenDiesTrigger {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicMoveCardAction act) {
|
||||||
final int amount = permanent.getCounters(MagicCounterType.PlusOne);
|
final int amount = permanent.getCounters(MagicCounterType.PlusOne);
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
|
|
|
@ -7,6 +7,7 @@ import magic.model.MagicPermanent;
|
||||||
import magic.model.action.MagicPlayCardAction;
|
import magic.model.action.MagicPlayCardAction;
|
||||||
import magic.model.action.MagicPlayMod;
|
import magic.model.action.MagicPlayMod;
|
||||||
import magic.model.action.MagicReanimateAction;
|
import magic.model.action.MagicReanimateAction;
|
||||||
|
import magic.model.action.MagicMoveCardAction;
|
||||||
import magic.model.event.MagicEvent;
|
import magic.model.event.MagicEvent;
|
||||||
|
|
||||||
public class MagicPersistTrigger extends MagicWhenDiesTrigger {
|
public class MagicPersistTrigger extends MagicWhenDiesTrigger {
|
||||||
|
@ -20,7 +21,7 @@ public class MagicPersistTrigger extends MagicWhenDiesTrigger {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicMoveCardAction act) {
|
||||||
return permanent.getCounters(MagicCounterType.MinusOne) == 0 ?
|
return permanent.getCounters(MagicCounterType.MinusOne) == 0 ?
|
||||||
new MagicEvent(
|
new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
|
|
|
@ -23,7 +23,7 @@ public class MagicSoulshiftTrigger extends MagicWhenDiesTrigger {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicMoveCardAction act) {
|
||||||
final MagicTargetFilter<MagicCard> targetFilter =
|
final MagicTargetFilter<MagicCard> targetFilter =
|
||||||
new MagicTargetFilter.MagicCMCCardFilter(
|
new MagicTargetFilter.MagicCMCCardFilter(
|
||||||
MagicTargetFilter.TARGET_SPIRIT_CARD_FROM_GRAVEYARD,
|
MagicTargetFilter.TARGET_SPIRIT_CARD_FROM_GRAVEYARD,
|
||||||
|
|
|
@ -5,6 +5,7 @@ import magic.model.MagicChangeCardDefinition;
|
||||||
import magic.model.MagicGame;
|
import magic.model.MagicGame;
|
||||||
import magic.model.MagicPermanent;
|
import magic.model.MagicPermanent;
|
||||||
import magic.model.event.MagicEvent;
|
import magic.model.event.MagicEvent;
|
||||||
|
import magic.model.event.MagicSourceEvent;
|
||||||
import magic.model.event.MagicEventAction;
|
import magic.model.event.MagicEventAction;
|
||||||
|
|
||||||
/** Lower priority values trigger before higher priority values. */
|
/** Lower priority values trigger before higher priority values. */
|
||||||
|
@ -19,10 +20,10 @@ public abstract class MagicTrigger<T> implements MagicEventAction,MagicChangeCar
|
||||||
|
|
||||||
private final int priority;
|
private final int priority;
|
||||||
|
|
||||||
protected MagicTrigger(final int priority) {
|
protected MagicTrigger(final int aPriority) {
|
||||||
this.priority = priority;
|
priority = aPriority;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected MagicTrigger() {
|
protected MagicTrigger() {
|
||||||
this(DEFAULT_PRIORITY);
|
this(DEFAULT_PRIORITY);
|
||||||
}
|
}
|
||||||
|
@ -41,7 +42,7 @@ public abstract class MagicTrigger<T> implements MagicEventAction,MagicChangeCar
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract MagicTriggerType getType();
|
public abstract MagicTriggerType getType();
|
||||||
|
|
||||||
public abstract MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final T data);
|
public abstract MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final T data);
|
||||||
|
|
||||||
public boolean accept(final MagicPermanent permanent, final T data) {
|
public boolean accept(final MagicPermanent permanent, final T data) {
|
||||||
|
@ -52,4 +53,29 @@ public abstract class MagicTrigger<T> implements MagicEventAction,MagicChangeCar
|
||||||
public void change(final MagicCardDefinition cdef) {
|
public void change(final MagicCardDefinition cdef) {
|
||||||
cdef.addTrigger(this);
|
cdef.addTrigger(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static <T> MagicTrigger<T> combine(final MagicTrigger<T> trigger, final MagicSourceEvent sourceEvent) {
|
||||||
|
return new MagicTrigger<T>() {
|
||||||
|
@Override
|
||||||
|
public MagicTriggerType getType() {
|
||||||
|
return trigger.getType();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean accept(final MagicPermanent permanent, final T data) {
|
||||||
|
return trigger.accept(permanent, data);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void change(final MagicCardDefinition cdef) {
|
||||||
|
trigger.change(cdef);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean usesStack() {
|
||||||
|
return trigger.usesStack();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final T data) {
|
||||||
|
return sourceEvent.getEvent(permanent);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import magic.model.MagicPermanent;
|
||||||
import magic.model.action.MagicPlayCardAction;
|
import magic.model.action.MagicPlayCardAction;
|
||||||
import magic.model.action.MagicPlayMod;
|
import magic.model.action.MagicPlayMod;
|
||||||
import magic.model.action.MagicReanimateAction;
|
import magic.model.action.MagicReanimateAction;
|
||||||
|
import magic.model.action.MagicMoveCardAction;
|
||||||
import magic.model.event.MagicEvent;
|
import magic.model.event.MagicEvent;
|
||||||
|
|
||||||
public class MagicUndyingTrigger extends MagicWhenDiesTrigger {
|
public class MagicUndyingTrigger extends MagicWhenDiesTrigger {
|
||||||
|
@ -20,7 +21,7 @@ public class MagicUndyingTrigger extends MagicWhenDiesTrigger {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicMoveCardAction act) {
|
||||||
return permanent.getCounters(MagicCounterType.PlusOne) == 0 ?
|
return permanent.getCounters(MagicCounterType.PlusOne) == 0 ?
|
||||||
new MagicEvent(
|
new MagicEvent(
|
||||||
permanent,
|
permanent,
|
||||||
|
|
|
@ -20,10 +20,18 @@ import magic.model.action.MagicChangeCountersAction;
|
||||||
import magic.data.TokenCardDefinitions;
|
import magic.data.TokenCardDefinitions;
|
||||||
|
|
||||||
public abstract class MagicWhenComesIntoPlayTrigger extends MagicTrigger<MagicPayedCost> {
|
public abstract class MagicWhenComesIntoPlayTrigger extends MagicTrigger<MagicPayedCost> {
|
||||||
|
|
||||||
|
public static final MagicWhenComesIntoPlayTrigger NONE = new MagicWhenComesIntoPlayTrigger() {
|
||||||
|
@Override
|
||||||
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicPayedCost data) {
|
||||||
|
throw new RuntimeException("executeTrigger called on NONE");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public MagicWhenComesIntoPlayTrigger(final int priority) {
|
public MagicWhenComesIntoPlayTrigger(final int priority) {
|
||||||
super(priority);
|
super(priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MagicWhenComesIntoPlayTrigger() {}
|
public MagicWhenComesIntoPlayTrigger() {}
|
||||||
|
|
||||||
public MagicTriggerType getType() {
|
public MagicTriggerType getType() {
|
||||||
|
@ -35,26 +43,6 @@ public abstract class MagicWhenComesIntoPlayTrigger extends MagicTrigger<MagicPa
|
||||||
cdef.addTrigger(this);
|
cdef.addTrigger(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MagicWhenComesIntoPlayTrigger createMay(final String rule) {
|
|
||||||
final MagicSourceEvent sourceEvent = MagicRuleEventAction.createMay(rule);
|
|
||||||
return new MagicWhenComesIntoPlayTrigger() {
|
|
||||||
@Override
|
|
||||||
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicPayedCost payedCost) {
|
|
||||||
return sourceEvent.getEvent(permanent);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public static MagicWhenComesIntoPlayTrigger create(final String rule) {
|
|
||||||
final MagicSourceEvent sourceEvent = MagicRuleEventAction.create(rule);
|
|
||||||
return new MagicWhenComesIntoPlayTrigger() {
|
|
||||||
@Override
|
|
||||||
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicPayedCost payedCost) {
|
|
||||||
return sourceEvent.getEvent(permanent);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final MagicWhenComesIntoPlayTrigger ChooseOpponent = new MagicWhenComesIntoPlayTrigger() {
|
public static final MagicWhenComesIntoPlayTrigger ChooseOpponent = new MagicWhenComesIntoPlayTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicPayedCost payedCost) {
|
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicPayedCost payedCost) {
|
||||||
|
|
|
@ -15,49 +15,31 @@ import magic.model.action.MagicMoveCardAction;
|
||||||
import magic.model.action.MagicRemoveCardAction;
|
import magic.model.action.MagicRemoveCardAction;
|
||||||
|
|
||||||
public abstract class MagicWhenDiesTrigger extends MagicWhenPutIntoGraveyardTrigger {
|
public abstract class MagicWhenDiesTrigger extends MagicWhenPutIntoGraveyardTrigger {
|
||||||
|
public static final MagicWhenDiesTrigger NONE = new MagicWhenDiesTrigger() {
|
||||||
|
@Override
|
||||||
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicMoveCardAction data) {
|
||||||
|
throw new RuntimeException("executeTrigger called on NONE");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public MagicWhenDiesTrigger(final int priority) {
|
public MagicWhenDiesTrigger(final int priority) {
|
||||||
super(priority);
|
super(priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MagicWhenDiesTrigger() {}
|
|
||||||
|
|
||||||
protected abstract MagicEvent getEvent(final MagicPermanent permanent);
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicMoveCardAction act) {
|
|
||||||
return (act.fromLocation == MagicLocationType.Play) ?
|
|
||||||
getEvent(permanent) : MagicEvent.NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static MagicWhenDiesTrigger createMay(final String rule) {
|
public MagicWhenDiesTrigger() {}
|
||||||
final MagicSourceEvent sourceEvent = MagicRuleEventAction.createMay(rule);
|
|
||||||
return new MagicWhenDiesTrigger() {
|
@Override
|
||||||
@Override
|
public boolean accept(final MagicPermanent permanent, final MagicMoveCardAction act) {
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
return super.accept(permanent,act) && act.fromLocation == MagicLocationType.Play;
|
||||||
return sourceEvent.getEvent(permanent);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public static MagicWhenDiesTrigger create(final String rule) {
|
|
||||||
final MagicSourceEvent sourceEvent = MagicRuleEventAction.create(rule);
|
|
||||||
return new MagicWhenDiesTrigger() {
|
|
||||||
@Override
|
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
|
||||||
return sourceEvent.getEvent(permanent);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MagicWhenDiesTrigger ReturnToOwnersHand = new MagicWhenDiesTrigger() {
|
public static MagicWhenDiesTrigger ReturnToOwnersHand = new MagicWhenDiesTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent getEvent(final MagicPermanent permanent) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicMoveCardAction act) {
|
||||||
final MagicCard card = permanent.getCard();
|
|
||||||
return new MagicEvent(
|
return new MagicEvent(
|
||||||
card,
|
permanent.getCard(),
|
||||||
card.getController(),
|
|
||||||
this,
|
this,
|
||||||
"Return " + card + " to its owner's hand."
|
"Return SN to its owner's hand."
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -13,10 +13,17 @@ import magic.model.event.MagicRuleEventAction;
|
||||||
import magic.model.action.MagicRemoveFromPlayAction;
|
import magic.model.action.MagicRemoveFromPlayAction;
|
||||||
|
|
||||||
public abstract class MagicWhenLeavesPlayTrigger extends MagicTrigger<MagicRemoveFromPlayAction> {
|
public abstract class MagicWhenLeavesPlayTrigger extends MagicTrigger<MagicRemoveFromPlayAction> {
|
||||||
|
public static final MagicWhenLeavesPlayTrigger NONE = new MagicWhenLeavesPlayTrigger() {
|
||||||
|
@Override
|
||||||
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicRemoveFromPlayAction data) {
|
||||||
|
throw new RuntimeException("executeTrigger called on NONE");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public MagicWhenLeavesPlayTrigger(final int priority) {
|
public MagicWhenLeavesPlayTrigger(final int priority) {
|
||||||
super(priority);
|
super(priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MagicWhenLeavesPlayTrigger() {}
|
public MagicWhenLeavesPlayTrigger() {}
|
||||||
|
|
||||||
public MagicTriggerType getType() {
|
public MagicTriggerType getType() {
|
||||||
|
@ -33,24 +40,4 @@ public abstract class MagicWhenLeavesPlayTrigger extends MagicTrigger<MagicRemov
|
||||||
return MagicEvent.NONE;
|
return MagicEvent.NONE;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public static MagicWhenLeavesPlayTrigger createMay(final String rule) {
|
|
||||||
final MagicSourceEvent sourceEvent = MagicRuleEventAction.createMay(rule);
|
|
||||||
return new MagicWhenLeavesPlayTrigger() {
|
|
||||||
@Override
|
|
||||||
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicRemoveFromPlayAction act) {
|
|
||||||
return sourceEvent.getEvent(permanent);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public static MagicWhenLeavesPlayTrigger create(final String rule) {
|
|
||||||
final MagicSourceEvent sourceEvent = MagicRuleEventAction.create(rule);
|
|
||||||
return new MagicWhenLeavesPlayTrigger() {
|
|
||||||
@Override
|
|
||||||
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicRemoveFromPlayAction act) {
|
|
||||||
return sourceEvent.getEvent(permanent);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue