added MagicCipherAction, simplified groovy code

master
melvin 2013-08-11 20:09:04 +08:00
parent f9ddcc3fd5
commit 86ef71385b
3 changed files with 39 additions and 10 deletions

View File

@ -21,11 +21,10 @@
creature, creature,
MagicPermanentState.DoesNotUntapDuringNext MagicPermanentState.DoesNotUntapDuringNext
)); ));
if (event.getCardOnStack().getCard().isToken() == false) { game.doAction(new MagicCipherAction(
// prevent auto move to graveyard event.getCardOnStack(),
game.doAction(new MagicChangeCardDestinationAction(event.getCardOnStack(), MagicLocationType.Play)); event.getPlayer()
game.addEvent(new MagicCipherEvent(event.getSource(), event.getPlayer())); ));
}
} }
}); });
} }

View File

@ -20,11 +20,10 @@
MagicCard.createTokenCard(creature.getCardDefinition(), player), MagicCard.createTokenCard(creature.getCardDefinition(), player),
player player
)); ));
if (event.getCardOnStack().getCard().isToken() == false) { game.doAction(new MagicCipherAction(
// prevent auto move to graveyard event.getCardOnStack(),
game.doAction(new MagicChangeCardDestinationAction(event.getCardOnStack(), MagicLocationType.Play)); event.getPlayer()
game.addEvent(new MagicCipherEvent(event.getSource(), event.getPlayer())); ));
}
} }
}); });
} }

View File

@ -0,0 +1,31 @@
package magic.model.action;
import magic.model.MagicGame;
import magic.model.MagicPlayer;
import magic.model.MagicLocationType;
import magic.model.stack.MagicCardOnStack;
import magic.model.event.MagicCipherEvent;
public class MagicCipherAction extends MagicAction {
private final MagicCardOnStack cardOnStack;
private final MagicPlayer controller;
public MagicCipherAction(final MagicCardOnStack aCardOnStack, final MagicPlayer aController) {
cardOnStack = aCardOnStack;
controller = aController;
}
@Override
public void doAction(final MagicGame game) {
if (cardOnStack.getCard().isToken() == false) {
// prevent auto move to graveyard
game.doAction(new MagicChangeCardDestinationAction(cardOnStack, MagicLocationType.Play));
game.addEvent(new MagicCipherEvent(cardOnStack, controller));
}
}
@Override
public void undoAction(final MagicGame game) {
}
}