From dfd66420d8c4562ef660169fd48424658df98f92 Mon Sep 17 00:00:00 2001 From: melvin Date: Mon, 27 Aug 2012 13:27:24 +0800 Subject: [PATCH] added Griselbrand --- release/Magarena/scripts/Griselbrand.txt | 12 +++++ src/magic/card/Griselbrand.java | 44 +++++++++++++++++++ src/magic/model/condition/MagicCondition.java | 14 ++++-- 3 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 release/Magarena/scripts/Griselbrand.txt create mode 100644 src/magic/card/Griselbrand.java diff --git a/release/Magarena/scripts/Griselbrand.txt b/release/Magarena/scripts/Griselbrand.txt new file mode 100644 index 0000000000..02f873dc62 --- /dev/null +++ b/release/Magarena/scripts/Griselbrand.txt @@ -0,0 +1,12 @@ +name=Griselbrand +url=http://magiccards.info/avr/en/106.html +image=http://magiccards.info/scans/en/avr/106.jpg +value=4.564 +rarity=M +type=Legendary,Creature +subtype=Demon +cost={4}{B}{B}{B}{B} +pt=7/7 +timing=main +ability=flying,lifelink +requires_card_code diff --git a/src/magic/card/Griselbrand.java b/src/magic/card/Griselbrand.java new file mode 100644 index 0000000000..2ce7aab01d --- /dev/null +++ b/src/magic/card/Griselbrand.java @@ -0,0 +1,44 @@ +package magic.card; + +import magic.model.MagicGame; +import magic.model.MagicPayedCost; +import magic.model.MagicPermanent; +import magic.model.MagicSource; +import magic.model.action.MagicDrawAction; +import magic.model.condition.MagicCondition; +import magic.model.event.MagicActivationHints; +import magic.model.event.MagicEvent; +import magic.model.event.MagicPayLifeEvent; +import magic.model.event.MagicPermanentActivation; +import magic.model.event.MagicPlayAbilityEvent; +import magic.model.event.MagicTiming; + +public class Griselbrand { + public static final MagicPermanentActivation A = new MagicPermanentActivation( + new MagicCondition[]{MagicCondition.SEVEN_LIFE_CONDITION}, + new MagicActivationHints(MagicTiming.Draw), + "Draw") { + + @Override + public MagicEvent[] getCostEvent(final MagicSource source) { + return new MagicEvent[]{ + new MagicPayLifeEvent(source,source.getController(),7), + }; + } + + @Override + public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) { + return new MagicEvent( + source, + source.getController(), + MagicEvent.NO_DATA, + this, + "Draw seven cards"); + } + + @Override + public void executeEvent(final MagicGame game,final MagicEvent event,final Object[] data,final Object[] choiceResults) { + game.doAction(new MagicDrawAction(event.getPlayer(),7)); + } + }; +} diff --git a/src/magic/model/condition/MagicCondition.java b/src/magic/model/condition/MagicCondition.java index d192f51e42..74b5636a98 100644 --- a/src/magic/model/condition/MagicCondition.java +++ b/src/magic/model/condition/MagicCondition.java @@ -54,25 +54,31 @@ public interface MagicCondition { MagicCondition ONE_LIFE_CONDITION=new MagicCondition() { public boolean accept(final MagicGame game,final MagicSource source) { - return source.getController().getLife()>0; + return source.getController().getLife() >= 1; } }; MagicCondition TWO_LIFE_CONDITION=new MagicCondition() { public boolean accept(final MagicGame game,final MagicSource source) { - return source.getController().getLife()>1; + return source.getController().getLife() >= 2; + } + }; + + MagicCondition SEVEN_LIFE_CONDITION=new MagicCondition() { + public boolean accept(final MagicGame game,final MagicSource source) { + return source.getController().getLife() >= 7; } }; MagicCondition HAS_CARD_CONDITION=new MagicCondition() { public boolean accept(final MagicGame game,final MagicSource source) { - return source.getController().getHandSize()>0; + return source.getController().getHandSize() >= 1; } }; MagicCondition HAS_TWO_CARDS_CONDITION = new MagicCondition() { public boolean accept(final MagicGame game,final MagicSource source) { - return source.getController().getHandSize() > 1; + return source.getController().getHandSize() >= 2; } };