From 937c757d58cdf024d7ec9316acbc274356e6a41d Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Mon, 22 Jul 2013 13:11:09 +0200 Subject: [PATCH 1/6] Remove redundant InvertCondition and used instead UnlessCondition. --- .../mage/sets/innistrad/MayorOfAvabruck.java | 4 +- .../mage/sets/magic2014/ShadowbornDemon.java | 4 +- .../mage/sets/modernmasters/Epochrasite.java | 4 +- .../condition/common/InvertCondition.java | 59 ------------------- 4 files changed, 6 insertions(+), 65 deletions(-) delete mode 100644 Mage/src/mage/abilities/condition/common/InvertCondition.java diff --git a/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java b/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java index 0a647aabbc8..0f5354817d7 100644 --- a/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java +++ b/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java @@ -31,7 +31,6 @@ import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.condition.common.InvertCondition; import mage.abilities.condition.common.NoSpellsWereCastLastTurnCondition; import mage.abilities.condition.common.TransformedCondition; import mage.abilities.decorator.ConditionalContinousEffect; @@ -46,6 +45,7 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import java.util.UUID; +import mage.abilities.condition.common.UnlessCondition; /** * @@ -76,7 +76,7 @@ public class MayorOfAvabruck extends CardImpl { this.toughness = new MageInt(1); // Other Human creatures you control get +1/+1. - Effect effect = new ConditionalContinousEffect(new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true), new InvertCondition(new TransformedCondition()), ruleText); + Effect effect = new ConditionalContinousEffect(new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true), new UnlessCondition(new TransformedCondition()), ruleText); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); // At the beginning of each upkeep, if no spells were cast last turn, transform Mayor of Avabruck. diff --git a/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java b/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java index 624bbfeaff0..7b7d0f31ba1 100644 --- a/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java +++ b/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java @@ -34,7 +34,7 @@ import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.Condition; -import mage.abilities.condition.common.InvertCondition; +import mage.abilities.condition.common.UnlessCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.SacrificeTargetEffect; @@ -88,7 +88,7 @@ public class ShadowbornDemon extends CardImpl { triggeredAbility.addTarget(target); this.addAbility(new ConditionalTriggeredAbility( triggeredAbility, - new InvertCondition(new CreatureCardsInControllerGraveCondition(6)), + new UnlessCondition(new CreatureCardsInControllerGraveCondition(6)), "At the beginning of your upkeep, if there are fewer than six creature cards in your graveyard, sacrifice a creature")); } diff --git a/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java b/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java index d34353fdb5e..4c59dda8963 100644 --- a/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java +++ b/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java @@ -33,7 +33,7 @@ import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.CastFromHandCondition; -import mage.abilities.condition.common.InvertCondition; +import mage.abilities.condition.common.UnlessCondition; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.ExileSourceEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect; @@ -65,7 +65,7 @@ public class Epochrasite extends CardImpl { // Epochrasite enters the battlefield with three +1/+1 counters on it if you didn't cast it from your hand. this.addAbility(new EntersBattlefieldAbility( new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)), - new InvertCondition(new CastFromHandCondition()), true, + new UnlessCondition(new CastFromHandCondition()), true, "{this} enters the battlefield with three +1/+1 counters on it if you didn't cast it from your hand","")); // When Epochrasite dies, exile it with three time counters on it and it gains suspend. diff --git a/Mage/src/mage/abilities/condition/common/InvertCondition.java b/Mage/src/mage/abilities/condition/common/InvertCondition.java deleted file mode 100644 index b004e8fc27f..00000000000 --- a/Mage/src/mage/abilities/condition/common/InvertCondition.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ -package mage.abilities.condition.common; - -import mage.abilities.Ability; -import mage.abilities.condition.Condition; -import mage.game.Game; - -/** - * A simple {@link mage.abilities.condition.Condition} to invert a decorated conditions - * {@link mage.abilities.condition.Condition#apply(mage.game.Game, mage.abilities.Ability) apply(mage.game.Game, mage.abilities.Ability)} - * method invocation. - * - * The copy for {@link UnlessCondition}. - * - * @author noxx - */ -public class InvertCondition implements Condition { - - private Condition condition; - - public InvertCondition(Condition condition) { - this.condition = condition; - } - - /* - * {@inheritDoc} - */ - @Override - public boolean apply(Game game, Ability source) { - return !condition.apply(game, source); - } - -} From a50d23e35c22277c7a40da218ee18a1bdded86f0 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Mon, 22 Jul 2013 13:14:02 +0200 Subject: [PATCH 2/6] Moved condition helper classes to mage.abilities.condition. --- Mage.Sets/src/mage/sets/innistrad/ClifftopRetreat.java | 2 +- Mage.Sets/src/mage/sets/innistrad/HinterlandHarbor.java | 2 +- Mage.Sets/src/mage/sets/innistrad/IsolatedChapel.java | 2 +- Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java | 2 +- Mage.Sets/src/mage/sets/innistrad/SulfurFalls.java | 2 +- Mage.Sets/src/mage/sets/innistrad/WoodlandCemetery.java | 2 +- Mage.Sets/src/mage/sets/magic2010/DragonskullSummit.java | 2 +- Mage.Sets/src/mage/sets/magic2010/DrownedCatacomb.java | 2 +- Mage.Sets/src/mage/sets/magic2010/GlacialFortress.java | 2 +- Mage.Sets/src/mage/sets/magic2010/RootboundCrag.java | 2 +- Mage.Sets/src/mage/sets/magic2010/SunpetalGrove.java | 2 +- Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java | 2 +- Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java | 2 +- Mage.Sets/src/mage/sets/scarsofmirrodin/BlackcleaveCliffs.java | 2 +- Mage.Sets/src/mage/sets/scarsofmirrodin/CopperlineGorge.java | 2 +- Mage.Sets/src/mage/sets/scarsofmirrodin/DarkslickShores.java | 2 +- Mage.Sets/src/mage/sets/scarsofmirrodin/RazorvergeThicket.java | 2 +- Mage.Sets/src/mage/sets/scarsofmirrodin/SeachromeCoast.java | 2 +- Mage.Sets/src/mage/sets/zendikar/SphinxOfLostTruths.java | 2 +- Mage.Sets/src/mage/sets/zendikar/VampireLacerator.java | 2 +- .../mage/abilities/{condition => }/common/UnlessCondition.java | 2 +- .../mage/abilities/condition/{common => }/FixedCondition.java | 2 +- .../mage/abilities/decorator/ConditionalContinousEffect.java | 2 +- 23 files changed, 23 insertions(+), 23 deletions(-) rename Mage/src/mage/abilities/{condition => }/common/UnlessCondition.java (98%) rename Mage/src/mage/abilities/condition/{common => }/FixedCondition.java (95%) diff --git a/Mage.Sets/src/mage/sets/innistrad/ClifftopRetreat.java b/Mage.Sets/src/mage/sets/innistrad/ClifftopRetreat.java index fa70242084c..3800b21e387 100644 --- a/Mage.Sets/src/mage/sets/innistrad/ClifftopRetreat.java +++ b/Mage.Sets/src/mage/sets/innistrad/ClifftopRetreat.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.RedManaAbility; diff --git a/Mage.Sets/src/mage/sets/innistrad/HinterlandHarbor.java b/Mage.Sets/src/mage/sets/innistrad/HinterlandHarbor.java index d5edd169efe..91cab82d342 100644 --- a/Mage.Sets/src/mage/sets/innistrad/HinterlandHarbor.java +++ b/Mage.Sets/src/mage/sets/innistrad/HinterlandHarbor.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlueManaAbility; diff --git a/Mage.Sets/src/mage/sets/innistrad/IsolatedChapel.java b/Mage.Sets/src/mage/sets/innistrad/IsolatedChapel.java index 93bb155cb8e..01f054526e5 100644 --- a/Mage.Sets/src/mage/sets/innistrad/IsolatedChapel.java +++ b/Mage.Sets/src/mage/sets/innistrad/IsolatedChapel.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; diff --git a/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java b/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java index 0f5354817d7..6e5bfa525ae 100644 --- a/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java +++ b/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java @@ -45,7 +45,7 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import java.util.UUID; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; /** * diff --git a/Mage.Sets/src/mage/sets/innistrad/SulfurFalls.java b/Mage.Sets/src/mage/sets/innistrad/SulfurFalls.java index fd33939215c..3272d996084 100644 --- a/Mage.Sets/src/mage/sets/innistrad/SulfurFalls.java +++ b/Mage.Sets/src/mage/sets/innistrad/SulfurFalls.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlueManaAbility; diff --git a/Mage.Sets/src/mage/sets/innistrad/WoodlandCemetery.java b/Mage.Sets/src/mage/sets/innistrad/WoodlandCemetery.java index e43fcdb6e4a..43f5f47f6df 100644 --- a/Mage.Sets/src/mage/sets/innistrad/WoodlandCemetery.java +++ b/Mage.Sets/src/mage/sets/innistrad/WoodlandCemetery.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; diff --git a/Mage.Sets/src/mage/sets/magic2010/DragonskullSummit.java b/Mage.Sets/src/mage/sets/magic2010/DragonskullSummit.java index 2dc36e338b7..fc6da5b6ee0 100644 --- a/Mage.Sets/src/mage/sets/magic2010/DragonskullSummit.java +++ b/Mage.Sets/src/mage/sets/magic2010/DragonskullSummit.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; diff --git a/Mage.Sets/src/mage/sets/magic2010/DrownedCatacomb.java b/Mage.Sets/src/mage/sets/magic2010/DrownedCatacomb.java index 6e41eee6b61..340f41f1ebf 100644 --- a/Mage.Sets/src/mage/sets/magic2010/DrownedCatacomb.java +++ b/Mage.Sets/src/mage/sets/magic2010/DrownedCatacomb.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; diff --git a/Mage.Sets/src/mage/sets/magic2010/GlacialFortress.java b/Mage.Sets/src/mage/sets/magic2010/GlacialFortress.java index 37d67634b71..4d56b4916c9 100644 --- a/Mage.Sets/src/mage/sets/magic2010/GlacialFortress.java +++ b/Mage.Sets/src/mage/sets/magic2010/GlacialFortress.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlueManaAbility; diff --git a/Mage.Sets/src/mage/sets/magic2010/RootboundCrag.java b/Mage.Sets/src/mage/sets/magic2010/RootboundCrag.java index e2bfc5e33da..69d24104f2e 100644 --- a/Mage.Sets/src/mage/sets/magic2010/RootboundCrag.java +++ b/Mage.Sets/src/mage/sets/magic2010/RootboundCrag.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.GreenManaAbility; diff --git a/Mage.Sets/src/mage/sets/magic2010/SunpetalGrove.java b/Mage.Sets/src/mage/sets/magic2010/SunpetalGrove.java index 6e00d8c4f3b..a39018a0d3d 100644 --- a/Mage.Sets/src/mage/sets/magic2010/SunpetalGrove.java +++ b/Mage.Sets/src/mage/sets/magic2010/SunpetalGrove.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.GreenManaAbility; diff --git a/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java b/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java index 7b7d0f31ba1..623d99577c8 100644 --- a/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java +++ b/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java @@ -34,7 +34,7 @@ import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.Condition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.SacrificeTargetEffect; diff --git a/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java b/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java index 4c59dda8963..aea2dde3d84 100644 --- a/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java +++ b/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java @@ -33,7 +33,7 @@ import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.CastFromHandCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.ExileSourceEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect; diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/BlackcleaveCliffs.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/BlackcleaveCliffs.java index a66dd94e801..b0022dce0af 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/BlackcleaveCliffs.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/BlackcleaveCliffs.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/CopperlineGorge.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/CopperlineGorge.java index 0129248eab4..36ba1ee1d22 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/CopperlineGorge.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/CopperlineGorge.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.GreenManaAbility; diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/DarkslickShores.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/DarkslickShores.java index 6aac4adee52..eb50871201a 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/DarkslickShores.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/DarkslickShores.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorvergeThicket.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorvergeThicket.java index 5d1a70b7fd3..19c5039b4f4 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorvergeThicket.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorvergeThicket.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.GreenManaAbility; diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/SeachromeCoast.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/SeachromeCoast.java index 33797c865a6..7f3b73c453f 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/SeachromeCoast.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/SeachromeCoast.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlueManaAbility; diff --git a/Mage.Sets/src/mage/sets/zendikar/SphinxOfLostTruths.java b/Mage.Sets/src/mage/sets/zendikar/SphinxOfLostTruths.java index e1fe23f64b7..56dbdc14318 100644 --- a/Mage.Sets/src/mage/sets/zendikar/SphinxOfLostTruths.java +++ b/Mage.Sets/src/mage/sets/zendikar/SphinxOfLostTruths.java @@ -34,7 +34,7 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DiscardControllerEffect; import mage.abilities.effects.common.DrawCardControllerEffect; diff --git a/Mage.Sets/src/mage/sets/zendikar/VampireLacerator.java b/Mage.Sets/src/mage/sets/zendikar/VampireLacerator.java index 0f145eb5623..1114d3a32ef 100644 --- a/Mage.Sets/src/mage/sets/zendikar/VampireLacerator.java +++ b/Mage.Sets/src/mage/sets/zendikar/VampireLacerator.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.TenOrLessLifeCondition; -import mage.abilities.condition.common.UnlessCondition; +import mage.abilities.common.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.LoseLifeSourceEffect; import mage.cards.CardImpl; diff --git a/Mage/src/mage/abilities/condition/common/UnlessCondition.java b/Mage/src/mage/abilities/common/UnlessCondition.java similarity index 98% rename from Mage/src/mage/abilities/condition/common/UnlessCondition.java rename to Mage/src/mage/abilities/common/UnlessCondition.java index f7e01af7aae..e11c15cdcf2 100644 --- a/Mage/src/mage/abilities/condition/common/UnlessCondition.java +++ b/Mage/src/mage/abilities/common/UnlessCondition.java @@ -25,7 +25,7 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ -package mage.abilities.condition.common; +package mage.abilities.common; import mage.abilities.Ability; import mage.abilities.condition.Condition; diff --git a/Mage/src/mage/abilities/condition/common/FixedCondition.java b/Mage/src/mage/abilities/condition/FixedCondition.java similarity index 95% rename from Mage/src/mage/abilities/condition/common/FixedCondition.java rename to Mage/src/mage/abilities/condition/FixedCondition.java index d79ef273eb1..a2d3c0ae7d6 100644 --- a/Mage/src/mage/abilities/condition/common/FixedCondition.java +++ b/Mage/src/mage/abilities/condition/FixedCondition.java @@ -26,7 +26,7 @@ * or implied, of BetaSteward_at_googlemail.com. */ -package mage.abilities.condition.common; +package mage.abilities.condition; import mage.abilities.Ability; import mage.abilities.condition.Condition; diff --git a/Mage/src/mage/abilities/decorator/ConditionalContinousEffect.java b/Mage/src/mage/abilities/decorator/ConditionalContinousEffect.java index b3379612178..c0ebdeabd6c 100644 --- a/Mage/src/mage/abilities/decorator/ConditionalContinousEffect.java +++ b/Mage/src/mage/abilities/decorator/ConditionalContinousEffect.java @@ -3,7 +3,7 @@ package mage.abilities.decorator; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.condition.Condition; -import mage.abilities.condition.common.FixedCondition; +import mage.abilities.condition.FixedCondition; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.ContinuousEffectImpl; import mage.constants.Duration; From 61f2b3a4aad86f99a640000bed23d4b0f3c96209 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Mon, 22 Jul 2013 13:22:44 +0200 Subject: [PATCH 3/6] Moved UnlessCondition to correct package. --- Mage.Sets/src/mage/sets/innistrad/ClifftopRetreat.java | 2 +- Mage.Sets/src/mage/sets/innistrad/HinterlandHarbor.java | 2 +- Mage.Sets/src/mage/sets/innistrad/IsolatedChapel.java | 2 +- Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java | 2 +- Mage.Sets/src/mage/sets/innistrad/SulfurFalls.java | 2 +- Mage.Sets/src/mage/sets/innistrad/WoodlandCemetery.java | 2 +- Mage.Sets/src/mage/sets/magic2010/DragonskullSummit.java | 2 +- Mage.Sets/src/mage/sets/magic2010/DrownedCatacomb.java | 2 +- Mage.Sets/src/mage/sets/magic2010/GlacialFortress.java | 2 +- Mage.Sets/src/mage/sets/magic2010/RootboundCrag.java | 2 +- Mage.Sets/src/mage/sets/magic2010/SunpetalGrove.java | 2 +- Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java | 2 +- Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java | 2 +- Mage.Sets/src/mage/sets/scarsofmirrodin/BlackcleaveCliffs.java | 2 +- Mage.Sets/src/mage/sets/scarsofmirrodin/CopperlineGorge.java | 2 +- Mage.Sets/src/mage/sets/scarsofmirrodin/DarkslickShores.java | 2 +- Mage.Sets/src/mage/sets/scarsofmirrodin/RazorvergeThicket.java | 2 +- Mage.Sets/src/mage/sets/scarsofmirrodin/SeachromeCoast.java | 2 +- Mage.Sets/src/mage/sets/zendikar/SphinxOfLostTruths.java | 2 +- Mage.Sets/src/mage/sets/zendikar/VampireLacerator.java | 2 +- .../mage/abilities/{common => condition}/UnlessCondition.java | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) rename Mage/src/mage/abilities/{common => condition}/UnlessCondition.java (98%) diff --git a/Mage.Sets/src/mage/sets/innistrad/ClifftopRetreat.java b/Mage.Sets/src/mage/sets/innistrad/ClifftopRetreat.java index 3800b21e387..ea71cf464b9 100644 --- a/Mage.Sets/src/mage/sets/innistrad/ClifftopRetreat.java +++ b/Mage.Sets/src/mage/sets/innistrad/ClifftopRetreat.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.RedManaAbility; diff --git a/Mage.Sets/src/mage/sets/innistrad/HinterlandHarbor.java b/Mage.Sets/src/mage/sets/innistrad/HinterlandHarbor.java index 91cab82d342..4c96b8f8229 100644 --- a/Mage.Sets/src/mage/sets/innistrad/HinterlandHarbor.java +++ b/Mage.Sets/src/mage/sets/innistrad/HinterlandHarbor.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlueManaAbility; diff --git a/Mage.Sets/src/mage/sets/innistrad/IsolatedChapel.java b/Mage.Sets/src/mage/sets/innistrad/IsolatedChapel.java index 01f054526e5..d0ed9f97317 100644 --- a/Mage.Sets/src/mage/sets/innistrad/IsolatedChapel.java +++ b/Mage.Sets/src/mage/sets/innistrad/IsolatedChapel.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; diff --git a/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java b/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java index 6e5bfa525ae..e7a582ceecf 100644 --- a/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java +++ b/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java @@ -45,7 +45,7 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import java.util.UUID; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; /** * diff --git a/Mage.Sets/src/mage/sets/innistrad/SulfurFalls.java b/Mage.Sets/src/mage/sets/innistrad/SulfurFalls.java index 3272d996084..62d1776e7f3 100644 --- a/Mage.Sets/src/mage/sets/innistrad/SulfurFalls.java +++ b/Mage.Sets/src/mage/sets/innistrad/SulfurFalls.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlueManaAbility; diff --git a/Mage.Sets/src/mage/sets/innistrad/WoodlandCemetery.java b/Mage.Sets/src/mage/sets/innistrad/WoodlandCemetery.java index 43f5f47f6df..b5aa8243165 100644 --- a/Mage.Sets/src/mage/sets/innistrad/WoodlandCemetery.java +++ b/Mage.Sets/src/mage/sets/innistrad/WoodlandCemetery.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; diff --git a/Mage.Sets/src/mage/sets/magic2010/DragonskullSummit.java b/Mage.Sets/src/mage/sets/magic2010/DragonskullSummit.java index fc6da5b6ee0..76b0b490140 100644 --- a/Mage.Sets/src/mage/sets/magic2010/DragonskullSummit.java +++ b/Mage.Sets/src/mage/sets/magic2010/DragonskullSummit.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; diff --git a/Mage.Sets/src/mage/sets/magic2010/DrownedCatacomb.java b/Mage.Sets/src/mage/sets/magic2010/DrownedCatacomb.java index 340f41f1ebf..09fcda10bd6 100644 --- a/Mage.Sets/src/mage/sets/magic2010/DrownedCatacomb.java +++ b/Mage.Sets/src/mage/sets/magic2010/DrownedCatacomb.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; diff --git a/Mage.Sets/src/mage/sets/magic2010/GlacialFortress.java b/Mage.Sets/src/mage/sets/magic2010/GlacialFortress.java index 4d56b4916c9..8388ed7cc69 100644 --- a/Mage.Sets/src/mage/sets/magic2010/GlacialFortress.java +++ b/Mage.Sets/src/mage/sets/magic2010/GlacialFortress.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlueManaAbility; diff --git a/Mage.Sets/src/mage/sets/magic2010/RootboundCrag.java b/Mage.Sets/src/mage/sets/magic2010/RootboundCrag.java index 69d24104f2e..380e1dc89a4 100644 --- a/Mage.Sets/src/mage/sets/magic2010/RootboundCrag.java +++ b/Mage.Sets/src/mage/sets/magic2010/RootboundCrag.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.GreenManaAbility; diff --git a/Mage.Sets/src/mage/sets/magic2010/SunpetalGrove.java b/Mage.Sets/src/mage/sets/magic2010/SunpetalGrove.java index a39018a0d3d..6db50fc1695 100644 --- a/Mage.Sets/src/mage/sets/magic2010/SunpetalGrove.java +++ b/Mage.Sets/src/mage/sets/magic2010/SunpetalGrove.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.GreenManaAbility; diff --git a/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java b/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java index 623d99577c8..e6ce7e7c007 100644 --- a/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java +++ b/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java @@ -34,7 +34,7 @@ import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.Condition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.SacrificeTargetEffect; diff --git a/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java b/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java index aea2dde3d84..5503c748ce0 100644 --- a/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java +++ b/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java @@ -33,7 +33,7 @@ import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.CastFromHandCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.ExileSourceEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect; diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/BlackcleaveCliffs.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/BlackcleaveCliffs.java index b0022dce0af..529a605b461 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/BlackcleaveCliffs.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/BlackcleaveCliffs.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/CopperlineGorge.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/CopperlineGorge.java index 36ba1ee1d22..471ea23f859 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/CopperlineGorge.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/CopperlineGorge.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.GreenManaAbility; diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/DarkslickShores.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/DarkslickShores.java index eb50871201a..68cdb50ca9a 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/DarkslickShores.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/DarkslickShores.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorvergeThicket.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorvergeThicket.java index 19c5039b4f4..ad391a1dd9e 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorvergeThicket.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorvergeThicket.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.GreenManaAbility; diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/SeachromeCoast.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/SeachromeCoast.java index 7f3b73c453f..4ade68fba55 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/SeachromeCoast.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/SeachromeCoast.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlueManaAbility; diff --git a/Mage.Sets/src/mage/sets/zendikar/SphinxOfLostTruths.java b/Mage.Sets/src/mage/sets/zendikar/SphinxOfLostTruths.java index 56dbdc14318..73568810b55 100644 --- a/Mage.Sets/src/mage/sets/zendikar/SphinxOfLostTruths.java +++ b/Mage.Sets/src/mage/sets/zendikar/SphinxOfLostTruths.java @@ -34,7 +34,7 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DiscardControllerEffect; import mage.abilities.effects.common.DrawCardControllerEffect; diff --git a/Mage.Sets/src/mage/sets/zendikar/VampireLacerator.java b/Mage.Sets/src/mage/sets/zendikar/VampireLacerator.java index 1114d3a32ef..cadf9ba1bf7 100644 --- a/Mage.Sets/src/mage/sets/zendikar/VampireLacerator.java +++ b/Mage.Sets/src/mage/sets/zendikar/VampireLacerator.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.TenOrLessLifeCondition; -import mage.abilities.common.UnlessCondition; +import mage.abilities.condition.UnlessCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.LoseLifeSourceEffect; import mage.cards.CardImpl; diff --git a/Mage/src/mage/abilities/common/UnlessCondition.java b/Mage/src/mage/abilities/condition/UnlessCondition.java similarity index 98% rename from Mage/src/mage/abilities/common/UnlessCondition.java rename to Mage/src/mage/abilities/condition/UnlessCondition.java index e11c15cdcf2..7d06305dc61 100644 --- a/Mage/src/mage/abilities/common/UnlessCondition.java +++ b/Mage/src/mage/abilities/condition/UnlessCondition.java @@ -25,7 +25,7 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ -package mage.abilities.common; +package mage.abilities.condition; import mage.abilities.Ability; import mage.abilities.condition.Condition; From 0953b1477fa0565ca0b62a7e715963d815d13b24 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Mon, 22 Jul 2013 13:33:57 +0200 Subject: [PATCH 4/6] Added a LockedInCondition and renamend UnlessCondition to InvertCondition. --- .../mage/sets/innistrad/ClifftopRetreat.java | 4 +- .../mage/sets/innistrad/HinterlandHarbor.java | 4 +- .../mage/sets/innistrad/IsolatedChapel.java | 4 +- .../mage/sets/innistrad/MayorOfAvabruck.java | 4 +- .../src/mage/sets/innistrad/SulfurFalls.java | 4 +- .../mage/sets/innistrad/WoodlandCemetery.java | 4 +- .../sets/magic2010/DragonskullSummit.java | 4 +- .../mage/sets/magic2010/DrownedCatacomb.java | 4 +- .../mage/sets/magic2010/GlacialFortress.java | 4 +- .../mage/sets/magic2010/RootboundCrag.java | 4 +- .../mage/sets/magic2010/SunpetalGrove.java | 4 +- .../mage/sets/magic2014/ShadowbornDemon.java | 4 +- .../mage/sets/modernmasters/Epochrasite.java | 4 +- .../scarsofmirrodin/BlackcleaveCliffs.java | 4 +- .../sets/scarsofmirrodin/CopperlineGorge.java | 4 +- .../sets/scarsofmirrodin/DarkslickShores.java | 4 +- .../scarsofmirrodin/RazorvergeThicket.java | 4 +- .../sets/scarsofmirrodin/SeachromeCoast.java | 4 +- .../sets/zendikar/SphinxOfLostTruths.java | 4 +- .../mage/sets/zendikar/VampireLacerator.java | 4 +- .../abilities/condition/FixedCondition.java | 1 - ...essCondition.java => InvertCondition.java} | 5 +- .../condition/LockedInCondition.java | 61 +++++++++++++++++++ 23 files changed, 103 insertions(+), 44 deletions(-) rename Mage/src/mage/abilities/condition/{UnlessCondition.java => InvertCondition.java} (93%) create mode 100644 Mage/src/mage/abilities/condition/LockedInCondition.java diff --git a/Mage.Sets/src/mage/sets/innistrad/ClifftopRetreat.java b/Mage.Sets/src/mage/sets/innistrad/ClifftopRetreat.java index ea71cf464b9..50535dd6474 100644 --- a/Mage.Sets/src/mage/sets/innistrad/ClifftopRetreat.java +++ b/Mage.Sets/src/mage/sets/innistrad/ClifftopRetreat.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.RedManaAbility; @@ -60,7 +60,7 @@ public class ClifftopRetreat extends CardImpl { super(ownerId, 238, "Clifftop Retreat", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "ISD"; - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Mountain or a Plains"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new RedManaAbility()); diff --git a/Mage.Sets/src/mage/sets/innistrad/HinterlandHarbor.java b/Mage.Sets/src/mage/sets/innistrad/HinterlandHarbor.java index 4c96b8f8229..ba5c2ccdaf6 100644 --- a/Mage.Sets/src/mage/sets/innistrad/HinterlandHarbor.java +++ b/Mage.Sets/src/mage/sets/innistrad/HinterlandHarbor.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlueManaAbility; @@ -60,7 +60,7 @@ public class HinterlandHarbor extends CardImpl { super(ownerId, 241, "Hinterland Harbor", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "ISD"; - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); String abilityText = "tapped unless you control a Forest or an Island"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new GreenManaAbility()); diff --git a/Mage.Sets/src/mage/sets/innistrad/IsolatedChapel.java b/Mage.Sets/src/mage/sets/innistrad/IsolatedChapel.java index d0ed9f97317..e63be319f71 100644 --- a/Mage.Sets/src/mage/sets/innistrad/IsolatedChapel.java +++ b/Mage.Sets/src/mage/sets/innistrad/IsolatedChapel.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; @@ -60,7 +60,7 @@ public class IsolatedChapel extends CardImpl { super(ownerId, 242, "Isolated Chapel", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "ISD"; - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Plains or a Swamp"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new WhiteManaAbility()); diff --git a/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java b/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java index e7a582ceecf..a6fa60d8297 100644 --- a/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java +++ b/Mage.Sets/src/mage/sets/innistrad/MayorOfAvabruck.java @@ -45,7 +45,7 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import java.util.UUID; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; /** * @@ -76,7 +76,7 @@ public class MayorOfAvabruck extends CardImpl { this.toughness = new MageInt(1); // Other Human creatures you control get +1/+1. - Effect effect = new ConditionalContinousEffect(new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true), new UnlessCondition(new TransformedCondition()), ruleText); + Effect effect = new ConditionalContinousEffect(new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true), new InvertCondition(new TransformedCondition()), ruleText); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); // At the beginning of each upkeep, if no spells were cast last turn, transform Mayor of Avabruck. diff --git a/Mage.Sets/src/mage/sets/innistrad/SulfurFalls.java b/Mage.Sets/src/mage/sets/innistrad/SulfurFalls.java index 62d1776e7f3..723d61da150 100644 --- a/Mage.Sets/src/mage/sets/innistrad/SulfurFalls.java +++ b/Mage.Sets/src/mage/sets/innistrad/SulfurFalls.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlueManaAbility; @@ -60,7 +60,7 @@ public class SulfurFalls extends CardImpl { super(ownerId, 248, "Sulfur Falls", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "ISD"; - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Island or a Mountain"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlueManaAbility()); diff --git a/Mage.Sets/src/mage/sets/innistrad/WoodlandCemetery.java b/Mage.Sets/src/mage/sets/innistrad/WoodlandCemetery.java index b5aa8243165..744ab5f479b 100644 --- a/Mage.Sets/src/mage/sets/innistrad/WoodlandCemetery.java +++ b/Mage.Sets/src/mage/sets/innistrad/WoodlandCemetery.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; @@ -60,7 +60,7 @@ public class WoodlandCemetery extends CardImpl { super(ownerId, 249, "Woodland Cemetery", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "ISD"; - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Swamp or a Forest"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlackManaAbility()); diff --git a/Mage.Sets/src/mage/sets/magic2010/DragonskullSummit.java b/Mage.Sets/src/mage/sets/magic2010/DragonskullSummit.java index 76b0b490140..6afca47b858 100644 --- a/Mage.Sets/src/mage/sets/magic2010/DragonskullSummit.java +++ b/Mage.Sets/src/mage/sets/magic2010/DragonskullSummit.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; @@ -60,7 +60,7 @@ public class DragonskullSummit extends CardImpl { super(ownerId, 223, "Dragonskull Summit", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "M10"; - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Swamp or a Mountain"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlackManaAbility()); diff --git a/Mage.Sets/src/mage/sets/magic2010/DrownedCatacomb.java b/Mage.Sets/src/mage/sets/magic2010/DrownedCatacomb.java index 09fcda10bd6..d7a556f1486 100644 --- a/Mage.Sets/src/mage/sets/magic2010/DrownedCatacomb.java +++ b/Mage.Sets/src/mage/sets/magic2010/DrownedCatacomb.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; @@ -60,7 +60,7 @@ public class DrownedCatacomb extends CardImpl { super(ownerId, 224, "Drowned Catacomb", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "M10"; - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Island or a Swamp"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlackManaAbility()); diff --git a/Mage.Sets/src/mage/sets/magic2010/GlacialFortress.java b/Mage.Sets/src/mage/sets/magic2010/GlacialFortress.java index 8388ed7cc69..3c6aa72240c 100644 --- a/Mage.Sets/src/mage/sets/magic2010/GlacialFortress.java +++ b/Mage.Sets/src/mage/sets/magic2010/GlacialFortress.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlueManaAbility; @@ -60,7 +60,7 @@ public class GlacialFortress extends CardImpl { super(ownerId, 226, "Glacial Fortress", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "M10"; - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Plains or an Island"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlueManaAbility()); diff --git a/Mage.Sets/src/mage/sets/magic2010/RootboundCrag.java b/Mage.Sets/src/mage/sets/magic2010/RootboundCrag.java index 380e1dc89a4..bdcc7b4c3a3 100644 --- a/Mage.Sets/src/mage/sets/magic2010/RootboundCrag.java +++ b/Mage.Sets/src/mage/sets/magic2010/RootboundCrag.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.GreenManaAbility; @@ -60,7 +60,7 @@ public class RootboundCrag extends CardImpl { super(ownerId, 227, "Rootbound Crag", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "M10"; - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Mountain or a Forest"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new RedManaAbility()); diff --git a/Mage.Sets/src/mage/sets/magic2010/SunpetalGrove.java b/Mage.Sets/src/mage/sets/magic2010/SunpetalGrove.java index 6db50fc1695..5e41ea39371 100644 --- a/Mage.Sets/src/mage/sets/magic2010/SunpetalGrove.java +++ b/Mage.Sets/src/mage/sets/magic2010/SunpetalGrove.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.GreenManaAbility; @@ -60,7 +60,7 @@ public class SunpetalGrove extends CardImpl { super(ownerId, 228, "Sunpetal Grove", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "M10"; - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Forest or a Plains"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new GreenManaAbility()); diff --git a/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java b/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java index e6ce7e7c007..d3256b5ad21 100644 --- a/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java +++ b/Mage.Sets/src/mage/sets/magic2014/ShadowbornDemon.java @@ -34,7 +34,7 @@ import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.Condition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.SacrificeTargetEffect; @@ -88,7 +88,7 @@ public class ShadowbornDemon extends CardImpl { triggeredAbility.addTarget(target); this.addAbility(new ConditionalTriggeredAbility( triggeredAbility, - new UnlessCondition(new CreatureCardsInControllerGraveCondition(6)), + new InvertCondition(new CreatureCardsInControllerGraveCondition(6)), "At the beginning of your upkeep, if there are fewer than six creature cards in your graveyard, sacrifice a creature")); } diff --git a/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java b/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java index 5503c748ce0..b62e0a1bbaf 100644 --- a/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java +++ b/Mage.Sets/src/mage/sets/modernmasters/Epochrasite.java @@ -33,7 +33,7 @@ import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.CastFromHandCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.ExileSourceEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect; @@ -65,7 +65,7 @@ public class Epochrasite extends CardImpl { // Epochrasite enters the battlefield with three +1/+1 counters on it if you didn't cast it from your hand. this.addAbility(new EntersBattlefieldAbility( new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)), - new UnlessCondition(new CastFromHandCondition()), true, + new InvertCondition(new CastFromHandCondition()), true, "{this} enters the battlefield with three +1/+1 counters on it if you didn't cast it from your hand","")); // When Epochrasite dies, exile it with three time counters on it and it gains suspend. diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/BlackcleaveCliffs.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/BlackcleaveCliffs.java index 529a605b461..6a6108ff427 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/BlackcleaveCliffs.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/BlackcleaveCliffs.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; @@ -54,7 +54,7 @@ public class BlackcleaveCliffs extends CardImpl { super(ownerId, 224, "Blackcleave Cliffs", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "SOM"; - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.FEWER_THAN, 4)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.FEWER_THAN, 4)); String abilityText = "tapped unless you control fewer than 3 lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlackManaAbility()); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/CopperlineGorge.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/CopperlineGorge.java index 471ea23f859..b45d3f51a54 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/CopperlineGorge.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/CopperlineGorge.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.GreenManaAbility; @@ -55,7 +55,7 @@ public class CopperlineGorge extends CardImpl { this.expansionSetCode = "SOM"; // Copperline Gorge enters the battlefield tapped unless you control two or fewer other lands. - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.FEWER_THAN, 4)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.FEWER_THAN, 4)); String abilityText = "tapped unless you control two or fewer other lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new RedManaAbility()); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/DarkslickShores.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/DarkslickShores.java index 68cdb50ca9a..f260a3f705d 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/DarkslickShores.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/DarkslickShores.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; @@ -54,7 +54,7 @@ public class DarkslickShores extends CardImpl { super(ownerId, 226, "Darkslick Shores", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "SOM"; - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.FEWER_THAN, 4)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.FEWER_THAN, 4)); String abilityText = "tap it unless you control fewer than 3 lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlueManaAbility()); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorvergeThicket.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorvergeThicket.java index ad391a1dd9e..1c2f86a90a7 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorvergeThicket.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorvergeThicket.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.GreenManaAbility; @@ -54,7 +54,7 @@ public class RazorvergeThicket extends CardImpl { super(ownerId, 228, "Razorverge Thicket", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "SOM"; - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.FEWER_THAN, 4)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.FEWER_THAN, 4)); String abilityText = "tap it unless you control fewer than 3 lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new GreenManaAbility()); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/SeachromeCoast.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/SeachromeCoast.java index 4ade68fba55..781cfa38837 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/SeachromeCoast.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/SeachromeCoast.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.ControlsPermanentCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlueManaAbility; @@ -54,7 +54,7 @@ public class SeachromeCoast extends CardImpl { super(ownerId, 229, "Seachrome Coast", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "SOM"; - Condition controls = new UnlessCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.FEWER_THAN, 4)); + Condition controls = new InvertCondition(new ControlsPermanentCondition(filter, ControlsPermanentCondition.CountType.FEWER_THAN, 4)); String abilityText = "tap it unless you control fewer than 3 lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new WhiteManaAbility()); diff --git a/Mage.Sets/src/mage/sets/zendikar/SphinxOfLostTruths.java b/Mage.Sets/src/mage/sets/zendikar/SphinxOfLostTruths.java index 73568810b55..af4f2a02cef 100644 --- a/Mage.Sets/src/mage/sets/zendikar/SphinxOfLostTruths.java +++ b/Mage.Sets/src/mage/sets/zendikar/SphinxOfLostTruths.java @@ -34,7 +34,7 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DiscardControllerEffect; import mage.abilities.effects.common.DrawCardControllerEffect; @@ -65,7 +65,7 @@ public class SphinxOfLostTruths extends CardImpl { // When Sphinx of Lost Truths enters the battlefield, draw three cards. Then if it wasn't kicked, discard three cards. Ability ability = new EntersBattlefieldTriggeredAbility(new DrawCardControllerEffect(3)); - ability.addEffect(new ConditionalOneShotEffect(new DiscardControllerEffect(3), new UnlessCondition(KickedCondition.getInstance()), + ability.addEffect(new ConditionalOneShotEffect(new DiscardControllerEffect(3), new InvertCondition(KickedCondition.getInstance()), "Then if it wasn't kicked, discard three cards")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/zendikar/VampireLacerator.java b/Mage.Sets/src/mage/sets/zendikar/VampireLacerator.java index cadf9ba1bf7..6428d0315b3 100644 --- a/Mage.Sets/src/mage/sets/zendikar/VampireLacerator.java +++ b/Mage.Sets/src/mage/sets/zendikar/VampireLacerator.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.TenOrLessLifeCondition; -import mage.abilities.condition.UnlessCondition; +import mage.abilities.condition.InvertCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.LoseLifeSourceEffect; import mage.cards.CardImpl; @@ -58,7 +58,7 @@ public class VampireLacerator extends CardImpl { this.addAbility(new BeginningOfUpkeepTriggeredAbility( new ConditionalOneShotEffect( new LoseLifeSourceEffect(1), - new UnlessCondition( new TenOrLessLifeCondition(TenOrLessLifeCondition.CheckType.AN_OPPONENT) ), + new InvertCondition( new TenOrLessLifeCondition(TenOrLessLifeCondition.CheckType.AN_OPPONENT) ), "you lose 1 life unless an opponent has 10 or less life"), TargetController.YOU, false)); } diff --git a/Mage/src/mage/abilities/condition/FixedCondition.java b/Mage/src/mage/abilities/condition/FixedCondition.java index a2d3c0ae7d6..69f98082ffe 100644 --- a/Mage/src/mage/abilities/condition/FixedCondition.java +++ b/Mage/src/mage/abilities/condition/FixedCondition.java @@ -29,7 +29,6 @@ package mage.abilities.condition; import mage.abilities.Ability; -import mage.abilities.condition.Condition; import mage.game.Game; /** diff --git a/Mage/src/mage/abilities/condition/UnlessCondition.java b/Mage/src/mage/abilities/condition/InvertCondition.java similarity index 93% rename from Mage/src/mage/abilities/condition/UnlessCondition.java rename to Mage/src/mage/abilities/condition/InvertCondition.java index 7d06305dc61..fe742566e95 100644 --- a/Mage/src/mage/abilities/condition/UnlessCondition.java +++ b/Mage/src/mage/abilities/condition/InvertCondition.java @@ -28,7 +28,6 @@ package mage.abilities.condition; import mage.abilities.Ability; -import mage.abilities.condition.Condition; import mage.game.Game; /** @@ -38,11 +37,11 @@ import mage.game.Game; * * @author maurer.it_at_gmail.com */ -public class UnlessCondition implements Condition { +public class InvertCondition implements Condition { private Condition condition; - public UnlessCondition ( Condition condition ) { + public InvertCondition ( Condition condition ) { this.condition = condition; } diff --git a/Mage/src/mage/abilities/condition/LockedInCondition.java b/Mage/src/mage/abilities/condition/LockedInCondition.java new file mode 100644 index 00000000000..72863348f2f --- /dev/null +++ b/Mage/src/mage/abilities/condition/LockedInCondition.java @@ -0,0 +1,61 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.abilities.condition; + +import mage.abilities.Ability; +import mage.game.Game; + +/** + * A simple {@link Condition} to check the condition only one time at the start (result locked in). + * All subsequent checks return the first result. + * + * @author LevelX2 + */ +public class LockedInCondition implements Condition { + + private boolean conditionChecked = false; + private boolean result; + private Condition condition; + + public LockedInCondition ( Condition condition ) { + this.condition = condition; + } + + /* + * {@inheritDoc} + */ + @Override + public boolean apply(Game game, Ability source) { + if(!conditionChecked) { + result = !condition.apply(game, source); + conditionChecked = true; + } + return result; + } + +} From 001cbbf4c57401983a9d9ddeec49e52ee36704f4 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Mon, 22 Jul 2013 14:16:22 +0200 Subject: [PATCH 5/6] * KickedCondtion - used LockedInCondition where needed, some cleanup. --- .../sets/invasion/VerdelothTheAncient.java | 1 - .../src/mage/sets/planeshift/OrimsChant.java | 13 +++-- .../src/mage/sets/zendikar/BoldDefense.java | 24 +++++--- .../mage/sets/zendikar/BurstLightning.java | 2 + .../mage/sets/zendikar/ElementalAppeal.java | 3 +- .../sets/zendikar/GatekeeperOfMalakir.java | 13 ++--- .../src/mage/sets/zendikar/Gigantiform.java | 55 +++++-------------- .../mage/sets/zendikar/GoblinBushwhacker.java | 4 +- .../src/mage/sets/zendikar/KorAeronaut.java | 3 +- .../src/mage/sets/zendikar/VampiresBite.java | 3 +- .../mage/sets/zendikar/VinesOfVastwood.java | 3 +- 11 files changed, 55 insertions(+), 69 deletions(-) diff --git a/Mage.Sets/src/mage/sets/invasion/VerdelothTheAncient.java b/Mage.Sets/src/mage/sets/invasion/VerdelothTheAncient.java index 097592c3486..1f647869223 100644 --- a/Mage.Sets/src/mage/sets/invasion/VerdelothTheAncient.java +++ b/Mage.Sets/src/mage/sets/invasion/VerdelothTheAncient.java @@ -35,7 +35,6 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.dynamicvalue.DynamicValue; -import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continious.BoostAllEffect; import mage.abilities.keyword.KickerAbility; diff --git a/Mage.Sets/src/mage/sets/planeshift/OrimsChant.java b/Mage.Sets/src/mage/sets/planeshift/OrimsChant.java index f18ac3dce46..713cf1710b3 100644 --- a/Mage.Sets/src/mage/sets/planeshift/OrimsChant.java +++ b/Mage.Sets/src/mage/sets/planeshift/OrimsChant.java @@ -29,16 +29,17 @@ package mage.sets.planeshift; import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; import mage.abilities.Ability; +import mage.abilities.condition.Condition; +import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.common.KickedCondition; import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; +import mage.constants.Rarity; import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; @@ -118,14 +119,16 @@ class OrimsChantCantCastEffect extends ReplacementEffectImpl { private static final String effectText = "If Orim's Chant was kicked, creatures can't attack this turn"; + private Condition condition = new LockedInCondition(KickedCondition.getInstance()); OrimsChantCantAttackEffect ( ) { super(Duration.EndOfTurn, Outcome.Benefit); staticText = effectText; } - OrimsChantCantAttackEffect ( OrimsChantCantAttackEffect effect ) { + OrimsChantCantAttackEffect (final OrimsChantCantAttackEffect effect ) { super(effect); + this.condition = effect.condition; } @Override @@ -143,7 +146,7 @@ class OrimsChantCantAttackEffect extends ReplacementEffectImpl { - private final String staticText = "If Bold Defense was kicked, instead creatures you control get +2/+2 and gain first strike until end of turn"; + private final String staticText = "If {this]} was kicked, instead creatures you control get +2/+2 and gain first strike until end of turn"; public BoldDefense(UUID ownerId) { super(ownerId, 3, "Bold Defense", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{W}"); this.expansionSetCode = "ZEN"; this.color.setWhite(true); + // Kicker {3}{W} (You may pay an additional {3}{W} as you cast this spell.) this.addAbility(new KickerAbility("{3}{W}")); + // Creatures you control get +1/+1 until end of turn. If Bold Defense was kicked, instead creatures you control get +2/+2 and gain first strike until end of turn. DynamicValue dn = new BoldDefensePTCount(); this.getSpellAbility().addEffect(new BoostControlledEffect(dn, dn, Duration.EndOfTurn)); - - ContinuousEffect effect = new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent(), false); this.getSpellAbility().addEffect(new ConditionalContinousEffect(effect, KickedCondition.getInstance(), staticText)); } @@ -79,22 +81,28 @@ public class BoldDefense extends CardImpl { class BoldDefensePTCount implements DynamicValue { + private Condition condition = new LockedInCondition(KickedCondition.getInstance()); + public BoldDefensePTCount() { } @Override public int calculate(Game game, Ability sourceAbility) { - if (KickedCondition.getInstance().apply(game, sourceAbility)) { + if (condition.apply(game, sourceAbility)) { return 2; } else { return 1; } } + public BoldDefensePTCount(final BoldDefensePTCount dynamicValue) { + this.condition = dynamicValue.condition; + + } @Override public DynamicValue copy() { - return new BoldDefensePTCount(); + return new BoldDefensePTCount(this); } @Override diff --git a/Mage.Sets/src/mage/sets/zendikar/BurstLightning.java b/Mage.Sets/src/mage/sets/zendikar/BurstLightning.java index f4ab3cfb366..84325848243 100644 --- a/Mage.Sets/src/mage/sets/zendikar/BurstLightning.java +++ b/Mage.Sets/src/mage/sets/zendikar/BurstLightning.java @@ -49,8 +49,10 @@ public class BurstLightning extends CardImpl { this.expansionSetCode = "ZEN"; this.color.setRed(true); + // Kicker {4} (You may pay an additional {4} as you cast this spell.) this.addAbility(new KickerAbility("{4}")); + // Burst Lightning deals 2 damage to target creature or player. If Burst Lightning was kicked, it deals 4 damage to that creature or player instead. this.getSpellAbility().addTarget(new TargetCreatureOrPlayer()); this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetEffect(4), new DamageTargetEffect(2), KickedCondition.getInstance(), "{this} deals 2 damage to target creature or player. If {this} was kicked, it deals 4 damage to that creature or player instead")); diff --git a/Mage.Sets/src/mage/sets/zendikar/ElementalAppeal.java b/Mage.Sets/src/mage/sets/zendikar/ElementalAppeal.java index ec75e338175..24014b66d10 100644 --- a/Mage.Sets/src/mage/sets/zendikar/ElementalAppeal.java +++ b/Mage.Sets/src/mage/sets/zendikar/ElementalAppeal.java @@ -35,6 +35,7 @@ import mage.constants.Rarity; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.delayed.AtEndOfTurnDelayedTriggeredAbility; +import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalContinousEffect; import mage.abilities.effects.OneShotEffect; @@ -65,7 +66,7 @@ public class ElementalAppeal extends CardImpl { // If Elemental Appeal was kicked, that creature gets +7/+0 until end of turn. this.getSpellAbility().addEffect(new ConditionalContinousEffect( new BoostTargetEffect(7, 0, Duration.EndOfTurn), - KickedCondition.getInstance(), + new LockedInCondition(KickedCondition.getInstance()), "If {this} was kicked, that creature gets +7/+0 until end of turn")); } diff --git a/Mage.Sets/src/mage/sets/zendikar/GatekeeperOfMalakir.java b/Mage.Sets/src/mage/sets/zendikar/GatekeeperOfMalakir.java index 58e2757d530..3e84501c8b6 100644 --- a/Mage.Sets/src/mage/sets/zendikar/GatekeeperOfMalakir.java +++ b/Mage.Sets/src/mage/sets/zendikar/GatekeeperOfMalakir.java @@ -27,22 +27,21 @@ */ package mage.sets.zendikar; -import mage.constants.CardType; -import mage.constants.Rarity; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.SacrificeEffect; +import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPlayer; -import java.util.UUID; -import mage.abilities.keyword.KickerAbility; - /** * * @author maurer.it_at_gmail.com @@ -66,12 +65,12 @@ public class GatekeeperOfMalakir extends CardImpl { this.power = new MageInt(2); this.toughness = new MageInt(2); + // Kicker {B} (You may pay an additional {B} as you cast this spell.) this.addAbility(new KickerAbility("{B}")); - + // When Gatekeeper of Malakir enters the battlefield, if it was kicked, target player sacrifices a creature. EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new SacrificeEffect(filter, 1, "target player")); - Ability conditionalAbility = new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, target player sacrifices a creature."); conditionalAbility.addTarget(new TargetPlayer()); this.addAbility(conditionalAbility); diff --git a/Mage.Sets/src/mage/sets/zendikar/Gigantiform.java b/Mage.Sets/src/mage/sets/zendikar/Gigantiform.java index 4a111ed9d4f..698375013f2 100644 --- a/Mage.Sets/src/mage/sets/zendikar/Gigantiform.java +++ b/Mage.Sets/src/mage/sets/zendikar/Gigantiform.java @@ -28,18 +28,12 @@ package mage.sets.zendikar; import java.util.UUID; - -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.StaticAbility; -import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.KickedCondition; +import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; @@ -49,10 +43,15 @@ import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.Card; import mage.cards.CardImpl; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.NamePredicate; import mage.game.Game; -import mage.game.events.GameEvent; import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCardInLibrary; @@ -83,7 +82,10 @@ public class Gigantiform extends CardImpl { // Enchanted creature is 8/8 and has trample. this.addAbility(new GigantiformAbility()); // When Gigantiform enters the battlefield, if it was kicked, you may search your library for a card named Gigantiform, put it onto the battlefield, then shuffle your library. - this.addAbility(new GigantiformTriggeredAbility()); + this.addAbility(new ConditionalTriggeredAbility( + new EntersBattlefieldTriggeredAbility(new GigantiformEffect(), true), + KickedCondition.getInstance(), + "When Gigantiform enters the battlefield, if it was kicked, you may search your library for a card named Gigantiform, put it onto the battlefield, then shuffle your library.")); } public Gigantiform(final Gigantiform card) { @@ -119,39 +121,8 @@ class GigantiformAbility extends StaticAbility { } } -class GigantiformTriggeredAbility extends TriggeredAbilityImpl { - - public GigantiformTriggeredAbility() { - super(Zone.BATTLEFIELD, new GigantiformEffect()); - } - - public GigantiformTriggeredAbility(final GigantiformTriggeredAbility ability) { - super(ability); - } - - @Override - public GigantiformTriggeredAbility copy() { - return new GigantiformTriggeredAbility(this); - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - if (event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD && event.getTargetId().equals(this.getSourceId()) - && KickedCondition.getInstance().apply(game, this)) { - return true; - } - return false; - } - - @Override - public String getRule() { - return "When Gigantiform enters the battlefield, if it was kicked, you may search your library for a card named Gigantiform, put it onto the battlefield, then shuffle your library."; - } -} - class GigantiformEffect extends OneShotEffect { - private static final String message = "Do you wish to search your library for a card named Gigantiform, put it onto the battlefield, then shuffle your library?"; private static final FilterCard filter = new FilterCard("card named Gigantiform"); static { @@ -175,7 +146,7 @@ class GigantiformEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); TargetCardInLibrary target = new TargetCardInLibrary(filter); - if (player != null && player.chooseUse(Outcome.PutCardInPlay, message, game) && player.searchLibrary(target, game)) { + if (player != null && player.searchLibrary(target, game)) { Card card = player.getLibrary().getCard(target.getFirstTarget(), game); if (card != null) { card.putOntoBattlefield(game, Zone.LIBRARY, source.getId(), source.getControllerId()); diff --git a/Mage.Sets/src/mage/sets/zendikar/GoblinBushwhacker.java b/Mage.Sets/src/mage/sets/zendikar/GoblinBushwhacker.java index 7a574e80bc1..bb1e02b40db 100644 --- a/Mage.Sets/src/mage/sets/zendikar/GoblinBushwhacker.java +++ b/Mage.Sets/src/mage/sets/zendikar/GoblinBushwhacker.java @@ -33,6 +33,7 @@ import mage.constants.Duration; import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.continious.BoostControlledEffect; @@ -60,11 +61,10 @@ public class GoblinBushwhacker extends CardImpl { // Kicker {R} (You may pay an additional {R} as you cast this spell.) this.addAbility(new KickerAbility("{R}")); - // When Goblin Bushwhacker enters the battlefield, if it was kicked, creatures you control get +1/+0 and gain haste until end of turn. EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new BoostControlledEffect(1, 0, Duration.EndOfTurn), false); ability.addEffect(new GainAbilityControlledEffect(HasteAbility.getInstance(), Duration.EndOfTurn)); - this.addAbility(new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, creatures you control get +1/+0 and gain haste until end of turn.")); + this.addAbility(new ConditionalTriggeredAbility(ability, new LockedInCondition(KickedCondition.getInstance()), "When {this} enters the battlefield, if it was kicked, creatures you control get +1/+0 and gain haste until end of turn.")); } public GoblinBushwhacker(final GoblinBushwhacker card) { diff --git a/Mage.Sets/src/mage/sets/zendikar/KorAeronaut.java b/Mage.Sets/src/mage/sets/zendikar/KorAeronaut.java index 93de9791982..c8ada0332a3 100644 --- a/Mage.Sets/src/mage/sets/zendikar/KorAeronaut.java +++ b/Mage.Sets/src/mage/sets/zendikar/KorAeronaut.java @@ -33,6 +33,7 @@ import mage.constants.Duration; import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.continious.GainAbilityTargetEffect; @@ -64,7 +65,7 @@ public class KorAeronaut extends CardImpl { EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), false); ability.addTarget(new TargetCreaturePermanent()); - this.addAbility(new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, target creature gains flying until end of turn.")); + this.addAbility(new ConditionalTriggeredAbility(ability, new LockedInCondition(KickedCondition.getInstance()), "When {this} enters the battlefield, if it was kicked, target creature gains flying until end of turn.")); } public KorAeronaut(final KorAeronaut card) { diff --git a/Mage.Sets/src/mage/sets/zendikar/VampiresBite.java b/Mage.Sets/src/mage/sets/zendikar/VampiresBite.java index 69a40c8e9b9..e1d180c80ec 100644 --- a/Mage.Sets/src/mage/sets/zendikar/VampiresBite.java +++ b/Mage.Sets/src/mage/sets/zendikar/VampiresBite.java @@ -28,6 +28,7 @@ package mage.sets.zendikar; import java.util.UUID; +import mage.abilities.condition.LockedInCondition; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Rarity; @@ -60,7 +61,7 @@ public class VampiresBite extends CardImpl { this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new BoostTargetEffect(3, 0, Duration.EndOfTurn)); ContinuousEffect effect = new GainAbilityTargetEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn); - this.getSpellAbility().addEffect(new ConditionalContinousEffect(effect, KickedCondition.getInstance(), "If {this} was kicked, that creature gains lifelink until end of turn")); + this.getSpellAbility().addEffect(new ConditionalContinousEffect(effect, new LockedInCondition(KickedCondition.getInstance()), "If {this} was kicked, that creature gains lifelink until end of turn")); } public VampiresBite(final VampiresBite card) { diff --git a/Mage.Sets/src/mage/sets/zendikar/VinesOfVastwood.java b/Mage.Sets/src/mage/sets/zendikar/VinesOfVastwood.java index 5139ae8d53f..786badc5caf 100644 --- a/Mage.Sets/src/mage/sets/zendikar/VinesOfVastwood.java +++ b/Mage.Sets/src/mage/sets/zendikar/VinesOfVastwood.java @@ -29,6 +29,7 @@ package mage.sets.zendikar; import java.util.UUID; +import mage.abilities.condition.LockedInCondition; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Rarity; @@ -63,7 +64,7 @@ public class VinesOfVastwood extends CardImpl { // If Vines of Vastwood was kicked, that creature gets +4/+4 until end of turn. this.getSpellAbility().addEffect(new ConditionalContinousEffect(new BoostTargetEffect(4, 4, Duration.EndOfTurn), - KickedCondition.getInstance(), staticText)); + new LockedInCondition(KickedCondition.getInstance()), staticText)); } public VinesOfVastwood(final VinesOfVastwood card) { From c65f0b4904a9c60ca3ea9149e6fa8cc040a6b869 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Mon, 22 Jul 2013 17:19:43 +0200 Subject: [PATCH 6/6] Added Bladewing the Risen and Vish Kal, Blood Arbiter. --- .../sets/commander/BladewingTheRisen.java | 95 +++++++++ .../sets/commander/VishKalBloodArbiter.java | 185 ++++++++++++++++++ .../mage/sets/scourge/BladewingTheRisen.java | 52 +++++ .../counter/AddCountersTargetEffect.java | 48 +++-- 4 files changed, 368 insertions(+), 12 deletions(-) create mode 100644 Mage.Sets/src/mage/sets/commander/BladewingTheRisen.java create mode 100644 Mage.Sets/src/mage/sets/commander/VishKalBloodArbiter.java create mode 100644 Mage.Sets/src/mage/sets/scourge/BladewingTheRisen.java diff --git a/Mage.Sets/src/mage/sets/commander/BladewingTheRisen.java b/Mage.Sets/src/mage/sets/commander/BladewingTheRisen.java new file mode 100644 index 00000000000..550d7eb673d --- /dev/null +++ b/Mage.Sets/src/mage/sets/commander/BladewingTheRisen.java @@ -0,0 +1,95 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.commander; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; +import mage.abilities.effects.common.continious.BoostAllEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.common.FilterPermanentCard; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.Target; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author LevelX2 + */ +public class BladewingTheRisen extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Dragon creatures"); + private static final FilterPermanentCard filterCard = new FilterPermanentCard("Dragon permanent card from your graveyard"); + static { + filter.add(new SubtypePredicate("Dragon")); + filterCard.add(new SubtypePredicate("Dragon")); + } + + public BladewingTheRisen(UUID ownerId) { + super(ownerId, 185, "Bladewing the Risen", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{B}{B}{R}{R}"); + this.expansionSetCode = "CMD"; + this.supertype.add("Legendary"); + this.subtype.add("Zombie"); + this.subtype.add("Dragon"); + + this.color.setRed(true); + this.color.setBlack(true); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + // When Bladewing the Risen enters the battlefield, you may return target Dragon permanent card from your graveyard to the battlefield. + Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect(), true); + Target target = new TargetCardInYourGraveyard(filterCard); + target.setRequired(true); + ability.addTarget(target); + this.addAbility(ability); + // {B}{R}: Dragon creatures get +1/+1 until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostAllEffect(1,1, Duration.EndOfTurn, filter, false), new ManaCostsImpl("{B}{R}"))); + } + + public BladewingTheRisen(final BladewingTheRisen card) { + super(card); + } + + @Override + public BladewingTheRisen copy() { + return new BladewingTheRisen(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander/VishKalBloodArbiter.java b/Mage.Sets/src/mage/sets/commander/VishKalBloodArbiter.java new file mode 100644 index 00000000000..6bbed5766cf --- /dev/null +++ b/Mage.Sets/src/mage/sets/commander/VishKalBloodArbiter.java @@ -0,0 +1,185 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.commander; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.Cost; +import mage.abilities.costs.CostImpl; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.SacrificeCostCreaturesPower; +import mage.abilities.dynamicvalue.common.SignInversionDynamicValue; +import mage.abilities.effects.common.continious.BoostTargetEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.LifelinkAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.counters.Counter; +import mage.counters.CounterType; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class VishKalBloodArbiter extends CardImpl { + + public VishKalBloodArbiter(UUID ownerId) { + super(ownerId, 234, "Vish Kal, Blood Arbiter", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{W}{B}{B}"); + this.expansionSetCode = "CMD"; + this.supertype.add("Legendary"); + this.subtype.add("Vampire"); + + this.color.setBlack(true); + this.color.setWhite(true); + this.power = new MageInt(5); + this.toughness = new MageInt(5); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + // Lifelink + this.addAbility(LifelinkAbility.getInstance()); + // Sacrifice a creature: Put X +1/+1 counters on Vish Kal, Blood Arbiter, where X is the sacrificed creature's power. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, + new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), new SacrificeCostCreaturesPower(), true), + new SacrificeTargetCost(new TargetControlledCreaturePermanent(1,1,new FilterControlledCreaturePermanent("a creature"), false)))); + // Remove all +1/+1 counters from Vish Kal: Target creature gets -1/-1 until end of turn for each +1/+1 counter removed this way. + DynamicValue removedCounters = new SignInversionDynamicValue(new VishKalBloodArbiterDynamicValue()); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(removedCounters, removedCounters, Duration.EndOfTurn), new VishKalBloodArbiterCost(CounterType.P1P1.createInstance())); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + + } + + public VishKalBloodArbiter(final VishKalBloodArbiter card) { + super(card); + } + + @Override + public VishKalBloodArbiter copy() { + return new VishKalBloodArbiter(this); + } +} + +class VishKalBloodArbiterCost extends CostImpl { + + private int amount; + private String name; + + public VishKalBloodArbiterCost(Counter counter) { + this.name = counter.getName(); + this.amount = counter.getCount(); + this.text = "Remove all " + name + " counters from {this}"; + } + + public VishKalBloodArbiterCost(VishKalBloodArbiterCost cost) { + super(cost); + this.amount = cost.amount; + this.name = cost.name; + } + + @Override + public boolean canPay(UUID sourceId, UUID controllerId, Game game) { + return true; + } + + @Override + public boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana) { + Permanent permanent = game.getPermanent(sourceId); + if (permanent != null) { + this.amount = permanent.getCounters().getCount(name); + permanent.removeCounters(name, amount, game); + this.paid = true; + } + else + { + this.amount = 0; + } + return paid; + } + + @Override + public VishKalBloodArbiterCost copy() { + return new VishKalBloodArbiterCost(this); + } + + public int getAmount() { + return amount; + } + + +} + +class VishKalBloodArbiterDynamicValue implements DynamicValue { + + + public VishKalBloodArbiterDynamicValue() { + + } + + public VishKalBloodArbiterDynamicValue(final VishKalBloodArbiterDynamicValue dynamicValue) { + } + + @Override + public int calculate(Game game, Ability source) { + int count = 0; + for(Cost cost : source.getCosts()){ + if(cost instanceof VishKalBloodArbiterCost){ + count += ((VishKalBloodArbiterCost)cost).getAmount(); + } + } + return count; + } + + @Override + public VishKalBloodArbiterDynamicValue copy() { + return new VishKalBloodArbiterDynamicValue(this); + } + + @Override + public String toString() { + return "1"; + } + + @Override + public String getMessage() { + return "the number of +1/+1 counters removed this way"; + } +} diff --git a/Mage.Sets/src/mage/sets/scourge/BladewingTheRisen.java b/Mage.Sets/src/mage/sets/scourge/BladewingTheRisen.java new file mode 100644 index 00000000000..242d953fb16 --- /dev/null +++ b/Mage.Sets/src/mage/sets/scourge/BladewingTheRisen.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.scourge; + +import java.util.UUID; + +/** + * + * @author LevelX2 + */ +public class BladewingTheRisen extends mage.sets.commander.BladewingTheRisen { + + public BladewingTheRisen(UUID ownerId) { + super(ownerId); + this.cardNumber = 136; + this.expansionSetCode = "SCG"; + } + + public BladewingTheRisen(final BladewingTheRisen card) { + super(card); + } + + @Override + public BladewingTheRisen copy() { + return new BladewingTheRisen(this); + } +} diff --git a/Mage/src/mage/abilities/effects/common/counter/AddCountersTargetEffect.java b/Mage/src/mage/abilities/effects/common/counter/AddCountersTargetEffect.java index 4ab27078556..84394c9bf59 100644 --- a/Mage/src/mage/abilities/effects/common/counter/AddCountersTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/counter/AddCountersTargetEffect.java @@ -38,6 +38,9 @@ import mage.players.Player; import java.util.UUID; import mage.abilities.Mode; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.util.CardUtil; /** * @@ -46,19 +49,32 @@ import mage.abilities.Mode; public class AddCountersTargetEffect extends OneShotEffect { private Counter counter; + private DynamicValue amount; public AddCountersTargetEffect(Counter counter) { this(counter, Outcome.Benefit); - } + } - public AddCountersTargetEffect(Counter counter, Outcome outcome) { + public AddCountersTargetEffect(Counter counter, DynamicValue amount) { + this(counter, amount, Outcome.Benefit); + } + + public AddCountersTargetEffect(Counter counter, Outcome outcome) { + this(counter, new StaticValue(0), outcome); + } + + public AddCountersTargetEffect(Counter counter, DynamicValue amount, Outcome outcome) { super(outcome); this.counter = counter; - } + this.amount = amount; + } public AddCountersTargetEffect(final AddCountersTargetEffect effect) { super(effect); - this.counter = effect.counter.copy(); + if (effect.counter != null) { + this.counter = effect.counter.copy(); + } + this.amount = effect.amount; } @Override @@ -68,13 +84,17 @@ public class AddCountersTargetEffect extends OneShotEffect 1) { - sb.append(Integer.toString(counter.getCount())).append(" ").append(counter.getName()).append(" counters on target "); + sb.append(CardUtil.numberToText(counter.getCount())).append(" "); + } else { + sb.append("a "); } - else { - sb.append("a ").append(counter.getName()).append(" counter on target "); - } - // TODO add normal text infrastructure for target pointers - if (mode.getTargets().size() > 0) + sb.append(counter.getName().toLowerCase()).append(" counter on target "); + // TODO: add normal text infrastructure for target pointers + if (mode.getTargets().size() > 0) { sb.append(mode.getTargets().get(0).getTargetName()); + } + if (amount.getMessage().length() > 0) { + sb.append(" for each ").append(amount.getMessage()); + } return sb.toString(); }