magarena/release/Magarena/scripts/Tamiyo__the_Moon_Sage.groovy

114 lines
4.8 KiB
Groovy
Raw Normal View History

2013-03-01 20:04:29 -08:00
[
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,
final Object[] choiceResults) {
event.processTargetPermanent(game,choiceResults,0,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,
final Object[] choiceResults) {
event.processTargetPlayer(game,choiceResults,0,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(player,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 Object[] outerChoiceResults) {
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() ?
new MagicEvent(
permanent,
triggerData.card.getOwner(),
new MagicMayChoice(),
triggerData.card,
this,
"PN may return " + triggerData.card + " to your hand."
):
MagicEvent.NONE
}
@Override
public void executeEvent(
final MagicGame game,
final MagicEvent event,
final Object[] choiceResults) {
if (MagicMayChoice.isYesChoice(choiceResults[0])) {
game.doAction(new MagicRemoveCardAction(event.getRefCard(),MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(event.getRefCard(),MagicLocationType.Graveyard,MagicLocationType.OwnersHand));
}
}
}
));
}
}
]