From b147a08228101831dd88276617a4833f82550ff7 Mon Sep 17 00:00:00 2001 From: melvin Date: Sun, 9 Sep 2012 14:46:21 +0800 Subject: [PATCH] simplify Benalish Lancer using kicker in card script --- release/Magarena/scripts/Benalish_Lancer.txt | 1 + src/magic/card/Benalish_Lancer.java | 46 +++++--------------- 2 files changed, 11 insertions(+), 36 deletions(-) diff --git a/release/Magarena/scripts/Benalish_Lancer.txt b/release/Magarena/scripts/Benalish_Lancer.txt index d124d40335..eb31906a26 100644 --- a/release/Magarena/scripts/Benalish_Lancer.txt +++ b/release/Magarena/scripts/Benalish_Lancer.txt @@ -8,4 +8,5 @@ subtype=Human,Knight cost={2}{W} pt=2/2 timing=main +ability=kicker {2}{W} it enters the battlefield with two +1/+1 counters on it and with first strike requires_card_code diff --git a/src/magic/card/Benalish_Lancer.java b/src/magic/card/Benalish_Lancer.java index 4e82191a36..341b3674db 100644 --- a/src/magic/card/Benalish_Lancer.java +++ b/src/magic/card/Benalish_Lancer.java @@ -9,53 +9,27 @@ 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.action.MagicSetAbilityAction; -import magic.model.choice.MagicKickerChoice; +import magic.model.trigger.MagicWhenComesIntoPlayTrigger; import magic.model.event.MagicEvent; -import magic.model.event.MagicSpellCardEvent; -import magic.model.stack.MagicCardOnStack; import magic.model.mstatic.MagicStatic; -public class Benalish_Lancer { - public static final MagicSpellCardEvent S = new MagicSpellCardEvent() { +public class Benalish_Lancer { + public static final MagicWhenComesIntoPlayTrigger T = new MagicWhenComesIntoPlayTrigger() { @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.TWO_WHITE,false), - new Object[]{cardOnStack,player}, - this, - "$Play " + card + ". If " + card + " was kicked$, " + - "it enters the battlefield with two +1/+1 counters " + - "on it and with first strike."); - } - @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(); + public MagicEvent executeTrigger( + final MagicGame game, + final MagicPermanent permanent, + final MagicPlayer player) { + if (permanent.isKicked()) { game.doAction(new MagicChangeCountersAction( permanent, MagicCounterType.PlusOne, 2, true)); - game.doAction(new MagicSetAbilityAction( - permanent, - MagicAbility.FirstStrike, - MagicStatic.Forever - )); + game.doAction(new MagicSetAbilityAction(permanent,MagicAbility.FirstStrike,MagicStatic.Forever)); } + return MagicEvent.NONE; } }; }