forked from External/mage
refactor: dedicated condition for threshold (#12570)
* create threshold condition, refactor cards to use it * fix threshold condition * a couple more text fixes --------- Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
This commit is contained in:
parent
d5187fc7a3
commit
f036bc75fb
89 changed files with 1062 additions and 1276 deletions
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
||||
|
|
@ -17,31 +15,34 @@ import mage.constants.*;
|
|||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33
|
||||
*/
|
||||
public final class AboshansDesire extends CardImpl {
|
||||
|
||||
public AboshansDesire(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{U}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{U}");
|
||||
this.subtype.add(SubType.AURA);
|
||||
|
||||
|
||||
// Enchant creature
|
||||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||
this.getSpellAbility().addTarget(auraTarget);
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
|
||||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature has flying.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield)));
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAttachedEffect(
|
||||
FlyingAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield
|
||||
)));
|
||||
|
||||
// Threshold - Enchanted creature has shroud as long as seven or more cards are in your graveyard.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new GainAbilityAttachedEffect(ShroudAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7), "enchanted creature has shroud as long as seven or more cards are in your graveyard"));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilityAttachedEffect(ShroudAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield),
|
||||
ThresholdCondition.instance, "enchanted creature has shroud as long as seven or more cards are in your graveyard"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private AboshansDesire(final AboshansDesire card) {
|
||||
|
|
|
|||
|
|
@ -1,36 +1,36 @@
|
|||
|
||||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class AnuridBarkripper extends CardImpl {
|
||||
|
||||
public AnuridBarkripper(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{G}");
|
||||
this.subtype.add(SubType.FROG);
|
||||
this.subtype.add(SubType.BEAST);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Threshold - Anurid Barkripper gets +2/+2 as long as seven or more cards are in your graveyard.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +2/+2"));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"as long as seven or more cards are in your graveyard, {this} gets +2/+2"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private AnuridBarkripper(final AnuridBarkripper card) {
|
||||
|
|
|
|||
|
|
@ -1,22 +1,22 @@
|
|||
|
||||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.GainProtectionFromColorAllEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class AvenWarcraft extends CardImpl {
|
||||
|
|
@ -45,7 +45,7 @@ class AvenWarcraftEffect extends OneShotEffect {
|
|||
|
||||
AvenWarcraftEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "<br><br><i>Threshold</i> — If seven or more cards are in your graveyard, "
|
||||
this.staticText = "<br>" + AbilityWord.THRESHOLD.formatWord() + "If seven or more cards are in your graveyard, "
|
||||
+ "choose a color. Creatures you control also gain protection from the chosen color until end of turn";
|
||||
}
|
||||
|
||||
|
|
@ -60,7 +60,7 @@ class AvenWarcraftEffect extends OneShotEffect {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
if (new CardsInControllerGraveyardCondition(7).apply(game, source)) {
|
||||
if (ThresholdCondition.instance.apply(game, source)) {
|
||||
game.addEffect(new GainProtectionFromColorAllEffect(
|
||||
Duration.EndOfTurn,
|
||||
StaticFilters.FILTER_CONTROLLED_CREATURES
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
|
|
@ -15,17 +13,17 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class BarbarianRing extends CardImpl {
|
||||
|
||||
public BarbarianRing(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
|
||||
// {T}: Add {R}. Barbarian Ring deals 1 damage to you.
|
||||
Ability redManaAbility = new RedManaAbility();
|
||||
|
|
@ -33,10 +31,10 @@ public final class BarbarianRing extends CardImpl {
|
|||
this.addAbility(redManaAbility);
|
||||
|
||||
// Threshold - {R}, {T}, Sacrifice Barbarian Ring: Barbarian Ring deals 2 damage to any target. Activate this ability only if seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new DamageTargetEffect(2, "it"),
|
||||
new ManaCostsImpl<>("{R}"),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(
|
||||
new DamageTargetEffect(2, "it"),
|
||||
new ManaCostsImpl<>("{R}"), ThresholdCondition.instance
|
||||
);
|
||||
thresholdAbility.addCost(new TapSourceCost());
|
||||
thresholdAbility.addCost(new SacrificeSourceCost());
|
||||
thresholdAbility.addTarget(new TargetAnyTarget());
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.LimitedTimesPerTurnActivatedAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.Cost;
|
||||
import mage.abilities.costs.CostImpl;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
|
|
@ -18,8 +16,9 @@ import mage.game.Game;
|
|||
import mage.players.Player;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public final class BattlefieldScrounger extends CardImpl {
|
||||
|
|
@ -32,14 +31,10 @@ public final class BattlefieldScrounger extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Threshold - Put three cards from your graveyard on the bottom of your library: Battlefield Scrounger gets +3/+3 until end of turn. Activate this ability only once each turn, and only if seven or more cards are in your graveyard.
|
||||
Ability ability = new LimitedTimesPerTurnActivatedAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new BoostSourceEffect(3, 3, Duration.EndOfTurn),
|
||||
new BattlefieldScroungerCost(),
|
||||
1,
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new LimitedTimesPerTurnActivatedAbility(
|
||||
Zone.BATTLEFIELD, new BoostSourceEffect(3, 3, Duration.EndOfTurn),
|
||||
new BattlefieldScroungerCost(), 1, ThresholdCondition.instance
|
||||
).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private BattlefieldScrounger(final BattlefieldScrounger card) {
|
||||
|
|
@ -69,7 +64,7 @@ class BattlefieldScroungerCost extends CostImpl {
|
|||
Player controller = game.getPlayer(controllerId);
|
||||
if (controller != null) {
|
||||
if (this.getTargets().choose(Outcome.Removal, controllerId, source.getSourceId(), source, game)) {
|
||||
for (UUID targetId: this.getTargets().get(0).getTargets()) {
|
||||
for (UUID targetId : this.getTargets().get(0).getTargets()) {
|
||||
Card card = game.getCard(targetId);
|
||||
if (card == null || game.getState().getZone(targetId) != Zone.GRAVEYARD) {
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
|
|
@ -13,28 +11,36 @@ import mage.abilities.keyword.FirstStrikeAbility;
|
|||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class BattlewiseAven extends CardImpl {
|
||||
|
||||
public BattlewiseAven(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}");
|
||||
this.subtype.add(SubType.BIRD, SubType.SOLDIER);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Battlewise Aven gets +1/+1 and has first strike.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"));
|
||||
ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()),
|
||||
new CardsInControllerGraveyardCondition(7), "and has first strike"));
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"
|
||||
));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()),
|
||||
ThresholdCondition.instance, "and has first strike"
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +1,12 @@
|
|||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.ContinuousEffect;
|
||||
import mage.abilities.effects.common.ExileCardFromOwnGraveyardControllerEffect;
|
||||
import mage.abilities.effects.common.MillCardsControllerEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
|
|
@ -20,14 +16,15 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33, plopman (Immortal Coil)
|
||||
*/
|
||||
public final class Bloodcurdler extends CardImpl {
|
||||
|
||||
public Bloodcurdler(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}");
|
||||
this.subtype.add(SubType.HORROR);
|
||||
|
||||
this.power = new MageInt(1);
|
||||
|
|
@ -37,18 +34,22 @@ public final class Bloodcurdler extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// At the beginning of your upkeep, put the top card of your library into your graveyard.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new MillCardsControllerEffect(1), TargetController.YOU, false));
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
|
||||
new MillCardsControllerEffect(1), TargetController.YOU, false
|
||||
));
|
||||
|
||||
Condition thresholdCondition = new CardsInControllerGraveyardCondition(7);
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Bloodcurdler gets +1/+1 and has "At the beginning of your end step, exile two cards from your graveyard."
|
||||
Ability thresholdAbility = new SimpleStaticAbility(Zone.BATTLEFIELD,
|
||||
new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), thresholdCondition,
|
||||
"If seven or more cards are in your graveyard, {this} gets +1/+1"));
|
||||
ContinuousEffect effect = new GainAbilitySourceEffect(new BeginningOfEndStepTriggeredAbility(new ExileCardFromOwnGraveyardControllerEffect(2), TargetController.YOU, false));
|
||||
thresholdAbility.addEffect(new ConditionalContinuousEffect(effect, thresholdCondition,
|
||||
"and has \"At the beginning of your end step, exile two cards from your graveyard.\""));
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(thresholdAbility);
|
||||
Ability thresholdAbility = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"If seven or more cards are in your graveyard, {this} gets +1/+1"
|
||||
));
|
||||
thresholdAbility.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new BeginningOfEndStepTriggeredAbility(
|
||||
new ExileCardFromOwnGraveyardControllerEffect(2), TargetController.YOU, false
|
||||
)), ThresholdCondition.instance,
|
||||
"and has \"At the beginning of your end step, exile two cards from your graveyard.\""
|
||||
));
|
||||
this.addAbility(thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private Bloodcurdler(final Bloodcurdler card) {
|
||||
|
|
|
|||
|
|
@ -1,43 +1,47 @@
|
|||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BecomesTargetSourceTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.SacrificeSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class BoneshardSlasher extends CardImpl {
|
||||
|
||||
public BoneshardSlasher(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}");
|
||||
this.subtype.add(SubType.HORROR);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Boneshard Slasher gets +2/+2 and has "When Boneshard Slasher becomes the target of a spell or ability, sacrifice it."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +2/+2"));
|
||||
Effect effect = new ConditionalContinuousEffect(new GainAbilitySourceEffect(new BecomesTargetSourceTriggeredAbility(new SacrificeSourceEffect())),
|
||||
new CardsInControllerGraveyardCondition(7), "and has \"When {this} becomes the target of a spell or ability, sacrifice it.\"");
|
||||
ability.addEffect(effect);
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +2/+2"
|
||||
));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new BecomesTargetSourceTriggeredAbility(new SacrificeSourceEffect())),
|
||||
ThresholdCondition.instance, "and has \"When {this} becomes the target of a spell or ability, sacrifice it.\""
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,24 +1,24 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.DiscardCardCost;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author weirddan455
|
||||
*/
|
||||
public final class CabalInitiate extends CardImpl {
|
||||
|
|
@ -32,12 +32,13 @@ public final class CabalInitiate extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Discard a card: Cabal Initiate gains lifelink until end of turn.
|
||||
this.addAbility(new SimpleActivatedAbility(new GainAbilitySourceEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn), new DiscardCardCost()));
|
||||
this.addAbility(new SimpleActivatedAbility(
|
||||
new GainAbilitySourceEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn), new DiscardCardCost()
|
||||
));
|
||||
|
||||
// Threshold — Cabal Initiate gets +1/+2 as long as seven or more cards are in your graveyard.
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 2, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
new BoostSourceEffect(1, 2, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"{this} gets +1/+2 as long as seven or more cards are in your graveyard"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.ExileFromGraveCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
|
|
@ -35,8 +35,7 @@ public final class CabalInquisitor extends CardImpl {
|
|||
|
||||
// Threshold - {1}{B}, {T}, Exile two cards from your graveyard: Target player discards a card. Activate this ability only any time you could cast a sorcery, and only if seven or more cards are in your graveyard.
|
||||
Ability ability = new ConditionalActivatedAbility(
|
||||
new DiscardTargetEffect(1), new ManaCostsImpl<>("{1}{B}"),
|
||||
new CardsInControllerGraveyardCondition(7)
|
||||
new DiscardTargetEffect(1), new ManaCostsImpl<>("{1}{B}"), ThresholdCondition.instance
|
||||
).setTiming(TimingRule.SORCERY);
|
||||
ability.addTarget(new TargetPlayer());
|
||||
ability.addCost(new TapSourceCost());
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
|
|
@ -16,17 +14,17 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class CabalPit extends CardImpl {
|
||||
|
||||
public CabalPit(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
|
||||
// {tap}: Add {B}. Cabal Pit deals 1 damage to you.
|
||||
Ability manaAbility = new BlackManaAbility();
|
||||
|
|
@ -34,10 +32,10 @@ public final class CabalPit extends CardImpl {
|
|||
this.addAbility(manaAbility);
|
||||
|
||||
// Threshold - {B}, {T}, Sacrifice Cabal Pit: Target creature gets -2/-2 until end of turn. Activate this ability only if seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new BoostTargetEffect(-2,-2, Duration.EndOfTurn),
|
||||
new ManaCostsImpl<>("{B}"),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(
|
||||
new BoostTargetEffect(-2, -2, Duration.EndOfTurn),
|
||||
new ManaCostsImpl<>("{B}"), ThresholdCondition.instance
|
||||
);
|
||||
thresholdAbility.addCost(new TapSourceCost());
|
||||
thresholdAbility.addCost(new SacrificeSourceCost());
|
||||
thresholdAbility.addTarget(new TargetCreaturePermanent());
|
||||
|
|
|
|||
|
|
@ -1,32 +1,31 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.Mana;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalManaEffect;
|
||||
import mage.abilities.effects.mana.BasicManaEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Plopman
|
||||
*/
|
||||
public final class CabalRitual extends CardImpl {
|
||||
|
||||
public CabalRitual(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{B}");
|
||||
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{B}");
|
||||
|
||||
// Add {B}{B}{B}.
|
||||
// Threshold — Add {B}{B}{B}{B}{B} instead if seven or more cards are in your graveyard.
|
||||
this.getSpellAbility().addEffect(new ConditionalManaEffect(
|
||||
new BasicManaEffect(Mana.BlackMana(5)),
|
||||
new BasicManaEffect(Mana.BlackMana(3)),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"Add {B}{B}{B}.<br/><br/><i>Threshold</i> — Add {B}{B}{B}{B}{B} instead if seven or more cards are in your graveyard"));
|
||||
new BasicManaEffect(Mana.BlackMana(5)), new BasicManaEffect(Mana.BlackMana(3)),
|
||||
ThresholdCondition.instance, "Add {B}{B}{B}.<br>" + AbilityWord.THRESHOLD.formatWord() +
|
||||
"Add {B}{B}{B}{B}{B} instead if seven or more cards are in your graveyard"
|
||||
));
|
||||
}
|
||||
|
||||
private CabalRitual(final CabalRitual card) {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||
|
|
@ -14,32 +12,35 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class CabalTorturer extends CardImpl {
|
||||
|
||||
public CabalTorturer(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}{B}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.MINION);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// {B}, {tap}: Target creature gets -1/-1 until end of turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-1, -1, Duration.EndOfTurn), new ManaCostsImpl<>("{B}"));
|
||||
Ability ability = new SimpleActivatedAbility(new BoostTargetEffect(-1, -1, Duration.EndOfTurn), new ManaCostsImpl<>("{B}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Threshold - {3}{B}{B}, {tap}: Target creature gets -2/-2 until end of turn. Activate this ability only if seven or more cards are in your graveyard.
|
||||
ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-2, -2, Duration.EndOfTurn),
|
||||
new ManaCostsImpl<>("{3}{B}{B}"), new CardsInControllerGraveyardCondition(7));
|
||||
ability = new ConditionalActivatedAbility(
|
||||
new BoostTargetEffect(-2, -2, Duration.EndOfTurn),
|
||||
new ManaCostsImpl<>("{3}{B}{B}"), ThresholdCondition.instance
|
||||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
|
|
|
|||
|
|
@ -1,14 +1,11 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
|
|
@ -18,39 +15,39 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class CentaurChieftain extends CardImpl {
|
||||
|
||||
public CentaurChieftain(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}");
|
||||
this.subtype.add(SubType.CENTAUR);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Haste
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Centaur Chieftain has "When Centaur Chieftain enters the battlefield, creatures you control get +1/+1 and gain trample until end of turn."
|
||||
Effect effect = new BoostControlledEffect(1, 1, Duration.EndOfTurn);
|
||||
effect.setText("creatures you control get +1/+1");
|
||||
Ability gainedAbility = new EntersBattlefieldTriggeredAbility(effect);
|
||||
effect = new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn,
|
||||
new FilterControlledCreaturePermanent());
|
||||
effect.setText("and gain trample until end of turn");
|
||||
gainedAbility.addEffect(effect);
|
||||
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(gainedAbility), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} has \"When {this} enters the battlefield, creatures you control get +1/+1 and gain trample until end of turn.\""));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Centaur Chieftain has "When Centaur Chieftain enters the battlefield, creatures you control get +1/+1 and gain trample until end of turn."
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(
|
||||
new BoostControlledEffect(1, 1, Duration.EndOfTurn)
|
||||
.setText("creatures you control get +1/+1")
|
||||
);
|
||||
ability.addEffect(new GainAbilityControlledEffect(
|
||||
TrampleAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE
|
||||
).setText("and gain trample until end of turn"));
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(ability), ThresholdCondition.instance, "As long as seven " +
|
||||
"or more cards are in your graveyard, {this} has \"When {this} enters the battlefield, " +
|
||||
"creatures you control get +1/+1 and gain trample until end of turn.\""
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private CentaurChieftain(final CentaurChieftain card) {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
|
|
@ -16,17 +14,17 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class CentaurGarden extends CardImpl {
|
||||
|
||||
public CentaurGarden(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
|
||||
// {tap}: Add {G}. Centaur Garden deals 1 damage to you.
|
||||
Ability manaAbility = new GreenManaAbility();
|
||||
|
|
@ -34,10 +32,10 @@ public final class CentaurGarden extends CardImpl {
|
|||
this.addAbility(manaAbility);
|
||||
|
||||
// Threshold - {G}, {tap}, Sacrifice Centaur Garden: Target creature gets +3/+3 until end of turn. Activate this ability only if seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new BoostTargetEffect(+3,+3, Duration.EndOfTurn),
|
||||
new ManaCostsImpl<>("{G}"),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(
|
||||
new BoostTargetEffect(3, 3, Duration.EndOfTurn),
|
||||
new ManaCostsImpl<>("{G}"), ThresholdCondition.instance
|
||||
);
|
||||
thresholdAbility.addCost(new TapSourceCost());
|
||||
thresholdAbility.addCost(new SacrificeSourceCost());
|
||||
thresholdAbility.addTarget(new TargetCreaturePermanent());
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
|
|
@ -15,17 +13,17 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.TargetPlayer;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class CephalidColiseum extends CardImpl {
|
||||
|
||||
public CephalidColiseum(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
|
||||
// {tap}: Add {U}. Cephalid Coliseum deals 1 damage to you.
|
||||
Ability manaAbility = new BlueManaAbility();
|
||||
|
|
@ -33,10 +31,10 @@ public final class CephalidColiseum extends CardImpl {
|
|||
this.addAbility(manaAbility);
|
||||
|
||||
// Threshold - {U}, {tap}, Sacrifice Cephalid Coliseum: Target player draws three cards, then discards three cards. Activate this ability only if seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new DrawDiscardTargetEffect(3, 3),
|
||||
new ManaCostsImpl<>("{U}"),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(
|
||||
new DrawDiscardTargetEffect(3, 3),
|
||||
new ManaCostsImpl<>("{U}"), ThresholdCondition.instance
|
||||
);
|
||||
thresholdAbility.addCost(new TapSourceCost());
|
||||
thresholdAbility.addCost(new SacrificeSourceCost());
|
||||
thresholdAbility.addTarget(new TargetPlayer());
|
||||
|
|
|
|||
|
|
@ -1,12 +1,9 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.DrawDiscardControllerEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
|
|
@ -15,27 +12,27 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class CephalidSage extends CardImpl {
|
||||
|
||||
public CephalidSage(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}");
|
||||
this.subtype.add(SubType.OCTOPUS);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Cephalid Sage has "When Cephalid Sage enters the battlefield, draw three cards, then discard two cards."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new EntersBattlefieldTriggeredAbility(new DrawDiscardControllerEffect(3, 2))),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} has \"When {this} enters the battlefield, draw three cards, then discard two cards.\""));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new EntersBattlefieldTriggeredAbility(
|
||||
new DrawDiscardControllerEffect(3, 2)
|
||||
)), ThresholdCondition.instance, "as long as seven or more cards are in your graveyard, " +
|
||||
"{this} has \"When {this} enters the battlefield, draw three cards, then discard two cards.\""
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private CephalidSage(final CephalidSage card) {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||
|
|
@ -15,32 +13,32 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class Chainflinger extends CardImpl {
|
||||
|
||||
public Chainflinger(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
|
||||
this.subtype.add(SubType.BEAST);
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// {1}{R}, {tap}: Chainflinger deals 1 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1),new ManaCostsImpl<>("{1}{R}"));
|
||||
Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(1), new ManaCostsImpl<>("{1}{R}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Threshold - {2}{R}, {tap}: Chainflinger deals 2 damage to any target. Activate this ability only if seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new DamageTargetEffect(2),
|
||||
new ManaCostsImpl<>("{2}{R}"),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(
|
||||
new DamageTargetEffect(2), new ManaCostsImpl<>("{2}{R}"), ThresholdCondition.instance
|
||||
);
|
||||
thresholdAbility.addCost(new TapSourceCost());
|
||||
thresholdAbility.addTarget(new TargetAnyTarget());
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
|
|
|
|||
|
|
@ -1,14 +1,11 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.decorator.ConditionalRestrictionEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.combat.CantBlockSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
|
|
@ -16,18 +13,18 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33
|
||||
*/
|
||||
public final class ChildhoodHorror extends CardImpl {
|
||||
|
||||
public ChildhoodHorror(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
|
||||
this.subtype.add(SubType.HORROR);
|
||||
|
||||
this.power = new MageInt(2);
|
||||
|
|
@ -35,20 +32,15 @@ public final class ChildhoodHorror extends CardImpl {
|
|||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Childhood Horror gets +2/+2 and can't block.
|
||||
Ability thresholdAbility = new SimpleStaticAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"If seven or more cards are in your graveyard, Childhood Horror gets +2/+2"
|
||||
));
|
||||
|
||||
Effect effect = new ConditionalRestrictionEffect(
|
||||
new CantBlockSourceEffect(Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
effect.setText("and can't block");
|
||||
thresholdAbility.addEffect(effect);
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Childhood Horror gets +2/+2 and can't block.
|
||||
Ability thresholdAbility = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield),
|
||||
ThresholdCondition.instance, "If seven or more cards are in your graveyard, {this} gets +2/+2"
|
||||
));
|
||||
thresholdAbility.addEffect(new ConditionalRestrictionEffect(
|
||||
new CantBlockSourceEffect(Duration.WhileOnBattlefield), ThresholdCondition.instance
|
||||
).setText("and can't block"));
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(thresholdAbility);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,10 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -16,30 +12,34 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.*;
|
||||
import mage.counters.CounterType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33
|
||||
*/
|
||||
public final class Chlorophant extends CardImpl {
|
||||
|
||||
public Chlorophant(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{G}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}{G}{G}");
|
||||
this.subtype.add(SubType.ELEMENTAL);
|
||||
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// At the beginning of your upkeep, you may put a +1/+1 counter on Chlorophant.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), TargetController.YOU, true));
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance()), TargetController.YOU, true
|
||||
));
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Chlorophant has "At the beginning of your upkeep, you may put another +1/+1 counter on Chlorophant."
|
||||
Effect effect = new AddCountersSourceEffect(CounterType.P1P1.createInstance());
|
||||
effect.setText("At the beginning of your upkeep, you may put another +1/+1 counter on {this}.");
|
||||
Ability gainedAbility = new BeginningOfUpkeepTriggeredAbility(effect, TargetController.YOU, true);
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(gainedAbility, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} has \"At the beginning of your upkeep, you may put another +1/+1 counter on {this}.\""));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new BeginningOfUpkeepTriggeredAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance())
|
||||
.setText("put another +1/+1 counter on {this}"),
|
||||
TargetController.YOU, true
|
||||
), Duration.WhileOnBattlefield), ThresholdCondition.instance, "as long as seven or more cards " +
|
||||
"are in your graveyard, {this} has \"At the beginning of your upkeep, you may put another +1/+1 counter on {this}.\""
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private Chlorophant(final Chlorophant card) {
|
||||
|
|
|
|||
|
|
@ -1,16 +1,13 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.DiscardCardCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.keyword.ShroudAbility;
|
||||
|
|
@ -19,39 +16,39 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33
|
||||
*/
|
||||
public final class CrashingCentaur extends CardImpl {
|
||||
|
||||
public CrashingCentaur(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}{G}");
|
||||
this.subtype.add(SubType.CENTAUR);
|
||||
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
// {G}, Discard a card: Crashing Centaur gains trample until end of turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(TrampleAbility.getInstance(),Duration.EndOfTurn), new ManaCostsImpl<>("{G}"));
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{G}")
|
||||
);
|
||||
ability.addCost(new DiscardCardCost());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Crashing Centaur gets +2/+2 and has shroud.
|
||||
Ability thresholdAbility = new SimpleStaticAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"If seven or more cards are in your graveyard, {this} gets +2/+2"));
|
||||
Effect effect = new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(ShroudAbility.getInstance()),
|
||||
new CardsInControllerGraveyardCondition(7), "and has shroud");
|
||||
thresholdAbility.addEffect(effect);
|
||||
Ability thresholdAbility = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"as long as seven or more cards are in your graveyard, {this} gets +2/+2"
|
||||
));
|
||||
thresholdAbility.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(ShroudAbility.getInstance()),
|
||||
ThresholdCondition.instance, "and has shroud"
|
||||
));
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(thresholdAbility);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.d;
|
|||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.DiesCreatureTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.DoIfCostPaid;
|
||||
|
|
@ -13,6 +12,7 @@ import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
|||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
|
|
@ -34,23 +34,24 @@ public final class DecayingSoil extends CardImpl {
|
|||
filter.add(TokenPredicate.FALSE);
|
||||
}
|
||||
|
||||
private static final Condition condition = new CardsInControllerGraveyardCondition(7);
|
||||
|
||||
public DecayingSoil(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}{B}");
|
||||
|
||||
// At the beginning of your upkeep, exile a card from your graveyard.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
|
||||
Zone.BATTLEFIELD, new ExileFromZoneTargetEffect(Zone.GRAVEYARD, false
|
||||
).setText("exile a card from your graveyard"), TargetController.YOU, false, true));
|
||||
Zone.BATTLEFIELD,
|
||||
new ExileFromZoneTargetEffect(Zone.GRAVEYARD, false)
|
||||
.setText("exile a card from your graveyard"),
|
||||
TargetController.YOU, false, true
|
||||
));
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Decaying Soil has "Whenever a nontoken creature is put into your graveyard from the battlefield, you may pay {1}. If you do, return that card to your hand."
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new DecayingSoilTriggeredAbility()),
|
||||
condition, "<i>Threshold</i> — As long as seven or more cards are in your graveyard, " +
|
||||
ThresholdCondition.instance, "as long as seven or more cards are in your graveyard, " +
|
||||
"{this} has \"Whenever a nontoken creature is put into your graveyard from the battlefield, " +
|
||||
"you may pay {1}. If you do, return that card to your hand.\""
|
||||
)));
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private DecayingSoil(final DecayingSoil card) {
|
||||
|
|
|
|||
|
|
@ -2,39 +2,36 @@ package mage.cards.d;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalRestrictionEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.combat.CantAttackSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class DeepSeaTerror extends CardImpl {
|
||||
|
||||
private static final Condition condition = new InvertCondition(ThresholdCondition.instance);
|
||||
|
||||
public DeepSeaTerror(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{U}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}{U}");
|
||||
this.subtype.add(SubType.SERPENT);
|
||||
this.power = new MageInt(6);
|
||||
this.toughness = new MageInt(6);
|
||||
|
||||
// Deep-Sea Terror can't attack unless there are seven or more cards in your graveyard.
|
||||
Effect effect = new ConditionalRestrictionEffect(
|
||||
new CantAttackSourceEffect(Duration.WhileOnBattlefield),
|
||||
new InvertCondition(new CardsInControllerGraveyardCondition(7)));
|
||||
effect.setText("{this} can't attack unless there are seven or more cards in your graveyard");
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalRestrictionEffect(
|
||||
new CantAttackSourceEffect(Duration.WhileOnBattlefield), condition
|
||||
).setText("{this} can't attack unless there are seven or more cards in your graveyard")));
|
||||
}
|
||||
|
||||
private DeepSeaTerror(final DeepSeaTerror card) {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
|
||||
package mage.cards.d;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.common.AddContinuousEffectToGame;
|
||||
import mage.abilities.effects.common.combat.CantBlockAllEffect;
|
||||
|
|
@ -10,35 +8,34 @@ import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
|
|||
import mage.abilities.keyword.MenaceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class Demoralize extends CardImpl {
|
||||
|
||||
public Demoralize(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{R}");
|
||||
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{R}");
|
||||
|
||||
// All creatures gain menace until end of turn. (They can't be blocked except by two or more creatures.)
|
||||
this.getSpellAbility().addEffect(new GainAbilityAllEffect(new MenaceAbility(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES)
|
||||
.setText("All creatures gain menace until end of turn. <i>(They can't be blocked except by two or more creatures.)</i>"));
|
||||
this.getSpellAbility().addEffect(new GainAbilityAllEffect(
|
||||
new MenaceAbility(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES
|
||||
).setText("All creatures gain menace until end of turn. <i>(They can't be blocked except by two or more creatures.)</i>"));
|
||||
|
||||
// Threshold — If seven or more cards are in your graveyard, creatures can't block this turn.
|
||||
this.getSpellAbility().addEffect(
|
||||
new ConditionalOneShotEffect(
|
||||
new AddContinuousEffectToGame(new CantBlockAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES, Duration.EndOfTurn)),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"<br/><br/><i>Threshold</i> — If seven or more cards are in your graveyard, creatures can't block this turn"
|
||||
));
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new AddContinuousEffectToGame(new CantBlockAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES, Duration.EndOfTurn)),
|
||||
ThresholdCondition.instance, "<br>" + AbilityWord.THRESHOLD.formatWord() +
|
||||
"If seven or more cards are in your graveyard, creatures can't block this turn"
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
private Demoralize(final Demoralize card) {
|
||||
super(card);
|
||||
}
|
||||
|
|
@ -47,4 +44,4 @@ public final class Demoralize extends CardImpl {
|
|||
public Demoralize copy() {
|
||||
return new Demoralize(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,14 @@
|
|||
|
||||
package mage.cards.d;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.DiscardCardCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.decorator.ConditionalRestrictionEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.RegenerateSourceEffect;
|
||||
import mage.abilities.effects.common.combat.CantBlockSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
|
|
@ -19,18 +16,18 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33
|
||||
*/
|
||||
public final class DirtyWererat extends CardImpl {
|
||||
|
||||
public DirtyWererat(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.RAT);
|
||||
this.subtype.add(SubType.MINION);
|
||||
|
|
@ -39,22 +36,18 @@ public final class DirtyWererat extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// {B}, Discard a card: Regenerate Dirty Wererat.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{B}"));
|
||||
Ability ability = new SimpleActivatedAbility(new RegenerateSourceEffect(), new ManaCostsImpl<>("{B}"));
|
||||
ability.addCost(new DiscardCardCost());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Dirty Wererat gets +2/+2 and can't block.
|
||||
Ability thresholdAbility = new SimpleStaticAbility(Zone.BATTLEFIELD,
|
||||
new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"If seven or more cards are in your graveyard, {this} gets +2/+2"
|
||||
));
|
||||
Effect effect = new ConditionalRestrictionEffect(
|
||||
new CantBlockSourceEffect(Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
effect.setText("and can't block");
|
||||
thresholdAbility.addEffect(effect);
|
||||
Ability thresholdAbility = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield),
|
||||
ThresholdCondition.instance, "If seven or more cards are in your graveyard, {this} gets +2/+2"
|
||||
));
|
||||
thresholdAbility.addEffect(new ConditionalRestrictionEffect(
|
||||
new CantBlockSourceEffect(Duration.WhileOnBattlefield), ThresholdCondition.instance
|
||||
).setText("and can't block"));
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(thresholdAbility);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
|
||||
package mage.cards.d;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -13,36 +10,35 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Beta_Steward (Honor of the Pure), LevelX2 (Demoralize), cbt
|
||||
*/
|
||||
public final class DivineSacrament extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("White creatures");
|
||||
|
||||
static {
|
||||
filter.add(new ColorPredicate(ObjectColor.WHITE));
|
||||
}
|
||||
|
||||
public DivineSacrament(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{W}{W}");
|
||||
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{W}{W}");
|
||||
|
||||
// White creatures get +1/+1.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, false));
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new BoostAllEffect(
|
||||
1, 1, Duration.WhileOnBattlefield, filter, false
|
||||
)));
|
||||
|
||||
// Threshold - White creatures get an additional +1/+1 as long as seven or more cards are in your graveyard.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, false),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"If seven or more cards are in your graveyard, white creatures get an additional +1/+1."
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, false),
|
||||
ThresholdCondition.instance, "If seven or more cards are in your graveyard, white creatures get an additional +1/+1."
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private DivineSacrament(final DivineSacrament card) {
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
|
||||
package mage.cards.e;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.SacrificeEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.filter.StaticFilters;
|
||||
|
|
@ -16,7 +17,6 @@ import mage.game.Game;
|
|||
import mage.game.permanent.Permanent;
|
||||
import mage.target.TargetPlayer;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -24,24 +24,20 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class Epicenter extends CardImpl {
|
||||
|
||||
private static final Condition condition = new InvertCondition(ThresholdCondition.instance);
|
||||
|
||||
public Epicenter(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{R}");
|
||||
|
||||
// Target player sacrifices a land.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new SacrificeEffect(StaticFilters.FILTER_LAND, 1, "Target player"),
|
||||
new InvertCondition(new CardsInControllerGraveyardCondition(7)),
|
||||
"Target player sacrifices a land"
|
||||
condition, "Target player sacrifices a land"
|
||||
));
|
||||
// Threshold - Each player sacrifices all lands they control instead if seven or more cards are in your graveyard.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new EpicenterEffect(),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"<br/><br/><i>Threshold</i> — Each player sacrifices all lands they control instead " +
|
||||
"if seven or more cards are in your graveyard."
|
||||
));
|
||||
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
|
||||
// Threshold - Each player sacrifices all lands they control instead if seven or more cards are in your graveyard.
|
||||
this.getSpellAbility().addEffect(new EpicenterEffect());
|
||||
}
|
||||
|
||||
private Epicenter(final Epicenter card) {
|
||||
|
|
@ -58,6 +54,8 @@ class EpicenterEffect extends OneShotEffect {
|
|||
|
||||
EpicenterEffect() {
|
||||
super(Outcome.DestroyPermanent);
|
||||
staticText = "<br>" + AbilityWord.THRESHOLD.formatWord() + "Each player sacrifices " +
|
||||
"all lands they control instead if seven or more cards are in your graveyard.";
|
||||
}
|
||||
|
||||
private EpicenterEffect(final EpicenterEffect effect) {
|
||||
|
|
@ -66,14 +64,14 @@ class EpicenterEffect extends OneShotEffect {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Iterator<Permanent> permanents = game.getBattlefield().getActivePermanents(source.getControllerId(), game).iterator();
|
||||
while (permanents.hasNext()) {
|
||||
Permanent p = permanents.next();
|
||||
if (p.isLand(game)) {
|
||||
p.sacrifice(source, game);
|
||||
}
|
||||
if (!ThresholdCondition.instance.apply(game, source)) {
|
||||
return false;
|
||||
}
|
||||
for (Permanent permanent : game.getBattlefield().getActivePermanents(
|
||||
StaticFilters.FILTER_LAND, source.getControllerId(), source, game
|
||||
)) {
|
||||
permanent.sacrifice(source, game);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.SacrificeTargetCost;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.DoIfCostPaid;
|
||||
|
|
@ -20,7 +19,6 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -29,8 +27,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class ExcavatingAnurid extends CardImpl {
|
||||
|
||||
private static final Condition condition = new CardsInControllerGraveyardCondition(7);
|
||||
|
||||
public ExcavatingAnurid(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}");
|
||||
|
||||
|
|
@ -47,12 +43,12 @@ public final class ExcavatingAnurid extends CardImpl {
|
|||
|
||||
// Threshold — As long as seven or more cards are in your graveyard, Excavating Anurid gets +1/+1 and has vigilance.
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield),
|
||||
condition, "As long as seven or more cards are in your graveyard, {this} gets +1/+1"
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"as long as seven or more cards are in your graveyard, {this} gets +1/+1"
|
||||
));
|
||||
ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(
|
||||
VigilanceAbility.getInstance(), Duration.WhileOnBattlefield
|
||||
), condition, "and has vigilance"));
|
||||
), ThresholdCondition.instance, "and has vigilance"));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
|
||||
package mage.cards.f;
|
||||
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCardInLibrary;
|
||||
|
|
@ -14,22 +14,28 @@ import mage.target.common.TargetCardInLibrary;
|
|||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
|
||||
public final class FarWanderings extends CardImpl {
|
||||
|
||||
public FarWanderings(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{G}");
|
||||
|
||||
// Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library.
|
||||
// Threshold - If seven or more cards are in your graveyard, instead search your library for up to three basic land cards, put them onto the battlefield tapped, then shuffle your library.
|
||||
Effect effect = new ConditionalOneShotEffect(
|
||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_CARD_BASIC_LAND), true),
|
||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle.<br/><br/><i>Threshold</i> — If seven or more cards are in your graveyard, instead search your library for up to three basic land cards, put them onto the battlefield tapped, then shuffle.");
|
||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(
|
||||
3, StaticFilters.FILTER_CARD_BASIC_LAND
|
||||
), true),
|
||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(
|
||||
1, StaticFilters.FILTER_CARD_BASIC_LAND
|
||||
), true),
|
||||
ThresholdCondition.instance, "Search your library for a basic land card, " +
|
||||
"put that card onto the battlefield tapped, then shuffle.<br>" + AbilityWord.THRESHOLD.formatWord() +
|
||||
"If seven or more cards are in your graveyard, instead search your library for up to " +
|
||||
"three basic land cards, put them onto the battlefield tapped, then shuffle."
|
||||
);
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
|
||||
package mage.cards.f;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
|
|
@ -16,31 +14,35 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class FledglingDragon extends CardImpl {
|
||||
|
||||
public FledglingDragon(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}");
|
||||
this.subtype.add(SubType.DRAGON);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Fledgling Dragon gets +3/+3 and has "{R}: Fledgling Dragon gets +1/+0 until end of turn."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +3/+3"));
|
||||
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{R}"));
|
||||
ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(gainedAbility),
|
||||
new CardsInControllerGraveyardCondition(7), "and has \"{R}: {this} gets +1/+0 until end of turn.\""));
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"as long as seven or more cards are in your graveyard, {this} gets +3/+3"
|
||||
));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new SimpleActivatedAbility(
|
||||
new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{R}")
|
||||
)), ThresholdCondition.instance, "and has \"{R}: {this} gets +1/+0 until end of turn.\""
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package mage.cards.f;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.decorator.ConditionalRestrictionEffect;
|
||||
import mage.abilities.effects.common.combat.CantBlockSourceEffect;
|
||||
|
|
@ -11,7 +11,10 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
|||
import mage.abilities.keyword.FearAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -29,20 +32,18 @@ public final class Frightcrawler extends CardImpl {
|
|||
|
||||
// Fear
|
||||
this.addAbility(FearAbility.getInstance());
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Frightcrawler gets +2/+2 and can't block.
|
||||
Ability thresholdAbility = new SimpleStaticAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"If seven or more cards are in your graveyard, {this} gets +2/+2 "
|
||||
));
|
||||
thresholdAbility.addEffect(new ConditionalRestrictionEffect(
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield),
|
||||
ThresholdCondition.instance, "If seven or more cards are in your graveyard, {this} gets +2/+2 "
|
||||
));
|
||||
ability.addEffect(new ConditionalRestrictionEffect(
|
||||
new CantBlockSourceEffect(Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"and can't block."));
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(thresholdAbility);
|
||||
ThresholdCondition.instance, "and can't block."
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private Frightcrawler(final Frightcrawler card) {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
|
|
@ -14,19 +12,19 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class Gloomdrifter extends CardImpl {
|
||||
|
||||
public Gloomdrifter(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
|
||||
this.subtype.add(SubType.ZOMBIE);
|
||||
this.subtype.add(SubType.MINION);
|
||||
this.power = new MageInt(2);
|
||||
|
|
@ -34,14 +32,16 @@ public final class Gloomdrifter extends CardImpl {
|
|||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Gloomdrifter has "When Gloomdrifter enters the battlefield, nonblack creatures get -2/-2 until end of turn."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new EntersBattlefieldTriggeredAbility(
|
||||
new BoostAllEffect(-2, -2, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES_NON_BLACK, false))),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} has \"When {this} enters the battlefield, nonblack creatures get -2/-2 until end of turn.\""));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new EntersBattlefieldTriggeredAbility(
|
||||
new BoostAllEffect(
|
||||
-2, -2, Duration.EndOfTurn,
|
||||
StaticFilters.FILTER_PERMANENT_CREATURES_NON_BLACK, false
|
||||
))), ThresholdCondition.instance, "as long as seven or more cards are in your graveyard, " +
|
||||
"{this} has \"When {this} enters the battlefield, nonblack creatures get -2/-2 until end of turn.\""
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private Gloomdrifter(final Gloomdrifter card) {
|
||||
|
|
|
|||
|
|
@ -1,36 +1,34 @@
|
|||
|
||||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.keyword.FlashbackAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.TimingRule;
|
||||
import mage.game.permanent.token.BearToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class GrizzlyFate extends CardImpl {
|
||||
|
||||
public GrizzlyFate(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{G}{G}");
|
||||
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{G}{G}");
|
||||
|
||||
// Create two 2/2 green Bear creature tokens.
|
||||
// Threshold - Create four 2/2 green Bear creature tokens instead if seven or more cards are in your graveyard.
|
||||
Effect effect = new ConditionalOneShotEffect(new CreateTokenEffect(new BearToken(), 4),
|
||||
new CreateTokenEffect(new BearToken(), 2),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"Create two 2/2 green Bear creature tokens.<br/><br/><i>Threshold</i> — Create four 2/2 green Bear creature tokens instead if seven or more cards are in your graveyard.");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new CreateTokenEffect(new BearToken(), 4), new CreateTokenEffect(new BearToken(), 2),
|
||||
ThresholdCondition.instance, "Create two 2/2 green Bear creature tokens.<br>" +
|
||||
AbilityWord.THRESHOLD.formatWord() + "Create four 2/2 green Bear creature tokens " +
|
||||
"instead if seven or more cards are in your graveyard."
|
||||
));
|
||||
|
||||
// Flashback {5}{G}{G}
|
||||
this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{5}{G}{G}")));
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||
import mage.abilities.effects.common.PreventDamageToTargetEffect;
|
||||
|
|
@ -13,20 +11,20 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33
|
||||
*/
|
||||
|
||||
public final class HallowedHealer extends CardImpl {
|
||||
|
||||
public HallowedHealer(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(SubType.HUMAN);
|
||||
this.subtype.add(SubType.CLERIC);
|
||||
|
||||
|
|
@ -34,14 +32,15 @@ public final class HallowedHealer extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// {tap}: Prevent the next 2 damage that would be dealt to any target this turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn,2), new TapSourceCost());
|
||||
Ability ability = new SimpleActivatedAbility(new PreventDamageToTargetEffect(Duration.EndOfTurn, 2), new TapSourceCost());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Threshold - {tap}: Prevent the next 4 damage that would be dealt to any target this turn. Activate this ability only if seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new PreventDamageToTargetEffect(Duration.EndOfTurn, 4),
|
||||
new TapSourceCost(),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(
|
||||
new PreventDamageToTargetEffect(Duration.EndOfTurn, 4),
|
||||
new TapSourceCost(), ThresholdCondition.instance
|
||||
);
|
||||
thresholdAbility.addTarget(new TargetAnyTarget());
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(thresholdAbility);
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.common.SpellCastOpponentTriggeredAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.PutCardFromHandOntoBattlefieldEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
|
|
@ -14,26 +11,26 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class HuntingGrounds extends CardImpl {
|
||||
|
||||
public HuntingGrounds(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{G}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{G}{W}");
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Hunting Grounds has "Whenever an opponent casts a spell, you may put a creature card from your hand onto the battlefield."
|
||||
Ability gainedAbility = new SpellCastOpponentTriggeredAbility(new PutCardFromHandOntoBattlefieldEffect(
|
||||
new FilterCreatureCard("a creature card")), true);
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(gainedAbility, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} has \"Whenever an opponent casts a spell, you may put a creature card from your hand onto the battlefield.\""));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new SpellCastOpponentTriggeredAbility(
|
||||
new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_CARD_CREATURE_A), true
|
||||
), Duration.WhileOnBattlefield), ThresholdCondition.instance, "as long as seven or more " +
|
||||
"cards are in your graveyard, {this} has \"Whenever an opponent casts a spell, " +
|
||||
"you may put a creature card from your hand onto the battlefield.\""
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private HuntingGrounds(final HuntingGrounds card) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package mage.cards.i;
|
||||
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.discard.DiscardAndDrawThatManyEffect;
|
||||
|
|
@ -18,8 +17,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class IlluminateHistory extends CardImpl {
|
||||
|
||||
private static final Condition condition = new CardsInControllerGraveyardCondition(7);
|
||||
|
||||
public IlluminateHistory(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}{R}");
|
||||
|
||||
|
|
@ -28,8 +25,8 @@ public final class IlluminateHistory extends CardImpl {
|
|||
// Discard any number of cards, then draw that many cards. Then if there are seven or more cards in your graveyard, create a 3/2 red and white Spirit creature token.
|
||||
this.getSpellAbility().addEffect(new DiscardAndDrawThatManyEffect(Integer.MAX_VALUE));
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new CreateTokenEffect(new Spirit32Token()), condition, "Then if there are seven or more " +
|
||||
"cards in your graveyard, create a 3/2 red and white Spirit creature token"
|
||||
new CreateTokenEffect(new Spirit32Token()), ThresholdCondition.instance, "Then if there " +
|
||||
"are seven or more cards in your graveyard, create a 3/2 red and white Spirit creature token"
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
|
||||
package mage.cards.i;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||
import mage.abilities.effects.common.DamageEverythingEffect;
|
||||
|
|
@ -14,30 +11,28 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33
|
||||
*/
|
||||
public final class InfectedVermin extends CardImpl {
|
||||
|
||||
public InfectedVermin(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}");
|
||||
this.subtype.add(SubType.RAT);
|
||||
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// {2}{B}: Infected Vermin deals 1 damage to each creature and each player.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageEverythingEffect(1), new ManaCostsImpl<>("{2}{B}")));
|
||||
this.addAbility(new SimpleActivatedAbility(new DamageEverythingEffect(1), new ManaCostsImpl<>("{2}{B}")));
|
||||
|
||||
// Threshold - {3}{B}: Infected Vermin deals 3 damage to each creature and each player. Activate this ability only if seven or more cards are in your graveyard.
|
||||
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new DamageEverythingEffect(3),
|
||||
new ManaCostsImpl<>("{3}{B}"),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new ConditionalActivatedAbility(
|
||||
new DamageEverythingEffect(3), new ManaCostsImpl<>("{3}{B}"), ThresholdCondition.instance
|
||||
).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private InfectedVermin(final InfectedVermin card) {
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
|
||||
package mage.cards.k;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
|
||||
|
|
@ -13,43 +10,37 @@ import mage.abilities.keyword.EnchantAbility;
|
|||
import mage.abilities.keyword.FirstStrikeAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.AttachmentType;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33
|
||||
*/
|
||||
public final class KamahlsDesire extends CardImpl {
|
||||
|
||||
public KamahlsDesire(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}");
|
||||
this.subtype.add(SubType.AURA);
|
||||
|
||||
|
||||
// Enchant creature
|
||||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||
this.getSpellAbility().addTarget(auraTarget);
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
|
||||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new EnchantAbility(auraTarget));
|
||||
|
||||
// Enchanted creature has first strike.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield)));
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAttachedEffect(
|
||||
FirstStrikeAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield
|
||||
)));
|
||||
|
||||
// Threshold - Enchanted creature gets +3/+0 as long as seven or more cards are in your graveyard.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostEnchantedEffect(3, 0, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"Enchanted creature gets +3/+0 as long as seven or more cards are in your graveyard"));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostEnchantedEffect(3, 0, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"Enchanted creature gets +3/+0 as long as seven or more cards are in your graveyard"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private KamahlsDesire(final KamahlsDesire card) {
|
||||
|
|
|
|||
|
|
@ -1,32 +1,35 @@
|
|||
|
||||
package mage.cards.k;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.common.DamageTargetControllerEffect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class KamahlsSledge extends CardImpl {
|
||||
|
||||
public KamahlsSledge(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{5}{R}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{5}{R}{R}");
|
||||
|
||||
// Kamahl's Sledge deals 4 damage to target creature.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(4));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
// Threshold - If seven or more cards are in your graveyard, instead Kamahl's Sledge deals 4 damage to that creature and 4 damage to that creature's controller.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetControllerEffect(4),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"<br><br><i>Threshold</i> — If seven or more cards are in your graveyard, instead {this} deals 4 damage to that creature and 4 damage to that creature's controller."));
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamageTargetControllerEffect(4), ThresholdCondition.instance, "<br>" +
|
||||
AbilityWord.THRESHOLD.formatWord() + "If seven or more cards are in your graveyard, " +
|
||||
"instead {this} deals 4 damage to that creature and 4 damage to that creature's controller."
|
||||
));
|
||||
}
|
||||
|
||||
private KamahlsSledge(final KamahlsSledge card) {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
package mage.cards.k;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalRestrictionEffect;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.combat.CantAttackAttachedEffect;
|
||||
|
|
@ -30,20 +29,16 @@ public final class KirtarsDesire extends CardImpl {
|
|||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||
this.getSpellAbility().addTarget(auraTarget);
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment));
|
||||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new EnchantAbility(auraTarget));
|
||||
|
||||
// Enchanted creature can't attack.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackAttachedEffect(AttachmentType.AURA)));
|
||||
this.addAbility(new SimpleStaticAbility(new CantAttackAttachedEffect(AttachmentType.AURA)));
|
||||
|
||||
// Threshold - Enchanted creature can't block as long as seven or more cards are in your graveyard.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalRestrictionEffect(
|
||||
new CantAttackBlockAttachedEffect(AttachmentType.AURA),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"Enchanted creature can't block as long as seven or more cards are in your graveyard"));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalRestrictionEffect(
|
||||
new CantAttackBlockAttachedEffect(AttachmentType.AURA), ThresholdCondition.instance,
|
||||
"Enchanted creature can't block as long as seven or more cards are in your graveyard"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private KirtarsDesire(final KirtarsDesire card) {
|
||||
|
|
|
|||
|
|
@ -1,36 +1,37 @@
|
|||
package mage.cards.k;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.DestroyAllEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.SpiritWhiteToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class KirtarsWrath extends CardImpl {
|
||||
|
||||
public KirtarsWrath(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{W}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{W}{W}");
|
||||
|
||||
// Destroy all creatures. They can't be regenerated.
|
||||
this.getSpellAbility().addEffect(new DestroyAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES, true));
|
||||
|
||||
// Threshold - If seven or more cards are in your graveyard, instead destroy all creatures, then create two 1/1 white Spirit creature tokens with flying. Creatures destroyed this way can't be regenerated.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new KirtarsWrathEffect(),
|
||||
new DestroyAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES, true),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"Destroy all creatures. They can't be regenerated.<br/><br/><i>Threshold</i> — If seven or more cards are in your graveyard, instead destroy all creatures, then create two 1/1 white Spirit creature tokens with flying. Creatures destroyed this way can't be regenerated"));
|
||||
new CreateTokenEffect(new SpiritWhiteToken(), 2),
|
||||
ThresholdCondition.instance, "<br>" + AbilityWord.THRESHOLD.formatWord() +
|
||||
"If seven or more cards are in your graveyard, instead destroy all creatures, " +
|
||||
"then create two 1/1 white Spirit creature tokens with flying. " +
|
||||
"Creatures destroyed this way can't be regenerated"
|
||||
));
|
||||
}
|
||||
|
||||
private KirtarsWrath(final KirtarsWrath card) {
|
||||
|
|
@ -42,26 +43,3 @@ public final class KirtarsWrath extends CardImpl {
|
|||
return new KirtarsWrath(this);
|
||||
}
|
||||
}
|
||||
|
||||
class KirtarsWrathEffect extends OneShotEffect {
|
||||
|
||||
KirtarsWrathEffect() {
|
||||
super(Outcome.DestroyPermanent);
|
||||
this.staticText = "destroy all creatures, then create two 1/1 white Spirit creature tokens with flying. Creatures destroyed this way can't be regenerated";
|
||||
}
|
||||
|
||||
private KirtarsWrathEffect(final KirtarsWrathEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public KirtarsWrathEffect copy() {
|
||||
return new KirtarsWrathEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
new DestroyAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES, true).apply(game, source);
|
||||
return new CreateTokenEffect(new SpiritWhiteToken(), 2).apply(game, source);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
|
||||
package mage.cards.k;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||
import mage.abilities.effects.common.RegenerateSourceEffect;
|
||||
|
|
@ -14,16 +11,16 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class KrosanAvenger extends CardImpl {
|
||||
|
||||
public KrosanAvenger(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(SubType.HUMAN);
|
||||
this.subtype.add(SubType.DRUID);
|
||||
|
||||
|
|
@ -32,13 +29,11 @@ public final class KrosanAvenger extends CardImpl {
|
|||
|
||||
// Trample
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// Threshold - {1}{G}: Regenerate Krosan Avenger. Activate this ability only if seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new RegenerateSourceEffect(),
|
||||
new ManaCostsImpl<>("{1}{G}"),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(thresholdAbility);
|
||||
this.addAbility(new ConditionalActivatedAbility(
|
||||
new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}{G}"), ThresholdCondition.instance
|
||||
).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private KrosanAvenger(final KrosanAvenger card) {
|
||||
|
|
|
|||
|
|
@ -1,29 +1,26 @@
|
|||
|
||||
package mage.cards.k;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class KrosanBeast extends CardImpl {
|
||||
|
||||
public KrosanBeast(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}");
|
||||
this.subtype.add(SubType.SQUIRREL);
|
||||
this.subtype.add(SubType.BEAST);
|
||||
|
||||
|
|
@ -31,15 +28,10 @@ public final class KrosanBeast extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Threshold - Krosan Beast gets +7/+7 as long as seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new SimpleStaticAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(7, 7, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"{this} gets +7/+7 as long as seven or more cards are in your graveyard"
|
||||
));
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(thresholdAbility);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(7, 7, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"{this} gets +7/+7 as long as seven or more cards are in your graveyard"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private KrosanBeast(final KrosanBeast card) {
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
package mage.cards.k;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||
import mage.abilities.effects.common.UntapTargetEffect;
|
||||
|
|
@ -13,32 +12,29 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public final class KrosanRestorer extends CardImpl {
|
||||
|
||||
public KrosanRestorer(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(SubType.HUMAN);
|
||||
this.subtype.add(SubType.DRUID);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// {tap}: Untap target land.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), new TapSourceCost());
|
||||
Ability ability = new SimpleActivatedAbility(new UntapTargetEffect(), new TapSourceCost());
|
||||
ability.addTarget(new TargetLandPermanent());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Threshold - {tap}: Untap up to three target lands. Activate this ability only if seven or more cards are in your graveyard.
|
||||
ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new UntapTargetEffect(),
|
||||
new TapSourceCost(),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
ability = new ConditionalActivatedAbility(new UntapTargetEffect(), new TapSourceCost(), ThresholdCondition.instance);
|
||||
ability.addTarget(new TargetLandPermanent(0, 3));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
|
||||
package mage.cards.l;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
|
|
@ -10,12 +8,13 @@ import mage.abilities.effects.common.DamageTargetEffect;
|
|||
import mage.abilities.keyword.FlashbackAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.TimingRule;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author escplan9 (Derek Monturo - dmontur1 at gmail dot com)
|
||||
*/
|
||||
public final class LightningSurge extends CardImpl {
|
||||
|
|
@ -25,10 +24,12 @@ public final class LightningSurge extends CardImpl {
|
|||
|
||||
// Lightning Surge deals 4 damage to any target.
|
||||
// Threshold - If seven or more cards are in your graveyard, instead Lightning Surge deals 6 damage to that creature or player and the damage can't be prevented.
|
||||
Effect effect = new ConditionalOneShotEffect(new DamageTargetEffect(6, false),
|
||||
new DamageTargetEffect(4),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"{this} deals 4 damage to any target.<br/><br/><i>Threshold</i> — {this} deals 6 damage to that permanent or player and the damage can't be prevented instead if seven or more cards are in your graveyard.");
|
||||
Effect effect = new ConditionalOneShotEffect(
|
||||
new DamageTargetEffect(6, false), new DamageTargetEffect(4),
|
||||
ThresholdCondition.instance, "{this} deals 4 damage to any target.<br>" +
|
||||
AbilityWord.THRESHOLD.formatWord() + "If seven or more cards are in your graveyard, " +
|
||||
"instead {this} deals 6 damage to that permanent or player and the damage can't be prevented"
|
||||
);
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,53 +1,61 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.keyword.ProtectionAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class MaskedGorgon extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter1 = new FilterCreaturePermanent("green creatures and white creatures");
|
||||
private static final FilterCreaturePermanent filter1
|
||||
= new FilterCreaturePermanent("green creatures and white creatures");
|
||||
private static final FilterCard filter2 = new FilterCard("Gorgons");
|
||||
|
||||
static {
|
||||
filter1.add(Predicates.or(new ColorPredicate(ObjectColor.GREEN), new ColorPredicate(ObjectColor.WHITE)));
|
||||
filter1.add(Predicates.or(
|
||||
new ColorPredicate(ObjectColor.GREEN),
|
||||
new ColorPredicate(ObjectColor.WHITE)
|
||||
));
|
||||
filter2.add(SubType.GORGON.getPredicate());
|
||||
}
|
||||
|
||||
public MaskedGorgon(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}");
|
||||
this.subtype.add(SubType.GORGON);
|
||||
this.power = new MageInt(5);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
// Green creatures and white creatures have protection from Gorgons.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(
|
||||
new ProtectionAbility(filter2), Duration.WhileOnBattlefield, filter1)));
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(
|
||||
new ProtectionAbility(filter2), Duration.WhileOnBattlefield, filter1
|
||||
)));
|
||||
|
||||
// Threshold - Masked Gorgon has protection from green and from white as long as seven or more cards are in your graveyard.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(ProtectionAbility.from(ObjectColor.GREEN, ObjectColor.WHITE), Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"{this} has protection from green and from white as long as seven or more cards are in your graveyard"));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(
|
||||
ProtectionAbility.from(ObjectColor.GREEN, ObjectColor.WHITE), Duration.WhileOnBattlefield
|
||||
), ThresholdCondition.instance, "{this} has protection from green and from white " +
|
||||
"as long as seven or more cards are in your graveyard"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private MaskedGorgon(final MaskedGorgon card) {
|
||||
|
|
|
|||
|
|
@ -1,29 +1,27 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class MetamorphicWurm extends CardImpl {
|
||||
|
||||
public MetamorphicWurm(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}");
|
||||
this.subtype.add(SubType.ELEPHANT);
|
||||
this.subtype.add(SubType.WURM);
|
||||
|
||||
|
|
@ -31,15 +29,10 @@ public final class MetamorphicWurm extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Threshold - Metamorphic Wurm gets +4/+4 as long as seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new SimpleStaticAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(4, 4, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"{this} gets +4/+4 as long as seven or more cards are in your graveyard"
|
||||
));
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(thresholdAbility);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(4, 4, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"{this} gets +4/+4 as long as seven or more cards are in your graveyard"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private MetamorphicWurm(final MetamorphicWurm card) {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.m;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
|
|
@ -23,8 +22,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class MindDrillAssailant extends CardImpl {
|
||||
|
||||
private static final Condition condition = new CardsInControllerGraveyardCondition(7);
|
||||
|
||||
public MindDrillAssailant(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U/B}{U/B}");
|
||||
|
||||
|
|
@ -35,8 +32,8 @@ public final class MindDrillAssailant extends CardImpl {
|
|||
|
||||
// Threshold -- As long as seven or more cards are in your graveyard, Mind Drill Assailant gets +3/+0.
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(3, 0, Duration.WhileOnBattlefield),
|
||||
condition, "as long as seven or more cards are in your graveyard, {this} gets +3/+0"
|
||||
new BoostSourceEffect(3, 0, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"as long as seven or more cards are in your graveyard, {this} gets +3/+0"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
|
||||
// {2}{U/B}: Surveil 1.
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
|
|
@ -16,18 +14,18 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33
|
||||
*/
|
||||
public final class MysticCrusader extends CardImpl {
|
||||
|
||||
public MysticCrusader(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{W}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.NOMAD);
|
||||
this.subtype.add(SubType.MYSTIC);
|
||||
|
|
@ -37,12 +35,16 @@ public final class MysticCrusader extends CardImpl {
|
|||
|
||||
// Protection from black and from red
|
||||
this.addAbility(ProtectionAbility.from(ObjectColor.BLACK, ObjectColor.RED));
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Mystic Crusader gets +1/+1 and has flying.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"));
|
||||
ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()),
|
||||
new CardsInControllerGraveyardCondition(7), "and has flying"));
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"
|
||||
));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(FlyingAbility.getInstance()),
|
||||
ThresholdCondition.instance, "and has flying"
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
|
|
@ -16,18 +14,18 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class MysticEnforcer extends CardImpl {
|
||||
|
||||
public MysticEnforcer(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{W}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.NOMAD);
|
||||
this.subtype.add(SubType.MYSTIC);
|
||||
|
|
@ -37,14 +35,18 @@ public final class MysticEnforcer extends CardImpl {
|
|||
|
||||
// Protection from black
|
||||
this.addAbility(ProtectionAbility.from(ObjectColor.BLACK));
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Mystic Enforcer gets +3/+3 and has flying.
|
||||
Ability thresholdAbility = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
" as long as seven or more cards are in your graveyard, {this} gets +3/+3"));
|
||||
thresholdAbility.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()),
|
||||
new CardsInControllerGraveyardCondition(7), "and has flying"));
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(thresholdAbility);
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
" as long as seven or more cards are in your graveyard, {this} gets +3/+3"
|
||||
));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(FlyingAbility.getInstance()),
|
||||
ThresholdCondition.instance, "and has flying"
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private MysticEnforcer(final MysticEnforcer card) {
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
|
|
@ -16,30 +14,34 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class MysticFamiliar extends CardImpl {
|
||||
|
||||
public MysticFamiliar(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}");
|
||||
this.subtype.add(SubType.BIRD);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Mystic Familiar gets +1/+1 and has protection from black.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"));
|
||||
ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(ProtectionAbility.from(ObjectColor.BLACK)),
|
||||
new CardsInControllerGraveyardCondition(7), "and has protection from black"));
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"
|
||||
));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(ProtectionAbility.from(ObjectColor.BLACK)),
|
||||
ThresholdCondition.instance, "and has protection from black"
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
|
|
@ -13,20 +11,17 @@ import mage.abilities.keyword.FlyingAbility;
|
|||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33
|
||||
*/
|
||||
public final class MysticPenitent extends CardImpl {
|
||||
|
||||
public MysticPenitent(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.NOMAD);
|
||||
this.subtype.add(SubType.MYSTIC);
|
||||
|
|
@ -36,12 +31,16 @@ public final class MysticPenitent extends CardImpl {
|
|||
|
||||
// Vigilance
|
||||
this.addAbility(VigilanceAbility.getInstance());
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Mystic Penitent gets +1/+1 and has flying.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"));
|
||||
ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()),
|
||||
new CardsInControllerGraveyardCondition(7), "and has flying"));
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"
|
||||
));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(FlyingAbility.getInstance()),
|
||||
ThresholdCondition.instance, "and has flying"
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
|
|
@ -14,16 +11,16 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33
|
||||
*/
|
||||
public final class MysticVisionary extends CardImpl {
|
||||
|
||||
public MysticVisionary(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.NOMAD);
|
||||
this.subtype.add(SubType.MYSTIC);
|
||||
|
|
@ -32,11 +29,10 @@ public final class MysticVisionary extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Threshold - Mystic Visionary has flying as long as seven or more cards are in your graveyard.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(FlyingAbility.getInstance()), new CardsInControllerGraveyardCondition(7),
|
||||
"{this} has flying as long as seven or more cards are in your graveyard."));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(FlyingAbility.getInstance()), ThresholdCondition.instance,
|
||||
"{this} has flying as long as seven or more cards are in your graveyard."
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private MysticVisionary(final MysticVisionary card) {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
|
|
@ -14,18 +12,18 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33
|
||||
*/
|
||||
public final class MysticZealot extends CardImpl {
|
||||
|
||||
public MysticZealot(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.NOMAD);
|
||||
this.subtype.add(SubType.MYSTIC);
|
||||
|
|
@ -34,11 +32,14 @@ public final class MysticZealot extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Mystic Zealot gets +1/+1 and has flying.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"));
|
||||
ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()),
|
||||
new CardsInControllerGraveyardCondition(7), "and has flying"));
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"
|
||||
));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(FlyingAbility.getInstance()),
|
||||
ThresholdCondition.instance, "and has flying"
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,29 +1,23 @@
|
|||
|
||||
package mage.cards.n;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.keyword.ProtectionAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class NantukoBlightcutter extends CardImpl {
|
||||
|
|
@ -35,8 +29,10 @@ public final class NantukoBlightcutter extends CardImpl {
|
|||
filter.add(TargetController.OPPONENT.getControllerPredicate());
|
||||
}
|
||||
|
||||
private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(filter);
|
||||
|
||||
public NantukoBlightcutter(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(SubType.INSECT);
|
||||
this.subtype.add(SubType.DRUID);
|
||||
this.power = new MageInt(2);
|
||||
|
|
@ -44,13 +40,13 @@ public final class NantukoBlightcutter extends CardImpl {
|
|||
|
||||
// Protection from black
|
||||
this.addAbility(ProtectionAbility.from(ObjectColor.BLACK));
|
||||
|
||||
// Threshold - Nantuko Blightcutter gets +1/+1 for each black permanent your opponents control as long as seven or more cards are in your graveyard.
|
||||
PermanentsOnBattlefieldCount count = new PermanentsOnBattlefieldCount(filter);
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(count, count, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"{this} gets +1/+1 for each black permanent your opponents control as long as seven or more cards are in your graveyard"));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(xValue, xValue, Duration.WhileOnBattlefield),
|
||||
ThresholdCondition.instance, "{this} gets +1/+1 for each black permanent " +
|
||||
"your opponents control as long as seven or more cards are in your graveyard"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private NantukoBlightcutter(final NantukoBlightcutter card) {
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
|
||||
package mage.cards.n;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
|
|
@ -17,36 +15,36 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetEnchantmentPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class NantukoCalmer extends CardImpl {
|
||||
|
||||
public NantukoCalmer(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}");
|
||||
this.subtype.add(SubType.INSECT);
|
||||
this.subtype.add(SubType.DRUID);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// {G}, {tap}, Sacrifice Nantuko Calmer: Destroy target enchantment.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{G}"));
|
||||
Ability ability = new SimpleActivatedAbility(new DestroyTargetEffect(), new ManaCostsImpl<>("{G}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetEnchantmentPermanent());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Threshold - Nantuko Calmer gets +1/+1 as long as seven or more cards are in your graveyard.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"{this} gets +1/+1 as long as seven or more cards are in your graveyard"));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"{this} gets +1/+1 as long as seven or more cards are in your graveyard"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private NantukoCalmer(final NantukoCalmer card) {
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
|
||||
package mage.cards.n;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
|
||||
|
|
@ -14,28 +11,28 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author anonymous
|
||||
*/
|
||||
public final class NantukoMonastery extends CardImpl {
|
||||
|
||||
public NantukoMonastery(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
|
||||
// {tap}: Add {C}.
|
||||
this.addAbility(new ColorlessManaAbility());
|
||||
|
||||
// Threshold - {G}{W}: Nantuko Monastery becomes a 4/4 green and white Insect Monk creature with first strike until end of turn. It's still a land. Activate this ability only if seven or more cards are in your graveyard.
|
||||
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
||||
new NantukoMonasteryToken(), CardType.LAND, Duration.EndOfTurn), new ManaCostsImpl<>("{G}{W}"),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new ConditionalActivatedAbility(new BecomesCreatureSourceEffect(
|
||||
new NantukoMonasteryToken(), CardType.LAND, Duration.EndOfTurn),
|
||||
new ManaCostsImpl<>("{G}{W}"), ThresholdCondition.instance
|
||||
).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private NantukoMonastery(final NantukoMonastery card) {
|
||||
|
|
@ -61,6 +58,7 @@ class NantukoMonasteryToken extends TokenImpl {
|
|||
toughness = new MageInt(4);
|
||||
this.addAbility(FirstStrikeAbility.getInstance());
|
||||
}
|
||||
|
||||
private NantukoMonasteryToken(final NantukoMonasteryToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
|
||||
package mage.cards.n;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.keyword.ShroudAbility;
|
||||
|
|
@ -13,18 +10,18 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jonubuu
|
||||
*/
|
||||
public final class NimbleMongoose extends CardImpl {
|
||||
|
||||
public NimbleMongoose(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}");
|
||||
this.subtype.add(SubType.MONGOOSE);
|
||||
|
||||
this.power = new MageInt(1);
|
||||
|
|
@ -32,13 +29,12 @@ public final class NimbleMongoose extends CardImpl {
|
|||
|
||||
// Shroud
|
||||
this.addAbility(ShroudAbility.getInstance());
|
||||
// Threshold - Nimble Mongoose gets +2/+2 as long as seven or more cards are in your graveyard.
|
||||
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"{this} gets +2/+2 as long as seven or more cards are in your graveyard"));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
// Threshold - Nimble Mongoose gets +2/+2 as long as seven or more cards are in your graveyard.
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"{this} gets +2/+2 as long as seven or more cards are in your graveyard"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private NimbleMongoose(final NimbleMongoose card) {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
|
||||
package mage.cards.n;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||
|
|
@ -15,18 +13,17 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
import java.util.UUID;
|
||||
|
||||
*
|
||||
/**
|
||||
* @author cbt33
|
||||
*/
|
||||
public final class NomadDecoy extends CardImpl {
|
||||
|
||||
public NomadDecoy(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(SubType.HUMAN);
|
||||
this.subtype.add(SubType.NOMAD);
|
||||
|
||||
|
|
@ -34,16 +31,15 @@ public final class NomadDecoy extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// {W}, {tap}: Tap target creature.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl<>("{W}"));
|
||||
Ability ability = new SimpleActivatedAbility(new TapTargetEffect(), new ManaCostsImpl<>("{W}"));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Threshold - {W}{W}, {T}: Tap two target creatures. Activate this ability only if seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new TapTargetEffect(),
|
||||
new ManaCostsImpl<>("{W}{W}"),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(
|
||||
new TapTargetEffect(), new ManaCostsImpl<>("{W}{W}"), ThresholdCondition.instance
|
||||
);
|
||||
thresholdAbility.addCost(new TapSourceCost());
|
||||
thresholdAbility.addTarget(new TargetCreaturePermanent(2));
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
|
||||
package mage.cards.n;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
|
|
@ -15,16 +13,16 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class NomadStadium extends CardImpl {
|
||||
|
||||
public NomadStadium(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
|
||||
// {tap}: Add {W}. Nomad Stadium deals 1 damage to you.
|
||||
Ability manaAbility = new WhiteManaAbility();
|
||||
|
|
@ -32,10 +30,9 @@ public final class NomadStadium extends CardImpl {
|
|||
this.addAbility(manaAbility);
|
||||
|
||||
// Threshold - {W}, {tap}, Sacrifice Nomad Stadium: You gain 4 life. Activate this ability only if seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new GainLifeEffect(4),
|
||||
new ManaCostsImpl<>("{W}"),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(
|
||||
new GainLifeEffect(4), new ManaCostsImpl<>("{W}"), ThresholdCondition.instance
|
||||
);
|
||||
thresholdAbility.addCost(new TapSourceCost());
|
||||
thresholdAbility.addCost(new SacrificeSourceCost());
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
|
||||
package mage.cards.n;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
||||
|
|
@ -16,8 +14,9 @@ import mage.constants.*;
|
|||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.game.permanent.token.SquirrelToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33
|
||||
*/
|
||||
public final class NutCollector extends CardImpl {
|
||||
|
|
@ -29,7 +28,7 @@ public final class NutCollector extends CardImpl {
|
|||
}
|
||||
|
||||
public NutCollector(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{G}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.DRUID);
|
||||
|
||||
|
|
@ -37,11 +36,15 @@ public final class NutCollector extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// At the beginning of your upkeep, you may create a 1/1 green Squirrel creature token.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SquirrelToken()), TargetController.YOU, true));
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
|
||||
new CreateTokenEffect(new SquirrelToken()), TargetController.YOU, true
|
||||
));
|
||||
|
||||
// Threshold - Squirrel creatures get +2/+2 as long as seven or more cards are in your graveyard.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD,
|
||||
new ConditionalContinuousEffect(new BoostAllEffect(2, 2, Duration.WhileOnBattlefield, filter, false),
|
||||
new CardsInControllerGraveyardCondition(7), "Squirrel creatures get +2/+2 as long as seven or more cards are in your graveyard"));
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostAllEffect(2, 2, Duration.WhileOnBattlefield, filter, false),
|
||||
ThresholdCondition.instance, "Squirrel creatures get +2/+2 as long as seven or more cards are in your graveyard"
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleEvasionAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.decorator.ConditionalRequirementEffect;
|
||||
import mage.abilities.effects.common.combat.AttacksIfAbleSourceEffect;
|
||||
|
|
@ -12,7 +12,10 @@ import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect
|
|||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -39,14 +42,12 @@ public final class OtarianJuggernaut extends CardImpl {
|
|||
this.addAbility(new SimpleEvasionAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield)));
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Otarian Juggernaut gets +3/+0 and attacks each combat if able.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(3, 0, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(3, 0, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +3/+0"));
|
||||
ability.addEffect(new ConditionalRequirementEffect(
|
||||
new AttacksIfAbleSourceEffect(Duration.WhileOnBattlefield, true),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"and attacks each combat if able"
|
||||
ThresholdCondition.instance, "and attacks each combat if able"
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
|
|
@ -15,31 +13,30 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class PardicArsonist extends CardImpl {
|
||||
|
||||
public PardicArsonist(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.BARBARIAN);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Pardic Arsonist has "When Pardic Arsonist enters the battlefield, it deals 3 damage to any target."
|
||||
Ability gainedAbility = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(3, "it"));
|
||||
gainedAbility.addTarget(new TargetAnyTarget());
|
||||
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(gainedAbility), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} has \"When {this} enters the battlefield, it deals 3 damage to any target.\""));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(3, "it"));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(ability), ThresholdCondition.instance, "As long as " +
|
||||
"seven or more cards are in your graveyard, {this} has \"When {this} " +
|
||||
"enters the battlefield, it deals 3 damage to any target.\""
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private PardicArsonist(final PardicArsonist card) {
|
||||
|
|
|
|||
|
|
@ -1,52 +1,42 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
|
||||
import mage.abilities.keyword.EnchantAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33
|
||||
*/
|
||||
public final class PatriarchsDesire extends CardImpl {
|
||||
|
||||
public PatriarchsDesire(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{B}");
|
||||
this.subtype.add(SubType.AURA);
|
||||
|
||||
|
||||
// Enchant creature
|
||||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||
this.getSpellAbility().addTarget(auraTarget);
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
|
||||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new EnchantAbility(auraTarget));
|
||||
|
||||
// Enchanted creature gets +2/-2.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, -2, Duration.WhileOnBattlefield)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostEnchantedEffect(2, -2)));
|
||||
|
||||
// Threshold - Enchanted creature gets an additional +2/-2 as long as seven or more cards are in your graveyard.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostEnchantedEffect(2, -2, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"Enchanted creature gets an additional +2/-2 as long as seven or more cards are in your graveyard."));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostEnchantedEffect(2, -2, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"enchanted creature gets an additional +2/-2 as long as seven or more cards are in your graveyard."
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private PatriarchsDesire(final PatriarchsDesire card) {
|
||||
|
|
|
|||
|
|
@ -1,17 +1,14 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.BecomesColorSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
|
|
@ -21,15 +18,15 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class PossessedAven extends CardImpl {
|
||||
|
|
@ -41,7 +38,7 @@ public final class PossessedAven extends CardImpl {
|
|||
}
|
||||
|
||||
public PossessedAven(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}{U}");
|
||||
this.subtype.add(SubType.BIRD);
|
||||
this.subtype.add(SubType.SOLDIER);
|
||||
this.subtype.add(SubType.HORROR);
|
||||
|
|
@ -50,22 +47,23 @@ public final class PossessedAven extends CardImpl {
|
|||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Possessed Aven gets +1/+1, is black, and has "{2}{B}, {tap}: Destroy target blue creature."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"));
|
||||
|
||||
Effect effect = new ConditionalContinuousEffect(new BecomesColorSourceEffect(ObjectColor.BLACK, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7), ", is black");
|
||||
ability.addEffect(effect);
|
||||
|
||||
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{2}{B}"));
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"
|
||||
));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new BecomesColorSourceEffect(ObjectColor.BLACK, Duration.WhileOnBattlefield),
|
||||
ThresholdCondition.instance, ", is black"
|
||||
));
|
||||
Ability gainedAbility = new SimpleActivatedAbility(new DestroyTargetEffect(), new ManaCostsImpl<>("{2}{B}"));
|
||||
gainedAbility.addCost(new TapSourceCost());
|
||||
gainedAbility.addTarget(new TargetCreaturePermanent(filter));
|
||||
effect = new ConditionalContinuousEffect(new GainAbilitySourceEffect(gainedAbility),
|
||||
new CardsInControllerGraveyardCondition(7), ", and has \"{2}{B}, {T}: Destroy target blue creature.\"");
|
||||
ability.addEffect(effect);
|
||||
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(gainedAbility), ThresholdCondition.instance,
|
||||
", and has \"{2}{B}, {T}: Destroy target blue creature.\""
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,14 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.BecomesColorSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
|
|
@ -21,15 +18,15 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class PossessedBarbarian extends CardImpl {
|
||||
|
|
@ -41,7 +38,7 @@ public final class PossessedBarbarian extends CardImpl {
|
|||
}
|
||||
|
||||
public PossessedBarbarian(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.BARBARIAN);
|
||||
this.subtype.add(SubType.HORROR);
|
||||
|
|
@ -50,22 +47,24 @@ public final class PossessedBarbarian extends CardImpl {
|
|||
|
||||
// First strike
|
||||
this.addAbility(FirstStrikeAbility.getInstance());
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Possessed Barbarian gets +1/+1, is black, and has "{2}{B}, {tap}: Destroy target red creature."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"));
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"
|
||||
));
|
||||
|
||||
Effect effect = new ConditionalContinuousEffect(new BecomesColorSourceEffect(ObjectColor.BLACK, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7), ", is black");
|
||||
ability.addEffect(effect);
|
||||
|
||||
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{2}{B}"));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new BecomesColorSourceEffect(ObjectColor.BLACK, Duration.WhileOnBattlefield),
|
||||
ThresholdCondition.instance, ", is black"
|
||||
));
|
||||
Ability gainedAbility = new SimpleActivatedAbility(new DestroyTargetEffect(), new ManaCostsImpl<>("{2}{B}"));
|
||||
gainedAbility.addCost(new TapSourceCost());
|
||||
gainedAbility.addTarget(new TargetCreaturePermanent(filter));
|
||||
effect = new ConditionalContinuousEffect(new GainAbilitySourceEffect(gainedAbility),
|
||||
new CardsInControllerGraveyardCondition(7), ", and has \"{2}{B}, {T}: Destroy target red creature.\"");
|
||||
ability.addEffect(effect);
|
||||
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(gainedAbility), ThresholdCondition.instance,
|
||||
", and has \"{2}{B}, {T}: Destroy target red creature.\""
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,14 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.BecomesColorSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
|
|
@ -21,15 +18,15 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class PossessedCentaur extends CardImpl {
|
||||
|
|
@ -41,7 +38,7 @@ public final class PossessedCentaur extends CardImpl {
|
|||
}
|
||||
|
||||
public PossessedCentaur(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}");
|
||||
this.subtype.add(SubType.CENTAUR);
|
||||
this.subtype.add(SubType.HORROR);
|
||||
this.power = new MageInt(3);
|
||||
|
|
@ -49,22 +46,23 @@ public final class PossessedCentaur extends CardImpl {
|
|||
|
||||
// Trample
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Possessed Centaur gets +1/+1, is black, and has "{2}{B}, {tap}: Destroy target green creature."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"));
|
||||
|
||||
Effect effect = new ConditionalContinuousEffect(new BecomesColorSourceEffect(ObjectColor.BLACK, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7), ", is black");
|
||||
ability.addEffect(effect);
|
||||
|
||||
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{2}{B}"));
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"
|
||||
));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new BecomesColorSourceEffect(ObjectColor.BLACK, Duration.WhileOnBattlefield),
|
||||
ThresholdCondition.instance, ", is black"
|
||||
));
|
||||
Ability gainedAbility = new SimpleActivatedAbility(new DestroyTargetEffect(), new ManaCostsImpl<>("{2}{B}"));
|
||||
gainedAbility.addCost(new TapSourceCost());
|
||||
gainedAbility.addTarget(new TargetCreaturePermanent(filter));
|
||||
effect = new ConditionalContinuousEffect(new GainAbilitySourceEffect(gainedAbility),
|
||||
new CardsInControllerGraveyardCondition(7), ", and has \"{2}{B}, {T}: Destroy target green creature.\"");
|
||||
ability.addEffect(effect);
|
||||
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(gainedAbility), ThresholdCondition.instance,
|
||||
", and has \"{2}{B}, {T}: Destroy target green creature.\""
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,14 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.BecomesColorSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
|
|
@ -21,15 +18,15 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class PossessedNomad extends CardImpl {
|
||||
|
|
@ -41,7 +38,7 @@ public final class PossessedNomad extends CardImpl {
|
|||
}
|
||||
|
||||
public PossessedNomad(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{W}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.NOMAD);
|
||||
this.subtype.add(SubType.HORROR);
|
||||
|
|
@ -50,22 +47,23 @@ public final class PossessedNomad extends CardImpl {
|
|||
|
||||
// Vigilance
|
||||
this.addAbility(VigilanceAbility.getInstance());
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Possessed Nomad gets +1/+1, is black, and has "{2}{B}, {tap}: Destroy target white creature."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"));
|
||||
|
||||
Effect effect = new ConditionalContinuousEffect(new BecomesColorSourceEffect(ObjectColor.BLACK, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7), ", is black");
|
||||
ability.addEffect(effect);
|
||||
|
||||
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{2}{B}"));
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"
|
||||
));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new BecomesColorSourceEffect(ObjectColor.BLACK, Duration.WhileOnBattlefield),
|
||||
ThresholdCondition.instance, ", is black"
|
||||
));
|
||||
Ability gainedAbility = new SimpleActivatedAbility(new DestroyTargetEffect(), new ManaCostsImpl<>("{2}{B}"));
|
||||
gainedAbility.addCost(new TapSourceCost());
|
||||
gainedAbility.addTarget(new TargetCreaturePermanent(filter));
|
||||
effect = new ConditionalContinuousEffect(new GainAbilitySourceEffect(gainedAbility),
|
||||
new CardsInControllerGraveyardCondition(7), ", and has \"{2}{B}, {T}: Destroy target white creature.\"");
|
||||
ability.addEffect(effect);
|
||||
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(gainedAbility), ThresholdCondition.instance,
|
||||
", and has \"{2}{B}, {T}: Destroy target white creature.\""
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +1,13 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.DiscardCardCost;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.decorator.ConditionalRestrictionEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.combat.CantBlockSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
|
|
@ -19,18 +16,18 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Plopman
|
||||
*/
|
||||
public final class PutridImp extends CardImpl {
|
||||
|
||||
public PutridImp(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}");
|
||||
this.subtype.add(SubType.ZOMBIE);
|
||||
this.subtype.add(SubType.IMP);
|
||||
|
||||
|
|
@ -38,15 +35,18 @@ public final class PutridImp extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Discard a card: Putrid Imp gains flying until end of turn.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new DiscardCardCost()));
|
||||
this.addAbility(new SimpleActivatedAbility(new GainAbilitySourceEffect(
|
||||
FlyingAbility.getInstance(), Duration.EndOfTurn
|
||||
), new DiscardCardCost()));
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Putrid Imp gets +1/+1 and can't block.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"));
|
||||
Effect effect = new ConditionalRestrictionEffect(new CantBlockSourceEffect(Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7));
|
||||
effect.setText("and can't block");
|
||||
ability.addEffect(effect);
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"
|
||||
));
|
||||
ability.addEffect(new ConditionalRestrictionEffect(
|
||||
new CantBlockSourceEffect(Duration.WhileOnBattlefield), ThresholdCondition.instance
|
||||
).setText("and can't block"));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,38 +1,40 @@
|
|||
|
||||
package mage.cards.r;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.DamageEverythingEffect;
|
||||
import mage.abilities.effects.common.DamageAllEffect;
|
||||
import mage.abilities.effects.common.DamagePlayersEffect;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.game.Game;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author anonymous
|
||||
*/
|
||||
public final class RancidEarth extends CardImpl {
|
||||
|
||||
public RancidEarth(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{B}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}{B}");
|
||||
|
||||
// Destroy target land.
|
||||
this.getSpellAbility().addEffect(new DestroyTargetEffect());
|
||||
this.getSpellAbility().addTarget(new TargetLandPermanent());
|
||||
|
||||
// Threshold - If seven or more cards are in your graveyard, instead destroy that land and Rancid Earth deals 1 damage to each creature and each player.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new RancidEarthEffect(),
|
||||
new DestroyTargetEffect(),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"Destroy target land.<br/><br/><i>Threshold</i> — If seven or more cards are in your graveyard, instead destroy that land and Rancid Earth deals 1 damage to each creature and each player."));
|
||||
this.getSpellAbility().addTarget(new TargetLandPermanent());
|
||||
new DamageAllEffect(1, StaticFilters.FILTER_PERMANENT_CREATURE),
|
||||
ThresholdCondition.instance, "<br>" + AbilityWord.THRESHOLD.formatWord() + "If seven or more " +
|
||||
"cards are in your graveyard, instead destroy that land and {this} deals 1 damage to each creature"
|
||||
));
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamagePlayersEffect(1), ThresholdCondition.instance, "and each player"
|
||||
));
|
||||
}
|
||||
|
||||
private RancidEarth(final RancidEarth card) {
|
||||
|
|
@ -44,27 +46,3 @@ public final class RancidEarth extends CardImpl {
|
|||
return new RancidEarth(this);
|
||||
}
|
||||
}
|
||||
|
||||
class RancidEarthEffect extends OneShotEffect {
|
||||
|
||||
RancidEarthEffect() {
|
||||
super(Outcome.DestroyPermanent);
|
||||
this.staticText = "destroy that land and Rancid Earth deals 1 damage to each creature and each player";
|
||||
}
|
||||
|
||||
private RancidEarthEffect(final RancidEarthEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RancidEarthEffect copy() {
|
||||
return new RancidEarthEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Effect effect1 = new DestroyTargetEffect("destroy that land");
|
||||
effect1.apply(game, source);
|
||||
return new DamageEverythingEffect(1).apply(game, source);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,27 +1,24 @@
|
|||
|
||||
package mage.cards.r;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.DoIfCostPaid;
|
||||
import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class RebornHero extends CardImpl {
|
||||
|
|
@ -38,20 +35,13 @@ public final class RebornHero extends CardImpl {
|
|||
this.addAbility(VigilanceAbility.getInstance());
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Reborn Hero has "When Reborn Hero dies, you may pay {W}{W}. If you do, return Reborn Hero to the battlefield under your control."
|
||||
Ability ability = new SimpleStaticAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new DiesSourceTriggeredAbility(new DoIfCostPaid(
|
||||
new ReturnSourceFromGraveyardToBattlefieldEffect(), new ManaCostsImpl<>("{W}{W}")
|
||||
))),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, "
|
||||
+ "{this} has \"When {this} dies, you may pay {W}{W}. "
|
||||
+ "If you do, return {this} to the battlefield under your control.\""
|
||||
)
|
||||
);
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new DiesSourceTriggeredAbility(new DoIfCostPaid(
|
||||
new ReturnSourceFromGraveyardToBattlefieldEffect(), new ManaCostsImpl<>("{W}{W}")
|
||||
))), ThresholdCondition.instance, "As long as seven or more cards are in " +
|
||||
"your graveyard, {this} has \"When {this} dies, you may pay {W}{W}. If you do, " +
|
||||
"return {this} to the battlefield under your control.\""
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private RebornHero(final RebornHero card) {
|
||||
|
|
|
|||
|
|
@ -1,14 +1,12 @@
|
|||
|
||||
package mage.cards.r;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DealtDamageAndDiedTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
|
|
@ -20,27 +18,28 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33, Nantuko (Sengir Vampire)
|
||||
*/
|
||||
public final class RepentantVampire extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("black creature");
|
||||
|
||||
static {
|
||||
filter.add(new ColorPredicate(ObjectColor.BLACK));
|
||||
}
|
||||
|
||||
public RepentantVampire(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{B}");
|
||||
this.subtype.add(SubType.VAMPIRE);
|
||||
|
||||
this.power = new MageInt(3);
|
||||
|
|
@ -48,19 +47,23 @@ public final class RepentantVampire extends CardImpl {
|
|||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Whenever a creature dealt damage by Repentant Vampire this turn dies, put a +1/+1 counter on Repentant Vampire.
|
||||
this.addAbility(new DealtDamageAndDiedTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false));
|
||||
this.addAbility(new DealtDamageAndDiedTriggeredAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false
|
||||
));
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Repentant Vampire is white and has "{tap}: Destroy target black creature."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BecomesColorSourceEffect(ObjectColor.WHITE, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} is white"));
|
||||
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new TapSourceCost());
|
||||
ThresholdCondition.instance, "As long as seven or more cards are in your graveyard, {this} is white"
|
||||
));
|
||||
Ability gainedAbility = new SimpleActivatedAbility(new DestroyTargetEffect(), new TapSourceCost());
|
||||
gainedAbility.addTarget(new TargetCreaturePermanent(filter));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(gainedAbility, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"and has \"{T}: Destroy target black creature.\""));
|
||||
ThresholdCondition.instance, "and has \"{T}: Destroy target black creature.\""
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,54 +1,42 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalRequirementEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.combat.MustBeBlockedByAllAttachedEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
|
||||
import mage.abilities.keyword.EnchantAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.AttachmentType;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public final class SetonsDesire extends CardImpl {
|
||||
|
||||
public SetonsDesire(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}");
|
||||
this.subtype.add(SubType.AURA);
|
||||
|
||||
// Enchant creature
|
||||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||
this.getSpellAbility().addTarget(auraTarget);
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
|
||||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new EnchantAbility(auraTarget));
|
||||
|
||||
// Enchanted creature gets +2/+2.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostEnchantedEffect(2, 2)));
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, all creatures able to block enchanted creature do so.
|
||||
Effect effect = new ConditionalRequirementEffect(new MustBeBlockedByAllAttachedEffect(AttachmentType.AURA), new CardsInControllerGraveyardCondition(7));
|
||||
effect.setText("As long as seven or more cards are in your graveyard, all creatures able to block enchanted creature do so");
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalRequirementEffect(
|
||||
new MustBeBlockedByAllAttachedEffect(AttachmentType.AURA), ThresholdCondition.instance
|
||||
).setText("As long as seven or more cards are in your graveyard, all creatures able to block enchanted creature do so")).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private SetonsDesire(final SetonsDesire card) {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.keyword.ReachAbility;
|
||||
|
|
@ -13,18 +10,18 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class SetonsScout extends CardImpl {
|
||||
|
||||
public SetonsScout(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}");
|
||||
this.subtype.add(SubType.CENTAUR);
|
||||
this.subtype.add(SubType.DRUID);
|
||||
this.subtype.add(SubType.SCOUT);
|
||||
|
|
@ -34,12 +31,12 @@ public final class SetonsScout extends CardImpl {
|
|||
|
||||
// Reach
|
||||
this.addAbility(ReachAbility.getInstance());
|
||||
|
||||
// Threshold - Seton's Scout gets +2/+2 as long as seven or more cards are in your graveyard.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +2/+2"));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +2/+2"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private SetonsScout(final SetonsScout card) {
|
||||
|
|
|
|||
|
|
@ -1,18 +1,18 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33, LevelX2 (Kirtar's Wrath)
|
||||
*/
|
||||
public final class ShowerOfCoals extends CardImpl {
|
||||
|
|
@ -22,13 +22,13 @@ public final class ShowerOfCoals extends CardImpl {
|
|||
|
||||
// Shower of Coals deals 2 damage to each of up to three target creatures and/or players.
|
||||
// Threshold - Shower of Coals deals 4 damage to each of those creatures and/or players instead if seven or more cards are in your graveyard.
|
||||
Effect effect = new ConditionalOneShotEffect(new DamageTargetEffect(4),
|
||||
new DamageTargetEffect(2),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"{this} deals 2 damage to each of up to three targets.<br/><br/><i>Threshold</i> — {this} deals 4 damage to each of those permanents and/or players instead if seven or more cards are in your graveyard.");
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamageTargetEffect(4), new DamageTargetEffect(2),
|
||||
ThresholdCondition.instance, "{this} deals 2 damage to each of up to three targets.<br>" +
|
||||
AbilityWord.THRESHOLD.formatWord() + "{this} deals 4 damage to each of those permanents " +
|
||||
"and/or players instead if seven or more cards are in your graveyard."
|
||||
));
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget(0, 3));
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
|
||||
}
|
||||
|
||||
private ShowerOfCoals(final ShowerOfCoals card) {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
|
|
@ -13,30 +10,30 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class SilverSeraph extends CardImpl {
|
||||
|
||||
public SilverSeraph(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{W}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{W}{W}{W}");
|
||||
this.subtype.add(SubType.ANGEL);
|
||||
this.power = new MageInt(6);
|
||||
this.toughness = new MageInt(6);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Threshold - Other creatures you control get +2/+2 as long as seven or more cards are in your graveyard.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostControlledEffect(2, 2, Duration.WhileOnBattlefield, true), new CardsInControllerGraveyardCondition(7),
|
||||
"other creatures you control get +2/+2 as long as seven or more cards are in your graveyard"));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostControlledEffect(2, 2, Duration.WhileOnBattlefield, true),
|
||||
ThresholdCondition.instance, "other creatures you control get +2/+2 as long as seven or more cards are in your graveyard"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private SilverSeraph(final SilverSeraph card) {
|
||||
|
|
|
|||
|
|
@ -1,44 +1,37 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class SpringingTiger extends CardImpl {
|
||||
|
||||
public SpringingTiger(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}");
|
||||
this.subtype.add(SubType.CAT);
|
||||
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Threshold - Springing Tiger gets +2/+2 as long as seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new SimpleStaticAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"{this} gets +2/+2 as long as seven or more cards are in your graveyard"
|
||||
));
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(thresholdAbility);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"{this} gets +2/+2 as long as seven or more cards are in your graveyard"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private SpringingTiger(final SpringingTiger card) {
|
||||
|
|
|
|||
|
|
@ -1,20 +1,19 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public final class StitchTogether extends CardImpl {
|
||||
|
|
@ -24,12 +23,12 @@ public final class StitchTogether extends CardImpl {
|
|||
|
||||
// Return target creature card from your graveyard to your hand.
|
||||
// Threshold - Return that card from your graveyard to the battlefield instead if seven or more cards are in your graveyard.
|
||||
Effect effect = new ConditionalOneShotEffect(
|
||||
new ReturnFromGraveyardToBattlefieldTargetEffect(),
|
||||
new ReturnFromGraveyardToHandTargetEffect(),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"Return target creature card from your graveyard to your hand. <br/><br/><i>Threshold</i> — Return that card from your graveyard to the battlefield instead if seven or more cards are in your graveyard.");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new ReturnFromGraveyardToBattlefieldTargetEffect(), new ReturnFromGraveyardToHandTargetEffect(),
|
||||
ThresholdCondition.instance, "Return target creature card from your graveyard to your hand. " +
|
||||
"<br>" + AbilityWord.THRESHOLD.formatWord() + "Return that card from your graveyard " +
|
||||
"to the battlefield instead if seven or more cards are in your graveyard."
|
||||
));
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,11 @@
|
|||
package mage.cards.s;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DealsCombatDamageToACreatureTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalRequirementEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.effects.common.combat.MustBeBlockedByAllSourceEffect;
|
||||
|
|
@ -16,7 +14,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -32,19 +29,15 @@ public final class StoneTongueBasilisk extends CardImpl {
|
|||
this.toughness = new MageInt(5);
|
||||
|
||||
// Whenever Stone-Tongue Basilisk deals combat damage to a creature, destroy that creature at end of combat.
|
||||
Effect effect = new CreateDelayedTriggeredAbilityEffect(
|
||||
new AtTheEndOfCombatDelayedTriggeredAbility(new DestroyTargetEffect()), true);
|
||||
effect.setText("destroy that creature at end of combat");
|
||||
this.addAbility(new DealsCombatDamageToACreatureTriggeredAbility(effect, false, true));
|
||||
this.addAbility(new DealsCombatDamageToACreatureTriggeredAbility(new CreateDelayedTriggeredAbilityEffect(
|
||||
new AtTheEndOfCombatDelayedTriggeredAbility(new DestroyTargetEffect()), true
|
||||
).setText("destroy that creature at end of combat"), false, true));
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, all creatures able to block Stone-Tongue Basilisk do so.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalRequirementEffect(
|
||||
new MustBeBlockedByAllSourceEffect(),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, all creatures able to block {this} do so"
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalRequirementEffect(
|
||||
new MustBeBlockedByAllSourceEffect(), ThresholdCondition.instance, "As long as seven " +
|
||||
"or more cards are in your graveyard, all creatures able to block {this} do so"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private StoneTongueBasilisk(final StoneTongueBasilisk card) {
|
||||
|
|
|
|||
|
|
@ -1,21 +1,20 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamageAllEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.AbilityPredicate;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Quercitron
|
||||
*/
|
||||
public final class SwirlingSandstorm extends CardImpl {
|
||||
|
|
@ -27,14 +26,14 @@ public final class SwirlingSandstorm extends CardImpl {
|
|||
}
|
||||
|
||||
public SwirlingSandstorm(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}");
|
||||
|
||||
// Threshold - Swirling Sandstorm deals 5 damage to each creature without flying if seven or more cards are in your graveyard.
|
||||
Effect effect = new ConditionalOneShotEffect(
|
||||
new DamageAllEffect(5, filter),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"<i>Threshold</i> — {this} deals 5 damage to each creature without flying if seven or more cards are in your graveyard.");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamageAllEffect(5, filter), ThresholdCondition.instance,
|
||||
AbilityWord.THRESHOLD.formatWord() + "{this} deals " +
|
||||
"5 damage to each creature without flying if seven or more cards are in your graveyard."
|
||||
));
|
||||
}
|
||||
|
||||
private SwirlingSandstorm(final SwirlingSandstorm card) {
|
||||
|
|
|
|||
|
|
@ -1,13 +1,10 @@
|
|||
|
||||
package mage.cards.t;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
|
|
@ -17,19 +14,19 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class TerohsVanguard extends CardImpl {
|
||||
|
||||
public TerohsVanguard(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.NOMAD);
|
||||
this.power = new MageInt(2);
|
||||
|
|
@ -37,15 +34,18 @@ public final class TerohsVanguard extends CardImpl {
|
|||
|
||||
// Flash
|
||||
this.addAbility(FlashAbility.getInstance());
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Teroh's Vanguard has "When Teroh's Vanguard enters the battlefield, creatures you control gain protection from black until end of turn."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new EntersBattlefieldTriggeredAbility(
|
||||
new GainAbilityControlledEffect(ProtectionAbility.from(ObjectColor.BLACK), Duration.EndOfTurn, new FilterCreaturePermanent()))),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} has \"When {this} enters the battlefield, creatures you control gain protection from black until end of turn.\""));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Teroh's Vanguard has "When Teroh's Vanguard enters the battlefield, creatures you control gain protection from black until end of turn."
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new EntersBattlefieldTriggeredAbility(
|
||||
new GainAbilityControlledEffect(
|
||||
ProtectionAbility.from(ObjectColor.BLACK),
|
||||
Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE
|
||||
)
|
||||
)), ThresholdCondition.instance, "As long as seven or more cards " +
|
||||
"are in your graveyard, {this} has \"When {this} enters the battlefield, " +
|
||||
"creatures you control gain protection from black until end of turn.\""
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private TerohsVanguard(final TerohsVanguard card) {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
|
||||
package mage.cards.t;
|
||||
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
|
@ -22,9 +23,8 @@ public final class ThermalBlast extends CardImpl {
|
|||
// Thermal Blast deals 3 damage to target creature.
|
||||
// Threshold - Thermal Blast deals 5 damage to that creature instead if seven or more cards are in your graveyard.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamageTargetEffect(5), new DamageTargetEffect(3),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"{this} deals 3 damage to target creature.<br><i>Threshold</i> — " +
|
||||
new DamageTargetEffect(5), new DamageTargetEffect(3), ThresholdCondition.instance,
|
||||
"{this} deals 3 damage to target creature.<br>" + AbilityWord.THRESHOLD.formatWord() +
|
||||
"{this} deals 5 damage instead if seven or more cards are in your graveyard."
|
||||
));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
|
|
|||
|
|
@ -1,27 +1,20 @@
|
|||
package mage.cards.t;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.ContinuousEffect;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.AddContinuousEffectToGame;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class ToxicStench extends CardImpl {
|
||||
|
|
@ -30,17 +23,14 @@ public final class ToxicStench extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{B}");
|
||||
|
||||
// Target nonblack creature gets -1/-1 until end of turn.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new ToxicStenchEffect(),
|
||||
new InvertCondition(new CardsInControllerGraveyardCondition(7)),
|
||||
"Target nonblack creature gets -1/-1 until end of turn."));
|
||||
|
||||
// Threshold - If seven or more cards are in your graveyard, instead destroy that creature. It can't be regenerated.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DestroyTargetEffect(true),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"<br/><br/><i>Threshold</i> — If seven or more cards are in your graveyard, instead destroy that creature. It can't be regenerated."));
|
||||
|
||||
new AddContinuousEffectToGame(new BoostTargetEffect(-1, -1)),
|
||||
ThresholdCondition.instance, "target nonblack creature gets -1/-1 until end of turn.<br>" +
|
||||
AbilityWord.THRESHOLD.formatWord() + "If seven or more cards are in your graveyard, " +
|
||||
"instead destroy that creature. It can't be regenerated."
|
||||
));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_PERMANENT_CREATURE_NON_BLACK));
|
||||
}
|
||||
|
||||
|
|
@ -53,31 +43,3 @@ public final class ToxicStench extends CardImpl {
|
|||
return new ToxicStench(this);
|
||||
}
|
||||
}
|
||||
|
||||
class ToxicStenchEffect extends OneShotEffect {
|
||||
|
||||
ToxicStenchEffect() {
|
||||
super(Outcome.UnboostCreature);
|
||||
}
|
||||
|
||||
private ToxicStenchEffect(final ToxicStenchEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ToxicStenchEffect copy() {
|
||||
return new ToxicStenchEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
ContinuousEffect effect = new BoostTargetEffect(-1, -1, Duration.EndOfTurn);
|
||||
Permanent permanent = game.getPermanent(source.getFirstTarget());
|
||||
if (permanent != null) {
|
||||
effect.setTargetPointer(new FixedTarget(permanent, game));
|
||||
game.addEffect(effect, source);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.t;
|
||||
|
||||
import mage.MageInt;
|
||||
|
|
@ -6,7 +5,7 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.AttacksOrBlocksTriggeredAbility;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.ExileFromGraveCost;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
|
|
@ -18,7 +17,10 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
|||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -39,20 +41,17 @@ public final class TreacherousVampire extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Whenever Treacherous Vampire attacks or blocks, sacrifice it unless you exile a card from your graveyard.
|
||||
this.addAbility(new AttacksOrBlocksTriggeredAbility(
|
||||
new DoUnlessControllerPaysEffect(
|
||||
new SacrificeSourceEffect(),
|
||||
new ExileFromGraveCost(new TargetCardInYourGraveyard())
|
||||
).setText("sacrifice it unless you exile a card from your graveyard"), false
|
||||
));
|
||||
this.addAbility(new AttacksOrBlocksTriggeredAbility(new DoUnlessControllerPaysEffect(
|
||||
new SacrificeSourceEffect(), new ExileFromGraveCost(new TargetCardInYourGraveyard())
|
||||
).setText("sacrifice it unless you exile a card from your graveyard"), false));
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Treacherous Vampire gets +2/+2 and has "When Treacherous Vampire dies, you lose 6 life."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +2/+2"));
|
||||
Effect effect = new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new DiesSourceTriggeredAbility(new LoseLifeSourceControllerEffect(6))),
|
||||
new CardsInControllerGraveyardCondition(7), "and has \"When {this} dies, you lose 6 life.\""
|
||||
ThresholdCondition.instance, "and has \"When {this} dies, you lose 6 life.\""
|
||||
);
|
||||
ability.addEffect(effect);
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
|
|
|
|||
|
|
@ -1,27 +1,24 @@
|
|||
|
||||
package mage.cards.t;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class TreacherousWerewolf extends CardImpl {
|
||||
|
|
@ -35,14 +32,14 @@ public final class TreacherousWerewolf extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Treacherous Werewolf gets +2/+2 and has "When Treacherous Werewolf dies, you lose 4 life."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +2/+2"));
|
||||
Effect effect = new ConditionalContinuousEffect(
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +2/+2"
|
||||
));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(new DiesSourceTriggeredAbility(new LoseLifeSourceControllerEffect(4))),
|
||||
new CardsInControllerGraveyardCondition(7), "and has \"When {this} dies, you lose 4 life.\""
|
||||
);
|
||||
ability.addEffect(effect);
|
||||
ThresholdCondition.instance, "and has \"When {this} dies, you lose 4 life.\""
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
|
||||
package mage.cards.v;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
|
|
@ -16,32 +14,37 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetAttackingOrBlockingCreature;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class VigilantSentry extends CardImpl {
|
||||
|
||||
public VigilantSentry(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{W}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.NOMAD);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Vigilant Sentry gets +1/+1 and has "{tap}: Target attacking or blocking creature gets +3/+3 until end of turn."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"));
|
||||
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(3, 3, Duration.EndOfTurn), new TapSourceCost());
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +1/+1"
|
||||
));
|
||||
Ability gainedAbility = new SimpleActivatedAbility(
|
||||
new BoostTargetEffect(3, 3, Duration.EndOfTurn), new TapSourceCost()
|
||||
);
|
||||
gainedAbility.addTarget(new TargetAttackingOrBlockingCreature());
|
||||
ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(gainedAbility),
|
||||
new CardsInControllerGraveyardCondition(7), "and has \"{T}: Target attacking or blocking creature gets +3/+3 until end of turn.\""));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(gainedAbility), ThresholdCondition.instance,
|
||||
"and has \"{T}: Target attacking or blocking creature gets +3/+3 until end of turn.\""
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,11 @@
|
|||
|
||||
package mage.cards.w;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.SacrificeControllerEffect;
|
||||
import mage.abilities.effects.common.continuous.BecomesColorSourceEffect;
|
||||
|
|
@ -18,22 +16,18 @@ import mage.abilities.keyword.TrampleAbility;
|
|||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.constants.*;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cbt33, Plopman (Archdemon of Unx)
|
||||
*/
|
||||
public final class WaywardAngel extends CardImpl {
|
||||
|
||||
public WaywardAngel(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{W}{W}");
|
||||
this.subtype.add(SubType.ANGEL);
|
||||
this.subtype.add(SubType.HORROR);
|
||||
|
||||
|
|
@ -42,29 +36,28 @@ public final class WaywardAngel extends CardImpl {
|
|||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Vigilance
|
||||
this.addAbility(VigilanceAbility.getInstance());
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Wayward Angel gets +3/+3, is black, has trample, and has "At the beginning of your upkeep, sacrifice a creature."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"As long as seven or more cards are in your graveyard, {this} gets +3/+3"));
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"as long as seven or more cards are in your graveyard, {this} gets +3/+3"));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new BecomesColorSourceEffect(ObjectColor.BLACK, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
", is black"));
|
||||
ThresholdCondition.instance, ", is black"));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(TrampleAbility.getInstance()),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
", has trample"));
|
||||
|
||||
Ability gainedAbility = new BeginningOfUpkeepTriggeredAbility(new SacrificeControllerEffect(new FilterControlledCreaturePermanent(), 1, ""), TargetController.YOU, false);
|
||||
|
||||
ThresholdCondition.instance, ", has trample"
|
||||
));
|
||||
Ability gainedAbility = new BeginningOfUpkeepTriggeredAbility(
|
||||
new SacrificeControllerEffect(StaticFilters.FILTER_CONTROLLED_CREATURE, 1, ""), TargetController.YOU, false
|
||||
);
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(gainedAbility),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"and has \"At the beginning of your upkeep, sacrifice a creature.\""));
|
||||
|
||||
new GainAbilitySourceEffect(gainedAbility), ThresholdCondition.instance,
|
||||
"and has \"At the beginning of your upkeep, sacrifice a creature.\""
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
|
||||
package mage.cards.w;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.condition.common.ThresholdCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.mana.GreenManaAbility;
|
||||
|
|
@ -13,18 +10,18 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class Werebear extends CardImpl {
|
||||
|
||||
public Werebear(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.BEAR);
|
||||
this.subtype.add(SubType.DRUID);
|
||||
|
|
@ -34,16 +31,12 @@ public final class Werebear extends CardImpl {
|
|||
|
||||
// {tap}: Add {G}.
|
||||
this.addAbility(new GreenManaAbility());
|
||||
|
||||
// Threshold - Werebear gets +3/+3 as long as seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new SimpleStaticAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield),
|
||||
new CardsInControllerGraveyardCondition(7),
|
||||
"{this} gets +3/+3 as long as seven or more cards are in your graveyard"
|
||||
));
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(thresholdAbility);
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), ThresholdCondition.instance,
|
||||
"{this} gets +3/+3 as long as seven or more cards are in your graveyard"
|
||||
)).setAbilityWord(AbilityWord.THRESHOLD));
|
||||
}
|
||||
|
||||
private Werebear(final Werebear card) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,33 @@
|
|||
package mage.abilities.condition.common;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.game.Controllable;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public enum ThresholdCondition implements Condition {
|
||||
instance;
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
return Optional
|
||||
.ofNullable(source)
|
||||
.map(Controllable::getControllerId)
|
||||
.map(game::getPlayer)
|
||||
.map(Player::getGraveyard)
|
||||
.map(HashSet::size)
|
||||
.orElse(0) >= 7;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "seven or more cards are in your graveyard";
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue