From 230fd2825e2905e22371d00982c97bd257188a33 Mon Sep 17 00:00:00 2001 From: beholder Date: Fri, 14 Oct 2011 09:04:06 +0200 Subject: [PATCH] added Apex Hawks. fixed Joraga Warcaller --- resources/magic/data/cards.txt | 14 +++++ src/magic/card/Apex_Hawks.java | 52 +++++++++++++++++++ src/magic/card/Joraga_Warcaller.java | 76 ++++++++++------------------ 3 files changed, 93 insertions(+), 49 deletions(-) create mode 100644 src/magic/card/Apex_Hawks.java diff --git a/resources/magic/data/cards.txt b/resources/magic/data/cards.txt index 801c95d1cf..75b485909f 100644 --- a/resources/magic/data/cards.txt +++ b/resources/magic/data/cards.txt @@ -15293,3 +15293,17 @@ cost={2}{G}{G} pt=3/4 static=player timing=main + +>Apex Hawks +url=http://magiccards.info/wwk/en/2.html +image=http://magiccards.info/scans/en/wwk/2.jpg +value=3 +rarity=C +type=Creature +subtype=Bird +color=w +converted=3 +cost={2}{W} +pt=2/2 +ability=flying +timing=main diff --git a/src/magic/card/Apex_Hawks.java b/src/magic/card/Apex_Hawks.java new file mode 100644 index 0000000000..d55beb4297 --- /dev/null +++ b/src/magic/card/Apex_Hawks.java @@ -0,0 +1,52 @@ +package magic.card; + +import magic.model.MagicCard; +import magic.model.MagicCounterType; +import magic.model.MagicGame; +import magic.model.MagicManaCost; +import magic.model.MagicPayedCost; +import magic.model.MagicPermanent; +import magic.model.MagicPlayer; +import magic.model.action.MagicChangeCountersAction; +import magic.model.action.MagicPlayCardFromStackAction; +import magic.model.choice.MagicKickerChoice; +import magic.model.event.MagicEvent; +import magic.model.event.MagicSpellCardEvent; +import magic.model.stack.MagicCardOnStack; + +public class Apex_Hawks { + public static final MagicSpellCardEvent S = new MagicSpellCardEvent() { + @Override + public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) { + final MagicPlayer player = cardOnStack.getController(); + final MagicCard card = cardOnStack.getCard(); + return new MagicEvent( + card, + player, + new MagicKickerChoice(MagicManaCost.ONE_WHITE,true), + new Object[]{cardOnStack}, + this, + "$Play " + card + ". " + card + " enters the battlefield " + + "with a +1/+1 counter on it for each time it was kicked$"); + } + @Override + public void executeEvent( + final MagicGame game, + final MagicEvent event, + final Object[] data, + final Object[] choiceResults) { + final int kickerCount = (Integer)choiceResults[1]; + final MagicCardOnStack cardOnStack = (MagicCardOnStack)data[0]; + final MagicPlayCardFromStackAction action = new MagicPlayCardFromStackAction(cardOnStack); + game.doAction(action); + if (kickerCount > 0) { + final MagicPermanent permanent = action.getPermanent(); + game.doAction(new MagicChangeCountersAction( + permanent, + MagicCounterType.PlusOne, + kickerCount, + true)); + } + } + }; +} diff --git a/src/magic/card/Joraga_Warcaller.java b/src/magic/card/Joraga_Warcaller.java index a0dc122c88..3dfa1855af 100644 --- a/src/magic/card/Joraga_Warcaller.java +++ b/src/magic/card/Joraga_Warcaller.java @@ -11,62 +11,43 @@ import magic.model.MagicPlayer; import magic.model.MagicPowerToughness; import magic.model.action.MagicChangeCountersAction; import magic.model.action.MagicPlayCardFromStackAction; -import magic.model.action.MagicPutItemOnStackAction; import magic.model.choice.MagicKickerChoice; import magic.model.event.MagicEvent; -import magic.model.event.MagicEventAction; import magic.model.event.MagicSpellCardEvent; import magic.model.mstatic.MagicStatic; import magic.model.stack.MagicCardOnStack; -import magic.model.stack.MagicTriggerOnStack; import magic.model.target.MagicTargetFilter; public class Joraga_Warcaller { public static final MagicStatic S = new MagicStatic( - MagicLayer.ModPT, - MagicTargetFilter.TARGET_ELF_YOU_CONTROL) { - - private int amount = 0; - - @Override - public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) { - pt.add(amount, amount); - } - @Override - public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) { - if (source.hasCounters()) { - amount = source.getCounters(MagicCounterType.PlusOne); - } - return source != target; - } - }; - - private static final MagicEventAction KICKED = new MagicEventAction() { - @Override - public void executeEvent( - final MagicGame game, - final MagicEvent event, - final Object[] data, - final Object[] choiceResults) { - game.doAction( - new MagicChangeCountersAction( - (MagicPermanent)data[0], - MagicCounterType.PlusOne, - (Integer)data[1], - true)); - } - }; + MagicLayer.ModPT, + MagicTargetFilter.TARGET_ELF_YOU_CONTROL) { - public static final MagicSpellCardEvent E =new MagicSpellCardEvent() { + private int amount = 0; + + @Override + public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) { + pt.add(amount, amount); + } + @Override + public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) { + if (source.hasCounters()) { + amount = source.getCounters(MagicCounterType.PlusOne); + } + return source != target; + } + }; + + public static final MagicSpellCardEvent E = new MagicSpellCardEvent() { @Override public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) { - final MagicPlayer player=cardOnStack.getController(); + final MagicPlayer player = cardOnStack.getController(); final MagicCard card = cardOnStack.getCard(); return new MagicEvent( card, player, new MagicKickerChoice(MagicManaCost.ONE_GREEN,true), - new Object[]{cardOnStack,player}, + new Object[]{cardOnStack}, this, "$Play " + card + ". " + card + " enters the battlefield " + "with a +1/+1 counter on it for each time it was kicked$"); @@ -77,20 +58,17 @@ public class Joraga_Warcaller { final MagicEvent event, final Object[] data, final Object[] choiceResults) { - final int kickerCount=(Integer)choiceResults[1]; + final int kickerCount = (Integer)choiceResults[1]; final MagicCardOnStack cardOnStack = (MagicCardOnStack)data[0]; final MagicPlayCardFromStackAction action = new MagicPlayCardFromStackAction(cardOnStack); game.doAction(action); - if (kickerCount>0) { + if (kickerCount > 0) { final MagicPermanent permanent = action.getPermanent(); - final MagicPlayer player = permanent.getController(); - final MagicEvent triggerEvent = new MagicEvent( - permanent, - player, - new Object[]{permanent,kickerCount}, - KICKED, - "Put " + kickerCount + " +1/+1 counters on " + permanent + "."); - game.doAction(new MagicPutItemOnStackAction(new MagicTriggerOnStack(permanent,triggerEvent))); + game.doAction(new MagicChangeCountersAction( + permanent, + MagicCounterType.PlusOne, + kickerCount, + true)); } } };