From 86ef71385b378f4a86479fc365168f6ea625fbb4 Mon Sep 17 00:00:00 2001 From: melvin Date: Sun, 11 Aug 2013 20:09:04 +0800 Subject: [PATCH] added MagicCipherAction, simplified groovy code --- .../Magarena/scripts/Hands_of_Binding.groovy | 9 +++--- .../Magarena/scripts/Stolen_Identity.groovy | 9 +++--- src/magic/model/action/MagicCipherAction.java | 31 +++++++++++++++++++ 3 files changed, 39 insertions(+), 10 deletions(-) create mode 100644 src/magic/model/action/MagicCipherAction.java diff --git a/release/Magarena/scripts/Hands_of_Binding.groovy b/release/Magarena/scripts/Hands_of_Binding.groovy index cc455b5565..5ec63f0258 100644 --- a/release/Magarena/scripts/Hands_of_Binding.groovy +++ b/release/Magarena/scripts/Hands_of_Binding.groovy @@ -21,11 +21,10 @@ creature, MagicPermanentState.DoesNotUntapDuringNext )); - if (event.getCardOnStack().getCard().isToken() == false) { - // prevent auto move to graveyard - game.doAction(new MagicChangeCardDestinationAction(event.getCardOnStack(), MagicLocationType.Play)); - game.addEvent(new MagicCipherEvent(event.getSource(), event.getPlayer())); - } + game.doAction(new MagicCipherAction( + event.getCardOnStack(), + event.getPlayer() + )); } }); } diff --git a/release/Magarena/scripts/Stolen_Identity.groovy b/release/Magarena/scripts/Stolen_Identity.groovy index d375c40207..15bfe23f74 100644 --- a/release/Magarena/scripts/Stolen_Identity.groovy +++ b/release/Magarena/scripts/Stolen_Identity.groovy @@ -20,11 +20,10 @@ MagicCard.createTokenCard(creature.getCardDefinition(), player), player )); - if (event.getCardOnStack().getCard().isToken() == false) { - // prevent auto move to graveyard - game.doAction(new MagicChangeCardDestinationAction(event.getCardOnStack(), MagicLocationType.Play)); - game.addEvent(new MagicCipherEvent(event.getSource(), event.getPlayer())); - } + game.doAction(new MagicCipherAction( + event.getCardOnStack(), + event.getPlayer() + )); } }); } diff --git a/src/magic/model/action/MagicCipherAction.java b/src/magic/model/action/MagicCipherAction.java new file mode 100644 index 0000000000..442a04b55b --- /dev/null +++ b/src/magic/model/action/MagicCipherAction.java @@ -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) { + } +}