Merge origin/master

This commit is contained in:
fireshoes 2017-04-12 12:52:47 -05:00
commit 30bbbf528e
588 changed files with 2902 additions and 1876 deletions

View file

@ -527,7 +527,7 @@ public class TableController {
match.quitMatch(playerId);
}
Optional<User> user = UserManager.instance.getUser(userId);
if (!user.isPresent()) {
if (user.isPresent()) {
ChatManager.instance.broadcast(chatId, user.get().getName(), "has left the table", ChatMessage.MessageColor.BLUE, true, ChatMessage.MessageType.STATUS, ChatMessage.SoundToPlay.PlayerLeft);
if (!table.isTournamentSubTable()) {
user.get().removeTable(playerId);

View file

@ -28,6 +28,7 @@
package mage.cards.a;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.CantBeCounteredSourceEffect;
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterNonlandPermanent;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.target.common.TargetNonlandPermanent;
@ -52,7 +52,7 @@ public class AbruptDecay extends CardImpl {
private static final FilterNonlandPermanent filter = new FilterNonlandPermanent("nonland permanent with converted mana cost 3 or less");
static {
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
}
public AbruptDecay(UUID ownerId, CardSetInfo setInfo) {

View file

@ -27,6 +27,7 @@
*/
package mage.cards.a;
import mage.constants.ComparisonType;
import mage.abilities.Mode;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.ExileTargetEffect;
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.counters.CounterType;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.target.common.TargetCreaturePermanent;
@ -53,7 +53,7 @@ public class AbzanCharm extends CardImpl {
private static final FilterCreaturePermanent FILTER = new FilterCreaturePermanent("creature with power 3 or greater");
static {
FILTER.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2));
FILTER.add(new PowerPredicate(ComparisonType.MORE_THAN, 2));
}
public AbzanCharm(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,6 +28,7 @@
package mage.cards.a;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -37,7 +38,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.filter.predicate.mageobject.ToughnessPredicate;
@ -54,8 +54,8 @@ public class AegisOfTheMeek extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("1/1 creature");
static {
filter.add(new PowerPredicate(Filter.ComparisonType.Equal, 1));
filter.add(new ToughnessPredicate(Filter.ComparisonType.Equal, 1));
filter.add(new PowerPredicate(ComparisonType.EQUAL_TO, 1));
filter.add(new ToughnessPredicate(ComparisonType.EQUAL_TO, 1));
}
public AegisOfTheMeek(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,6 +28,7 @@
package mage.cards.a;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
@ -41,7 +42,6 @@ import mage.constants.Outcome;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.Filter;
import mage.filter.common.FilterCreatureCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.game.Game;
@ -104,7 +104,7 @@ class AetherVialEffect extends OneShotEffect {
int count = permanent.getCounters(game).getCount(CounterType.CHARGE);
FilterCreatureCard filter = new FilterCreatureCard("creature card with converted mana cost equal to " + count);
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, count));
filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, count));
String choiceText = "Put a " + filter.getMessage() + " from your hand onto the battlefield?";
Player controller = game.getPlayer(source.getControllerId());

View file

@ -29,7 +29,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.CardsInHandCondition;
@ -60,7 +60,7 @@ public class AkkiUnderling extends CardImpl {
this.toughness = new MageInt(1);
// As long as you have seven or more cards in hand, Akki Underling gets +2/+1 and has first strike.
Condition condition = new CardsInHandCondition(CountType.MORE_THAN,6);
Condition condition = new CardsInHandCondition(ComparisonType.MORE_THAN,6);
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
new BoostSourceEffect(2,1, Duration.WhileOnBattlefield), condition, "As long as you have seven or more cards in hand, {this} gets +2/+1"));
ability.addEffect(new ConditionalContinuousEffect(

View file

@ -29,6 +29,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;
@ -41,7 +42,6 @@ import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SuperType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterCreatureCard;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.game.Game;
@ -59,7 +59,7 @@ public class AleshaWhoSmilesAtDeath extends CardImpl {
private static final FilterCreatureCard filter = new FilterCreatureCard("creature card with power 2 or less");
static {
filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3));
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3));
}
public AleshaWhoSmilesAtDeath(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,6 +28,7 @@
package mage.cards.a;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility;
import mage.abilities.effects.OneShotEffect;
@ -37,7 +38,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.game.Game;
@ -77,7 +77,7 @@ class AlignedHedronNetworkExileEffect extends OneShotEffect {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 5 or greater");
static {
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4));
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4));
}
public AlignedHedronNetworkExileEffect() {

View file

@ -28,6 +28,7 @@
package mage.cards.a;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.SourceIsSpellCondition;
import mage.abilities.costs.AlternativeCostSourceAbility;
@ -37,7 +38,6 @@ import mage.abilities.effects.common.continuous.CastAsThoughItHadFlashAllEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.Filter.ComparisonType;
import mage.filter.common.FilterCreatureCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.game.Game;
@ -63,7 +63,7 @@ public class Aluren extends CardImpl {
private static final FilterCreatureCard filter = new FilterCreatureCard("creature cards with converted mana cost 3 or less");
static {
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
}
public Aluren(UUID ownerId, CardSetInfo setInfo) {
@ -95,10 +95,10 @@ class AlurenRuleEffect extends ContinuousEffectImpl {
private static final FilterCreatureCard filter = new FilterCreatureCard("creature cards with converted mana cost 3 or less");
static {
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
}
static AlternativeCostSourceAbility alternativeCastingCostAbility = new AlternativeCostSourceAbility(null, SourceIsSpellCondition.instance, null, filter, true);
private static AlternativeCostSourceAbility alternativeCastingCostAbility = new AlternativeCostSourceAbility(null, SourceIsSpellCondition.instance, null, filter, true);
public AlurenRuleEffect() {
super(Duration.WhileOnBattlefield, Outcome.Detriment);

View file

@ -28,13 +28,13 @@
package mage.cards.a;
import mage.MageInt;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleEvasionAbility;
import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
@ -49,7 +49,7 @@ public class AmrouKithkin extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 3 or greater");
static {
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2));
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2));
}
public AmrouKithkin(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,6 +28,7 @@
package mage.cards.a;
import mage.MageInt;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterPermanentCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.filter.predicate.mageobject.SubtypePredicate;
@ -53,7 +53,7 @@ public class AmrouScout extends CardImpl {
private static final FilterPermanentCard filter = new FilterPermanentCard("Rebel permanent card with converted mana cost 3 or less");
static {
filter.add(new SubtypePredicate("Rebel"));
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
}
public AmrouScout(UUID ownerId, CardSetInfo setInfo) {

View file

@ -38,6 +38,7 @@ import mage.abilities.keyword.UnearthAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SuperType;
import mage.filter.common.FilterLandPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.SupertypePredicate;
@ -88,7 +89,7 @@ class AnathemancerCount implements DynamicValue {
}
FilterLandPermanent filter = new FilterLandPermanent();
filter.add(Predicates.not(new SupertypePredicate("Basic")));
filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC)));
filter.add(new ControllerIdPredicate(sourceAbility.getFirstTarget()));
return game.getBattlefield().count(filter, sourceAbility.getSourceId(), sourceAbility.getControllerId(), game);

View file

@ -27,7 +27,7 @@
*/
package mage.cards.a;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.condition.common.YouGainedLifeCondition;
import mage.abilities.effects.common.CreateTokenEffect;
@ -52,7 +52,7 @@ public class AngelicAccord extends CardImpl {
// At the beginning of each end step, if you gained 4 or more life this turn, create a 4/4 white Angel creature token with flying.
this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new AngelToken()), TargetController.ANY,
new YouGainedLifeCondition(CountType.MORE_THAN, 3), false), new PlayerGainedLifeWatcher());
new YouGainedLifeCondition(ComparisonType.MORE_THAN, 3), false), new PlayerGainedLifeWatcher());
}
public AngelicAccord(final AngelicAccord card) {

View file

@ -28,7 +28,7 @@
package mage.cards.a;
import mage.MageInt;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -70,7 +70,7 @@ public class ApothecaryGeist extends CardImpl {
TriggeredAbility triggeredAbility = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(3));
this.addAbility(new ConditionalTriggeredAbility(
triggeredAbility,
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0),
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0),
"When {this} enters the battlefield, if you control another Spirit, you gain 3 life."));
}

View file

@ -27,11 +27,11 @@
*/
package mage.cards.a;
import mage.constants.ComparisonType;
import mage.abilities.effects.common.ExileCardYouChooseTargetOpponentEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.Filter;
import mage.filter.FilterCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.target.common.TargetOpponent;
@ -47,7 +47,7 @@ public class AppetiteForBrains extends CardImpl {
private static final FilterCard filter = new FilterCard("a card from it with converted mana cost 4 or greater");
static {
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 3));
filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 3));
}
public AppetiteForBrains(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,6 +28,7 @@
package mage.cards.a;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.AttachedToMatchesFilterCondition;
@ -41,7 +42,6 @@ import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.FilterPermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.target.TargetPermanent;
@ -70,7 +70,7 @@ public class ArachnusWeb extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBlockAttackActivateAttachedEffect()));
// At the beginning of the end step, if enchanted creature's power is 4 or greater, destroy Arachnus Web.
FilterPermanent filter = new FilterPermanent("if enchanted creature's power is 4 or greater");
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3));
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3));
this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD,
new DestroySourceEffect(), TargetController.ANY,
new AttachedToMatchesFilterCondition(filter), false));

View file

@ -12,10 +12,7 @@ import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect;
import mage.abilities.effects.common.TapAllEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.constants.*;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.SupertypePredicate;
@ -29,7 +26,7 @@ public class ArenaOfTheAncients extends CardImpl {
private final static FilterCreaturePermanent legendaryFilter = new FilterCreaturePermanent("legendary creatures");
static {
legendaryFilter.add(new SupertypePredicate("Legendary"));
legendaryFilter.add(new SupertypePredicate(SuperType.LEGENDARY));
}
public ArenaOfTheAncients(UUID ownerId, CardSetInfo setInfo) {

View file

@ -27,7 +27,7 @@
*/
package mage.cards.a;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
@ -59,7 +59,7 @@ public class ArtificersEpiphany extends CardImpl {
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2));
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new DiscardControllerEffect(1),
new PermanentsOnTheBattlefieldCondition(filter, CountType.EQUAL_TO, 0)));
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.EQUAL_TO, 0)));
}
public ArtificersEpiphany(final ArtificersEpiphany card) {

View file

@ -28,6 +28,7 @@
package mage.cards.a;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.DiscardCardCost;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterArtifactCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.target.common.TargetCardInLibrary;
@ -51,7 +51,7 @@ public class ArtificersIntuition extends CardImpl {
private static final FilterArtifactCard filter = new FilterArtifactCard("artifact card with converted mana cost 1 or less");
static {
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 2));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2));
}
public ArtificersIntuition(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}");

View file

@ -29,7 +29,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -69,7 +69,7 @@ public class AshenmoorCohort extends CardImpl {
this.toughness = new MageInt(3);
// Ashenmoor Cohort gets +1/+1 as long as you control another black creature.
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0);
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0);
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), condition, rule);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));

View file

@ -29,6 +29,7 @@ package mage.cards.a;
import mage.MageObject;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility;
import mage.abilities.costs.Cost;
@ -37,7 +38,6 @@ import mage.abilities.effects.ContinuousEffectImpl;
import mage.abilities.effects.OneShotEffect;
import mage.cards.*;
import mage.constants.*;
import mage.filter.Filter;
import mage.filter.FilterCard;
import mage.filter.common.FilterCreatureCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
@ -151,7 +151,7 @@ class AshiokNightmareWeaverPutIntoPlayEffect extends OneShotEffect {
}
FilterCard filter = new FilterCreatureCard("creature card with converted mana cost {" + cmc + "} exiled with " + sourceObject.getIdName());
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, cmc));
filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, cmc));
Target target = new TargetCardInExile(filter, CardUtil.getExileZoneId(game, source.getSourceId(), source.getSourceObjectZoneChangeCounter()));

View file

@ -29,7 +29,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.common.CardsInHandCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -60,7 +60,7 @@ public class AsylumVisitor extends CardImpl {
// At the beginning of each player's upkeep, if that player has no cards in hand, you draw a card and you lose 1 life.
Ability ability = new ConditionalTriggeredAbility(new BeginningOfUpkeepTriggeredAbility(new DrawCardSourceControllerEffect(1), TargetController.ANY, false),
new CardsInHandCondition(CountType.EQUAL_TO, 0, null, TargetController.ACTIVE),
new CardsInHandCondition(ComparisonType.EQUAL_TO, 0, null, TargetController.ACTIVE),
"At the beginning of each player's upkeep, if that player has no cards in hand, you draw a card and you lose 1 life.");
Effect effect = new LoseLifeSourceControllerEffect(1);
effect.setText("and you lose 1 life");

View file

@ -29,6 +29,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterArtifactCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.target.common.TargetCardInYourGraveyard;
@ -51,7 +51,7 @@ public class AuriokSalvagers extends CardImpl {
private static final FilterArtifactCard filter = new FilterArtifactCard("artifact card with converted mana cost 1 or less from your graveyard");
static {
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 2));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2));
}
public AuriokSalvagers(UUID ownerId, CardSetInfo setInfo) {

View file

@ -27,12 +27,12 @@
*/
package mage.cards.a;
import mage.constants.ComparisonType;
import mage.abilities.Mode;
import mage.abilities.effects.common.DestroyAllEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.Filter;
import mage.filter.common.FilterArtifactPermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.common.FilterEnchantmentPermanent;
@ -49,8 +49,8 @@ public class AustereCommand extends CardImpl {
private static final FilterCreaturePermanent filter3orLess = new FilterCreaturePermanent("creatures with converted mana cost 3 or less");
private static final FilterCreaturePermanent filter4orMore = new FilterCreaturePermanent("creatures with converted mana cost 4 or greater");
static {
filter3orLess.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
filter4orMore.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 3));
filter3orLess.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
filter4orMore.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 3));
}
public AustereCommand(UUID ownerId, CardSetInfo setInfo) {

View file

@ -29,6 +29,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.TapTargetEffect;
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.target.Target;
@ -52,7 +52,7 @@ public class AysenBureaucrats extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less");
static {
filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3));
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3));
}
public AysenBureaucrats(UUID ownerId, CardSetInfo setInfo) {

View file

@ -46,7 +46,7 @@ public class AyumiTheLastVisitor extends CardImpl {
private static final FilterLandPermanent filter = new FilterLandPermanent("Legendary land");
static {
filter.add(new SupertypePredicate("Legendary"));
filter.add(new SupertypePredicate(SuperType.LEGENDARY));
}
public AyumiTheLastVisitor(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,12 +28,12 @@
package mage.cards.b;
import mage.MageInt;
import mage.constants.ComparisonType;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.Filter.ComparisonType;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.target.common.TargetCreaturePermanent;
@ -49,7 +49,7 @@ public class BalaGedScorpion extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 1 or less");
static {
filter.add(new PowerPredicate(ComparisonType.LessThan, 2));
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 2));
}
public BalaGedScorpion(UUID ownerId, CardSetInfo setInfo) {

View file

@ -29,7 +29,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -76,7 +76,7 @@ public class BallynockCohort extends CardImpl {
this.addAbility(FirstStrikeAbility.getInstance());
// Ballynock Cohort gets +1/+1 as long as you control another white creature.
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0);
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0);
Effect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), condition, rule);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));

View file

@ -38,6 +38,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SuperType;
import mage.constants.Zone;
import mage.filter.FilterCard;
import mage.filter.predicate.Predicates;
@ -49,7 +50,6 @@ import mage.target.common.TargetCardInLibrary;
import java.util.UUID;
/**
*
* @author North
*/
public class BantPanorama extends CardImpl {
@ -58,7 +58,7 @@ public class BantPanorama extends CardImpl {
static {
filter.add(new CardTypePredicate(CardType.LAND));
filter.add(new SupertypePredicate("Basic"));
filter.add(new SupertypePredicate(SuperType.BASIC));
filter.add(Predicates.or(
new SubtypePredicate("Forest"),
new SubtypePredicate("Plains"),
@ -66,7 +66,7 @@ public class BantPanorama extends CardImpl {
}
public BantPanorama(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
// {T}: Add {C} to your mana pool.
this.addAbility(new ColorlessManaAbility());

View file

@ -28,12 +28,12 @@
package mage.cards.b;
import mage.MageInt;
import mage.constants.ComparisonType;
import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility;
import mage.abilities.effects.common.SacrificeSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.Filter;
import mage.filter.common.FilterControlledLandPermanent;
import mage.filter.common.FilterLandPermanent;
import mage.filter.predicate.mageobject.SubtypePredicate;
@ -62,7 +62,7 @@ public class BarbarianOutcast extends CardImpl {
// When you control no Swamps, sacrifice Barbarian Outcast.
this.addAbility(new ControlsPermanentsControllerTriggeredAbility(
new FilterLandPermanent("Swamp", "no Swamps"), Filter.ComparisonType.Equal, 0,
new FilterLandPermanent("Swamp", "no Swamps"), ComparisonType.EQUAL_TO, 0,
new SacrificeSourceEffect()));
}

View file

@ -27,7 +27,7 @@
*/
package mage.cards.b;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.TriggeredAbility;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.condition.Condition;
@ -55,7 +55,7 @@ public class BarrenGlory extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{W}{W}");
// At the beginning of your upkeep, if you control no permanents other than Barren Glory and have no cards in hand, you win the game.
Condition condition = new CardsInHandCondition(CountType.EQUAL_TO, 0);
Condition condition = new CardsInHandCondition(ComparisonType.EQUAL_TO, 0);
TriggeredAbility ability = new BarrenGloryTriggeredAbility();
this.addAbility(new ConditionalTriggeredAbility(ability,
condition,

View file

@ -0,0 +1,109 @@
/*
* 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.cards.b;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.AbilityImpl;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.RummageEffect;
import mage.abilities.keyword.ExertAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.permanent.Permanent;
/**
*
* @author anonymous
*/
public class BattlefieldScavenger extends CardImpl {
public BattlefieldScavenger(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}");
this.subtype.add("Jackal");
this.subtype.add("Rogue");
this.power = new MageInt(2);
this.toughness = new MageInt(2);
// You may exert Battlefield Scavenger as it attacks.
this.addAbility(new ExertAbility(null, false));
// Whenever you exert a creature, you may discard a card. If you do, draw a card.
this.addAbility(new WheneverYouExertCreatureTriggeredAbility(new RummageEffect()));
}
public BattlefieldScavenger(final BattlefieldScavenger card) {
super(card);
}
@Override
public BattlefieldScavenger copy() {
return new BattlefieldScavenger(this);
}
}
class WheneverYouExertCreatureTriggeredAbility extends TriggeredAbilityImpl {
WheneverYouExertCreatureTriggeredAbility(Effect effect) {
super(Zone.BATTLEFIELD, effect);
}
WheneverYouExertCreatureTriggeredAbility(final WheneverYouExertCreatureTriggeredAbility ability) {
super(ability);
}
@Override
public boolean checkEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.BECOMES_EXERTED;
}
@Override
public boolean checkTrigger(GameEvent event, Game game) {
boolean weAreExerting = getControllerId().equals(event.getPlayerId());
Permanent exerted = game.getPermanent(event.getTargetId());
boolean exertedIsCreature = (exerted != null) && exerted.isCreature();
return weAreExerting && exertedIsCreature;
}
@Override
public WheneverYouExertCreatureTriggeredAbility copy() {
return new WheneverYouExertCreatureTriggeredAbility(this);
}
@Override
public String getRule() {
return "Whenever you exert a creature, " + super.getRule();
}
}

View file

@ -30,6 +30,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
@ -39,7 +40,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.filter.Filter.ComparisonType;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.target.common.TargetCreaturePermanent;
@ -55,7 +55,7 @@ public class BeaconBehemoth extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater");
static {
filter.add(new PowerPredicate(ComparisonType.GreaterThan, 4));
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4));
}
public BeaconBehemoth (UUID ownerId, CardSetInfo setInfo) {

View file

@ -29,6 +29,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DestroyTargetEffect;
@ -36,7 +37,6 @@ import mage.abilities.keyword.MadnessAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.target.common.TargetCreaturePermanent;
@ -52,7 +52,7 @@ public class BigGameHunter extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 4 or greater");
static {
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3));
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3));
}
public BigGameHunter(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,7 +28,7 @@
package mage.cards.b;
import mage.MageInt;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.effects.common.WinGameSourceControllerEffect;
@ -64,7 +64,7 @@ public class Biovisionary extends CardImpl {
this.addAbility(new BeginningOfEndStepTriggeredAbility(
Zone.BATTLEFIELD, new WinGameSourceControllerEffect(),
TargetController.ANY,
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 3),
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 3),
false));
}

View file

@ -28,6 +28,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.costs.Cost;
import mage.abilities.costs.common.SacrificeTargetCost;
@ -40,7 +41,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.FilterCard;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
@ -106,7 +106,7 @@ class BirthingPodEffect extends OneShotEffect {
if (sacrificedPermanent != null && controller != null) {
int newConvertedCost = sacrificedPermanent.getConvertedManaCost() + 1;
FilterCard filter = new FilterCard("creature card with converted mana cost " + newConvertedCost);
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, newConvertedCost));
filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, newConvertedCost));
filter.add(new CardTypePredicate(CardType.CREATURE));
TargetCardInLibrary target = new TargetCardInLibrary(filter);
if (controller.searchLibrary(target, game)) {

View file

@ -27,7 +27,7 @@
*/
package mage.cards.b;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -54,7 +54,7 @@ public class BlackcleaveCliffs extends CardImpl {
public BlackcleaveCliffs(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 3));
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());

View file

@ -29,6 +29,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -38,7 +39,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterPermanentCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.filter.predicate.mageobject.SubtypePredicate;
@ -57,7 +57,7 @@ public class Blightspeaker extends CardImpl {
static {
filter.add(new SubtypePredicate("Rebel"));
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
}
public Blightspeaker(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,6 +28,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.condition.Condition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.dynamicvalue.DynamicValue;
@ -39,7 +40,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.filter.Filter;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.ToughnessPredicate;
@ -58,7 +58,7 @@ public class BloodLust extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent();
static {
filter.add(new ToughnessPredicate(Filter.ComparisonType.GreaterThan, 4));
filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 4));
}
public BloodLust(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,7 +28,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.common.PutCardIntoGraveFromAnywhereAllTriggeredAbility;
import mage.abilities.condition.common.OpponentLostLifeCondition;
@ -61,7 +61,7 @@ public class BloodchiefAscension extends CardImpl {
this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD,
new AddCountersSourceEffect(CounterType.QUEST.createInstance(1), false),
TargetController.ANY,
new OpponentLostLifeCondition(CountType.MORE_THAN, 1),
new OpponentLostLifeCondition(ComparisonType.MORE_THAN, 1),
true));
// Whenever a card is put into an opponent's graveyard from anywhere, if Bloodchief Ascension has three or more quest counters on it, you may have that player lose 2 life. If you do, you gain 2 life.

View file

@ -29,7 +29,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -80,7 +80,7 @@ public class BloodlineKeeper extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD,
new TransformSourceEffect(true),
new ManaCostsImpl("{B}"),
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 4));
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 4));
this.addAbility(ability);
}

View file

@ -28,6 +28,7 @@
package mage.cards.b;
import mage.MageInt;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
@ -37,7 +38,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.filter.Filter.ComparisonType;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.target.common.TargetCreaturePermanent;
@ -53,7 +53,7 @@ public class BloodthornTaunter extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater");
static {
filter.add(new PowerPredicate(ComparisonType.GreaterThan, 4));
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4));
}
public BloodthornTaunter(UUID ownerId, CardSetInfo setInfo) {

View file

@ -27,7 +27,7 @@
*/
package mage.cards.b;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -53,7 +53,7 @@ public class BloomingMarsh extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
// Blooming Marsh enters the battlefield tapped unless you control two or fewer other lands.
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.FEWER_THAN, 3));
String abilityText = "tapped unless you control fewer than 3 lands";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));

View file

@ -29,6 +29,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.costs.common.TapSourceCost;
@ -38,7 +39,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter.ComparisonType;
import mage.filter.common.FilterControlledLandPermanent;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.common.FilterPermanentCard;
@ -60,7 +60,7 @@ public class BogGlider extends CardImpl {
static {
filter.add(new SubtypePredicate("Mercenary"));
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 3));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3));
}
public BogGlider(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,6 +28,7 @@
package mage.cards.b;
import mage.MageInt;
import mage.constants.ComparisonType;
import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.SacrificeSourceEffect;
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterLandPermanent;
import java.util.UUID;
@ -58,7 +58,7 @@ public class BogSerpent extends CardImpl {
// When you control no Swamps, sacrifice Bog Serpent.
this.addAbility(new ControlsPermanentsControllerTriggeredAbility(
new FilterLandPermanent("Swamp", "no Swamps"), Filter.ComparisonType.Equal, 0,
new FilterLandPermanent("Swamp", "no Swamps"), ComparisonType.EQUAL_TO, 0,
new SacrificeSourceEffect()));
}

View file

@ -27,7 +27,7 @@
*/
package mage.cards.b;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -53,7 +53,7 @@ public class BotanicalSanctum extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
// Botanical Sanctum enters the battlefield tapped unless you control two or fewer other lands.
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.FEWER_THAN, 3));
String abilityText = "tapped unless you control fewer than 3 lands";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));

View file

@ -0,0 +1,112 @@
/*
* 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.cards.b;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import java.util.UUID;
import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfPreCombatMainTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.constants.Outcome;
import mage.constants.TargetController;
import mage.counters.CounterType;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
/**
*
* @author jeffwadsworth
*/
public class BountyOfTheLuxa extends CardImpl {
public BountyOfTheLuxa(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}{U}");
//At the beginning of your precombat main phase, remove all flood counters from Bounty of the Luxa. If no flood counters were removed this way, put a flood counter on Bounty of the Luxa and draw a card. Otherwise, add {C}{G}{U} to your mana pool.
this.addAbility(new BeginningOfPreCombatMainTriggeredAbility(new BountyOfTheLuxaEffect(), TargetController.YOU, false));
}
public BountyOfTheLuxa(final BountyOfTheLuxa card) {
super(card);
}
@Override
public BountyOfTheLuxa copy() {
return new BountyOfTheLuxa(this);
}
}
class BountyOfTheLuxaEffect extends OneShotEffect {
public BountyOfTheLuxaEffect() {
super(Outcome.Benefit);
staticText = "remove all flood counters from {this}. If no flood counters were removed this way, put a flood counter on {this} and draw a card. Otherwise, add {C}{G}{U} to your mana pool";
}
public BountyOfTheLuxaEffect(final BountyOfTheLuxaEffect effect) {
super(effect);
}
@Override
public BountyOfTheLuxaEffect copy() {
return new BountyOfTheLuxaEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
Permanent bountyOfLuxa = game.getPermanent(source.getSourceId());
if (controller != null
&& bountyOfLuxa != null) {
if (bountyOfLuxa.getCounters(game).getCount(CounterType.FLOOD) > 0) {
bountyOfLuxa.removeCounters(CounterType.FLOOD.createInstance(bountyOfLuxa.getCounters(game).getCount(CounterType.FLOOD)), game);
if (bountyOfLuxa.getCounters(game).getCount(CounterType.FLOOD) == 0) {
Mana manaToAdd = new Mana();
manaToAdd.increaseColorless();
manaToAdd.increaseGreen();
manaToAdd.increaseBlue();
controller.getManaPool().addMana(manaToAdd, game, source);
}
} else {
new AddCountersSourceEffect(CounterType.FLOOD.createInstance()).apply(game, source);
new DrawCardSourceControllerEffect(1).apply(game, source);
}
return true;
}
return false;
}
}

View file

@ -28,6 +28,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveVariableCountersSourceCost;
import mage.abilities.costs.common.TapSourceCost;
@ -42,7 +43,6 @@ import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.Filter;
import mage.filter.FilterCard;
import mage.filter.common.FilterInstantOrSorceryCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
@ -108,7 +108,7 @@ class BrainInAJarCastEffect extends OneShotEffect {
if (controller != null && sourceObject != null) {
int counters = sourceObject.getCounters(game).getCount(CounterType.CHARGE);
FilterCard filter = new FilterInstantOrSorceryCard();
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, counters));
filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, counters));
int cardsToCast = controller.getHand().count(filter, source.getControllerId(), source.getSourceId(), game);
if (cardsToCast > 0 && controller.chooseUse(outcome, "Cast an instant or sorcery card with converted mana costs of " + counters + " from your hand without paying its mana cost?", source, game)) {
TargetCardInHand target = new TargetCardInHand(filter);

View file

@ -28,13 +28,13 @@
package mage.cards.b;
import mage.MageInt;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.combat.CantBlockCreaturesSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
@ -48,7 +48,7 @@ public class BrassclawOrcs extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or greater");
static {
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 1));
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 1));
}
public BrassclawOrcs(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,6 +28,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.Effect;
@ -39,7 +40,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.target.common.TargetCreaturePermanent;
@ -55,7 +55,7 @@ public class BreakThroughTheLine extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less");
static {
filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3));
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3));
}
public BreakThroughTheLine(UUID ownerId, CardSetInfo setInfo) {

View file

@ -29,7 +29,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -76,7 +76,7 @@ public class BriarberryCohort extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Briarberry Cohort gets +1/+1 as long as you control another blue creature.
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0);
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0);
Effect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), condition, rule);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));

View file

@ -28,6 +28,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.dynamicvalue.common.ColorsOfManaSpentToCastCount;
import mage.abilities.effects.OneShotEffect;
import mage.cards.Card;
@ -36,7 +37,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.FilterCard;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.CardTypePredicate;
@ -98,7 +98,7 @@ class BringToLightEffect extends OneShotEffect {
int numberColors = ColorsOfManaSpentToCastCount.getInstance().calculate(game, source, this);
FilterCard filter = new FilterCard();
filter.add(Predicates.or(new CardTypePredicate(CardType.CREATURE), new CardTypePredicate(CardType.INSTANT), new CardTypePredicate(CardType.SORCERY)));
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, numberColors + 1));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, numberColors + 1));
TargetCardInLibrary target = new TargetCardInLibrary(filter);
controller.searchLibrary(target, game);
Card card = controller.getLibrary().getCard(target.getFirstTarget(), game);

View file

@ -28,7 +28,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.common.CardsInHandCondition;
@ -63,7 +63,7 @@ public class BrinkOfMadness extends CardImpl {
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new SacrificeSourceEffect(), TargetController.YOU, false);
ability.addEffect(new BrinkOfMadnessEffect());
ability.addTarget(new TargetOpponent());
CardsInHandCondition contition = new CardsInHandCondition(CountType.EQUAL_TO, 0);
CardsInHandCondition contition = new CardsInHandCondition(ComparisonType.EQUAL_TO, 0);
this.addAbility(new ConditionalTriggeredAbility(ability, contition, "At the beginning of your upkeep, if you have no cards in hand, sacrifice {this} and target opponent discards his or her hand."));
}

View file

@ -33,6 +33,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SetTargetPointer;
import mage.constants.SuperType;
import mage.filter.common.FilterLandPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.SupertypePredicate;
@ -48,7 +49,7 @@ public class BurningEarth extends CardImpl {
private final static FilterLandPermanent filter = new FilterLandPermanent("a player taps a nonbasic land");
static {
filter.add(Predicates.not(new SupertypePredicate("Basic")));
filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC)));
}
public BurningEarth(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,13 +28,13 @@
package mage.cards.b;
import mage.MageInt;
import mage.constants.ComparisonType;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.effects.keyword.InvestigateEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.Filter;
import mage.filter.FilterSpell;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
@ -51,7 +51,7 @@ public class BygoneBishop extends CardImpl {
static {
filterSpell.add(new CardTypePredicate(CardType.CREATURE));
filterSpell.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
filterSpell.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
}
public BygoneBishop(UUID ownerId, CardSetInfo setInfo) {

View file

@ -27,7 +27,7 @@
*/
package mage.cards.c;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -39,13 +39,13 @@ import mage.abilities.mana.WhiteManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SuperType;
import mage.filter.common.FilterLandPermanent;
import mage.filter.predicate.mageobject.SupertypePredicate;
import java.util.UUID;
/**
*
* @author fireshoes
*/
public class CanopyVista extends CardImpl {
@ -53,16 +53,16 @@ public class CanopyVista extends CardImpl {
private static final FilterLandPermanent filter = new FilterLandPermanent();
static {
filter.add(new SupertypePredicate("Basic"));
filter.add(new SupertypePredicate(SuperType.BASIC));
}
public CanopyVista(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
this.subtype.add("Forest");
this.subtype.add("Plains");
// Canopy Vista enters the battlefield tapped unless you control two or more basic lands.
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1));
String abilityText = "tapped unless you control two or more basic lands";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
this.addAbility(new GreenManaAbility());

View file

@ -51,7 +51,7 @@ public class CaptainSisay extends CardImpl {
private static final FilterCard filter = new FilterCard("legendary card");
static {
filter.add(new SupertypePredicate("Legendary"));
filter.add(new SupertypePredicate(SuperType.LEGENDARY));
}
public CaptainSisay(UUID ownerId, CardSetInfo setInfo) {

View file

@ -71,7 +71,7 @@ public class CartoucheOfKnowledge extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1)));
// Enchanted creature gets +1/+1 and has flying.
ability =new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield));
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield));
Effect effect = new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA);
effect.setText("and has flying");
ability.addEffect(effect);

View file

@ -0,0 +1,142 @@
/*
* 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.cards.c;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldAllTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.AttachEffect;
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
import mage.abilities.keyword.TrampleAbility;
import mage.constants.*;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.TargetPermanent;
import mage.abilities.keyword.EnchantAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.target.common.TargetControlledCreaturePermanent;
import mage.target.common.TargetOpponentsCreaturePermanent;
/**
*
* @author stravant
*/
public class CartoucheOfStrength extends CardImpl {
public CartoucheOfStrength(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}");
this.subtype.add("Aura");
this.subtype.add("Cartouche");
// Enchant creature you control
TargetPermanent auraTarget = new TargetControlledCreaturePermanent();
this.getSpellAbility().addTarget(auraTarget);
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
Ability ability = new EnchantAbility(auraTarget.getTargetName());
this.addAbility(ability);
// When Cartouche of Strength enters the battlefield, you may have enchanted creature fight target creature an opponent controls.
ability = new EntersBattlefieldTriggeredAbility(new FightEnchantedTargetEffect(), /* optional = */true);
ability.addTarget(new TargetOpponentsCreaturePermanent());
this.addAbility(ability);
// Enchanted creature gets +1/+1 and has trample.
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield));
Effect effect = new GainAbilityAttachedEffect(TrampleAbility.getInstance(), AttachmentType.AURA);
effect.setText("and has trample");
ability.addEffect(effect);
this.addAbility(ability);
}
public CartoucheOfStrength(final CartoucheOfStrength card) {
super(card);
}
@Override
public CartoucheOfStrength copy() {
return new CartoucheOfStrength(this);
}
}
/**
*
* @author stravant
*/
class FightEnchantedTargetEffect extends OneShotEffect {
public FightEnchantedTargetEffect() {
super(Outcome.Damage);
}
public FightEnchantedTargetEffect(final FightEnchantedTargetEffect effect) {
super(effect);
}
@Override
public boolean apply(Game game, Ability source) {
Permanent sourcePermanent = game.getPermanent(source.getSourceId());
if (sourcePermanent != null) {
Permanent originalCreature = game.getPermanentOrLKIBattlefield(sourcePermanent.getAttachedTo());
if (originalCreature != null) {
Permanent enchantedCreature = game.getPermanent(sourcePermanent.getAttachedTo());
// only if target is legal the effect will be applied
if (source.getTargets().get(0).isLegal(source, game)) {
Permanent creature1 = game.getPermanent(source.getTargets().get(0).getFirstTarget());
// 20110930 - 701.10
if (creature1 != null && enchantedCreature != null) {
if (creature1.isCreature() && enchantedCreature.isCreature()) {
return enchantedCreature.fight(creature1, source, game);
}
}
}
if (!game.isSimulation())
game.informPlayers(originalCreature.getLogName() + ": Fighting effect has been fizzled.");
}
}
return false;
}
@Override
public FightEnchantedTargetEffect copy() {
return new FightEnchantedTargetEffect(this);
}
@Override
public String getText(Mode mode) {
return "you may have enchanted creature fight target creature an opponent controls.";
}
}

View file

@ -30,6 +30,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
@ -38,7 +39,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter.ComparisonType;
import mage.filter.common.FilterPermanentCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.filter.predicate.mageobject.SubtypePredicate;
@ -56,7 +56,7 @@ public class CateranBrute extends CardImpl {
static {
filter.add(new SubtypePredicate("Mercenary"));
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 3));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3));
}
public CateranBrute(UUID ownerId, CardSetInfo setInfo) {

View file

@ -30,6 +30,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
@ -39,7 +40,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter.ComparisonType;
import mage.filter.common.FilterPermanentCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.filter.predicate.mageobject.SubtypePredicate;
@ -57,7 +57,7 @@ public class CateranEnforcer extends CardImpl {
static {
filter.add(new SubtypePredicate("Mercenary"));
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 5));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 5));
}
public CateranEnforcer(UUID ownerId, CardSetInfo setInfo) {

View file

@ -30,6 +30,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
@ -38,7 +39,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter.ComparisonType;
import mage.filter.common.FilterPermanentCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.filter.predicate.mageobject.SubtypePredicate;
@ -47,7 +47,6 @@ import mage.target.common.TargetCardInLibrary;
import java.util.UUID;
/**
*
* @author Backfir3
*/
public class CateranKidnappers extends CardImpl {
@ -56,11 +55,11 @@ public class CateranKidnappers extends CardImpl {
static {
filter.add(new SubtypePredicate("Mercenary"));
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
}
public CateranKidnappers(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{B}");
this.subtype.add("Human");
this.subtype.add("Mercenary");

View file

@ -30,6 +30,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.costs.common.TapSourceCost;
@ -40,7 +41,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter.ComparisonType;
import mage.filter.common.FilterPermanentCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.filter.predicate.mageobject.SubtypePredicate;
@ -59,7 +59,7 @@ public class CateranOverlord extends CardImpl {
static {
filter.add(new SubtypePredicate("Mercenary"));
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 7));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 7));
}
public CateranOverlord(UUID ownerId, CardSetInfo setInfo) {

View file

@ -30,6 +30,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
@ -38,7 +39,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter.ComparisonType;
import mage.filter.common.FilterPermanentCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.filter.predicate.mageobject.SubtypePredicate;
@ -56,7 +56,7 @@ public class CateranPersuader extends CardImpl {
static {
filter.add(new SubtypePredicate("Mercenary"));
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 2));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2));
}
public CateranPersuader(UUID ownerId, CardSetInfo setInfo) {

View file

@ -30,6 +30,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
@ -39,7 +40,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter.ComparisonType;
import mage.filter.common.FilterPermanentCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.filter.predicate.mageobject.SubtypePredicate;
@ -57,7 +57,7 @@ public class CateranSlaver extends CardImpl {
static {
filter.add(new SubtypePredicate("Mercenary"));
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 6));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 6));
}
public CateranSlaver(UUID ownerId, CardSetInfo setInfo) {

View file

@ -29,6 +29,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DestroyAllEffect;
@ -39,7 +40,6 @@ import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SuperType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterSpiritOrArcaneCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
@ -101,7 +101,7 @@ class CelestialKirinEffect extends OneShotEffect {
if (spell != null) {
int cmc = spell.getConvertedManaCost();
FilterPermanent filter = new FilterPermanent();
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, cmc));
filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, cmc));
return new DestroyAllEffect(filter).apply(game, source);
}
return false;

View file

@ -28,7 +28,7 @@
package mage.cards.c;
import mage.MageInt;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.PermanentHasCounterCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
@ -64,7 +64,7 @@ public class ChampionsDrake extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Champion's Drake gets +3/+3 as long as you control a creature with three or more level counters on it.
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), new PermanentHasCounterCondition(CounterType.LEVEL, 2, new FilterControlledCreaturePermanent(), CountType.MORE_THAN), rule);
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), new PermanentHasCounterCondition(CounterType.LEVEL, 2, new FilterControlledCreaturePermanent(), ComparisonType.MORE_THAN), rule);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
}

View file

@ -31,6 +31,7 @@ import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SuperType;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.SupertypePredicate;
@ -47,7 +48,7 @@ public class ChillToTheBone extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nonsnow creature");
static {
filter.add(Predicates.not(new SupertypePredicate("Snow")));
filter.add(Predicates.not(new SupertypePredicate(SuperType.SNOW)));
}
public ChillToTheBone(UUID ownerId, CardSetInfo setInfo) {

View file

@ -29,7 +29,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.effects.OneShotEffect;
@ -101,7 +101,7 @@ class ChroniclerOfHeroesEffect extends OneShotEffect {
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
if (new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0).apply(game, source)) {
if (new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0).apply(game, source)) {
controller.drawCards(1, game);
}
return true;

View file

@ -27,7 +27,7 @@
*/
package mage.cards.c;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -63,7 +63,7 @@ public class CinderGlade extends CardImpl {
this.subtype.add("Forest");
// Cinder Glade enters the battlefield tapped unless you control two or more basic lands.
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1));
String abilityText = "tapped unless you control two or more basic lands";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
this.addAbility(new RedManaAbility());

View file

@ -28,6 +28,7 @@
package mage.cards.c;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -36,7 +37,6 @@ import mage.cards.*;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.FilterCard;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
@ -98,7 +98,7 @@ class CitanulFluteSearchEffect extends OneShotEffect {
FilterCard filter = new FilterCard("creature card with converted mana cost X or less");
filter.add(new CardTypePredicate(CardType.CREATURE));
//Set the mana cost one higher to 'emulate' a less than or equal to comparison.
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, source.getManaCostsToPay().getX() + 1));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, source.getManaCostsToPay().getX() + 1));
TargetCardInLibrary target = new TargetCardInLibrary(filter);
if (player.searchLibrary(target, game)) {

View file

@ -28,7 +28,7 @@
package mage.cards.c;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -60,7 +60,7 @@ public class ClifftopRetreat extends CardImpl {
public ClifftopRetreat(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.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());

View file

@ -35,10 +35,7 @@ import mage.abilities.effects.OneShotEffect;
import mage.abilities.keyword.CumulativeUpkeepAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.constants.*;
import mage.filter.common.FilterLandPermanent;
import mage.filter.predicate.mageobject.SupertypePredicate;
import mage.game.Game;
@ -77,7 +74,7 @@ class ColdSnapDamageTargetEffect extends OneShotEffect{
private static final FilterLandPermanent filter = new FilterLandPermanent("snow lands");
static {
filter.add(new SupertypePredicate("Snow"));
filter.add(new SupertypePredicate(SuperType.SNOW));
}
public ColdSnapDamageTargetEffect()

View file

@ -29,6 +29,7 @@ package mage.cards.c;
import mage.MageObject;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.condition.Condition;
@ -40,7 +41,6 @@ import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.ToughnessPredicate;
import mage.game.ExileZone;
@ -60,7 +60,7 @@ public class ColfenorsUrn extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature with toughness 4 or greater");
static {
filter.add(new ToughnessPredicate(Filter.ComparisonType.GreaterThan, 3));
filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 3));
}
public ColfenorsUrn(UUID ownerId, CardSetInfo setInfo) {

View file

@ -27,12 +27,12 @@
*/
package mage.cards.c;
import mage.constants.ComparisonType;
import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter.ComparisonType;
import mage.filter.FilterCard;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
@ -49,7 +49,7 @@ public class CollectedCompany extends CardImpl {
static {
filter.add(new CardTypePredicate(CardType.CREATURE));
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
}
public CollectedCompany(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,6 +28,7 @@
package mage.cards.c;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.Mode;
import mage.abilities.costs.Cost;
import mage.abilities.costs.common.TapTargetCost;
@ -40,7 +41,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.counters.CounterType;
import mage.filter.Filter;
import mage.filter.FilterPlayer;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterCreaturePermanent;
@ -71,7 +71,7 @@ public class CollectiveEffort extends CardImpl {
static {
filterUntapped.add(Predicates.not(new TappedPredicate()));
filterDestroyCreature.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3));
filterDestroyCreature.add(new PowerPredicate(ComparisonType.MORE_THAN, 3));
}
public CollectiveEffort(UUID ownerId, CardSetInfo setInfo) {

View file

@ -30,7 +30,7 @@ package mage.cards.c;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -70,7 +70,7 @@ public class CompanionOfTheTrials extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD,
new UntapTargetEffect(),
new ManaCostsImpl("{1}{W}"),
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0));
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}

View file

@ -28,12 +28,12 @@
package mage.cards.c;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.effects.common.ExileTargetEffect;
import mage.abilities.keyword.DevoidAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.target.common.TargetCreaturePermanent;
@ -49,7 +49,7 @@ public class CompleteDisregard extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 3 or less");
static {
filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 4));
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 4));
}
public CompleteDisregard(UUID ownerId, CardSetInfo setInfo) {

View file

@ -27,7 +27,7 @@
*/
package mage.cards.c;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -53,7 +53,7 @@ public class ConcealedCourtyard extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
// Concealed Courtyard enters the battlefield tapped unless you control two or fewer other lands.
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.FEWER_THAN, 3));
String abilityText = "tapped unless you control fewer than 3 lands";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));

View file

@ -28,6 +28,7 @@
package mage.cards.c;
import mage.MageInt;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.CastSourceTriggeredAbility;
@ -38,7 +39,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.WatcherScope;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterCreatureCard;
import mage.filter.predicate.ObjectPlayer;
import mage.filter.predicate.ObjectPlayerPredicate;
@ -66,7 +66,7 @@ public class ConduitOfRuin extends CardImpl {
static {
filter.add(new ColorlessPredicate());
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 6));
filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 6));
filterCost.add(new FirstCastCreatureSpellPredicate());
}

View file

@ -27,11 +27,11 @@
*/
package mage.cards.c;
import mage.constants.ComparisonType;
import mage.abilities.effects.common.DestroyAllEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
@ -46,7 +46,7 @@ public class ConsumeTheMeek extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with converted mana cost 3 or less");
static {
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
}
public ConsumeTheMeek(UUID ownerId, CardSetInfo setInfo) {

View file

@ -27,7 +27,7 @@
*/
package mage.cards.c;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -55,7 +55,7 @@ public class CopperlineGorge extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
// Copperline Gorge enters the battlefield tapped unless you control two or fewer other lands.
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 3));
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());

View file

@ -28,13 +28,13 @@
package mage.cards.c;
import mage.MageInt;
import mage.constants.ComparisonType;
import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility;
import mage.abilities.effects.common.SacrificeSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.Filter;
import mage.filter.common.FilterArtifactPermanent;
import java.util.UUID;
@ -56,7 +56,7 @@ public class CovetousDragon extends CardImpl {
// When you control no artifacts, sacrifice Covetous Dragon.
this.addAbility(new ControlsPermanentsControllerTriggeredAbility(
new FilterArtifactPermanent("no artifacts"), Filter.ComparisonType.Equal, 0,
new FilterArtifactPermanent("no artifacts"), ComparisonType.EQUAL_TO, 0,
new SacrificeSourceEffect()));
}

View file

@ -29,7 +29,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -72,7 +72,7 @@ public class CrabappleCohort extends CardImpl {
this.toughness = new MageInt(4);
// Crabapple Cohort gets +1/+1 as long as you control another green creature.
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0);
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0);
Effect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), condition, rule);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
}

View file

@ -28,6 +28,7 @@
package mage.cards.c;
import mage.ObjectColor;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect;
import mage.cards.CardImpl;
@ -36,7 +37,6 @@ import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.ColorPredicate;
@ -54,7 +54,7 @@ public class Crackdown extends CardImpl {
static {
filter.add(Predicates.not(new ColorPredicate(ObjectColor.WHITE)));
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2));
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2));
}
public Crackdown(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,6 +28,7 @@
package mage.cards.c;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DamagePlayersEffect;
import mage.cards.CardImpl;
@ -35,7 +36,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.TargetController;
import mage.filter.Filter;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
@ -117,7 +117,7 @@ class CracklingDoomEffect extends OneShotEffect {
}
} else if (greatestPower != Integer.MIN_VALUE) {
FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature to sacrifice with power equal to " + greatestPower);
filter.add(new PowerPredicate(Filter.ComparisonType.Equal, greatestPower));
filter.add(new PowerPredicate(ComparisonType.EQUAL_TO, greatestPower));
Target target = new TargetControlledCreaturePermanent(filter);
if (opponent.choose(outcome, target, playerId, game)) {
Permanent permanent = game.getPermanent(target.getFirstTarget());

View file

@ -29,6 +29,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect;
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.target.common.TargetCreaturePermanent;
@ -52,7 +52,7 @@ public class CraftyPathmage extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less");
static {
filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3));
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3));
}
public CraftyPathmage(UUID ownerId, CardSetInfo setInfo) {

View file

@ -0,0 +1,169 @@
/*
* 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.cards.c;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.AttachEffect;
import mage.abilities.keyword.EnchantAbility;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType;
import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.TargetPermanent;
import mage.target.TargetPlayer;
import mage.target.targetpointer.FixedTarget;
/**
*
* @author jeffwadsworth
*/
public class CruelReality extends CardImpl {
public CruelReality(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{5}{B}{B}");
this.subtype.add("Aura");
this.subtype.add("Curse");
this.color.setBlack(true);
// Enchant player
TargetPlayer auraTarget = new TargetPlayer();
this.getSpellAbility().addTarget(auraTarget);
this.getSpellAbility().addEffect(new AttachEffect(Outcome.Damage));
this.addAbility(new EnchantAbility(auraTarget.getTargetName()));
//At the beginning of enchanted player's upkeep, that player sacrifices a creature or planeswalker. If the player can't, he or she loses 5 life.
this.addAbility(new CruelRealityTriggeredAbiilty());
}
public CruelReality(final CruelReality card) {
super(card);
}
@Override
public CruelReality copy() {
return new CruelReality(this);
}
}
class CruelRealityTriggeredAbiilty extends TriggeredAbilityImpl {
public CruelRealityTriggeredAbiilty() {
super(Zone.BATTLEFIELD, new CruelRealityEffect());
}
public CruelRealityTriggeredAbiilty(final CruelRealityTriggeredAbiilty ability) {
super(ability);
}
@Override
public CruelRealityTriggeredAbiilty copy() {
return new CruelRealityTriggeredAbiilty(this);
}
@Override
public boolean checkEventType(GameEvent event, Game game) {
return event.getType() == EventType.UPKEEP_STEP_PRE;
}
@Override
public boolean checkTrigger(GameEvent event, Game game) {
Permanent enchantment = game.getPermanent(this.sourceId);
if (enchantment != null
&& enchantment.getAttachedTo() != null) {
Player cursedPlayer = game.getPlayer(enchantment.getAttachedTo());
if (cursedPlayer != null
&& game.getActivePlayerId().equals(cursedPlayer.getId())) {
this.getEffects().get(0).setTargetPointer(new FixedTarget(cursedPlayer.getId()));
return true;
}
}
return false;
}
@Override
public String getRule() {
return "At the beginning of enchanted player's upkeep, " + super.getRule();
}
}
class CruelRealityEffect extends OneShotEffect {
public CruelRealityEffect() {
super(Outcome.LoseLife);
staticText = "that player sacrifices a creature or planeswalker. If the player can't, he or she loses 5 life";
}
public CruelRealityEffect(final CruelRealityEffect effect) {
super(effect);
}
@Override
public CruelRealityEffect copy() {
return new CruelRealityEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player cursedPlayer = game.getPlayer(targetPointer.getFirst(game, source));
Player controller = game.getPlayer(source.getControllerId());
if (cursedPlayer != null
&& controller != null) {
if (cursedPlayer.chooseUse(outcome, "Sacrifice a creature or planeswalker?", source, game)) {
FilterControlledPermanent filter = new FilterControlledPermanent();
filter.add(Predicates.or(
new CardTypePredicate(CardType.CREATURE),
new CardTypePredicate(CardType.PLANESWALKER)));
TargetPermanent target = new TargetPermanent(filter);
if (cursedPlayer.choose(outcome, target, source.getId(), game)) {
Permanent objectToBeSacrificed = game.getPermanent(target.getFirstTarget());
if (objectToBeSacrificed != null) {
if (objectToBeSacrificed.sacrifice(source.getId(), game)) {
return true;
}
}
}
}
cursedPlayer.loseLife(5, game, false);
}
return false;
}
}

View file

@ -29,6 +29,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.ManaWasSpentCondition;
import mage.abilities.effects.OneShotEffect;
@ -41,7 +42,6 @@ import mage.constants.CardType;
import mage.constants.ColoredManaSymbol;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.Filter.ComparisonType;
import mage.filter.FilterCard;
import mage.filter.common.FilterCreatureCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
@ -112,7 +112,7 @@ class CryptChampionEffect extends OneShotEffect {
if (player != null) {
FilterCard filter = new FilterCreatureCard("creature card with converted mana cost 3 or less from your graveyard");
filter.add(new OwnerIdPredicate(playerId));
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
Target target = new TargetCardInGraveyard(filter);
if (target.canChoose(playerId, game) && player.chooseTarget(outcome, target, source, game)) {
Card card = game.getCard(target.getFirstTarget());

View file

@ -28,13 +28,13 @@
package mage.cards.c;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.TargetController;
import mage.filter.Filter;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterNonlandPermanent;
import mage.filter.predicate.Predicate;
@ -83,7 +83,7 @@ class HasLowestCMCAmongstNonlandPermanentsPredicate implements Predicate<Permane
@Override
public boolean apply(Permanent input, Game game) {
FilterPermanent filter = new FilterNonlandPermanent();
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, input.getConvertedManaCost()));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, input.getConvertedManaCost()));
return !game.getBattlefield().contains(filter, 1, game);
}

View file

@ -27,11 +27,11 @@
*/
package mage.cards.c;
import mage.constants.ComparisonType;
import mage.abilities.effects.common.DestroyAllEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
@ -45,7 +45,7 @@ public class CullingSun extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with converted mana cost 3 or less");
static {
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
}
public CullingSun(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,6 +28,7 @@
package mage.cards.c;
import mage.MageInt;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.combat.CantBlockCreaturesSourceEffect;
import mage.abilities.keyword.IntimidateAbility;
@ -35,7 +36,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
@ -49,7 +49,7 @@ public class CyclopsTyrant extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or less");
static {
filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3));
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3));
}
public CyclopsTyrant(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,6 +28,7 @@
package mage.cards.d;
import mage.MageInt;
import mage.constants.ComparisonType;
import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.SacrificeSourceEffect;
@ -36,20 +37,17 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterLandPermanent;
import java.util.UUID;
/**
*
* @author KholdFuzion
*
*/
public class Dandan extends CardImpl {
public Dandan(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U}{U}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}{U}");
this.subtype.add("Fish");
this.power = new MageInt(4);
@ -60,7 +58,7 @@ public class Dandan extends CardImpl {
// When you control no Islands, sacrifice Dandan.
this.addAbility(new ControlsPermanentsControllerTriggeredAbility(
new FilterLandPermanent("Island", "no Islands"), Filter.ComparisonType.Equal, 0,
new FilterLandPermanent("Island", "no Islands"), ComparisonType.EQUAL_TO, 0,
new SacrificeSourceEffect()));
}

View file

@ -28,7 +28,7 @@
package mage.cards.d;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -61,7 +61,7 @@ public class DarkslickShores extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
// Darkslick Shores enters the battlefield tapped unless you control two or fewer other lands.
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 3));
String abilityText = "tapped unless you control two or fewer other lands";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));

View file

@ -30,6 +30,7 @@ package mage.cards.d;
import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
import mage.abilities.common.SimpleEvasionAbility;
import mage.abilities.effects.AsThoughEffectImpl;
@ -41,7 +42,6 @@ import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.game.ExileZone;
@ -63,7 +63,7 @@ public class DaxosOfMeletis extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 3 or greater");
static {
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2));
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2));
}
public DaxosOfMeletis(UUID ownerId, CardSetInfo setInfo) {

View file

@ -49,7 +49,7 @@ public class DayOfDestiny extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Legendary creatures");
static {
filter.add(new SupertypePredicate("Legendary"));
filter.add(new SupertypePredicate(SuperType.LEGENDARY));
}
public DayOfDestiny(UUID ownerId, CardSetInfo setInfo) {

View file

@ -29,7 +29,7 @@ package mage.cards.d;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.CardsInHandCondition;
@ -60,7 +60,7 @@ public class DeathmaskNezumi extends CardImpl {
this.toughness = new MageInt(2);
// As long as you have seven or more cards in hand, Deathmask Nezumi gets +2/+1 and has fear.
Condition condition = new CardsInHandCondition(CountType.MORE_THAN,6);
Condition condition = new CardsInHandCondition(ComparisonType.MORE_THAN,6);
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
new BoostSourceEffect(2,1, Duration.WhileOnBattlefield), condition, "As long as you have seven or more cards in hand, {this} gets +2/+1"));
ability.addEffect(new ConditionalContinuousEffect(

View file

@ -29,6 +29,7 @@ package mage.cards.d;
import mage.MageInt;
import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DestroyTargetEffect;
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.CardTypePredicate;
@ -81,7 +81,7 @@ public class DeepfireElemental extends CardImpl {
ability.getTargets().clear();
FilterPermanent newFilter = filter.copy();
newFilter.setMessage(new StringBuilder("artifact or creature with converted mana cost {").append(ability.getManaCostsToPay().getX()).append('}').toString());
newFilter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, ability.getManaCostsToPay().getX()));
newFilter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, ability.getManaCostsToPay().getX()));
Target target = new TargetPermanent(newFilter);
ability.addTarget(target);
}

View file

@ -27,11 +27,11 @@
*/
package mage.cards.d;
import mage.constants.ComparisonType;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.Filter;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.target.common.TargetCreaturePermanent;
@ -47,7 +47,7 @@ public class Defeat extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less");
static {
filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3));
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3));
}
public Defeat(UUID ownerId, CardSetInfo setInfo) {

View file

@ -28,6 +28,7 @@
package mage.cards.d;
import mage.MageInt;
import mage.constants.ComparisonType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -37,7 +38,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.common.FilterPermanentCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.filter.predicate.mageobject.SubtypePredicate;
@ -55,7 +55,7 @@ public class DefiantFalcon extends CardImpl {
static {
filter.add(new SubtypePredicate("Rebel"));
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
}
public DefiantFalcon(UUID ownerId, CardSetInfo setInfo) {

Some files were not shown because too many files have changed in this diff Show more