magarena/release/Magarena/scripts/Day_of_the_Dragons.groovy

62 lines
2.6 KiB
Groovy
Raw Normal View History

2013-05-30 21:59:33 -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) {
2013-04-12 19:32:25 -07:00
return new MagicEvent(
2013-05-30 21:59:33 -07:00
permanent,
this,
"Exile all creatures you control. Then put that many 5/5 " +
"red Dragon creature tokens with flying onto the battlefield."
);
2013-04-12 19:32:25 -07:00
}
@Override
2013-05-30 21:59:33 -07:00
public void executeEvent(final MagicGame game, final MagicEvent event) {
2013-04-12 19:32:25 -07:00
final Collection<MagicPermanent> targets =
game.filterPermanents(event.getPlayer(),MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL);
for (final MagicPermanent target : targets) {
game.doAction(new MagicExileUntilThisLeavesPlayAction(
event.getPermanent(),
target
));
}
2013-05-30 21:59:33 -07:00
game.doAction(new MagicPlayTokensAction(
event.getPlayer(),
TokenCardDefinitions.get("Dragon5"),
targets.size()
));
2013-04-12 19:32:25 -07:00
}
2013-05-30 21:59:33 -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 MagicCardList clist = new MagicCardList(permanent.getExiledCards());
return new MagicEvent(
permanent,
permanent.getController(),
this,
clist.size() == 1 ?
"Sacrifice all Dragons. Return " + clist.get(0) + " to the battlefield." :
"Sacrifice all Dragons. Return exiled cards to the battlefield."
);
}
return MagicEvent.NONE;
}
@Override
2013-05-30 21:59:33 -07:00
public void executeEvent(final MagicGame game, final MagicEvent event) {
2013-04-12 19:32:25 -07:00
final Collection<MagicPermanent> targets =
game.filterPermanents(event.getPlayer(),MagicTargetFilter.TARGET_DRAGON_YOU_CONTROL);
for (final MagicPermanent target : targets) {
game.doAction(new MagicSacrificeAction(target));
}
final MagicPermanent permanent = event.getPermanent();
game.doAction(new MagicReturnExiledUntilThisLeavesPlayAction(
2013-05-30 21:59:33 -07:00
permanent,
MagicLocationType.Play,
event.getPlayer()
));
2013-04-12 19:32:25 -07:00
}
2013-05-30 21:59:33 -07:00
}
]