replace annonymous class with closure

master
melvin 2013-12-01 16:40:47 +08:00
parent 74a326ac40
commit e3bc0c2ea9
20 changed files with 157 additions and 177 deletions

View File

@ -13,14 +13,13 @@
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard targetCard) {
game.doAction(new MagicReanimateAction(
targetCard,
event.getPlayer()
));
game.doAction(new MagicChangeCardDestinationAction(event.getCardOnStack(),MagicLocationType.OwnersLibrary));
}
event.processTargetCard(game, {
final MagicCard targetCard ->
game.doAction(new MagicReanimateAction(
targetCard,
event.getPlayer()
));
game.doAction(new MagicChangeCardDestinationAction(event.getCardOnStack(),MagicLocationType.OwnersLibrary));
});
}
}

View File

@ -22,23 +22,22 @@
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard card) {
final MagicPlayer player=event.getPlayer();
game.doAction(new MagicRemoveCardAction(
card,
MagicLocationType.Graveyard
));
game.doAction(new MagicMoveCardAction(
card,
MagicLocationType.Graveyard,
MagicLocationType.Exile
));
game.doAction(new MagicPlayTokenAction(
player,
TokenCardDefinitions.get("2/2 black Zombie creature token")
));
}
event.processTargetCard(game, {
final MagicCard card ->
final MagicPlayer player=event.getPlayer();
game.doAction(new MagicRemoveCardAction(
card,
MagicLocationType.Graveyard
));
game.doAction(new MagicMoveCardAction(
card,
MagicLocationType.Graveyard,
MagicLocationType.Exile
));
game.doAction(new MagicPlayTokenAction(
player,
TokenCardDefinitions.get("2/2 black Zombie creature token")
));
});
}
}

View File

@ -21,18 +21,17 @@
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard card) {
game.doAction(new MagicRemoveCardAction(
card,
MagicLocationType.Graveyard
));
game.doAction(new MagicMoveCardAction(
card,
MagicLocationType.Graveyard,
MagicLocationType.Exile
));
}
event.processTargetCard(game, {
final MagicCard card ->
game.doAction(new MagicRemoveCardAction(
card,
MagicLocationType.Graveyard
));
game.doAction(new MagicMoveCardAction(
card,
MagicLocationType.Graveyard,
MagicLocationType.Exile
));
});
}
}

View File

@ -1,10 +1,9 @@
def action = {
final MagicGame game, final MagicEvent event ->
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard targetCard) {
game.doAction(new MagicRemoveCardAction(targetCard,MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(targetCard,MagicLocationType.Graveyard,MagicLocationType.OwnersHand));
}
event.processTargetCard(game, {
final MagicCard targetCard ->
game.doAction(new MagicRemoveCardAction(targetCard,MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(targetCard,MagicLocationType.Graveyard,MagicLocationType.OwnersHand));
});
}

View File

@ -14,13 +14,12 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard targetCard) {
game.doAction(new MagicRemoveCardAction(targetCard,MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(targetCard,MagicLocationType.Graveyard,MagicLocationType.OwnersHand));
if (event.isBuyback()) {
game.doAction(new MagicChangeCardDestinationAction(event.getCardOnStack(), MagicLocationType.OwnersHand));
}
event.processTargetCard(game, {
final MagicCard targetCard ->
game.doAction(new MagicRemoveCardAction(targetCard,MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(targetCard,MagicLocationType.Graveyard,MagicLocationType.OwnersHand));
if (event.isBuyback()) {
game.doAction(new MagicChangeCardDestinationAction(event.getCardOnStack(), MagicLocationType.OwnersHand));
}
});
}

View File

@ -15,13 +15,12 @@ def AN_ARTIFACT_OR_ENCHANTMENT_CARD_FROM_LIBRARY = new MagicTargetChoice(
def act = {
final MagicGame game, final MagicEvent event ->
if (event.isNo() == false) {
event.processTargetCard(game, new MagicCardAction() {
public void doAction(final MagicCard card) {
game.logAppendMessage(event.getPlayer(), "Found " + card + ".");
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.OwnersLibrary));
game.doAction(new MagicShuffleLibraryAction(event.getPlayer()));
game.doAction(new MagicMoveCardAction(card,MagicLocationType.OwnersLibrary,MagicLocationType.TopOfOwnersLibrary));
}
event.processTargetCard(game, {
final MagicCard card ->
game.logAppendMessage(event.getPlayer(), "Found " + card + ".");
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.OwnersLibrary));
game.doAction(new MagicShuffleLibraryAction(event.getPlayer()));
game.doAction(new MagicMoveCardAction(card,MagicLocationType.OwnersLibrary,MagicLocationType.TopOfOwnersLibrary));
});
}
}

View File

@ -19,11 +19,10 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard card) {
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(card,MagicLocationType.Graveyard,MagicLocationType.OwnersHand));
}
event.processTargetCard(game, {
final MagicCard card ->
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(card,MagicLocationType.Graveyard,MagicLocationType.OwnersHand));
});
}
}

View File

@ -15,13 +15,12 @@ def AN_ENCHANTMENT_CARD_FROM_LIBRARY = new MagicTargetChoice(
def act = {
final MagicGame game, final MagicEvent event ->
if (event.isNo() == false) {
event.processTargetCard(game, new MagicCardAction() {
public void doAction(final MagicCard card) {
game.logAppendMessage(event.getPlayer(), "Found " + card + ".");
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.OwnersLibrary));
game.doAction(new MagicShuffleLibraryAction(event.getPlayer()));
game.doAction(new MagicMoveCardAction(card,MagicLocationType.OwnersLibrary,MagicLocationType.TopOfOwnersLibrary));
}
event.processTargetCard(game, {
final MagicCard card ->
game.logAppendMessage(event.getPlayer(), "Found " + card + ".");
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.OwnersLibrary));
game.doAction(new MagicShuffleLibraryAction(event.getPlayer()));
game.doAction(new MagicMoveCardAction(card,MagicLocationType.OwnersLibrary,MagicLocationType.TopOfOwnersLibrary));
});
}
}

View File

@ -32,12 +32,11 @@ def NONLAND_CARD_FROM_HAND = new MagicTargetChoice(
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard card) {
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.OwnersHand));
final MagicCardOnStack cardOnStack=new MagicCardOnStack(card,event.getPlayer(), MagicPayedCost.NO_COST);
game.doAction(new MagicPutItemOnStackAction(cardOnStack));
}
event.processTargetCard(game, {
final MagicCard card ->
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.OwnersHand));
final MagicCardOnStack cardOnStack=new MagicCardOnStack(card,event.getPlayer(), MagicPayedCost.NO_COST);
game.doAction(new MagicPutItemOnStackAction(cardOnStack));
});
}
}

View File

@ -25,11 +25,10 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard card) {
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.OwnersHand));
game.doAction(new MagicPlayCardAction(card,event.getPlayer()));
}
event.processTargetCard(game, {
final MagicCard card ->
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.OwnersHand));
game.doAction(new MagicPlayCardAction(card,event.getPlayer()));
});
}
}

View File

@ -13,19 +13,18 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard targetCard) {
game.doAction(new MagicRemoveCardAction(targetCard,MagicLocationType.Graveyard));
final MagicPlayCardAction action = new MagicPlayCardAction(targetCard,event.getPlayer());
game.doAction(action);
final MagicPermanent permanent = action.getPermanent();
game.doAction(new MagicChangeCountersAction(
permanent,
MagicCounterType.PlusOne,
1,
true
));
}
event.processTargetCard(game, {
final MagicCard targetCard ->
game.doAction(new MagicRemoveCardAction(targetCard,MagicLocationType.Graveyard));
final MagicPlayCardAction action = new MagicPlayCardAction(targetCard,event.getPlayer());
game.doAction(action);
final MagicPermanent permanent = action.getPermanent();
game.doAction(new MagicChangeCountersAction(
permanent,
MagicCounterType.PlusOne,
1,
true
));
});
}
}

View File

@ -1,13 +1,12 @@
def action = {
final MagicGame game, final MagicEvent event ->
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard card) {
game.doAction(new MagicExileUntilThisLeavesPlayAction(
event.getPermanent(),
card,
MagicLocationType.OwnersHand
));
}
event.processTargetCard(game, {
final MagicCard card ->
game.doAction(new MagicExileUntilThisLeavesPlayAction(
event.getPermanent(),
card,
MagicLocationType.OwnersHand
));
});
}

View File

@ -14,14 +14,13 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard card) {
game.doAction(new MagicReanimateAction(
card,
event.getPlayer(),
[MagicPlayMod.HASTE, MagicPlayMod.EXILE_AT_END_OF_YOUR_TURN]
));
}
event.processTargetCard(game, {
final MagicCard card ->
game.doAction(new MagicReanimateAction(
card,
event.getPlayer(),
[MagicPlayMod.HASTE, MagicPlayMod.EXILE_AT_END_OF_YOUR_TURN]
));
});
}
}

View File

@ -24,11 +24,10 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard card) {
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.OwnersHand));
game.doAction(new MagicPlayCardAction(card,event.getPlayer()));
}
event.processTargetCard(game, {
final MagicCard card ->
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.OwnersHand));
game.doAction(new MagicPlayCardAction(card,event.getPlayer()));
});
}
}

View File

@ -12,15 +12,14 @@
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard targetCard) {
game.doAction(new MagicRemoveCardAction(targetCard,MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(
targetCard,
MagicLocationType.Graveyard,
MagicLocationType.TopOfOwnersLibrary
));
}
event.processTargetCard(game, {
final MagicCard targetCard ->
game.doAction(new MagicRemoveCardAction(targetCard,MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(
targetCard,
MagicLocationType.Graveyard,
MagicLocationType.TopOfOwnersLibrary
));
});
}
}

View File

@ -22,29 +22,28 @@
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard card) {
game.doAction(new MagicRemoveCardAction(
card,
MagicLocationType.Graveyard
event.processTargetCard(game, {
final MagicCard card ->
game.doAction(new MagicRemoveCardAction(
card,
MagicLocationType.Graveyard
));
game.doAction(new MagicMoveCardAction(
card,
MagicLocationType.Graveyard,
MagicLocationType.Exile
));
if (card.hasType(MagicType.Creature)) {
game.doAction(new MagicChangeCountersAction(
event.getPermanent(),
MagicCounterType.PlusOne,
1,
true
));
game.doAction(new MagicMoveCardAction(
card,
MagicLocationType.Graveyard,
MagicLocationType.Exile
game.doAction(new MagicChangeLifeAction(
event.getPlayer(),
1
));
if (card.hasType(MagicType.Creature)) {
game.doAction(new MagicChangeCountersAction(
event.getPermanent(),
MagicCounterType.PlusOne,
1,
true
));
game.doAction(new MagicChangeLifeAction(
event.getPlayer(),
1
));
}
}
});
}

View File

@ -27,14 +27,13 @@ def INSTANT_FROM_HAND = new MagicCardFilterImpl() {
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard target) {
game.doAction(new MagicExileUntilThisLeavesPlayAction(
event.getPermanent(),
target,
MagicLocationType.OwnersHand
));
}
event.processTargetCard(game, {
final MagicCard target ->
game.doAction(new MagicExileUntilThisLeavesPlayAction(
event.getPermanent(),
target,
MagicLocationType.OwnersHand
));
});
}
}

View File

@ -19,17 +19,16 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
final MagicPlayer player = event.getPlayer();
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard targetCard) {
if (MagicCondition.THRESHOLD_CONDITION.accept(event.getSource())) {
game.doAction(new MagicReanimateAction(
targetCard,
player
));
} else {
game.doAction(new MagicRemoveCardAction(targetCard,MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(targetCard,MagicLocationType.Graveyard,MagicLocationType.OwnersHand));
}
event.processTargetCard(game, {
final MagicCard targetCard ->
if (MagicCondition.THRESHOLD_CONDITION.accept(event.getSource())) {
game.doAction(new MagicReanimateAction(
targetCard,
player
));
} else {
game.doAction(new MagicRemoveCardAction(targetCard,MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(targetCard,MagicLocationType.Graveyard,MagicLocationType.OwnersHand));
}
});
}

View File

@ -21,13 +21,12 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
event.processTargetCard(game,new MagicCardAction() {
public void doAction(final MagicCard card) {
game.doAction(new MagicReanimateAction(
card,
event.getPlayer()
));
}
event.processTargetCard(game, {
final MagicCard card ->
game.doAction(new MagicReanimateAction(
card,
event.getPlayer()
));
});
}
}

View File

@ -15,14 +15,13 @@ def A_CARD_FROM_LIBRARY = new MagicTargetChoice(
def act = {
final MagicGame game, final MagicEvent event ->
if (event.isNo() == false) {
event.processTargetCard(game, new MagicCardAction() {
public void doAction(final MagicCard card) {
game.logAppendMessage(event.getPlayer(), "Found " + card + ".");
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.OwnersLibrary));
game.doAction(new MagicShuffleLibraryAction(event.getPlayer()));
game.doAction(new MagicMoveCardAction(card,MagicLocationType.OwnersLibrary,MagicLocationType.TopOfOwnersLibrary));
game.doAction(new MagicChangeLifeAction(event.getPlayer(),-2));
}
event.processTargetCard(game, {
final MagicCard card ->
game.logAppendMessage(event.getPlayer(), "Found " + card + ".");
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.OwnersLibrary));
game.doAction(new MagicShuffleLibraryAction(event.getPlayer()));
game.doAction(new MagicMoveCardAction(card,MagicLocationType.OwnersLibrary,MagicLocationType.TopOfOwnersLibrary));
game.doAction(new MagicChangeLifeAction(event.getPlayer(),-2));
});
}
}