magarena/release/Magarena/scripts/Tamiyo__the_Moon_Sage.groovy

107 lines
4.6 KiB
Groovy

[
new MagicPlaneswalkerActivation(1) {
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.NEG_TARGET_PERMANENT,
new MagicTapTargetPicker(true, false),
this,
"Tap target permanent\$. It doesn't untap during its controller's next untap step."
);
}
@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));
game.doAction(new MagicChangeStateAction(
creature,
MagicPermanentState.DoesNotUntapDuringNext,
true
));
}
});
}
},
new MagicPlaneswalkerActivation(-2) {
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.TARGET_PLAYER,
this,
"Draw a card for each tapped creature target player\$ controls."
);
}
@Override
public void executeEvent(
final MagicGame game,
final MagicEvent event) {
event.processTargetPlayer(game,new MagicPlayerAction() {
public void doAction(final MagicPlayer player) {
final int amt = game.filterPermanents(player, MagicTargetFilter.TARGET_TAPPED_CREATURE_YOU_CONTROL).size();
game.doAction(new MagicDrawAction(event.getPlayer(),amt));
}
});
}
},
new MagicPlaneswalkerActivation(-8) {
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
this,
"PN gets an emblem with " +
"\"You have no maximum hand size\" and " +
"\"Whenever a card is put into your graveyard from anywhere, you may return it to your hand.\""
);
}
@Override
public void executeEvent(final MagicGame outerGame, final MagicEvent outerEvent) {
final MagicPlayer you = outerEvent.getPlayer();
outerGame.doAction(new MagicAddStaticAction(
new MagicStatic(MagicLayer.Player) {
@Override
public void modPlayer(final MagicPermanent source, final MagicPlayer player) {
if (player.getId() == you.getId()) {
player.noMaxHandSize();
}
}
}
));
outerGame.doAction(new MagicAddTriggerAction(
new MagicWhenOtherPutIntoGraveyardTrigger() {
@Override
public MagicEvent executeTrigger(
final MagicGame game,
final MagicPermanent permanent,
final MagicGraveyardTriggerData triggerData) {
return triggerData.card.getOwner().getId() == you.getId() ?
// HACK: As emblem is not represented, source of event is the card
new MagicEvent(
triggerData.card,
new MagicMayChoice(),
this,
"PN may return SN to your hand."
):
MagicEvent.NONE
}
@Override
public void executeEvent(
final MagicGame game,
final MagicEvent event) {
if (event.isYes() && event.getPlayer().getGraveyard().contains(event.getCard())) {
game.doAction(new MagicRemoveCardAction(event.getCard(),MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(event.getCard(),MagicLocationType.Graveyard,MagicLocationType.OwnersHand));
}
}
}
));
}
}
]