From 7886d66d2360f134f24fd85d8b0e0fbf841e46c1 Mon Sep 17 00:00:00 2001 From: beholder Date: Mon, 3 Oct 2011 14:41:36 +0200 Subject: [PATCH] added Disperse and Dross Hopper --- resources/magic/data/cards.txt | 22 ++++++++++++++ src/magic/card/Disperse.java | 45 +++++++++++++++++++++++++++++ src/magic/card/Dross_Hopper.java | 49 ++++++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+) create mode 100644 src/magic/card/Disperse.java create mode 100644 src/magic/card/Dross_Hopper.java diff --git a/resources/magic/data/cards.txt b/resources/magic/data/cards.txt index cab604c606..36ea2d5f9f 100644 --- a/resources/magic/data/cards.txt +++ b/resources/magic/data/cards.txt @@ -11700,3 +11700,25 @@ converted=5 cost={5} ability=indestructible,attacks each turn if able timing=main + +>Disperse +image=http://magiccards.info/scans/en/som/31.jpg +value=2 +rarity=C +type=Instant +color=u +converted=2 +cost={1}{U} +timing=removal + +>Dross Hopper +image=http://magiccards.info/scans/en/som/60.jpg +value=2 +rarity=C +type=Creature +subtype=Insect,Horror +color=b +converted=2 +cost={1}{B} +pt=2/1 +timing=main diff --git a/src/magic/card/Disperse.java b/src/magic/card/Disperse.java new file mode 100644 index 0000000000..53f7bfcde0 --- /dev/null +++ b/src/magic/card/Disperse.java @@ -0,0 +1,45 @@ +package magic.card; + +import magic.model.MagicGame; +import magic.model.MagicLocationType; +import magic.model.MagicPayedCost; +import magic.model.MagicPermanent; +import magic.model.action.MagicMoveCardAction; +import magic.model.action.MagicPermanentAction; +import magic.model.action.MagicRemoveFromPlayAction; +import magic.model.choice.MagicTargetChoice; +import magic.model.event.MagicEvent; +import magic.model.event.MagicSpellCardEvent; +import magic.model.stack.MagicCardOnStack; +import magic.model.target.MagicBounceTargetPicker; + +public class Disperse { + public static final MagicSpellCardEvent S = new MagicSpellCardEvent() { + @Override + public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) { + return new MagicEvent( + cardOnStack.getCard(), + cardOnStack.getController(), + MagicTargetChoice.TARGET_NONLAND_PERMANENT, + MagicBounceTargetPicker.getInstance(), + new Object[]{cardOnStack}, + this, + "Return target nonland permanent$ to its owner's hand."); + } + + @Override + public void executeEvent( + final MagicGame game, + final MagicEvent event, + final Object[] data, + final Object[] choiceResults) { + final MagicCardOnStack cardOnStack=(MagicCardOnStack)data[0]; + game.doAction(new MagicMoveCardAction(cardOnStack)); + event.processTargetPermanent(game,choiceResults,0,new MagicPermanentAction() { + public void doAction(final MagicPermanent permanent) { + game.doAction(new MagicRemoveFromPlayAction(permanent,MagicLocationType.OwnersHand)); + } + }); + } + }; +} diff --git a/src/magic/card/Dross_Hopper.java b/src/magic/card/Dross_Hopper.java new file mode 100644 index 0000000000..72a45d819d --- /dev/null +++ b/src/magic/card/Dross_Hopper.java @@ -0,0 +1,49 @@ +package magic.card; + +import magic.model.MagicAbility; +import magic.model.MagicGame; +import magic.model.MagicPayedCost; +import magic.model.MagicPermanent; +import magic.model.MagicSource; +import magic.model.action.MagicSetAbilityAction; +import magic.model.choice.MagicTargetChoice; +import magic.model.condition.MagicCondition; +import magic.model.event.MagicActivationHints; +import magic.model.event.MagicEvent; +import magic.model.event.MagicPermanentActivation; +import magic.model.event.MagicSacrificePermanentEvent; +import magic.model.event.MagicTiming; + +public class Dross_Hopper { + public static final MagicPermanentActivation A = new MagicPermanentActivation( + new MagicCondition[]{ + MagicCondition.ONE_CREATURE_CONDITION + }, + new MagicActivationHints(MagicTiming.Pump), + "Flying") { + @Override + public MagicEvent[] getCostEvent(final MagicSource source) { + return new MagicEvent[]{new MagicSacrificePermanentEvent( + source, + source.getController(), + MagicTargetChoice.SACRIFICE_CREATURE)}; + } + @Override + public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) { + return new MagicEvent( + source, + source.getController(), + new Object[]{source}, + this, + source + " gains flying until end of turn."); + } + @Override + public void executeEvent( + final MagicGame game, + final MagicEvent event, + final Object[] data, + final Object[] choiceResults) { + game.doAction(new MagicSetAbilityAction((MagicPermanent)data[0],MagicAbility.Flying)); + } + }; +}