magarena/release/Magarena/scripts/Mistbind_Clique.groovy

65 lines
2.8 KiB
Groovy
Raw Normal View History

2013-05-30 22:25:47 -07:00
[
new MagicWhenComesIntoPlayTrigger() {
2013-04-12 19:32:25 -07:00
@Override
2013-06-19 07:23:35 -07:00
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicPayedCost payedCost) {
final MagicTargetChoice targetChoice = new MagicTargetChoice(
new MagicOtherPermanentTargetFilter(
MagicTargetFilter.TARGET_FAERIE_YOU_CONTROL,
permanent
),
MagicTargetHint.None,
"another Faerie to exile"
);
2013-04-12 19:32:25 -07:00
return new MagicEvent(
permanent,
new MagicMayChoice(targetChoice),
2013-04-12 19:32:25 -07:00
MagicExileTargetPicker.create(),
this,
2013-05-30 22:25:47 -07:00
"PN may\$ exile another Faerie you control\$. " +
2013-04-12 19:32:25 -07:00
"If you don't, sacrifice SN."
);
}
@Override
2013-05-30 22:25:47 -07:00
public void executeEvent(final MagicGame game, final MagicEvent event) {
2013-04-12 19:32:25 -07:00
final MagicPermanent permanent = event.getPermanent();
if (event.isYes()) {
event.processTargetPermanent(game,new MagicPermanentAction() {
public void doAction(final MagicPermanent creature) {
game.doAction(new MagicExileUntilThisLeavesPlayAction(permanent,creature));
2013-05-30 22:25:47 -07:00
final Collection<MagicPermanent> targets = game.filterPermanents(
event.getPlayer().getOpponent(),
MagicTargetFilter.TARGET_LAND_YOU_CONTROL);
for (final MagicPermanent land : targets) {
game.doAction(new MagicTapAction(land,true));
}
2013-04-12 19:32:25 -07:00
}
});
} else {
game.doAction(new MagicSacrificeAction(permanent));
}
}
2013-05-30 22:25:47 -07:00
},
new MagicWhenLeavesPlayTrigger() {
2013-04-12 19:32:25 -07:00
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicRemoveFromPlayAction act) {
if (act.isPermanent(permanent) &&
2013-04-12 19:32:25 -07:00
!permanent.getExiledCards().isEmpty()) {
final MagicCard exiledCard = permanent.getExiledCards().get(0);
return new MagicEvent(
2013-05-30 22:25:47 -07:00
permanent,
exiledCard,
this,
"Return RN to the battlefield"
);
2013-04-12 19:32:25 -07:00
}
return MagicEvent.NONE;
}
@Override
2013-05-30 22:25:47 -07:00
public void executeEvent(final MagicGame game, final MagicEvent event) {
2013-04-12 19:32:25 -07:00
final MagicCard exiledCard = event.getRefCard();
game.doAction(new MagicRemoveCardAction(exiledCard,MagicLocationType.Exile));
2013-07-10 05:01:39 -07:00
game.doAction(new MagicPlayCardAction(exiledCard,exiledCard.getOwner()));
2013-04-12 19:32:25 -07:00
}
2013-05-30 22:25:47 -07:00
}
]