added Apex Hawks. fixed Joraga Warcaller

master
beholder 2011-10-14 09:04:06 +02:00
parent dee729f933
commit 230fd2825e
3 changed files with 93 additions and 49 deletions

View File

@ -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

View File

@ -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));
}
}
};
}

View File

@ -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));
}
}
};