From 4129838e364fc77d82d0ffb9015522fe1729e234 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Wed, 18 Sep 2013 16:24:31 +0200 Subject: [PATCH] Changed MonstosityAbility to support X value. --- ...ecomesMonstrousSourceTriggeredAbility.java | 8 +++ .../CreateDelayedTriggeredAbilityEffect.java | 1 - .../abilities/keyword/MonstrosityAbility.java | 61 ++++++++++++++----- 3 files changed, 53 insertions(+), 17 deletions(-) diff --git a/Mage/src/mage/abilities/common/BecomesMonstrousSourceTriggeredAbility.java b/Mage/src/mage/abilities/common/BecomesMonstrousSourceTriggeredAbility.java index 726fbd33a95..a8e1c783e1e 100644 --- a/Mage/src/mage/abilities/common/BecomesMonstrousSourceTriggeredAbility.java +++ b/Mage/src/mage/abilities/common/BecomesMonstrousSourceTriggeredAbility.java @@ -40,12 +40,15 @@ import mage.game.events.GameEvent.EventType; */ public class BecomesMonstrousSourceTriggeredAbility extends TriggeredAbilityImpl { + private int monstrosityValue; + public BecomesMonstrousSourceTriggeredAbility(Effect effect) { super(Zone.BATTLEFIELD, effect, false); } public BecomesMonstrousSourceTriggeredAbility(final BecomesMonstrousSourceTriggeredAbility ability) { super(ability); + this.monstrosityValue = ability.monstrosityValue; } @Override @@ -56,11 +59,16 @@ public class BecomesMonstrousSourceTriggeredAbility extends TriggeredAbilityImpl @Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getType().equals(EventType.BECOMES_MONSTROUS) && event.getSourceId().equals(this.getSourceId())) { + this.monstrosityValue = event.getAmount(); return true; } return false; } + public int getMonstrosityValue() { + return monstrosityValue; + } + @Override public String getRule() { return "When {this} becomes monstrous, " + super.getRule(); diff --git a/Mage/src/mage/abilities/effects/common/CreateDelayedTriggeredAbilityEffect.java b/Mage/src/mage/abilities/effects/common/CreateDelayedTriggeredAbilityEffect.java index 8ac5c4930d3..ea507494391 100644 --- a/Mage/src/mage/abilities/effects/common/CreateDelayedTriggeredAbilityEffect.java +++ b/Mage/src/mage/abilities/effects/common/CreateDelayedTriggeredAbilityEffect.java @@ -73,7 +73,6 @@ public class CreateDelayedTriggeredAbilityEffect extends OneShotEffect private int monstrosityValue; + /** + * + * @param manaString + * @param monstrosityValue use Integer.MAX_VALUE for monstrosity X. + */ public MonstrosityAbility(String manaString, int monstrosityValue) { - super(Zone.BATTLEFIELD, new ConditionalOneShotEffect( - new AddCountersSourceEffect(CounterType.P1P1.createInstance(monstrosityValue)), - new InvertCondition(MonstrousCondition.getInstance()), - ""), new ManaCostsImpl(manaString)); - this.addEffect(new ConditionalOneShotEffect( - new BecomeMonstrousSourceEffect(), - new InvertCondition(MonstrousCondition.getInstance()),"")); - + super(Zone.BATTLEFIELD, new BecomeMonstrousSourceEffect(),new ManaCostsImpl(manaString)); this.monstrosityValue = monstrosityValue; } @@ -78,13 +94,20 @@ public class MonstrosityAbility extends ActivatedAbilityImpl @Override public String getRule() { - return new StringBuilder(manaCosts.getText()).append(": Monstrosity ").append(monstrosityValue) - .append(". (If this creature isn't monstrous, put ").append(CardUtil.numberToText(monstrosityValue)) + return new StringBuilder(manaCosts.getText()).append(": Monstrosity ") + .append(monstrosityValue == Integer.MAX_VALUE ? "X":monstrosityValue) + .append(". (If this creature isn't monstrous, put ") + .append(monstrosityValue == Integer.MAX_VALUE ? "X":CardUtil.numberToText(monstrosityValue)) .append(" +1/+1 counters on it and it becomes monstrous.)").toString(); } -} + public int getMonstrosityValue() { + return monstrosityValue; + } + + +} class BecomeMonstrousSourceEffect extends OneShotEffect { public BecomeMonstrousSourceEffect() { @@ -104,9 +127,15 @@ class BecomeMonstrousSourceEffect extends OneShotEffect