diff --git a/resources/magic/data/cards.txt b/resources/magic/data/cards.txt index 0c52ef48c2..b20f54fc5e 100644 --- a/resources/magic/data/cards.txt +++ b/resources/magic/data/cards.txt @@ -15069,3 +15069,29 @@ converted=6 cost={4}{G}{G} pt=9/9 timing=main + +>Faceless Butcher +url=http://magiccards.info/tr/en/60.html +image=http://magiccards.info/scans/en/tr/60.jpg +value=3 +removal=2 +rarity=C +type=Creature +subtype=Nightmare,Horror +color=b +converted=4 +cost={2}{B}{B} +pt=2/3 +timing=main + +>Journey to Nowhere +url=http://magiccards.info/cmd/en/17.html +image=http://magiccards.info/scans/en/cmd/17.jpg +value=3 +removal=2 +rarity=C +type=Enchantment +color=w +converted=2 +cost={1}{W} +timing=enchantment diff --git a/resources/magic/data/cards2.txt b/resources/magic/data/cards2.txt index 9746da7c33..880b54d1b1 100644 --- a/resources/magic/data/cards2.txt +++ b/resources/magic/data/cards2.txt @@ -4675,6 +4675,7 @@ timing=smain url=http://magiccards.info/isd/en/15.html image=http://magiccards.info/scans/en/isd/15.jpg value=3 +removal=2 rarity=U type=Creature subtype=Human,Cleric diff --git a/src/magic/card/Faceless_Butcher.java b/src/magic/card/Faceless_Butcher.java new file mode 100644 index 0000000000..1304fde03f --- /dev/null +++ b/src/magic/card/Faceless_Butcher.java @@ -0,0 +1,78 @@ +package magic.card; + +import magic.model.MagicCard; +import magic.model.MagicGame; +import magic.model.MagicPlayer; +import magic.model.MagicLocationType; +import magic.model.MagicPermanent; +import magic.model.action.MagicExileUntilThisLeavesPlayAction; +import magic.model.action.MagicPermanentAction; +import magic.model.action.MagicPlayCardAction; +import magic.model.action.MagicRemoveCardAction; +import magic.model.choice.MagicTargetChoice; +import magic.model.event.MagicEvent; +import magic.model.target.MagicExileTargetPicker; +import magic.model.target.MagicTargetFilter; +import magic.model.target.MagicTargetHint; +import magic.model.trigger.MagicWhenComesIntoPlayTrigger; +import magic.model.trigger.MagicWhenLeavesPlayTrigger; + +public class Faceless_Butcher { + public static final MagicWhenComesIntoPlayTrigger T1 = new MagicWhenComesIntoPlayTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicPlayer player) { + final MagicTargetFilter targetFilter = new MagicTargetFilter.MagicOtherPermanentTargetFilter( + MagicTargetFilter.TARGET_CREATURE,permanent); + final MagicTargetChoice targetChoice = new MagicTargetChoice( + targetFilter,false,MagicTargetHint.None,"another creature to exile"); + return new MagicEvent( + permanent, + player, + targetChoice, + MagicExileTargetPicker.getInstance(), + new Object[]{permanent}, + this, + "Exile another creature$."); + } + @Override + public void executeEvent( + final MagicGame game, + final MagicEvent event, + final Object data[], + final Object[] choiceResults) { + final MagicPermanent permanent = (MagicPermanent)data[0]; + event.processTargetPermanent(game,choiceResults,0,new MagicPermanentAction() { + public void doAction(final MagicPermanent creature) { + game.doAction(new MagicExileUntilThisLeavesPlayAction(permanent,creature)); + } + }); + } + }; + + public static final MagicWhenLeavesPlayTrigger T2 = new MagicWhenLeavesPlayTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicPermanent data) { + if (permanent == data && + permanent.getExiledCard() != MagicCard.NONE) { + final MagicCard exiledCard = permanent.getExiledCard(); + return new MagicEvent( + permanent, + permanent.getController(), + new Object[]{exiledCard}, + this, + "Return " + exiledCard + " to the battlefield"); + } + return MagicEvent.NONE; + } + @Override + public void executeEvent( + final MagicGame game, + final MagicEvent event, + final Object data[], + final Object[] choiceResults) { + final MagicCard exiledCard = (MagicCard)data[0]; + game.doAction(new MagicRemoveCardAction(exiledCard,MagicLocationType.Exile)); + game.doAction(new MagicPlayCardAction(exiledCard,exiledCard.getOwner(),MagicPlayCardAction.NONE)); + } + }; +} diff --git a/src/magic/card/Journey_to_Nowhere.java b/src/magic/card/Journey_to_Nowhere.java new file mode 100644 index 0000000000..bed6341435 --- /dev/null +++ b/src/magic/card/Journey_to_Nowhere.java @@ -0,0 +1,72 @@ +package magic.card; + +import magic.model.MagicCard; +import magic.model.MagicGame; +import magic.model.MagicPlayer; +import magic.model.MagicLocationType; +import magic.model.MagicPermanent; +import magic.model.action.MagicExileUntilThisLeavesPlayAction; +import magic.model.action.MagicPermanentAction; +import magic.model.action.MagicPlayCardAction; +import magic.model.action.MagicRemoveCardAction; +import magic.model.choice.MagicTargetChoice; +import magic.model.event.MagicEvent; +import magic.model.target.MagicExileTargetPicker; +import magic.model.trigger.MagicWhenComesIntoPlayTrigger; +import magic.model.trigger.MagicWhenLeavesPlayTrigger; + +public class Journey_to_Nowhere { + public static final MagicWhenComesIntoPlayTrigger T1 = new MagicWhenComesIntoPlayTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicPlayer player) { + return new MagicEvent( + permanent, + player, + MagicTargetChoice.TARGET_CREATURE, + MagicExileTargetPicker.getInstance(), + new Object[]{permanent}, + this, + "Exile target creature$."); + } + @Override + public void executeEvent( + final MagicGame game, + final MagicEvent event, + final Object data[], + final Object[] choiceResults) { + final MagicPermanent permanent = (MagicPermanent)data[0]; + event.processTargetPermanent(game,choiceResults,0,new MagicPermanentAction() { + public void doAction(final MagicPermanent creature) { + game.doAction(new MagicExileUntilThisLeavesPlayAction(permanent,creature)); + } + }); + } + }; + + public static final MagicWhenLeavesPlayTrigger T2 = new MagicWhenLeavesPlayTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicPermanent data) { + if (permanent == data && + permanent.getExiledCard() != MagicCard.NONE) { + final MagicCard exiledCard = permanent.getExiledCard(); + return new MagicEvent( + permanent, + permanent.getController(), + new Object[]{exiledCard}, + this, + "Return " + exiledCard + " to the battlefield"); + } + return MagicEvent.NONE; + } + @Override + public void executeEvent( + final MagicGame game, + final MagicEvent event, + final Object data[], + final Object[] choiceResults) { + final MagicCard exiledCard = (MagicCard)data[0]; + game.doAction(new MagicRemoveCardAction(exiledCard,MagicLocationType.Exile)); + game.doAction(new MagicPlayCardAction(exiledCard,exiledCard.getOwner(),MagicPlayCardAction.NONE)); + } + }; +}