cards now use the new CountType

This commit is contained in:
ingmargoudt 2017-03-05 23:29:51 +01:00
parent dd84287305
commit 5387f06898
139 changed files with 325 additions and 184 deletions

View file

@ -30,6 +30,7 @@ package mage.cards.a;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.CardsInHandCondition;
@ -58,7 +59,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(CardsInHandCondition.CountType.MORE_THAN,6);
Condition condition = new CardsInHandCondition(CountType.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 java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -68,7 +69,7 @@ public class ApothecaryGeist extends CardImpl {
TriggeredAbility triggeredAbility = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(3));
this.addAbility(new ConditionalTriggeredAbility(
triggeredAbility,
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0),
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0),
"When {this} enters the battlefield, if you control another Spirit, you gain 3 life."));
}

View file

@ -28,8 +28,9 @@
package mage.cards.a;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.discard.DiscardControllerEffect;

View file

@ -28,12 +28,13 @@
package mage.cards.a;
import java.util.UUID;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.CountType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.cards.CardImpl;
@ -46,7 +47,6 @@ import mage.filter.predicate.mageobject.ColorPredicate;
import mage.filter.predicate.permanent.AnotherPredicate;
/**
*
* @author jeffwadsworth
*/
public class AshenmoorCohort extends CardImpl {
@ -61,7 +61,7 @@ public class AshenmoorCohort extends CardImpl {
private static final String rule = "Ashenmoor Cohort gets +1/+1 as long as you control another black creature";
public AshenmoorCohort(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{B}");
this.subtype.add("Elemental");
this.subtype.add("Warrior");

View file

@ -30,6 +30,7 @@ package mage.cards.a;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.common.CardsInHandCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -58,7 +59,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(CardsInHandCondition.CountType.EQUAL_TO, 0, null, TargetController.ACTIVE),
new CardsInHandCondition(CountType.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

@ -30,10 +30,10 @@ package mage.cards.b;
import java.util.UUID;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.CountType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;

View file

@ -28,6 +28,8 @@
package mage.cards.b;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbility;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.condition.Condition;
@ -45,19 +47,18 @@ import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType;
/**
*
* @author fireshoes
*/
public class BarrenGlory extends CardImpl {
public BarrenGlory(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{W}{W}");
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(CardsInHandCondition.CountType.EQUAL_TO, 0);
Condition condition = new CardsInHandCondition(CountType.EQUAL_TO, 0);
TriggeredAbility ability = new BarrenGloryTriggeredAbility();
this.addAbility(new ConditionalTriggeredAbility(ability,
condition,
this.addAbility(new ConditionalTriggeredAbility(ability,
condition,
"At the beginning of your upkeep, if you control no permanents other than {this} and have no cards in hand, you win the game"));
}
@ -74,6 +75,7 @@ public class BarrenGlory extends CardImpl {
class BarrenGloryTriggeredAbility extends TriggeredAbilityImpl {
private static final FilterPermanent filter = new FilterPermanent();
static {
filter.add(new AnotherPredicate());
}

View file

@ -29,6 +29,7 @@ package mage.cards.b;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.effects.common.WinGameSourceControllerEffect;
@ -62,7 +63,7 @@ public class Biovisionary extends CardImpl {
this.addAbility(new BeginningOfEndStepTriggeredAbility(
Zone.BATTLEFIELD, new WinGameSourceControllerEffect(),
TargetController.ANY,
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 3),
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 3),
false));
}

View file

@ -28,6 +28,8 @@
package mage.cards.b;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -52,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, PermanentsOnTheBattlefieldCondition.CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.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

@ -30,10 +30,10 @@ package mage.cards.b;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.CreateTokenEffect;

View file

@ -28,6 +28,8 @@
package mage.cards.b;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -51,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(), PermanentsOnTheBattlefieldCondition.CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.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,8 @@
package mage.cards.b;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -51,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(), PermanentsOnTheBattlefieldCondition.CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.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

@ -30,10 +30,10 @@ package mage.cards.b;
import java.util.UUID;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.CountType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;

View file

@ -28,6 +28,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.common.CardsInHandCondition;
@ -62,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(CardsInHandCondition.CountType.EQUAL_TO, 0);
CardsInHandCondition contition = new CardsInHandCondition(CountType.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

@ -28,6 +28,8 @@
package mage.cards.c;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -60,7 +62,7 @@ public class CanopyVista extends CardImpl {
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, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 1));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.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

@ -28,6 +28,8 @@
package mage.cards.c;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.MageInt;
import mage.constants.Duration;
@ -62,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(), PermanentHasCounterCondition.CountType.MORE_THAN), rule);
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), new PermanentHasCounterCondition(CounterType.LEVEL, 2, new FilterControlledCreaturePermanent(), CountType.MORE_THAN), rule);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
}

View file

@ -30,6 +30,7 @@ package mage.cards.c;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.effects.OneShotEffect;
@ -99,7 +100,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, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0).apply(game, source)) {
if (new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0).apply(game, source)) {
controller.drawCards(1, game);
}
return true;

View file

@ -28,6 +28,8 @@
package mage.cards.c;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -60,7 +62,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, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 1));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.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.CountType;
import mage.constants.CardType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
@ -59,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, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0));
String abilityText = "tap it unless you control a Mountain or a Plains";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
this.addAbility(new RedManaAbility());

View file

@ -28,6 +28,8 @@
package mage.cards.c;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -51,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(), PermanentsOnTheBattlefieldCondition.CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.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,8 @@
package mage.cards.c;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -53,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, PermanentsOnTheBattlefieldCondition.CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.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

@ -30,6 +30,7 @@ package mage.cards.c;
import java.util.UUID;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.CountType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -70,7 +71,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, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0);
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0);
Effect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), condition, rule);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
}

View file

@ -29,6 +29,8 @@
package mage.cards.d;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
@ -59,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, PermanentsOnTheBattlefieldCondition.CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.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 java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.CardsInHandCondition;
@ -58,7 +59,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(CardsInHandCondition.CountType.MORE_THAN,6);
Condition condition = new CardsInHandCondition(CountType.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,10 +29,10 @@ package mage.cards.d;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.LoseLifeOpponentsEffect;
import mage.abilities.keyword.DevoidAbility;

View file

@ -29,6 +29,7 @@ package mage.cards.d;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.MageInt;
import mage.abilities.TriggeredAbility;
@ -65,7 +66,7 @@ public class DragonmasterOutcast extends CardImpl {
// At the beginning of your upkeep, if you control six or more lands, create a 5/5 red Dragon creature token with flying.
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new CreateTokenEffect(new DragonToken2(), 1), TargetController.YOU, false);
this.addAbility(new ConditionalTriggeredAbility(ability, new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 5), "At the beginning of your upkeep, if you control six or more lands, create a 5/5 red Dragon creature token with flying."));
this.addAbility(new ConditionalTriggeredAbility(ability, new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 5), "At the beginning of your upkeep, if you control six or more lands, create a 5/5 red Dragon creature token with flying."));
}
public DragonmasterOutcast(final DragonmasterOutcast card) {

View file

@ -29,6 +29,8 @@
package mage.cards.d;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
@ -59,7 +61,7 @@ public class DragonskullSummit extends CardImpl {
public DragonskullSummit(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0));
String abilityText = "tapped unless you control a Swamp or a Mountain";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
this.addAbility(new BlackManaAbility());

View file

@ -29,9 +29,9 @@ package mage.cards.d;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalRestrictionEffect;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect;

View file

@ -29,6 +29,7 @@ package mage.cards.d;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -67,7 +68,7 @@ public class DrillSkimmer extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// Drill-Skimmer has shroud as long as you control another artifact creature.
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0);
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinuousEffect(new GainAbilitySourceEffect(ShroudAbility.getInstance(), Duration.WhileOnBattlefield),
condition, "{this} has shroud as long as you control another artifact creature.")));

View file

@ -29,6 +29,8 @@
package mage.cards.d;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
@ -59,7 +61,7 @@ public class DrownedCatacomb extends CardImpl {
public DrownedCatacomb(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0));
String abilityText = "tap it unless you control a Island or a Swamp";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
this.addAbility(new BlackManaAbility());

View file

@ -30,9 +30,9 @@ package mage.cards.d;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;

View file

@ -29,6 +29,7 @@ package mage.cards.d;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.effects.common.ReturnToHandSourceEffect;
@ -68,7 +69,7 @@ public class DustStalker extends CardImpl {
this.addAbility(HasteAbility.getInstance());
// At the beginning of each end step, if you control no other colorless creatures, return Dust Stalker to its owner's hand.
this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(), TargetController.ANY,
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.EQUAL_TO, 0), false));
new PermanentsOnTheBattlefieldCondition(filter, CountType.EQUAL_TO, 0), false));
}
public DustStalker(final DustStalker card) {

View file

@ -29,10 +29,10 @@ package mage.cards.d;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.cards.CardImpl;

View file

@ -28,6 +28,8 @@
package mage.cards.e;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.decorator.ConditionalOneShotEffect;
@ -55,7 +57,7 @@ public class EdgeOfAutumn extends CardImpl {
// If you control four or fewer lands, search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(new FilterBasicLandCard()), true),
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.FEWER_THAN, 5),
new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 5),
"If you control four or fewer lands, search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library."));
// Cycling-Sacrifice a land.

View file

@ -28,6 +28,8 @@
package mage.cards.e;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalTriggeredAbility;
@ -52,7 +54,7 @@ public class EpicStruggle extends CardImpl {
// At the beginning of your upkeep, if you control twenty or more creatures, you win the game.
this.addAbility(new ConditionalTriggeredAbility(
new BeginningOfUpkeepTriggeredAbility(new WinGameSourceControllerEffect(), TargetController.YOU, false),
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 19),
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 19),
"At the beginning of your upkeep, if you control twenty or more creatures, you win the game."));
}

View file

@ -29,6 +29,7 @@ package mage.cards.e;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -73,7 +74,7 @@ public class ErebossTitan extends CardImpl {
// Erebos's Titan has indestructible as long as no opponent controls a creature.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinuousEffect(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield),
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.EQUAL_TO, 0, false),
new PermanentsOnTheBattlefieldCondition(filter, CountType.EQUAL_TO, 0, false),
"As long as your opponents control no creatures, {this} has indestructible")));
// Whenever a creature leaves an opponent's graveyard, you may discard a card. If you do, return Erebos's Titan from your graveyard to your hand.

View file

@ -30,6 +30,7 @@ package mage.cards.f;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalTriggeredAbility;
@ -71,7 +72,7 @@ public class FaerieMiscreant extends CardImpl {
// When Faerie Miscreant enters the battlefield, if you control another creature named Faerie Miscreant, draw a card.
Ability ability = new ConditionalTriggeredAbility(
new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1), false),
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0),
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0),
"When Faerie Miscreant enters the battlefield, if you control another creature named Faerie Miscreant, draw a card");
this.addAbility(ability);
}

View file

@ -29,6 +29,8 @@
package mage.cards.g;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
@ -59,7 +61,7 @@ public class GlacialFortress extends CardImpl {
public GlacialFortress(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0));
String abilityText = "tap it unless you control a Plains or an Island";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
this.addAbility(new BlueManaAbility());

View file

@ -29,6 +29,7 @@ package mage.cards.g;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.OnEventTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -52,7 +53,7 @@ public class Glimmervoid extends CardImpl {
// At the beginning of the end step, if you control no artifacts, sacrifice Glimmervoid.
TriggeredAbility triggered = new OnEventTriggeredAbility(GameEvent.EventType.END_TURN_STEP_PRE, "beginning of the end step", true, new SacrificeSourceEffect());
this.addAbility(new ConditionalTriggeredAbility(triggered, new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), PermanentsOnTheBattlefieldCondition.CountType.FEWER_THAN, 1),
this.addAbility(new ConditionalTriggeredAbility(triggered, new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), CountType.FEWER_THAN, 1),
"At the beginning of the end step, if you control no artifacts, sacrifice {this}."));
// {tap}: Add one mana of any color to your mana pool.
this.addAbility(new AnyColorManaAbility());

View file

@ -29,6 +29,7 @@ package mage.cards.g;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.MageInt;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
@ -69,7 +70,7 @@ public class GutwrencherOni extends CardImpl {
// At the beginning of your upkeep, discard a card if you don't control an Ogre.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new ConditionalOneShotEffect(
new DiscardControllerEffect(1),
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.EQUAL_TO, 0),
new PermanentsOnTheBattlefieldCondition(filter, CountType.EQUAL_TO, 0),
"discard a card if you don't control an Ogre"), TargetController.YOU, false));
}

View file

@ -30,9 +30,9 @@ package mage.cards.g;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;

View file

@ -30,9 +30,9 @@ package mage.cards.h;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.PutOnLibraryTargetEffect;
import mage.abilities.effects.common.discard.DiscardTargetEffect;

View file

@ -29,6 +29,7 @@ package mage.cards.h;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalTriggeredAbility;
@ -63,7 +64,7 @@ public class HanweirMilitiaCaptain extends CardImpl {
this.addAbility(new TransformAbility());
this.addAbility(new ConditionalTriggeredAbility(
new BeginningOfUpkeepTriggeredAbility(new TransformSourceEffect(true), TargetController.YOU, false),
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 3),
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 3),
"At the beginning of your upkeep, if you control four or more creatures, transform {this}"));
}

View file

@ -30,6 +30,7 @@ package mage.cards.h;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -63,7 +64,7 @@ public class HauntedPlateMail extends CardImpl {
Zone.BATTLEFIELD,
new BecomesCreatureSourceEffect(new HauntedPlateMailToken(),"", Duration.EndOfTurn),
new ManaCostsImpl("{0}"),
new PermanentsOnTheBattlefieldCondition(new FilterCreaturePermanent(), PermanentsOnTheBattlefieldCondition.CountType.EQUAL_TO, 0),
new PermanentsOnTheBattlefieldCondition(new FilterCreaturePermanent(), CountType.EQUAL_TO, 0),
"{0}: Until end of turn, Haunted Plate Mail becomes a 4/4 Spirit artifact creature that's no longer an Equipment. Activate this ability only if you control no creatures.");
this.addAbility(ability);
// Equip {4}

View file

@ -30,9 +30,9 @@ package mage.cards.h;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.ReturnToHandTargetEffect;

View file

@ -31,6 +31,7 @@ import java.util.List;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
@ -82,7 +83,7 @@ public class HellkiteTyrant extends CardImpl {
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new WinGameSourceControllerEffect(), TargetController.YOU, false);
this.addAbility(new ConditionalTriggeredAbility(
ability,
new PermanentsOnTheBattlefieldCondition(new FilterArtifactPermanent(), PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 19),
new PermanentsOnTheBattlefieldCondition(new FilterArtifactPermanent(), CountType.MORE_THAN, 19),
"At the beginning of your upkeep, if you control twenty or more artifacts, you win the game."));
}

View file

@ -28,6 +28,7 @@
package mage.cards.h;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
@ -59,7 +60,7 @@ public class HinterlandHarbor extends CardImpl {
public HinterlandHarbor(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0));
String abilityText = "tapped unless you control a Forest or an Island";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
this.addAbility(new GreenManaAbility());

View file

@ -30,6 +30,7 @@ package mage.cards.h;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbility;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
@ -65,7 +66,7 @@ public class HollowbornBarghest extends CardImpl {
this.toughness = new MageInt(6);
// At the beginning of your upkeep, if you have no cards in hand, each opponent loses 2 life.
Condition condition = new CardsInHandCondition(CardsInHandCondition.CountType.EQUAL_TO, 0);
Condition condition = new CardsInHandCondition(CountType.EQUAL_TO, 0);
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new HollowbornBarghestEffect(), TargetController.YOU, false);
this.addAbility(new ConditionalTriggeredAbility(ability, condition, rule));

View file

@ -29,6 +29,7 @@ package mage.cards.h;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.condition.common.CardsInHandCondition;
import mage.abilities.costs.common.TapSourceCost;
@ -61,7 +62,7 @@ public class HowltoothHollow extends CardImpl {
Zone.BATTLEFIELD,
new HideawayPlayEffect(),
new ManaCostsImpl("{B}"),
new CardsInHandCondition(CardsInHandCondition.CountType.EQUAL_TO, 0, null, TargetController.ANY));
new CardsInHandCondition(CountType.EQUAL_TO, 0, null, TargetController.ANY));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}

View file

@ -29,6 +29,7 @@ package mage.cards.i;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.common.CardsInHandCondition;
@ -53,7 +54,7 @@ public class ImaginaryPet extends CardImpl {
// At the beginning of your upkeep, if you have a card in hand, return Imaginary Pet to its owner's hand.
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new ReturnToHandSourceEffect(true), TargetController.YOU, false);
this.addAbility(new ConditionalTriggeredAbility(ability, new CardsInHandCondition(CardsInHandCondition.CountType.MORE_THAN, 0),
this.addAbility(new ConditionalTriggeredAbility(ability, new CardsInHandCondition(CountType.MORE_THAN, 0),
"At the beginning of your upkeep, if you have a card in hand, return {this} to its owner's hand."));
}

View file

@ -28,6 +28,8 @@
package mage.cards.i;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -51,7 +53,7 @@ public class InspiringVantage extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
// Inspiring Vantage enters the battlefield tapped unless you control two or fewer other lands.
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), PermanentsOnTheBattlefieldCondition.CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.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.i;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
@ -59,7 +60,7 @@ public class IsolatedChapel extends CardImpl {
public IsolatedChapel(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0));
String abilityText = "tap it unless you control a Plains or a Swamp";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
this.addAbility(new WhiteManaAbility());

View file

@ -28,6 +28,8 @@
package mage.cards.i;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.common.CardsInHandCondition;
@ -50,7 +52,7 @@ public class IvoryCraneNetsuke extends CardImpl {
// At the beginning of your upkeep, if you have seven or more cards in hand, you gain 4 life.
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new GainLifeEffect(4), TargetController.YOU, false);
CardsInHandCondition condition = new CardsInHandCondition(CardsInHandCondition.CountType.MORE_THAN, 6);
CardsInHandCondition condition = new CardsInHandCondition(CountType.MORE_THAN, 6);
this.addAbility(new ConditionalTriggeredAbility(ability, condition, "At the beginning of your upkeep, if you have seven or more cards in hand, you gain 4 life."));
}

View file

@ -28,13 +28,14 @@
package mage.cards.j;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.condition.common.CardsInHandCondition;
import mage.abilities.condition.common.CardsInHandCondition.CountType;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.decorator.ConditionalOneShotEffect;

View file

@ -30,9 +30,9 @@ package mage.cards.k;
import java.util.UUID;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.CountType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.InvertCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;

View file

@ -30,6 +30,7 @@ package mage.cards.k;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
@ -70,7 +71,7 @@ public class KiyomaroFirstToStand extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(xValue, Duration.EndOfGame)));
// As long as you have four or more cards in hand, Kiyomaro has vigilance.
Condition condition = new CardsInHandCondition(CardsInHandCondition.CountType.MORE_THAN,3);
Condition condition = new CardsInHandCondition(CountType.MORE_THAN,3);
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
new GainAbilitySourceEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield), condition,
"As long as you have four or more cards in hand, {this} has vigilance"));
@ -79,7 +80,7 @@ public class KiyomaroFirstToStand extends CardImpl {
// Whenever Kiyomaro deals damage, if you have seven or more cards in hand, you gain 7 life.
this.addAbility(new ConditionalTriggeredAbility(
new KiyomaroFirstToStandDealsDamageTriggeredAbility(),
new CardsInHandCondition(CardsInHandCondition.CountType.MORE_THAN, 6),
new CardsInHandCondition(CountType.MORE_THAN, 6),
"Whenever {this} deals damage, if you have seven or more cards in hand, you gain 7 life"
));
}

View file

@ -32,6 +32,7 @@ import java.util.Set;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.condition.common.CardsInHandCondition;
import mage.abilities.costs.Cost;
@ -74,7 +75,7 @@ public class KozilekTheGreatDistortion extends CardImpl {
// When you cast Kozilek, the Great Distortion, if you have fewer than seven cards in hand, draw cards equal to the difference.
this.addAbility(new ConditionalTriggeredAbility(
new CastSourceTriggeredAbility(new KozilekDrawEffect(), false),
new CardsInHandCondition(CardsInHandCondition.CountType.FEWER_THAN, 7),
new CardsInHandCondition(CountType.FEWER_THAN, 7),
"When you cast {this}, if you have fewer than seven cards in hand, draw cards equal to the difference."));
// Menace
this.addAbility(new MenaceAbility());

View file

@ -28,8 +28,10 @@
package mage.cards.l;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalTriggeredAbility;
@ -40,13 +42,12 @@ import mage.constants.CardType;
import mage.filter.common.FilterEnchantmentPermanent;
/**
*
* @author LevelX2
*/
public class LagonnaBandElder extends CardImpl {
public LagonnaBandElder(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}");
this.subtype.add("Centaur");
this.subtype.add("Advisor");
@ -56,7 +57,7 @@ public class LagonnaBandElder extends CardImpl {
// When Lagonna-Band Elder enters the battlefield, if you control an enchantment, you gain 3 life.
Ability ability = new ConditionalTriggeredAbility(
new EntersBattlefieldTriggeredAbility(new GainLifeEffect(3), false),
new PermanentsOnTheBattlefieldCondition(new FilterEnchantmentPermanent(), PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0),
new PermanentsOnTheBattlefieldCondition(new FilterEnchantmentPermanent(), CountType.MORE_THAN, 0),
"When Lagonna-Band Elder enters the battlefield, if you control an enchantment, you gain 3 life");
this.addAbility(ability);
}

View file

@ -29,10 +29,10 @@ package mage.cards.l;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.DrawDiscardControllerEffect;
import mage.cards.CardImpl;

View file

@ -31,10 +31,10 @@ import java.util.UUID;
import mage.Mana;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;

View file

@ -28,6 +28,8 @@
package mage.cards.l;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.condition.common.CardsInHandCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.decorator.ConditionalActivatedAbility;
@ -39,13 +41,12 @@ import mage.constants.CardType;
import mage.constants.Zone;
/**
*
* @author LevelX2
*/
public class LibraryOfAlexandria extends CardImpl {
public LibraryOfAlexandria(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
// {tap}: Add {C} to your mana pool.
this.addAbility(new ColorlessManaAbility());
@ -54,7 +55,7 @@ public class LibraryOfAlexandria extends CardImpl {
Zone.BATTLEFIELD,
new DrawCardSourceControllerEffect(1),
new TapSourceCost(),
new CardsInHandCondition(CardsInHandCondition.CountType.EQUAL_TO, 7),
new CardsInHandCondition(CountType.EQUAL_TO, 7),
""));
}

View file

@ -29,6 +29,7 @@ package mage.cards.l;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -62,7 +63,7 @@ private static final FilterCreaturePermanent filter = new FilterCreaturePermanen
// Whenever a creature dies, if another creature is on the battlefield, return the first card to the battlefield under its owner's control at the beginning of the next end step.
Ability ability = new ConditionalTriggeredAbility(
new DiesCreatureTriggeredAbility( Zone.BATTLEFIELD, new LifelineEffect(), false, filter, true),
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0, false),
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0, false),
"Whenever a creature dies, if another creature is on the battlefield, return the first card to the battlefield under its owner's control at the beginning of the next end step.");
this.addAbility(ability);
}

View file

@ -30,9 +30,9 @@ package mage.cards.m;
import java.util.UUID;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.decorator.ConditionalActivatedAbility;

View file

@ -30,9 +30,9 @@ package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.keyword.ForestwalkAbility;
@ -69,7 +69,7 @@ public class MagnigothTreefolk extends CardImpl {
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinuousEffect(
new GainAbilitySourceEffect(new PlainswalkAbility()),
new PermanentsOnTheBattlefieldCondition(filterPlains, CountType.MORE_THAN, 0, true),
new PermanentsOnTheBattlefieldCondition(filterPlains, CountType.MORE_THAN, 0, true),
"Domain — For each basic land type among lands you control, {this} has landwalk of that type."));
ability.addEffect(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(new IslandwalkAbility(), Duration.WhileOnBattlefield, false, true),

View file

@ -29,6 +29,7 @@ package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.condition.common.CardsInHandCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.decorator.ConditionalActivatedAbility;
@ -60,7 +61,7 @@ public class MagusOfTheLibrary extends CardImpl {
Zone.BATTLEFIELD,
new DrawCardSourceControllerEffect(1),
new TapSourceCost(),
new CardsInHandCondition(CardsInHandCondition.CountType.EQUAL_TO, 7),
new CardsInHandCondition(CountType.EQUAL_TO, 7),
""));
}

View file

@ -29,6 +29,7 @@ package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalRequirementEffect;
import mage.abilities.effects.Effect;
@ -62,7 +63,7 @@ public class MaraudingMaulhorn extends CardImpl {
// Marauding Maulhorn attacks each combat if able unless you control a creature named Advocate of the Beast.
Effect effect = new ConditionalRequirementEffect(
new AttacksIfAbleSourceEffect(Duration.WhileOnBattlefield, true),
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.FEWER_THAN, 1));
new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 1));
effect.setText("{this} attacks each combat if able unless you control a creature named Advocate of the Beast");
}

View file

@ -30,6 +30,7 @@ package mage.cards.m;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
@ -75,7 +76,7 @@ public class MarkOfTheOni extends CardImpl {
TargetController.ANY,
new PermanentsOnTheBattlefieldCondition(
new FilterControlledCreaturePermanent("Demon", "if you control no Demons"),
PermanentsOnTheBattlefieldCondition.CountType.FEWER_THAN, 1),
CountType.FEWER_THAN, 1),
false));
}

View file

@ -30,6 +30,7 @@ package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.costs.common.ExileSourceCost;
@ -77,7 +78,7 @@ public class MetallurgicSummonings extends CardImpl {
// {3}{U}{U}, Exile Metallurgic Summons: Return all instant and sorcery cards from your graveyard to your hand. Activate this ability only if you control six or more artifacts.
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
new MetallurgicSummoningsReturnEffect(), new ManaCostsImpl("{3}{U}{U}"),
new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 5),
new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), CountType.MORE_THAN, 5),
"{3}{U}{U}, Exile {this}: Return all instant and sorcery cards from your graveyard to your hand."
+ " Activate this ability only if you control six or more artifacts.");
ability.addCost(new ExileSourceCost());

View file

@ -30,10 +30,10 @@ package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.CountType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;

View file

@ -28,6 +28,8 @@
package mage.cards.m;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
@ -74,7 +76,7 @@ public class MistveilPlains extends CardImpl {
Zone.BATTLEFIELD,
new MistveilPlainsGraveyardToLibraryEffect(),
new ManaCostsImpl("{W}"),
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 1));
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1));
ability.addTarget(new TargetCardInYourGraveyard());
ability.addCost(new TapSourceCost());
this.addAbility(ability);

View file

@ -30,9 +30,9 @@ package mage.cards.m;
import java.util.UUID;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.decorator.ConditionalActivatedAbility;

View file

@ -30,6 +30,7 @@ package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.CountType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -73,7 +74,7 @@ public class MudbrawlerCohort extends CardImpl {
// Haste
this.addAbility(HasteAbility.getInstance());
// Mudbrawler Cohort gets +1/+1 as long as you control another red creature.
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0);
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.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,8 @@
package mage.cards.n;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.MageInt;
import mage.abilities.Ability;
@ -64,7 +66,7 @@ public class NantukoShaman extends CardImpl {
// When Nantuko Shaman enters the battlefield, if you control no tapped lands, draw a card.
Ability ability = new ConditionalTriggeredAbility(
new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1)),
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.EQUAL_TO, 0),
new PermanentsOnTheBattlefieldCondition(filter, CountType.EQUAL_TO, 0),
"When {this} enters the battlefield, if you control no tapped lands, draw a card");
this.addAbility(ability);

View file

@ -30,6 +30,7 @@ package mage.cards.n;
import java.util.UUID;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.DelayedTriggeredAbility;
import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -71,7 +72,7 @@ public class NemesisTrap extends CardImpl {
this.subtype.add("Trap");
// If a white creature is attacking, you may pay {B}{B} rather than pay Nemesis Trap's mana cost.
this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl("{B}{B}"), new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0, false)));
this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl("{B}{B}"), new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0, false)));
// Exile target attacking creature. Create a token that's a copy of that creature. Exile it at the beginning of the next end step.
this.getSpellAbility().addEffect(new NemesisTrapEffect());

View file

@ -28,6 +28,8 @@
package mage.cards.n;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.TargetController;
@ -72,7 +74,7 @@ public class NezumiShortfang extends CardImpl {
ability.addTarget(new TargetOpponent());
ability.addEffect(new ConditionalOneShotEffect(
new FlipSourceEffect(new StabwhiskerTheOdious()),
new CardsInTargetOpponentHandCondition(CardsInTargetOpponentHandCondition.CountType.FEWER_THAN, 1),
new CardsInTargetOpponentHandCondition(CountType.FEWER_THAN, 1),
"Then if that player has no cards in hand, flip {this}"));
this.addAbility(ability);
}
@ -137,8 +139,6 @@ class StabwhiskerLoseLifeEffect extends OneShotEffect {
class CardsInTargetOpponentHandCondition implements Condition {
public static enum CountType { MORE_THAN, FEWER_THAN, EQUAL_TO }
private Condition condition;
private CountType type;
private int count;

View file

@ -29,10 +29,10 @@ package mage.cards.n;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.ExileAndReturnTransformedSourceEffect;
import mage.abilities.effects.common.ExileAndReturnTransformedSourceEffect.Gender;
@ -77,7 +77,7 @@ public class NissaVastwoodSeer extends CardImpl {
this.addAbility(new TransformAbility());
this.addAbility(new ConditionalTriggeredAbility(
new EntersBattlefieldControlledTriggeredAbility(new ExileAndReturnTransformedSourceEffect(Gender.FEMAL), new FilterLandPermanent()),
new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.MORE_THAN, 6, true),
new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.MORE_THAN, 6, true),
"Whenever a land enters the battlefield under your control, if you control seven or more lands, exile {this}, then return her to the battlefield transformed under her owner's control."));
}

View file

@ -30,9 +30,9 @@ package mage.cards.n;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.TapTargetEffect;

View file

@ -29,6 +29,8 @@
package mage.cards.o;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
@ -64,7 +66,7 @@ public class OpalLakeGatekeepers extends CardImpl {
// When Opal Lake Gatekeepers enters the battlefield, if you control two or more Gates, you may draw a card.
this.addAbility(new ConditionalTriggeredAbility(
new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1)),
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 1),
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1),
"When Opal Lake Gatekeepers enters the battlefield, if you control two or more Gates, you may draw a card."));
}

View file

@ -29,6 +29,7 @@ package mage.cards.o;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalTriggeredAbility;
@ -59,7 +60,7 @@ public class Ophiomancer extends CardImpl {
// At the beginning of each upkeep, if you control no Snakes, create a 1/1 black Snake creature token with deathtouch.
this.addAbility(new ConditionalTriggeredAbility(
new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new OphiomancerSnakeToken()), TargetController.ANY, false, false),
new PermanentsOnTheBattlefieldCondition(new FilterCreaturePermanent("Snake", "no Snakes"), PermanentsOnTheBattlefieldCondition.CountType.EQUAL_TO, 0),
new PermanentsOnTheBattlefieldCondition(new FilterCreaturePermanent("Snake", "no Snakes"), CountType.EQUAL_TO, 0),
"At the beginning of each upkeep, if you control no Snakes, create a 1/1 black Snake creature token with deathtouch."));
}

View file

@ -30,6 +30,7 @@
package mage.cards.o;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Zone;
@ -60,7 +61,7 @@ import java.util.UUID;
public class OrochiEggwatcher extends CardImpl {
public OrochiEggwatcher(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
this.subtype.add("Snake");
this.subtype.add("Shaman");
@ -71,10 +72,10 @@ public class OrochiEggwatcher extends CardImpl {
// {2}{G}, {T}: Create a 1/1 green Snake creature token. If you control ten or more creatures, flip Orochi Eggwatcher.
Ability ability;
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SnakeToken()),new ManaCostsImpl("{2}{G}"));
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SnakeToken()), new ManaCostsImpl("{2}{G}"));
ability.addCost(new TapSourceCost());
ability.addEffect(new ConditionalOneShotEffect(new FlipSourceEffect(new ShidakoBroodmistress()),
new PermanentsOnTheBattlefieldCondition(new FilterControlledCreaturePermanent(),PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 9),"If you control ten or more creatures, flip {this}"));
new PermanentsOnTheBattlefieldCondition(new FilterControlledCreaturePermanent(), CountType.MORE_THAN, 9), "If you control ten or more creatures, flip {this}"));
this.addAbility(ability);
}
@ -103,7 +104,7 @@ class ShidakoBroodmistress extends Token {
Ability ability;
ability = new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new BoostTargetEffect(3,3, Duration.EndOfTurn),
new BoostTargetEffect(3, 3, Duration.EndOfTurn),
new ManaCostsImpl("{G}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent()));
ability.addTarget(new TargetCreaturePermanent());

View file

@ -28,6 +28,8 @@
package mage.cards.p;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.common.CardsInHandCondition;
@ -51,7 +53,7 @@ public class PaupersCage extends CardImpl {
// At the beginning of each opponent's upkeep, if that player has two or fewer cards in hand, Paupers' Cage deals 2 damage to him or her.
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD,
new DamageTargetEffect(2), TargetController.OPPONENT, false, true);
CardsInHandCondition condition = new CardsInHandCondition(CardsInHandCondition.CountType.FEWER_THAN, 3);
CardsInHandCondition condition = new CardsInHandCondition(CountType.FEWER_THAN, 3);
this.addAbility(new ConditionalTriggeredAbility(ability, condition, "At the beginning of each opponent's upkeep, if that player has two or fewer cards in hand, {this} deals 2 damage to him or her."));
}

View file

@ -28,6 +28,8 @@
package mage.cards.p;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -60,7 +62,7 @@ public class Peppersmoke extends CardImpl {
this.getSpellAbility().addEffect(new BoostTargetEffect(-1,-1,Duration.EndOfTurn));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DrawCardSourceControllerEffect(1),
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0),
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0),
"If you control a Faerie, draw a card"));
}

View file

@ -28,6 +28,8 @@
package mage.cards.p;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -60,7 +62,7 @@ public class PrairieStream extends CardImpl {
this.subtype.add("Island");
// Prairie Stream enters the battlefield tapped unless you control two or more basic lands.
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 1));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.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 WhiteManaAbility());

View file

@ -28,11 +28,12 @@
package mage.cards.r;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.common.AttacksEachTurnStaticAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
@ -45,9 +46,7 @@ import mage.filter.common.FilterControlledArtifactPermanent;
import mage.filter.predicate.permanent.AnotherPredicate;
/**
*
* @author LoneFox
*/
public class Ramroller extends CardImpl {
@ -58,7 +57,7 @@ public class Ramroller extends CardImpl {
}
public Ramroller(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{3}");
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}");
this.subtype.add("Juggernaut");
this.power = new MageInt(2);
this.toughness = new MageInt(3);
@ -68,7 +67,7 @@ public class Ramroller extends CardImpl {
// Ramroller gets +2/+0 as long as you control another artifact.
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0);
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(2, 0,
Duration.WhileOnBattlefield), condition, "{this} gets +2/+0 as long as you control another artifact.");
Duration.WhileOnBattlefield), condition, "{this} gets +2/+0 as long as you control another artifact.");
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
}

View file

@ -28,6 +28,8 @@
package mage.cards.r;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -52,7 +54,7 @@ public class RazorvergeThicket extends CardImpl {
public RazorvergeThicket(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 3));
String abilityText = "tap it unless you control fewer than 3 lands";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));

View file

@ -29,10 +29,10 @@ package mage.cards.r;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.InvertCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.abilities.keyword.DevoidAbility;

View file

@ -29,6 +29,7 @@ package mage.cards.r;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalRequirementEffect;
@ -67,7 +68,7 @@ public class RecklessCohort extends CardImpl {
// Reckless Cohort attacks each combat if able unless you control another Ally.
Effect effect = new ConditionalRequirementEffect(
new AttacksIfAbleSourceEffect(Duration.WhileOnBattlefield, true),
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.FEWER_THAN, 1));
new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 1));
effect.setText("{this} attacks each combat if able unless you control another Ally");
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
}

View file

@ -28,6 +28,8 @@
package mage.cards.r;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
@ -52,7 +54,7 @@ public class ResourcefulReturn extends CardImpl {
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DrawCardSourceControllerEffect(1),
new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0),
new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), CountType.MORE_THAN, 0),
"If you control an artifact, draw a card"));
}

View file

@ -30,9 +30,9 @@ package mage.cards.r;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.CounterTargetEffect;

View file

@ -30,9 +30,9 @@ package mage.cards.r;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.MayTapOrUntapTargetEffect;

View file

@ -28,9 +28,10 @@
package mage.cards.r;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.costs.common.GainLifeOpponentCost;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.OneShotEffect;
@ -51,13 +52,12 @@ import mage.players.Player;
import mage.target.targetpointer.FixedTarget;
/**
*
* @author LevelX2
*/
public class RoarOfJukai extends CardImpl {
public RoarOfJukai(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{G}");
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{G}");
this.subtype.add("Arcane");
@ -112,14 +112,14 @@ class RoarOfJukaiEffect extends OneShotEffect {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
if (new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0).apply(game, source)) {
for(Permanent permanent : game.getBattlefield().getActivePermanents(filterBlocked, source.getControllerId(), source.getSourceId(), game)) {
ContinuousEffect effect = new BoostTargetEffect(2,2, Duration.EndOfTurn);
for (Permanent permanent : game.getBattlefield().getActivePermanents(filterBlocked, source.getControllerId(), source.getSourceId(), game)) {
ContinuousEffect effect = new BoostTargetEffect(2, 2, Duration.EndOfTurn);
effect.setTargetPointer(new FixedTarget(permanent.getId()));
game.addEffect(effect, source);
}
}
return true;
}
}
return false;
}
}

View file

@ -29,6 +29,8 @@
package mage.cards.r;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
@ -59,7 +61,7 @@ public class RootboundCrag extends CardImpl {
public RootboundCrag(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0));
String abilityText = "tap it unless you control a Mountain or a Forest";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
this.addAbility(new RedManaAbility());

View file

@ -28,6 +28,8 @@
package mage.cards.r;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.DestroyTargetEffect;
@ -65,7 +67,7 @@ public class Rootgrapple extends CardImpl {
// If you control a Treefolk, draw a card.
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DrawCardSourceControllerEffect(1),
new PermanentsOnTheBattlefieldCondition(filterTreefolk, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0),
new PermanentsOnTheBattlefieldCondition(filterTreefolk, CountType.MORE_THAN, 0),
"If you control a Treefolk, draw a card"));
}

View file

@ -30,9 +30,9 @@ package mage.cards.s;
import java.util.UUID;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.decorator.ConditionalActivatedAbility;

View file

@ -28,6 +28,8 @@
package mage.cards.s;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -57,7 +59,7 @@ public class Sarcomancy extends CardImpl {
// At the beginning of your upkeep, if there are no Zombies on the battlefield, Sarcomancy deals 1 damage to you.
this.addAbility(new ConditionalTriggeredAbility(
new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DamageControllerEffect(1), TargetController.YOU, false),
new PermanentsOnTheBattlefieldCondition(new FilterPermanent("Zombie", "Zombies"), PermanentsOnTheBattlefieldCondition.CountType.EQUAL_TO, 0, false),
new PermanentsOnTheBattlefieldCondition(new FilterPermanent("Zombie", "Zombies"), CountType.EQUAL_TO, 0, false),
"At the beginning of your upkeep, if there are no Zombies on the battlefield, {this} deals 1 damage to you."));
}

View file

@ -28,8 +28,9 @@
package mage.cards.s;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition.CountType;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.DamageControllerEffect;
import mage.abilities.effects.common.DamageTargetEffect;

View file

@ -29,6 +29,8 @@
package mage.cards.s;
import java.util.UUID;
import mage.abilities.CountType;
import mage.constants.CardType;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
@ -64,7 +66,7 @@ public class SaruliGatekeepers extends CardImpl {
// When Saruli Gatekeepers enters the battlefield, if you control two or more Gates, gain 7 life.
this.addAbility(new ConditionalTriggeredAbility(
new EntersBattlefieldTriggeredAbility(new GainLifeEffect(7)),
new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 1),
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1),
"When {this} enters the battlefield, if you control two or more Gates, gain 7 life."));
}

View file

@ -28,6 +28,8 @@
package mage.cards.s;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.common.CardsInHandCondition;
@ -41,18 +43,17 @@ import mage.constants.Zone;
import mage.target.common.TargetOpponent;
/**
*
* @author fireshoes
*/
public class ScaldingTongs extends CardImpl {
public ScaldingTongs(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}");
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}");
// At the beginning of your upkeep, if you have three or fewer cards in hand, Scalding Tongs deals 1 damage to target opponent.
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), TargetController.YOU, false);
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), TargetController.YOU, false);
ability.addTarget(new TargetOpponent());
CardsInHandCondition condition = new CardsInHandCondition(CardsInHandCondition.CountType.FEWER_THAN, 4);
CardsInHandCondition condition = new CardsInHandCondition(CountType.FEWER_THAN, 4);
this.addAbility(new ConditionalTriggeredAbility(ability, condition, "At the beginning of your upkeep, if you have three or fewer cards in hand, {this} deals 1 damage to target opponent."));
}

View file

@ -29,6 +29,7 @@ package mage.cards.s;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.CountType;
import mage.abilities.condition.common.CardsInHandCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
@ -50,7 +51,7 @@ public class ScrollOfOrigins extends CardImpl {
// {2}, {tap}: Draw a card if you have seven or more cards in hand.
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new GenericManaCost(2),
new CardsInHandCondition(CardsInHandCondition.CountType.MORE_THAN, 6),
new CardsInHandCondition(CountType.MORE_THAN, 6),
"Draw a card if you have seven or more cards in hand.");
ability.addCost(new TapSourceCost());
this.addAbility(ability);

View file

@ -28,6 +28,8 @@
package mage.cards.s;
import java.util.UUID;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition;
@ -53,7 +55,7 @@ public class SeachromeCoast extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
// Seachrome Coast enters the battlefield tapped unless you control two or fewer other lands.
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.FEWER_THAN, 3));
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 3));
String abilityText = "tap it unless you control fewer than 3 lands";
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));

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