From d0f5d4a0326ace4cd84a50e7a497866b138240cf Mon Sep 17 00:00:00 2001 From: beholder Date: Sun, 19 Feb 2012 14:09:41 +0100 Subject: [PATCH] added Rhox and Break of Day --- release/Magarena/scripts/Break_of_Day.txt | 11 +++++ release/Magarena/scripts/Rhox.txt | 14 ++++++ src/magic/card/Break_of_Day.java | 52 ++++++++++++++++++++ src/magic/card/Rhox.java | 59 +++++++++++++++++++++++ 4 files changed, 136 insertions(+) create mode 100644 release/Magarena/scripts/Break_of_Day.txt create mode 100644 release/Magarena/scripts/Rhox.txt create mode 100644 src/magic/card/Break_of_Day.java create mode 100644 src/magic/card/Rhox.java diff --git a/release/Magarena/scripts/Break_of_Day.txt b/release/Magarena/scripts/Break_of_Day.txt new file mode 100644 index 0000000000..df36cf5fc7 --- /dev/null +++ b/release/Magarena/scripts/Break_of_Day.txt @@ -0,0 +1,11 @@ +>Break of Day +url=http://magiccards.info/dka/en/3.html +image=http://magiccards.info/scans/en/dka/3.jpg +value=3 +rarity=C +type=Instant +color=w +converted=2 +cost={1}{W} +timing=pump +requires_card_code diff --git a/release/Magarena/scripts/Rhox.txt b/release/Magarena/scripts/Rhox.txt new file mode 100644 index 0000000000..abc6160028 --- /dev/null +++ b/release/Magarena/scripts/Rhox.txt @@ -0,0 +1,14 @@ +>Rhox +url=http://magiccards.info/10e/en/291.html +image=http://magiccards.info/scans/en/10e/291.jpg +value=5 +rarity=R +type=Creature +subtype=Beast +color=g +converted=6 +cost={4}{G}{G} +pt=5/5 +timing=main +ability=regenerate {2}{G} +requires_card_code diff --git a/src/magic/card/Break_of_Day.java b/src/magic/card/Break_of_Day.java new file mode 100644 index 0000000000..85fe55bb6b --- /dev/null +++ b/src/magic/card/Break_of_Day.java @@ -0,0 +1,52 @@ +package magic.card; + +import magic.model.MagicAbility; +import magic.model.MagicGame; +import magic.model.MagicPayedCost; +import magic.model.MagicPermanent; +import magic.model.MagicPlayer; +import magic.model.action.MagicChangeTurnPTAction; +import magic.model.action.MagicMoveCardAction; +import magic.model.action.MagicSetAbilityAction; +import magic.model.event.MagicEvent; +import magic.model.event.MagicSpellCardEvent; +import magic.model.stack.MagicCardOnStack; +import magic.model.target.MagicTarget; +import magic.model.target.MagicTargetFilter; + +import java.util.Collection; + +public class Break_of_Day { + public static final MagicSpellCardEvent S = new MagicSpellCardEvent() { + @Override + public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) { + final MagicPlayer player=cardOnStack.getController(); + return new MagicEvent( + cardOnStack.getCard(), + player, + new Object[]{cardOnStack,player}, + this, + "Creatures you control get +1/+1 until end of turn."); + } + @Override + public void executeEvent( + final MagicGame game, + final MagicEvent event, + final Object[] data, + final Object[] choiceResults) { + game.doAction(new MagicMoveCardAction((MagicCardOnStack)data[0])); + final MagicPlayer player = (MagicPlayer)data[1]; + final Collection targets = game.filterTargets( + player, + MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL); + final boolean fatefulHour = player.getLife() <= 5; + for (final MagicTarget target : targets) { + final MagicPermanent creature = (MagicPermanent)target; + game.doAction(new MagicChangeTurnPTAction(creature,1,1)); + if (fatefulHour) { + game.doAction(new MagicSetAbilityAction(creature,MagicAbility.Indestructible)); + } + } + } + }; +} diff --git a/src/magic/card/Rhox.java b/src/magic/card/Rhox.java new file mode 100644 index 0000000000..84731557cd --- /dev/null +++ b/src/magic/card/Rhox.java @@ -0,0 +1,59 @@ +package magic.card; + +import magic.model.MagicDamage; +import magic.model.MagicGame; +import magic.model.MagicPermanent; +import magic.model.MagicPermanentState; +import magic.model.MagicPlayer; +import magic.model.action.MagicChangeStateAction; +import magic.model.action.MagicDealDamageAction; +import magic.model.choice.MagicMayChoice; +import magic.model.event.MagicEvent; +import magic.model.target.MagicTarget; +import magic.model.trigger.MagicWhenBecomesBlockedTrigger; + +public class Rhox { + public static final MagicWhenBecomesBlockedTrigger T = new MagicWhenBecomesBlockedTrigger() { + @Override + public MagicEvent executeTrigger( + final MagicGame game, + final MagicPermanent permanent, + final MagicPermanent data) { + final MagicPlayer player = permanent.getController(); + final MagicPlayer defendingPlayer = game.getOpponent(player); + return (permanent == data ) ? + new MagicEvent( + permanent, + player, + new MagicMayChoice( + player + " may have Rhox deal its combat damage " + + "to defending player as though it weren't blocked."), + new Object[]{permanent,defendingPlayer}, + this, + player + " may$ have Rhox deal its combat damage " + + "to defending player as though it weren't blocked."): + MagicEvent.NONE; + } + + @Override + public void executeEvent( + final MagicGame game, + final MagicEvent event, + final Object data[], + final Object[] choiceResults) { + if (MagicMayChoice.isYesChoice(choiceResults[0])) { + final MagicPermanent permanent = (MagicPermanent)data[0]; + final MagicDamage damage = new MagicDamage( + permanent, + (MagicTarget)data[1], + permanent.getPower(game), + true); + game.doAction(new MagicDealDamageAction(damage)); + game.doAction(new MagicChangeStateAction( + permanent, + MagicPermanentState.NoCombatDamage, + true)); + } + } + }; +}