mirror of
https://github.com/magefree/mage.git
synced 2026-01-26 21:29:17 -08:00
refactor: SourcePermanentPowerValue to enum (#13040)
* refactor: standard enum style for SourcePermanentToughnessValue * refactor SourcePermanentPowerCount to enum SourcePermanentPowerValue add comments on usage of NOT_NEGATIVE vs ALLOW_NEGATIVE
This commit is contained in:
parent
5070f8bef7
commit
fb71ce8c85
124 changed files with 435 additions and 624 deletions
|
|
@ -1,13 +1,12 @@
|
|||
|
||||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.TapTargetEffect;
|
||||
|
|
@ -18,6 +17,8 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Quercitron
|
||||
|
|
@ -34,7 +35,7 @@ public final class AbyssalHunter extends CardImpl {
|
|||
|
||||
// {B}, {tap}: Tap target creature. Abyssal Hunter deals damage equal to Abyssal Hunter's power to that creature.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl<>("{B}"));
|
||||
Effect effect = new DamageTargetEffect(new SourcePermanentPowerCount());
|
||||
Effect effect = new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE);
|
||||
effect.setText("{this} deals damage equal to {this}'s power to that creature.");
|
||||
ability.addEffect(effect);
|
||||
ability.addCost(new TapSourceCost());
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
|
||||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.PersistAbility;
|
||||
|
|
@ -19,6 +18,8 @@ import mage.filter.common.FilterCreaturePermanent;
|
|||
import mage.filter.predicate.mageobject.AbilityPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jeffwadsworth
|
||||
|
|
@ -39,7 +40,7 @@ public final class AerieOuphes extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Sacrifice Aerie Ouphes: Aerie Ouphes deals damage equal to its power to target creature with flying.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount())
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("it deals damage equal to its power to target creature with flying"), new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.effects.common.cost.CostModificationEffectImpl;
|
||||
|
|
@ -68,8 +67,6 @@ public final class AgathaOfTheVileCauldron extends CardImpl {
|
|||
|
||||
class AgathaOfTheVileCauldronEffect extends CostModificationEffectImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
AgathaOfTheVileCauldronEffect() {
|
||||
super(Duration.WhileOnBattlefield, Outcome.Benefit, CostModificationType.REDUCE_COST);
|
||||
staticText = "Activated abilities of creatures you control cost {X} less to activate, "
|
||||
|
|
@ -88,7 +85,7 @@ class AgathaOfTheVileCauldronEffect extends CostModificationEffectImpl {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source, Ability abilityToModify) {
|
||||
int amount = xValue.calculate(game, source, this);
|
||||
int amount = SourcePermanentPowerValue.NOT_NEGATIVE.calculate(game, source, this);
|
||||
if (amount <= 0) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ public final class ArmoredArmadillo extends CardImpl {
|
|||
// {3}{W}: Armored Armadillo gets +X/+0 until end of turn, where X is its toughness.
|
||||
this.addAbility(new SimpleActivatedAbility(
|
||||
new BoostSourceEffect(
|
||||
SourcePermanentToughnessValue.getInstance(), StaticValue.get(0), Duration.EndOfTurn
|
||||
SourcePermanentToughnessValue.instance, StaticValue.get(0), Duration.EndOfTurn
|
||||
).setText("{this} gets +X/+0 until end of turn, where X is its toughness."),
|
||||
new ManaCostsImpl<>("{3}{W}")));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,19 +1,20 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.FilterPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author TheElk801
|
||||
|
|
@ -39,7 +40,7 @@ public final class AttendantOfVraska extends CardImpl {
|
|||
// When Attendant of Vraska dies, if you control a Vraska planeswalker, you gain life equal to Attendant of Vraska's power.
|
||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
|
||||
new DiesSourceTriggeredAbility(new GainLifeEffect(
|
||||
new SourcePermanentPowerCount()
|
||||
SourcePermanentPowerValue.NOT_NEGATIVE
|
||||
), false), new PermanentsOnTheBattlefieldCondition(filter),
|
||||
"When {this} dies, if you control a Vraska planeswalker, "
|
||||
+ "you gain life equal to {this}'s power."
|
||||
|
|
|
|||
|
|
@ -1,21 +1,20 @@
|
|||
|
||||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
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 mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Loki
|
||||
|
|
@ -31,7 +30,7 @@ public final class AuriokBladewarden extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// {tap}: Target creature gets +X/+X until end of turn, where X is Auriok Bladewarden's power.
|
||||
Ability ability = new SimpleActivatedAbility(new BoostTargetEffect(new SourcePermanentPowerCount(), new SourcePermanentPowerCount(), Duration.EndOfTurn), new TapSourceCost());
|
||||
Ability ability = new SimpleActivatedAbility(new BoostTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE, SourcePermanentPowerValue.NOT_NEGATIVE, Duration.EndOfTurn), new TapSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package mage.cards.b;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.keyword.EnlistAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -32,7 +32,7 @@ public final class BalduvianBerserker extends CardImpl {
|
|||
|
||||
// When Balduvian Berserker dies, it deals damage equal to its power to any target.
|
||||
Ability ability = new DiesSourceTriggeredAbility(new DamageTargetEffect(
|
||||
new SourcePermanentPowerCount()
|
||||
SourcePermanentPowerValue.NOT_NEGATIVE
|
||||
).setText("it deals damage equal to its power to any target"));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,12 +1,9 @@
|
|||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
|
|
@ -19,6 +16,8 @@ import mage.filter.StaticFilters;
|
|||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Styxo
|
||||
|
|
@ -37,8 +36,7 @@ public final class BlindWorship extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature has "Whenever this creature attacks, each other creature you control gets +X/+X until end of turn, where X is this creature's power."
|
||||
DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
Ability attachedAbility = new AttacksTriggeredAbility(new BoostControlledEffect(xValue, xValue, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, true), false);
|
||||
Ability attachedAbility = new AttacksTriggeredAbility(new BoostControlledEffect(SourcePermanentPowerValue.NOT_NEGATIVE, SourcePermanentPowerValue.NOT_NEGATIVE, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, true), false);
|
||||
Effect gainAbilityEffect = new GainAbilityAttachedEffect(attachedAbility, AttachmentType.AURA);
|
||||
gainAbilityEffect.setText("Enchanted creature has \"Whenever this creature attacks, each other creature you control gets +X/+X until end of turn, where X is this creature's power\"");
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, gainAbilityEffect));
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@ package mage.cards.b;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -18,8 +17,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class BottleGolems extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public BottleGolems(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}");
|
||||
|
||||
|
|
@ -31,7 +28,7 @@ public final class BottleGolems extends CardImpl {
|
|||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// When Bottle Golems dies, you gain life equal to its power.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new GainLifeEffect(xValue, "you gain life equal to its power")));
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new GainLifeEffect(SourcePermanentPowerValue.NOT_NEGATIVE, "you gain life equal to its power")));
|
||||
}
|
||||
|
||||
private BottleGolems(final BottleGolems card) {
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@ package mage.cards.b;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.abilities.keyword.PrototypeAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -18,8 +17,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class BoulderbranchGolem extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public BoulderbranchGolem(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{7}");
|
||||
|
||||
|
|
@ -32,7 +29,7 @@ public final class BoulderbranchGolem extends CardImpl {
|
|||
|
||||
// When Boulderbranch Golem enters the battlefield, you gain life equal to its power.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||
new GainLifeEffect(xValue).setText("you gain life equal to its power")
|
||||
new GainLifeEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("you gain life equal to its power")
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.b;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.dynamicvalue.common.StaticValue;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -22,8 +21,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class BrambleguardCaptain extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public BrambleguardCaptain(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
|
||||
|
||||
|
|
@ -34,7 +31,7 @@ public final class BrambleguardCaptain extends CardImpl {
|
|||
|
||||
// At the beginning of combat on your turn, target creature you control gets +X/+0 until end of turn, where X is Brambleguard Captain's power.
|
||||
Ability ability = new BeginningOfCombatTriggeredAbility(new BoostTargetEffect(
|
||||
xValue, StaticValue.get(0), Duration.EndOfTurn
|
||||
SourcePermanentPowerValue.NOT_NEGATIVE, StaticValue.get(0), Duration.EndOfTurn
|
||||
), TargetController.YOU, false);
|
||||
ability.addTarget(new TargetControlledCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
|
|
@ -19,6 +18,8 @@ import mage.target.TargetPermanent;
|
|||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
|
|
@ -38,7 +39,7 @@ public final class BurningAnger extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature has "{T}: This creature deals damage equal to its power to any target."
|
||||
Effect effect = new DamageTargetEffect(new SourcePermanentPowerCount());
|
||||
Effect effect = new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE);
|
||||
effect.setText("{this} deals damage equal to its power to any target");
|
||||
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost());
|
||||
gainedAbility.addTarget(new TargetAnyTarget());
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.DoIfCostPaid;
|
||||
import mage.abilities.effects.common.counter.ProliferateEffect;
|
||||
|
|
@ -23,8 +22,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class CacophonyScamp extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public CacophonyScamp(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}");
|
||||
|
||||
|
|
@ -40,7 +37,7 @@ public final class CacophonyScamp extends CardImpl {
|
|||
), false));
|
||||
|
||||
// When Cacophony Scamp dies, it deals damage equal to its power to any target.
|
||||
Ability ability = new DiesSourceTriggeredAbility(new DamageTargetEffect(xValue)
|
||||
Ability ability = new DiesSourceTriggeredAbility(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("it deals damage equal to its power to any target"));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,16 +1,15 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.Game;
|
||||
|
|
@ -18,6 +17,8 @@ import mage.game.events.GameEvent;
|
|||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.watchers.common.SpellsCastWatcher;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author weirddan455
|
||||
|
|
@ -51,7 +52,7 @@ class CaptainRipleyVanceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public CaptainRipleyVanceTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()));
|
||||
addEffect(new DamageTargetEffect(new SourcePermanentPowerCount()).setText("it deals damage equal to its power to any target").concatBy(", then"));
|
||||
addEffect(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("it deals damage equal to its power to any target").concatBy(", then"));
|
||||
addTarget(new TargetAnyTarget());
|
||||
setTriggerPhrase("Whenever you cast your third spell each turn, ");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import mage.MageInt;
|
|||
import mage.ObjectColor;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.keyword.ChangelingAbility;
|
||||
import mage.abilities.keyword.ProtectionAbility;
|
||||
|
|
@ -21,8 +21,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class ChameleonColossus extends CardImpl {
|
||||
|
||||
private static final SourcePermanentPowerCount xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public ChameleonColossus(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}");
|
||||
this.subtype.add(SubType.SHAPESHIFTER);
|
||||
|
|
@ -38,7 +36,7 @@ public final class ChameleonColossus extends CardImpl {
|
|||
|
||||
// {2}{G}{G}: Chameleon Colossus gets +X/+X until end of turn, where X is its power.
|
||||
this.addAbility(new SimpleActivatedAbility(
|
||||
new BoostSourceEffect(xValue, xValue, Duration.EndOfTurn)
|
||||
new BoostSourceEffect(SourcePermanentPowerValue.NOT_NEGATIVE, SourcePermanentPowerValue.NOT_NEGATIVE, Duration.EndOfTurn)
|
||||
.setText("{this} gets +X/+X until end of turn, where X is its power"),
|
||||
new ManaCostsImpl<>("{2}{G}{G}")
|
||||
));
|
||||
|
|
|
|||
|
|
@ -1,13 +1,10 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.discard.DiscardControllerEffect;
|
||||
|
|
@ -17,6 +14,8 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
|
|
@ -32,8 +31,7 @@ public final class ChampionOfWits extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// When Champion of Wits enters the battlefield, you may draw cards equal to its power. If you do, discard two cards
|
||||
DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
Effect effect = new DrawCardSourceControllerEffect(xValue);
|
||||
Effect effect = new DrawCardSourceControllerEffect(SourcePermanentPowerValue.NOT_NEGATIVE);
|
||||
effect.setText("you may draw cards equal to its power");
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(effect, true);
|
||||
effect = new DiscardControllerEffect(2);
|
||||
|
|
@ -53,4 +51,4 @@ public final class ChampionOfWits extends CardImpl {
|
|||
public ChampionOfWits copy() {
|
||||
return new ChampionOfWits(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,23 +1,23 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author michael.napoleon@gmail.com
|
||||
|
|
@ -34,7 +34,7 @@ public final class CinderShade extends CardImpl {
|
|||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{B}")));
|
||||
|
||||
// {R}, Sacrifice Cinder Shade: Cinder Shade deals damage equal to its power to target creature.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount())
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("It deals damage equal to its power to target creature"), new ManaCostsImpl<>("{R}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
|
|
@ -25,7 +25,7 @@ public final class CommandoRaid extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{R}");
|
||||
|
||||
// Until end of turn, target creature you control gains "When this creature deals combat damage to a player, you may have it deal damage equal to its power to target creature that player controls."
|
||||
Effect effect = new DamageTargetEffect(new SourcePermanentPowerCount());
|
||||
Effect effect = new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE);
|
||||
effect.setText("have it deal damage equal to its power to target creature that player controls.");
|
||||
Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(effect, true, true);
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.c;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.abilities.effects.common.replacement.ModifyCountersAddedEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -21,8 +20,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class ConclaveMentor extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public ConclaveMentor(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}{W}");
|
||||
|
||||
|
|
@ -35,7 +32,7 @@ public final class ConclaveMentor extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(new ModifyCountersAddedEffect(StaticFilters.FILTER_CONTROLLED_CREATURE, CounterType.P1P1)));
|
||||
|
||||
// When Conclave Mentor dies, you gain life equal to its power.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new GainLifeEffect(xValue, "you gain life equal to its power")));
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new GainLifeEffect(SourcePermanentPowerValue.NOT_NEGATIVE, "you gain life equal to its power")));
|
||||
}
|
||||
|
||||
private ConclaveMentor(final ConclaveMentor card) {
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.Mana;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.keyword.PrototypeAbility;
|
||||
import mage.abilities.mana.DynamicManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -18,8 +17,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class CradleClearcutter extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public CradleClearcutter(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{6}");
|
||||
|
||||
|
|
@ -32,7 +29,7 @@ public final class CradleClearcutter extends CardImpl {
|
|||
|
||||
// {T}: Add an amount of {G} equal to Cradle Clearcutter's power.
|
||||
this.addAbility(new DynamicManaAbility(
|
||||
Mana.GreenMana(1), xValue, "Add an amount of {G} equal to {this}'s power."
|
||||
Mana.GreenMana(1), SourcePermanentPowerValue.NOT_NEGATIVE, "Add an amount of {G} equal to {this}'s power."
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.keyword.FabricateAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -32,7 +31,7 @@ public final class CultivatorOfBlades extends CardImpl {
|
|||
this.addAbility(new FabricateAbility(2));
|
||||
|
||||
// Whenever Cultivator of Blades attacks, you may have other attacking creatures get +X/+X until end of turn, where X is Cultivator of Blades's power.
|
||||
this.addAbility(new AttacksTriggeredAbility(new BoostControlledEffect(new SourcePermanentPowerCount(), new SourcePermanentPowerCount(), Duration.EndOfTurn, StaticFilters.FILTER_ATTACKING_CREATURES, true),
|
||||
this.addAbility(new AttacksTriggeredAbility(new BoostControlledEffect(SourcePermanentPowerValue.NOT_NEGATIVE, SourcePermanentPowerValue.NOT_NEGATIVE, Duration.EndOfTurn, StaticFilters.FILTER_ATTACKING_CREATURES, true),
|
||||
true, "Whenever Cultivator of Blades attacks, you may have other attacking creatures get +X/+X until end of turn, where X is Cultivator of Blades's power."));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import mage.abilities.common.DiesSourceTriggeredAbility;
|
|||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
|
||||
import mage.abilities.costs.common.PayEnergyCost;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.DoWhenCostPaid;
|
||||
import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect;
|
||||
|
|
@ -39,7 +39,7 @@ public final class CyclopsSuperconductor extends CardImpl {
|
|||
|
||||
// When Cyclops Superconductor dies, you may pay {E}{E}{E}. When you do, Cyclops Superconductor deals damage equal to its power to any target.
|
||||
ReflexiveTriggeredAbility reflexive = new ReflexiveTriggeredAbility(
|
||||
new DamageTargetEffect(new SourcePermanentPowerCount())
|
||||
new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("{this} deals damage equal to its power to any target"),
|
||||
false
|
||||
);
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.d;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityPairedEffect;
|
||||
import mage.abilities.keyword.ReachAbility;
|
||||
|
|
@ -21,8 +20,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class DoomWeaver extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public DoomWeaver(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}{B}");
|
||||
|
||||
|
|
@ -39,7 +36,7 @@ public final class DoomWeaver extends CardImpl {
|
|||
|
||||
// As long as Doom Weaver is paired with another creature, each of those creatures has "When this creature dies, draw cards equal to its power."
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityPairedEffect(new DiesSourceTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(xValue).setText("draw cards equal to its power")
|
||||
new DrawCardSourceControllerEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("draw cards equal to its power")
|
||||
).setTriggerPhrase("When this creature dies, "), "As long as {this} is paired with another creature, " +
|
||||
"each of those creatures has \"When this creature dies, draw cards equal to its power.\"")));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,11 @@
|
|||
|
||||
package mage.cards.d;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
||||
|
|
@ -21,6 +18,8 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.*;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
|
|
@ -37,8 +36,7 @@ public final class DragonThroneOfTarkir extends CardImpl {
|
|||
Effect effect = new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES, true);
|
||||
effect.setText("Other creatures you control gain trample");
|
||||
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(2));
|
||||
DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
effect = new BoostControlledEffect(xValue, xValue, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, true);
|
||||
effect = new BoostControlledEffect(SourcePermanentPowerValue.NOT_NEGATIVE, SourcePermanentPowerValue.NOT_NEGATIVE, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, true);
|
||||
effect.setText("and get +X/+X until end of turn, where X is this creature's power");
|
||||
gainedAbility.addEffect(effect);
|
||||
gainedAbility.addCost(new TapSourceCost());
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DealsCombatDamageToAPlayerOrPlaneswalkerTriggeredAbility;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
|
|
@ -40,7 +40,7 @@ public final class DreadhordeButcher extends CardImpl {
|
|||
|
||||
// When Dreadhorde Butcher dies, it deals damage equal to its power to any target.
|
||||
Ability ability = new DiesSourceTriggeredAbility(new DamageTargetEffect(
|
||||
new SourcePermanentPowerCount()
|
||||
SourcePermanentPowerValue.NOT_NEGATIVE
|
||||
).setText("it deals damage equal to its power to any target"));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package mage.cards.d;
|
|||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
|
|
@ -37,7 +37,7 @@ public final class DreadmawsIre extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance())
|
||||
.setText("and gains trample"));
|
||||
|
||||
Effect effect = new DamageTargetEffect(new SourcePermanentPowerCount());
|
||||
Effect effect = new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE);
|
||||
effect.setText("have it deal damage equal to its power to target creature that player controls.");
|
||||
Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(new DestroyTargetEffect(), false, true);
|
||||
ability.addTarget(new TargetPermanent(filter));
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import mage.abilities.costs.common.TapSourceCost;
|
|||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.MultipliedValue;
|
||||
import mage.abilities.dynamicvalue.common.CardsInControllerHandCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.SetBasePowerToughnessSourceEffect;
|
||||
import mage.abilities.effects.keyword.InvestigateEffect;
|
||||
|
|
@ -44,7 +44,7 @@ public final class DugganPrivateDetective extends CardImpl {
|
|||
// The Most Important Punch in History -- {1}{G}, {T}: Duggan deals damage equal to twice its power to another target creature. Activate only once.
|
||||
Ability ability = new ActivateOncePerGameActivatedAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new DamageTargetEffect(new MultipliedValue(new SourcePermanentPowerCount(), 2))
|
||||
new DamageTargetEffect(new MultipliedValue(SourcePermanentPowerValue.NOT_NEGATIVE, 2))
|
||||
.setText("{this} deals damage equal to twice its power to another target creature"),
|
||||
new ManaCostsImpl<>("{1}{G}"),
|
||||
TimingRule.INSTANT);
|
||||
|
|
|
|||
|
|
@ -1,11 +1,10 @@
|
|||
|
||||
package mage.cards.d;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.AssignNoCombatDamageSourceEffect;
|
||||
|
|
@ -29,7 +28,7 @@ public final class DwarvenVigilantes extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Whenever Dwarven Vigilantes attacks and isn't blocked, you may have it deal damage equal to its power to target creature. If you do, Dwarven Vigilantes assigns no combat damage this turn.
|
||||
Effect effect = new DamageTargetEffect(new SourcePermanentPowerCount());
|
||||
Effect effect = new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE);
|
||||
effect.setText("it deal damage equal to its power to target creature");
|
||||
Ability ability = new AttacksAndIsNotBlockedTriggeredAbility(effect, true);
|
||||
ability.addEffect(new AssignNoCombatDamageSourceEffect(Duration.EndOfTurn, true));
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
|
||||
package mage.cards.e;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.PayEnergyCost;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -22,8 +20,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class ElectrostaticPummeler extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public ElectrostaticPummeler(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}");
|
||||
this.subtype.add(SubType.CONSTRUCT);
|
||||
|
|
@ -35,7 +31,7 @@ public final class ElectrostaticPummeler extends CardImpl {
|
|||
|
||||
// Pay {E}{E}{E}: Electrostatic Pummeler gets +X/+X until end of turn, where X is its power.
|
||||
this.addAbility(new SimpleActivatedAbility(new BoostSourceEffect(
|
||||
xValue, xValue, Duration.EndOfTurn
|
||||
SourcePermanentPowerValue.NOT_NEGATIVE, SourcePermanentPowerValue.NOT_NEGATIVE, Duration.EndOfTurn
|
||||
).setText("{this} gets +X/+X until end of turn, where X is its power"), new PayEnergyCost(3)));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
|
||||
package mage.cards.e;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesCreatureTriggeredAbility;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
|
|
@ -17,6 +15,8 @@ import mage.constants.SuperType;
|
|||
import mage.counters.CounterType;
|
||||
import mage.game.permanent.token.IxalanVampireToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author L_J
|
||||
|
|
@ -38,7 +38,7 @@ public final class ElendaTheDuskRose extends CardImpl {
|
|||
this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, true));
|
||||
|
||||
// When Elenda dies, create X 1/1 white Vampire creature tokens with lifelink, where X is Elenda's power.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new IxalanVampireToken(), new SourcePermanentPowerCount())));
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new IxalanVampireToken(), SourcePermanentPowerValue.NOT_NEGATIVE)));
|
||||
}
|
||||
|
||||
private ElendaTheDuskRose(final ElendaTheDuskRose card) {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.e;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.common.GainLifeControllerTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
|
|
@ -22,8 +21,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class ElendasHierophant extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public ElendasHierophant(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}");
|
||||
|
||||
|
|
@ -39,7 +36,7 @@ public final class ElendasHierophant extends CardImpl {
|
|||
this.addAbility(new GainLifeControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance())));
|
||||
|
||||
// When Elenda's Hierophant dies, create X 1/1 white Vampire creature tokens with lifelink, where X is its power.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new IxalanVampireToken(), xValue)
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new IxalanVampireToken(), SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("create X 1/1 white Vampire creature tokens with lifelink, where X is its power")));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.e;
|
|||
import mage.MageInt;
|
||||
import mage.MageObject;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
|
||||
import mage.abilities.keyword.BackupAbility;
|
||||
import mage.cards.Card;
|
||||
|
|
@ -34,8 +33,6 @@ public final class EmergentWoodwurm extends CardImpl {
|
|||
filter.add(EmergentWoodwurmPredicate.instance);
|
||||
}
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public EmergentWoodwurm(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{6}{G}");
|
||||
|
||||
|
|
@ -49,7 +46,7 @@ public final class EmergentWoodwurm extends CardImpl {
|
|||
|
||||
// Whenever this creature attacks, look at the top X cards of your library, where X is its power. You may put a permanent card with mana value X or less from among them onto the battlefield. Put the rest on the bottom of your library in a random order.
|
||||
backupAbility.addAbility(new AttacksTriggeredAbility(new LookLibraryAndPickControllerEffect(
|
||||
xValue, 1, filter, PutCards.BATTLEFIELD, PutCards.BOTTOM_RANDOM
|
||||
SourcePermanentPowerValue.NOT_NEGATIVE, 1, filter, PutCards.BATTLEFIELD, PutCards.BOTTOM_RANDOM
|
||||
)).setTriggerPhrase("Whenever this creature attacks, "));
|
||||
}
|
||||
|
||||
|
|
@ -78,4 +75,4 @@ enum EmergentWoodwurmPredicate implements ObjectSourcePlayerPredicate<Card> {
|
|||
.map(i -> input.getObject().getManaValue() <= i)
|
||||
.orElse(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,15 +1,10 @@
|
|||
package mage.cards.f;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DealCombatDamageControlledTriggeredAbility;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.abilities.effects.common.LoseLifeOpponentsEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
|
|
@ -17,6 +12,11 @@ import mage.abilities.keyword.FlyingAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -25,7 +25,6 @@ import mage.constants.CardType;
|
|||
public final class FaerieBladecrafter extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(SubType.FAERIE, "Faeries");
|
||||
private static final DynamicValue count = new SourcePermanentPowerCount();
|
||||
|
||||
public FaerieBladecrafter(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}");
|
||||
|
|
@ -42,8 +41,8 @@ public final class FaerieBladecrafter extends CardImpl {
|
|||
this.addAbility(new DealCombatDamageControlledTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), filter));
|
||||
|
||||
// When Faerie Bladecrafter dies, each opponent loses X life and you gain X life, where X is its power.
|
||||
Ability ability = new DiesSourceTriggeredAbility(new LoseLifeOpponentsEffect(count).setText("each opponent loses X life"));
|
||||
ability.addEffect(new GainLifeEffect(count).setText("and you gain X life, where X is its power"));
|
||||
Ability ability = new DiesSourceTriggeredAbility(new LoseLifeOpponentsEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("each opponent loses X life"));
|
||||
ability.addEffect(new GainLifeEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("and you gain X life, where X is its power"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
|
||||
package mage.cards.f;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.dynamicvalue.common.StaticValue;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North
|
||||
|
|
@ -31,7 +31,7 @@ public final class FeralAnimist extends CardImpl {
|
|||
|
||||
// {3}: Feral Animist gets +X/+0 until end of turn, where X is its power.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new BoostSourceEffect(new SourcePermanentPowerCount(), StaticValue.get(0), Duration.EndOfTurn),
|
||||
new BoostSourceEffect(SourcePermanentPowerValue.NOT_NEGATIVE, StaticValue.get(0), Duration.EndOfTurn),
|
||||
new GenericManaCost(3)));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.f;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesCreatureTriggeredAbility;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.counter.AddCountersPlayersEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.MenaceAbility;
|
||||
|
|
@ -23,8 +22,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class FeralGhoul extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public FeralGhoul(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}");
|
||||
|
||||
|
|
@ -44,7 +41,7 @@ public final class FeralGhoul extends CardImpl {
|
|||
|
||||
// When Feral Ghoul dies, each opponent gets a number of rad counters equal to its power.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(
|
||||
new AddCountersPlayersEffect(CounterType.RAD.createInstance(), xValue, TargetController.OPPONENT)
|
||||
new AddCountersPlayersEffect(CounterType.RAD.createInstance(), SourcePermanentPowerValue.NOT_NEGATIVE, TargetController.OPPONENT)
|
||||
.setText("each opponent gets a number of rad counters equal to its power")
|
||||
));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@ package mage.cards.f;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.EquippedSourceCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
|
|
@ -18,15 +18,12 @@ import mage.constants.SubType;
|
|||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class FirebladeCharger extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public FirebladeCharger(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}");
|
||||
|
||||
|
|
@ -43,7 +40,7 @@ public final class FirebladeCharger extends CardImpl {
|
|||
|
||||
// When Fireblade Charger dies, it deals damage equal to its power to any target.
|
||||
Ability ability = new DiesSourceTriggeredAbility(
|
||||
new DamageTargetEffect(xValue).setText("it deals damage equal to its power to any target")
|
||||
new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("it deals damage equal to its power to any target")
|
||||
);
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,20 +1,21 @@
|
|||
package mage.cards.f;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author TheElk801
|
||||
|
|
@ -29,7 +30,7 @@ public final class FlameElemental extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// {R}, {tap}, Sacrifice Flame Elemental: Flame Elemental deals damage equal to its power to target creature.
|
||||
Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(new SourcePermanentPowerCount(false))
|
||||
Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("It deals damage equal to its power to target creature"), new ManaCostsImpl<>("{R}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
|
|
|
|||
|
|
@ -4,10 +4,8 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.MultikickerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.MultikickerAbility;
|
||||
|
|
@ -25,8 +23,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class FlametongueYearling extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public FlametongueYearling(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}{R}");
|
||||
|
||||
|
|
@ -43,7 +39,7 @@ public final class FlametongueYearling extends CardImpl {
|
|||
), "with a +1/+1 counter on it for each time it was kicked"));
|
||||
|
||||
// When Flametongue Yearling enters the battlefield, it deals damage equal to its power to target creature.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(xValue)
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("it deals damage equal to its power to target creature"));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamagePlayersEffect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
|
|
@ -55,7 +55,7 @@ public final class FlamingTyrannosaurus extends CardImpl {
|
|||
|
||||
// When Flaming Tyrannosaurus dies, it deals damage equal to its power to each opponent.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(
|
||||
new DamagePlayersEffect(new SourcePermanentPowerCount(), TargetController.OPPONENT)
|
||||
new DamagePlayersEffect(SourcePermanentPowerValue.NOT_NEGATIVE, TargetController.OPPONENT)
|
||||
.setText("it deals damage equal to its power to each opponent")
|
||||
));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,11 @@
|
|||
|
||||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -16,6 +14,8 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
|
|
@ -31,7 +31,7 @@ public final class GhituFireEater extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// {T}, Sacrifice Ghitu Fire-Eater: Ghitu Fire-Eater deals damage equal to its power to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount())
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("it deals damage equal to its power to any target"), new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@ package mage.cards.g;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.SpellCastOpponentTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.keyword.UndyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -21,8 +20,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class GleefulArsonist extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public GleefulArsonist(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}");
|
||||
|
||||
|
|
@ -33,7 +30,7 @@ public final class GleefulArsonist extends CardImpl {
|
|||
|
||||
// Whenever an opponent casts a noncreature spell, Gleeful Arsonist deals damage equal to its power to that player.
|
||||
this.addAbility(new SpellCastOpponentTriggeredAbility(
|
||||
Zone.BATTLEFIELD, new DamageTargetEffect(xValue).setText("{this} deals damage equal to its power to that player"),
|
||||
Zone.BATTLEFIELD, new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("{this} deals damage equal to its power to that player"),
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false, SetTargetPointer.PLAYER
|
||||
));
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -23,8 +22,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class GoblinFireleaper extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public GoblinFireleaper(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}");
|
||||
|
||||
|
|
@ -39,7 +36,7 @@ public final class GoblinFireleaper extends CardImpl {
|
|||
));
|
||||
|
||||
// When Goblin Fireleaper dies, it deals damage equal to its power to target creature an opponent controls.
|
||||
Ability ability = new DiesSourceTriggeredAbility(new DamageTargetEffect(xValue)
|
||||
Ability ability = new DiesSourceTriggeredAbility(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("it deals damage equal to its power to target creature an opponent controls"));
|
||||
ability.addTarget(new TargetOpponentsCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,21 +1,22 @@
|
|||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
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.permanent.ModifiedPredicate;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -23,7 +24,6 @@ import mage.constants.CardType;
|
|||
*/
|
||||
public final class GoldenTailTrainer extends CardImpl {
|
||||
|
||||
private static final SourcePermanentPowerCount xValue = new SourcePermanentPowerCount(false);
|
||||
private static final FilterCard filter = new FilterCard();
|
||||
private static final FilterCreaturePermanent modifiedFilter = new FilterCreaturePermanent(
|
||||
"modified creatures you control");
|
||||
|
|
@ -43,14 +43,14 @@ public final class GoldenTailTrainer extends CardImpl {
|
|||
|
||||
// Aura and Equipment spells you cast cost {X} less to cast, where X is Golden-Tail Trainer's power.
|
||||
this.addAbility(
|
||||
new SimpleStaticAbility(new SpellsCostReductionControllerEffect(filter, xValue)
|
||||
new SimpleStaticAbility(new SpellsCostReductionControllerEffect(filter, SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText(
|
||||
"Aura and Equipment spells you cast cost {X} less to cast, where X is {this}'s power")));
|
||||
|
||||
// Whenever Golden-Tail Trainer attacks, other modified creatures you control get +X/+X until end of turn, where X is Golden-Tail Trainer's power.
|
||||
this.addAbility(
|
||||
new AttacksTriggeredAbility(
|
||||
new BoostControlledEffect(xValue, xValue, Duration.EndOfTurn, modifiedFilter, true)));
|
||||
this.addAbility(new AttacksTriggeredAbility(new BoostControlledEffect(
|
||||
SourcePermanentPowerValue.NOT_NEGATIVE, SourcePermanentPowerValue.NOT_NEGATIVE,
|
||||
Duration.EndOfTurn, modifiedFilter, true)));
|
||||
}
|
||||
|
||||
private GoldenTailTrainer(final GoldenTailTrainer card) {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.g;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.EntersBattlefieldWithXCountersEffect;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
|
|
@ -24,8 +23,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class GoldveinHydra extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public GoldveinHydra(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{X}{G}");
|
||||
|
||||
|
|
@ -49,7 +46,7 @@ public final class GoldveinHydra extends CardImpl {
|
|||
|
||||
// When Goldvein Hydra dies, create a number of tapped Treasure tokens equal to its power.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(
|
||||
new TreasureToken(), xValue, true, false
|
||||
new TreasureToken(), SourcePermanentPowerValue.NOT_NEGATIVE, true, false
|
||||
).setText("create a number of tapped Treasure tokens equal to its power")));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@ package mage.cards.g;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.keyword.SkulkAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -19,8 +18,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class GregorShrewdMagistrate extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public GregorShrewdMagistrate(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{U}");
|
||||
|
||||
|
|
@ -35,7 +32,7 @@ public final class GregorShrewdMagistrate extends CardImpl {
|
|||
|
||||
// Whenever Glenn deals combat damage to a player, draw cards equal to his power.
|
||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(xValue).setText("draw cards equal to its power"), false
|
||||
new DrawCardSourceControllerEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("draw cards equal to its power"), false
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
|
||||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.abilities.keyword.BloodthirstAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -14,6 +12,8 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author escplan9 (Derek Monturo - dmontur1 at gmail dot com)
|
||||
|
|
@ -32,7 +32,7 @@ public final class Gristleback extends CardImpl {
|
|||
|
||||
// Sacrifice Gristleback: You gain life equal to Gristleback's power.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new GainLifeEffect(new SourcePermanentPowerCount()).setText("You gain life equal to {this}'s power"),
|
||||
new GainLifeEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("You gain life equal to {this}'s power"),
|
||||
new SacrificeSourceCost()));
|
||||
}
|
||||
|
||||
|
|
@ -44,4 +44,4 @@ public final class Gristleback extends CardImpl {
|
|||
public Gristleback copy() {
|
||||
return new Gristleback(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
|
||||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
|
|
@ -18,6 +16,8 @@ import mage.filter.common.FilterCreaturePermanent;
|
|||
import mage.filter.predicate.mageobject.ColorlessPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
|
|
@ -34,7 +34,7 @@ public final class GruesomeSlaughter extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{6}");
|
||||
|
||||
// Until end of turn, colorless creatures you control gain "{T}: This creature deals damage equal to its power to target creature."
|
||||
Effect effect = new DamageTargetEffect(new SourcePermanentPowerCount());
|
||||
Effect effect = new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE);
|
||||
effect.setText("{this} deals damage equal to its power to target creature.");
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import mage.abilities.common.DiesSourceTriggeredAbility;
|
|||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.SourceMatchesFilterCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.CreateTokenCopySourceEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersAllEffect;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
|
|
@ -56,7 +56,7 @@ public final class GruffTriplets extends CardImpl {
|
|||
this.addAbility(new DiesSourceTriggeredAbility(
|
||||
new AddCountersAllEffect(
|
||||
CounterType.P1P1.createInstance(),
|
||||
new SourcePermanentPowerCount(),
|
||||
SourcePermanentPowerValue.NOT_NEGATIVE,
|
||||
filterNamedGruffTriplets
|
||||
).setText("put a number of +1/+1 counters equal to its power on each creature you control named Gruff Triplets.")
|
||||
));
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.AttacksAloneSourceTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentToughnessValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
|
|
@ -14,12 +12,16 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
|||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.counters.CounterType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author JRHerlehy
|
||||
* Created on 4/5/18.
|
||||
*/
|
||||
public final class GrunnTheLonelyKing extends CardImpl {
|
||||
|
||||
|
|
@ -31,16 +33,15 @@ public final class GrunnTheLonelyKing extends CardImpl {
|
|||
this.power = new MageInt(5);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
//Kicker {3} (You may pay an additional {3} as you cast this spell.)
|
||||
// Kicker {3} (You may pay an additional {3} as you cast this spell.)
|
||||
this.addAbility(new KickerAbility("{3}"));
|
||||
|
||||
//If Grunn, the Lonely King was kicked, it enters with five +1/+1 counters on it.
|
||||
// If Grunn, the Lonely King was kicked, it enters with five +1/+1 counters on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(5)),
|
||||
KickedCondition.ONCE, "If {this} was kicked, it enters with five +1/+1 counters on it.", ""));
|
||||
|
||||
//Whenever Grunn attacks alone, double its power and toughness until end of turn.
|
||||
SourcePermanentPowerCount power = new SourcePermanentPowerCount();
|
||||
Effect effect = new BoostSourceEffect(power, SourcePermanentToughnessValue.getInstance(), Duration.EndOfTurn);
|
||||
// Whenever Grunn attacks alone, double its power and toughness until end of turn.
|
||||
Effect effect = new BoostSourceEffect(SourcePermanentPowerValue.ALLOW_NEGATIVE, SourcePermanentToughnessValue.instance, Duration.EndOfTurn);
|
||||
effect.setText("double its power and toughness until end of turn");
|
||||
this.addAbility(new AttacksAloneSourceTriggeredAbility(effect));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.g;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.dynamicvalue.common.StaticValue;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.keyword.RiotAbility;
|
||||
|
|
@ -23,8 +22,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class GruulBeastmaster extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public GruulBeastmaster(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}");
|
||||
this.subtype.add(SubType.HUMAN, SubType.SHAMAN);
|
||||
|
|
@ -36,7 +33,7 @@ public final class GruulBeastmaster extends CardImpl {
|
|||
|
||||
// Whenever Gruul Beastmaster attacks, another target creature you control gets +X/+0 until end of turn, where X is Gruul Beastmaster's power.
|
||||
Ability ability = new AttacksTriggeredAbility(new BoostTargetEffect(
|
||||
xValue, StaticValue.get(0), Duration.EndOfTurn), false);
|
||||
SourcePermanentPowerValue.NOT_NEGATIVE, StaticValue.get(0), Duration.EndOfTurn), false);
|
||||
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.h;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
||||
import mage.abilities.keyword.FirstStrikeAbility;
|
||||
|
|
@ -24,8 +23,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class HalanaAndAlenaPartners extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public HalanaAndAlenaPartners(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{G}");
|
||||
|
||||
|
|
@ -43,7 +40,7 @@ public final class HalanaAndAlenaPartners extends CardImpl {
|
|||
|
||||
// At the beginning of combat on your turn, put X +1/+1 counters on another target creature you control, where X is Halana and Alena's power. That creature gains haste until end of turn.
|
||||
Ability ability = new BeginningOfCombatTriggeredAbility(
|
||||
new AddCountersTargetEffect(CounterType.P1P1.createInstance(0), xValue)
|
||||
new AddCountersTargetEffect(CounterType.P1P1.createInstance(0), SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("put X +1/+1 counters on another target creature you control, where X is {this}'s power"),
|
||||
TargetController.YOU, false
|
||||
);
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.h;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.AttacksOpponentWithMostLifeTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -23,8 +22,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class HardyOutlander extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public HardyOutlander(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{G}");
|
||||
|
||||
|
|
@ -33,7 +30,7 @@ public final class HardyOutlander extends CardImpl {
|
|||
|
||||
// Commander creatures you own have "Whenever this creature attacks a player, if no opponent has more life than that player, another target creature you control gets +X/+X until end of turn, where X is this creature's power."
|
||||
Ability ability = new AttacksOpponentWithMostLifeTriggeredAbility(new BoostTargetEffect(
|
||||
xValue, xValue, Duration.EndOfTurn
|
||||
SourcePermanentPowerValue.NOT_NEGATIVE, SourcePermanentPowerValue.NOT_NEGATIVE, Duration.EndOfTurn
|
||||
).setText("another target creature you control gets +X/+X until end of turn, where X is this creature's power"), false);
|
||||
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE));
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(
|
||||
|
|
|
|||
|
|
@ -1,13 +1,11 @@
|
|||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.UntapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.keyword.WitherAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -17,6 +15,8 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jeffwadsworth
|
||||
|
|
@ -34,7 +34,7 @@ public final class Hateflayer extends CardImpl {
|
|||
this.addAbility(WitherAbility.getInstance());
|
||||
|
||||
// {2}{R}, {untap}: Hateflayer deals damage equal to its power to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount())
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("{this} deals damage equal to its power to any target"), new ManaCostsImpl<>("{2}{R}"));
|
||||
ability.addCost(new UntapSourceCost());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.h;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.common.ValiantTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamagePlayersEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -21,8 +20,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class HeartfireHero extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public HeartfireHero(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}");
|
||||
|
||||
|
|
@ -36,7 +33,7 @@ public final class HeartfireHero extends CardImpl {
|
|||
.setText("put a +1/+1 counter on it")));
|
||||
|
||||
// When Heartfire Hero dies, it deals damage equal to its power to each opponent.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new DamagePlayersEffect(xValue, TargetController.OPPONENT)
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new DamagePlayersEffect(SourcePermanentPowerValue.NOT_NEGATIVE, TargetController.OPPONENT)
|
||||
.setText("it deals damage equal to its power to each opponent")));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.keyword.ProwessAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -22,8 +21,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class HeartfireImmolator extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public HeartfireImmolator(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}");
|
||||
|
||||
|
|
@ -37,7 +34,7 @@ public final class HeartfireImmolator extends CardImpl {
|
|||
|
||||
// {R}, Sacrifice Heartfire Immolator: It deals damage equal to its power to target creature or planeswalker.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new DamageTargetEffect(xValue)
|
||||
new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("it deals damage equal to its power to target creature or planeswalker"),
|
||||
new ManaCostsImpl<>("{R}")
|
||||
);
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
|||
import mage.abilities.costs.Cost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
|
|
@ -61,7 +61,7 @@ public class HelgaSkittishSeer extends CardImpl {
|
|||
this.addAbility(
|
||||
new SimpleManaAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new HelgaSkittishSeerManaEffect(new SourcePermanentPowerCount()),
|
||||
new HelgaSkittishSeerManaEffect(SourcePermanentPowerValue.NOT_NEGATIVE),
|
||||
new TapSourceCost()
|
||||
)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.keyword.UnleashAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -17,6 +16,8 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetPlayerOrPlaneswalker;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
|
|
@ -35,7 +36,7 @@ public final class HellholeFlailer extends CardImpl {
|
|||
this.addAbility(new UnleashAbility());
|
||||
|
||||
// {2}{B}{R}, Sacrifice Hellhole Flailer: Hellhole Flailer deals damage equal to its power to target player or planeswalker.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount())
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("{this} deals damage equal to its power to target player or planeswalker"), new ManaCostsImpl<>("{2}{B}{R}"));
|
||||
ability.addTarget(new TargetPlayerOrPlaneswalker());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -16,6 +15,8 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
|
|
@ -33,7 +34,7 @@ public final class HeroesBane extends CardImpl {
|
|||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(4), true),
|
||||
"with four +1/+1 counters on it"));
|
||||
// {2}{G}{G}: Put X +1/+1 counters on Heroe's Bane, where X is its power.
|
||||
Effect effect = new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), new SourcePermanentPowerCount(), true);
|
||||
Effect effect = new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), SourcePermanentPowerValue.NOT_NEGATIVE, true);
|
||||
effect.setText("Put X +1/+1 counters on {this}, where X is its power");
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}{G}{G}")));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ import mage.MageInt;
|
|||
import mage.Mana;
|
||||
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.abilities.mana.DynamicManaAbility;
|
||||
|
|
@ -31,8 +30,6 @@ public final class HeronbladeElite extends CardImpl {
|
|||
filter.add(AnotherPredicate.instance);
|
||||
}
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public HeronbladeElite(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
|
||||
|
||||
|
|
@ -51,7 +48,7 @@ public final class HeronbladeElite extends CardImpl {
|
|||
|
||||
// {T}: Add X mana of any one color, where X is Heronblade Elite's power.
|
||||
this.addAbility(new DynamicManaAbility(
|
||||
Mana.AnyMana(1), xValue, new TapSourceCost(), "Add X mana "
|
||||
Mana.AnyMana(1), SourcePermanentPowerValue.NOT_NEGATIVE, new TapSourceCost(), "Add X mana "
|
||||
+ "of any one color, where X is {this}'s power", true
|
||||
));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import mage.abilities.common.AttacksTriggeredAbility;
|
|||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.SourceMatchesFilterCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageControllerEffect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -44,8 +44,8 @@ public final class IanTheReckless extends CardImpl {
|
|||
|
||||
// Whenever Ian the Reckless attacks, if it's modified, you may have it deal damage equal to its power to you and any target.
|
||||
TriggeredAbility ability = new AttacksTriggeredAbility(new DamageControllerEffect(
|
||||
new SourcePermanentPowerCount()).setText("have it deal damage equal to its power to you"), true);
|
||||
ability.addEffect(new DamageTargetEffect(new SourcePermanentPowerCount()).setText("and any target"));
|
||||
SourcePermanentPowerValue.NOT_NEGATIVE).setText("have it deal damage equal to its power to you"), true);
|
||||
ability.addEffect(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("and any target"));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, condition,
|
||||
"Whenever {this} attacks, if it's modified, you may have it deal damage equal to its power to you and any target."));
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public final class ImperiousMindbreaker extends CardImpl {
|
|||
// As long as Imperious Mindbreaker is paired with another creature, each of those creatures has "Whenever this creature attacks, each opponent mills cards equal to its toughness."
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityPairedEffect(
|
||||
new AttacksTriggeredAbility(new MillCardsEachPlayerEffect(
|
||||
SourcePermanentToughnessValue.getInstance(), TargetController.OPPONENT
|
||||
SourcePermanentToughnessValue.instance, TargetController.OPPONENT
|
||||
), false, "Whenever this creature attacks, each opponent mills cards equal to its toughness."),
|
||||
"As long as {this} is paired with another creature, each of those creatures has " +
|
||||
"\"Whenever this creature attacks, each opponent mills cards equal to its toughness.\""
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.abilityword.EerieAbility;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -22,8 +21,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class InfernalPhantom extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public InfernalPhantom(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
|
||||
|
||||
|
|
@ -35,7 +32,7 @@ public final class InfernalPhantom extends CardImpl {
|
|||
this.addAbility(new EerieAbility(new BoostSourceEffect(2, 0, Duration.EndOfTurn)));
|
||||
|
||||
// When Infernal Phantom dies, it deals damage equal to its power to any target.
|
||||
Ability ability = new DiesSourceTriggeredAbility(new DamageTargetEffect(xValue, "it")
|
||||
Ability ability = new DiesSourceTriggeredAbility(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE, "it")
|
||||
.setText("it deals damage equal to its power to any target"));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.i;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.dynamicvalue.common.StaticValue;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.keyword.PrototypeAbility;
|
||||
|
|
@ -22,8 +21,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class IronCrawCrusher extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public IronCrawCrusher(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{7}");
|
||||
|
||||
|
|
@ -36,7 +33,7 @@ public final class IronCrawCrusher extends CardImpl {
|
|||
|
||||
// Whenever Iron-Craw Crusher attacks, target attacking creature gets +X/+0 until end of turn, where X is Iron-Craw Crusher's power.
|
||||
Ability ability = new AttacksTriggeredAbility(
|
||||
new BoostTargetEffect(xValue, StaticValue.get(0), Duration.EndOfTurn)
|
||||
new BoostTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE, StaticValue.get(0), Duration.EndOfTurn)
|
||||
);
|
||||
ability.addTarget(new TargetAttackingCreature());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.i;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageControllerEffect;
|
||||
import mage.abilities.effects.common.DamagePlayersEffect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
|
|
@ -52,16 +51,14 @@ public final class IronMastiff extends CardImpl {
|
|||
|
||||
class IronMastiffEffect extends RollDieWithResultTableEffect {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
IronMastiffEffect() {
|
||||
super(20, "roll a d20 for each player being attacked and ignore all but the highest roll");
|
||||
this.addTableEntry(1, 9, new DamageControllerEffect(xValue)
|
||||
this.addTableEntry(1, 9, new DamageControllerEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("{this} deals damage equal to its power to you"));
|
||||
this.addTableEntry(10, 19, new DamageTargetEffect(xValue)
|
||||
this.addTableEntry(10, 19, new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("{this} deals damage equal to its power to defending player"));
|
||||
this.addTableEntry(20, 20, new DamagePlayersEffect(
|
||||
Outcome.Damage, xValue, TargetController.OPPONENT
|
||||
Outcome.Damage, SourcePermanentPowerValue.NOT_NEGATIVE, TargetController.OPPONENT
|
||||
).setText("{this} deals damage equal to its power to each opponent"));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@ package mage.cards.j;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.keyword.RavenousAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -19,8 +18,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class JackedRabbit extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public JackedRabbit(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{X}{1}{W}");
|
||||
|
||||
|
|
@ -33,7 +30,7 @@ public final class JackedRabbit extends CardImpl {
|
|||
this.addAbility(new RavenousAbility());
|
||||
|
||||
// Whenever Jacked Rabbit attacks, create a number of 1/1 white Rabbit creature tokens equal to Jacked Rabbit's power.
|
||||
this.addAbility(new AttacksTriggeredAbility(new CreateTokenEffect(new RabbitToken(), xValue)));
|
||||
this.addAbility(new AttacksTriggeredAbility(new CreateTokenEffect(new RabbitToken(), SourcePermanentPowerValue.NOT_NEGATIVE)));
|
||||
}
|
||||
|
||||
private JackedRabbit(final JackedRabbit card) {
|
||||
|
|
|
|||
|
|
@ -1,14 +1,12 @@
|
|||
|
||||
package mage.cards.j;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.SetBasePowerToughnessSourceEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
|
|
@ -22,6 +20,8 @@ import mage.filter.common.FilterCreaturePermanent;
|
|||
import mage.filter.predicate.mageobject.AbilityPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Plopman
|
||||
|
|
@ -46,7 +46,7 @@ public final class JaggedScarArchers extends CardImpl {
|
|||
// Jagged-Scar Archers's power and toughness are each equal to the number of Elves you control.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(controlledElvesFilter))));
|
||||
// {tap}: Jagged-Scar Archers deals damage equal to its power to target creature with flying.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount()).setText("{this} deals damage equal to its power to target creature with flying"), new TapSourceCost());
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("{this} deals damage equal to its power to target creature with flying"), new TapSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent(flyingCreatureFilter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,22 +1,19 @@
|
|||
package mage.cards.j;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.CommanderCastFromCommandZoneValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.game.permanent.token.ForestDryadToken;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.game.permanent.token.ForestDryadToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -26,8 +23,6 @@ public final class JyotiMoagAncient extends CardImpl {
|
|||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("land creatures");
|
||||
|
||||
private static final SourcePermanentPowerCount xValue = new SourcePermanentPowerCount();
|
||||
|
||||
static {
|
||||
filter.add(CardType.LAND.getPredicate());
|
||||
|
||||
|
|
@ -50,7 +45,7 @@ public final class JyotiMoagAncient extends CardImpl {
|
|||
|
||||
// At the beginning of each combat, land creatures you control get +X/+X until end of turn, where X is Jyoti's power.
|
||||
this.addAbility(new BeginningOfCombatTriggeredAbility(
|
||||
new BoostControlledEffect(xValue, xValue, Duration.EndOfTurn, filter, false),
|
||||
new BoostControlledEffect(SourcePermanentPowerValue.NOT_NEGATIVE, SourcePermanentPowerValue.NOT_NEGATIVE, Duration.EndOfTurn, filter, false),
|
||||
TargetController.ANY, false));
|
||||
}
|
||||
|
||||
|
|
@ -62,4 +57,4 @@ public final class JyotiMoagAncient extends CardImpl {
|
|||
public JyotiMoagAncient copy() {
|
||||
return new JyotiMoagAncient(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ import mage.MageInt;
|
|||
import mage.Mana;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.replacement.ModifyCountersAddedEffect;
|
||||
import mage.abilities.mana.DynamicManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -22,8 +21,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class KamiOfWhisperedHopes extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public KamiOfWhisperedHopes(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
|
||||
|
||||
|
|
@ -38,7 +35,7 @@ public final class KamiOfWhisperedHopes extends CardImpl {
|
|||
|
||||
// {T}: Add X mana of any one color, where X is Kami of Whispered Hopes's power.
|
||||
this.addAbility(new DynamicManaAbility(
|
||||
Mana.AnyMana(1), xValue, new TapSourceCost(), "Add X mana "
|
||||
Mana.AnyMana(1), SourcePermanentPowerValue.NOT_NEGATIVE, new TapSourceCost(), "Add X mana "
|
||||
+ "of any one color, where X is {this}'s power", true
|
||||
));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,19 +1,20 @@
|
|||
package mage.cards.l;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BecomesBlockedSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.AssignNoCombatDamageSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author awjackson
|
||||
|
|
@ -27,7 +28,7 @@ public final class LaccolithGrunt extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Whenever Laccolith Grunt becomes blocked, you may have it deal damage equal to its power to target creature. If you do, Laccolith Grunt assigns no combat damage this turn.
|
||||
Ability ability = new BecomesBlockedSourceTriggeredAbility(new DamageTargetEffect(new SourcePermanentPowerCount()).setText("it deal damage equal to its power to target creature"), true);
|
||||
Ability ability = new BecomesBlockedSourceTriggeredAbility(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("it deal damage equal to its power to target creature"), true);
|
||||
ability.addEffect(new AssignNoCombatDamageSourceEffect(Duration.EndOfTurn, true));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,19 +1,20 @@
|
|||
package mage.cards.l;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BecomesBlockedSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.AssignNoCombatDamageSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author awjackson
|
||||
|
|
@ -27,7 +28,7 @@ public final class LaccolithTitan extends CardImpl {
|
|||
this.toughness = new MageInt(6);
|
||||
|
||||
// Whenever Laccolith Titan becomes blocked, you may have it deal damage equal to its power to target creature. If you do, Laccolith Grunt assigns no combat damage this turn.
|
||||
Ability ability = new BecomesBlockedSourceTriggeredAbility(new DamageTargetEffect(new SourcePermanentPowerCount()).setText("it deal damage equal to its power to target creature"), true);
|
||||
Ability ability = new BecomesBlockedSourceTriggeredAbility(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("it deal damage equal to its power to target creature"), true);
|
||||
ability.addEffect(new AssignNoCombatDamageSourceEffect(Duration.EndOfTurn, true));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,19 +1,20 @@
|
|||
package mage.cards.l;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BecomesBlockedSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.AssignNoCombatDamageSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author awjackson
|
||||
|
|
@ -28,7 +29,7 @@ public final class LaccolithWarrior extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Whenever Laccolith Warrior becomes blocked, you may have it deal damage equal to its power to target creature. If you do, Laccolith Grunt assigns no combat damage this turn.
|
||||
Ability ability = new BecomesBlockedSourceTriggeredAbility(new DamageTargetEffect(new SourcePermanentPowerCount()).setText("it deal damage equal to its power to target creature"), true);
|
||||
Ability ability = new BecomesBlockedSourceTriggeredAbility(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("it deal damage equal to its power to target creature"), true);
|
||||
ability.addEffect(new AssignNoCombatDamageSourceEffect(Duration.EndOfTurn, true));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,19 +1,20 @@
|
|||
package mage.cards.l;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BecomesBlockedSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.AssignNoCombatDamageSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author awjackson
|
||||
|
|
@ -27,7 +28,7 @@ public final class LaccolithWhelp extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Whenever Laccolith Whelp becomes blocked, you may have it deal damage equal to its power to target creature. If you do, Laccolith Grunt assigns no combat damage this turn.
|
||||
Ability ability = new BecomesBlockedSourceTriggeredAbility(new DamageTargetEffect(new SourcePermanentPowerCount()).setText("it deal damage equal to its power to target creature"), true);
|
||||
Ability ability = new BecomesBlockedSourceTriggeredAbility(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("it deal damage equal to its power to target creature"), true);
|
||||
ability.addEffect(new AssignNoCombatDamageSourceEffect(Duration.EndOfTurn, true));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import mage.abilities.common.SimpleActivatedAbility;
|
|||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.hint.ValueHint;
|
||||
import mage.abilities.mana.DynamicManaAbility;
|
||||
|
|
@ -37,7 +37,6 @@ public final class LeafkinAvenger extends CardImpl {
|
|||
}
|
||||
|
||||
private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(filter);
|
||||
private static final DynamicValue xValue2 = new SourcePermanentPowerCount(false);
|
||||
|
||||
public LeafkinAvenger(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{G}");
|
||||
|
|
@ -54,7 +53,7 @@ public final class LeafkinAvenger extends CardImpl {
|
|||
|
||||
// {7}{R}: Leafkin Avenger deals damage equal to its power to target player or planeswalker.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new DamageTargetEffect(xValue2)
|
||||
new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("{this} deals damage equal to its power to target player or planeswalker"),
|
||||
new ManaCostsImpl<>("{7}{R}")
|
||||
);
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.l;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.HeroicAbility;
|
||||
|
|
@ -27,7 +26,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class LegolasMasterArcher extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
private static final FilterSpell filter = new FilterSpell("a spell that targets a creature you don't control");
|
||||
|
||||
static {
|
||||
|
|
@ -50,7 +48,7 @@ public final class LegolasMasterArcher extends CardImpl {
|
|||
this.addAbility(new HeroicAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance())).setAbilityWord(null));
|
||||
|
||||
// Whenever you cast a spell that targets a creature you don't control, Legolas deals damage equal to its power to up to one target creature.
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(new DamageTargetEffect(xValue)
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("{this} deals damage equal to its power to up to one target creature"), filter, false);
|
||||
ability.addTarget(new TargetCreaturePermanent(0, 1));
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@ package mage.cards.l;
|
|||
|
||||
import mage.abilities.TriggeredAbility;
|
||||
import mage.abilities.common.BecomesTappedSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.UntapTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
|
|
@ -24,8 +23,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class LegolassQuickReflexes extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public LegolassQuickReflexes(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}");
|
||||
|
||||
|
|
@ -43,7 +40,7 @@ public final class LegolassQuickReflexes extends CardImpl {
|
|||
).setText(", reach"));
|
||||
|
||||
TriggeredAbility trigger = new BecomesTappedSourceTriggeredAbility(
|
||||
new DamageTargetEffect(xValue)
|
||||
new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("it deals damage equal to its power to up to one target creature"),
|
||||
false
|
||||
);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.TransformIntoSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SignInversionDynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.dynamicvalue.common.StaticValue;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -22,8 +22,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class MaladyInvoker extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue
|
||||
= new SignInversionDynamicValue(new SourcePermanentPowerCount(false));
|
||||
private static final DynamicValue xValue = new SignInversionDynamicValue(SourcePermanentPowerValue.NOT_NEGATIVE);
|
||||
|
||||
public MaladyInvoker(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.LoseLifeTargetEffect;
|
||||
import mage.abilities.keyword.FabricateAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -36,7 +35,7 @@ public final class MarionetteMaster extends CardImpl {
|
|||
|
||||
// Whenever an artifact you control is put into a graveyard from the battlefield, target opponent loses life equal to Marionette Master's power.
|
||||
Ability ability = new PutIntoGraveFromBattlefieldAllTriggeredAbility(
|
||||
new LoseLifeTargetEffect(new SourcePermanentPowerCount(false))
|
||||
new LoseLifeTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("target opponent loses life equal to {this}'s power"),
|
||||
false, filter, false
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.Mana;
|
||||
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.mana.DynamicManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -16,6 +15,8 @@ import mage.counters.CounterType;
|
|||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author JRHerlehy Created on 4/7/18.
|
||||
*/
|
||||
|
|
@ -39,7 +40,7 @@ public final class MarwynTheNurturer extends CardImpl {
|
|||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), filter));
|
||||
|
||||
// {T}: Add an amount of {G} equal to Marwyn's power.
|
||||
this.addAbility(new DynamicManaAbility(Mana.GreenMana(1), new SourcePermanentPowerCount(), "Add an amount of {G} equal to {this}'s power"));
|
||||
this.addAbility(new DynamicManaAbility(Mana.GreenMana(1), SourcePermanentPowerValue.NOT_NEGATIVE, "Add an amount of {G} equal to {this}'s power"));
|
||||
}
|
||||
|
||||
private MarwynTheNurturer(final MarwynTheNurturer card) {
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.CounterUnlessPaysEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
|
|
@ -19,6 +18,8 @@ import mage.filter.common.FilterInstantOrSorcerySpell;
|
|||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.target.TargetSpell;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
|
|
@ -45,7 +46,7 @@ public final class MausoleumWanderer extends CardImpl {
|
|||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new BoostSourceEffect(1, 1, Duration.EndOfTurn), filter));
|
||||
|
||||
// Sacrifice Mausoleum Wanderer: Counter target instant or sorcery spell unless its controller pays {X}, where X is Mausoleum Wanderer's power.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterUnlessPaysEffect(new SourcePermanentPowerCount()), new SacrificeSourceCost());
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterUnlessPaysEffect(SourcePermanentPowerValue.NOT_NEGATIVE), new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetSpell(new FilterInstantOrSorcerySpell()));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
|
|
@ -15,15 +14,16 @@ import mage.abilities.keyword.ShroudAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
|
||||
*/
|
||||
public final class MinotaurIllusionist extends CardImpl {
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ public final class MinotaurIllusionist extends CardImpl {
|
|||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(ShroudAbility.getInstance(),
|
||||
Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U}")));
|
||||
// {R}, Sacrifice Minotaur Illusionist: Minotaur Illusionist deals damage equal to its power to target creature.
|
||||
Effect effect = new DamageTargetEffect(new SourcePermanentPowerCount());
|
||||
Effect effect = new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE);
|
||||
effect.setText("it deals damage equal to its power to target creature.");
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{R}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
|
|
|
|||
|
|
@ -1,21 +1,21 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.LoseLifeTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.TargetPlayer;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North
|
||||
|
|
@ -32,8 +32,9 @@ public final class MortisDogs extends CardImpl {
|
|||
|
||||
// Whenever Mortis Dogs attacks, it gets +2/+0 until end of turn.
|
||||
this.addAbility(new AttacksTriggeredAbility(new BoostSourceEffect(2, 0, Duration.EndOfTurn), false));
|
||||
|
||||
// When Mortis Dogs dies, target player loses life equal to its power.
|
||||
Ability ability = new DiesSourceTriggeredAbility(new LoseLifeTargetEffect(new SourcePermanentPowerCount(false))
|
||||
Ability ability = new DiesSourceTriggeredAbility(new LoseLifeTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("target player loses life equal to its power"));
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import mage.abilities.common.EntersBattlefieldAbility;
|
|||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.SacrificeSourceEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
|
|
@ -40,7 +40,6 @@ public final class MyriadConstruct extends CardImpl {
|
|||
}
|
||||
|
||||
private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(filter);
|
||||
private static final DynamicValue xValue2 = new SourcePermanentPowerCount(false);
|
||||
|
||||
public MyriadConstruct(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}");
|
||||
|
|
@ -63,7 +62,7 @@ public final class MyriadConstruct extends CardImpl {
|
|||
Ability ability = new BecomesTargetSourceTriggeredAbility(
|
||||
new SacrificeSourceEffect().setText("sacrifice it"), StaticFilters.FILTER_SPELL_A
|
||||
);
|
||||
ability.addEffect(new CreateTokenEffect(new ConstructToken(), xValue2)
|
||||
ability.addEffect(new CreateTokenEffect(new ConstructToken(), SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("and create a number of 1/1 colorless Construct artifact creature tokens equal to its power"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@ package mage.cards.n;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -18,8 +17,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class NestedShambler extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public NestedShambler(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}");
|
||||
|
||||
|
|
@ -29,7 +26,7 @@ public final class NestedShambler extends CardImpl {
|
|||
|
||||
// When Nested Shambler dies, create X tapped 1/1 green Squirrel creature tokens, where X is Nested Shambler's power.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(
|
||||
new SquirrelToken(), xValue, true, false
|
||||
new SquirrelToken(), SourcePermanentPowerValue.NOT_NEGATIVE, true, false
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,10 @@
|
|||
|
||||
package mage.cards.o;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.common.WinsCoinFlipTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentToughnessValue;
|
||||
import mage.abilities.effects.common.FlipUntilLoseEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
|
|
@ -21,7 +20,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class OkaunEyeOfChaos extends CardImpl {
|
||||
|
||||
private static final DynamicValue sourcePower = new SourcePermanentPowerCount();
|
||||
private static final DynamicValue sourcePower = SourcePermanentPowerValue.NOT_NEGATIVE;
|
||||
|
||||
public OkaunEyeOfChaos(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}");
|
||||
|
|
@ -41,8 +40,8 @@ public final class OkaunEyeOfChaos extends CardImpl {
|
|||
// Whenever a player wins a coin flip, double Okaun's power and toughness until end of turn.
|
||||
this.addAbility(new WinsCoinFlipTriggeredAbility(
|
||||
new BoostSourceEffect(
|
||||
sourcePower,
|
||||
SourcePermanentToughnessValue.getInstance(),
|
||||
SourcePermanentPowerValue.ALLOW_NEGATIVE,
|
||||
SourcePermanentToughnessValue.instance,
|
||||
Duration.EndOfTurn
|
||||
).setText("double {this}'s power and toughness until end of turn")
|
||||
));
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DiesCreatureTriggeredAbility;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageMultiEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
|
|
@ -38,9 +38,9 @@ public final class OrcaSiegeDemon extends CardImpl {
|
|||
this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, true));
|
||||
|
||||
// When Orca dies, it deals damage equal to its power divided as you choose among any number of targets.
|
||||
Ability ability = new DiesSourceTriggeredAbility(new DamageMultiEffect(new SourcePermanentPowerCount())
|
||||
Ability ability = new DiesSourceTriggeredAbility(new DamageMultiEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("it deals damage equal to its power divided as you choose among any number of targets."));
|
||||
ability.addTarget(new TargetAnyTargetAmount(new SourcePermanentPowerCount()));
|
||||
ability.addTarget(new TargetAnyTargetAmount(SourcePermanentPowerValue.NOT_NEGATIVE));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@ import mage.abilities.common.DiesSourceTriggeredAbility;
|
|||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.hint.ConditionHint;
|
||||
|
|
@ -42,7 +41,6 @@ public final class PacksongPup extends CardImpl {
|
|||
|
||||
private static final Condition condition = new PermanentsOnTheBattlefieldCondition(filter);
|
||||
private static final Hint hint = new ConditionHint(condition, "You control another Wolf or Werewolf");
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public PacksongPup(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}");
|
||||
|
|
@ -61,7 +59,7 @@ public final class PacksongPup extends CardImpl {
|
|||
).addHint(hint));
|
||||
|
||||
// When Packsong Pup dies, you gain life equal to its power.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new GainLifeEffect(xValue).setText("you gain life equal to its power")));
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new GainLifeEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("you gain life equal to its power")));
|
||||
}
|
||||
|
||||
private PacksongPup(final PacksongPup card) {
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public final class PaladinOfAtonement extends CardImpl {
|
|||
"At the beginning of each upkeep, if you lost life last turn, put a +1/+1 counter on {this}"));
|
||||
|
||||
// When Paladin of Atonement dies, you gain life equal to it's toughness.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new GainLifeEffect(SourcePermanentToughnessValue.getInstance(),
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new GainLifeEffect(SourcePermanentToughnessValue.instance,
|
||||
"you gain life equal to its toughness")));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package mage.cards.p;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.AttacksAllTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.ReachAbility;
|
||||
|
|
@ -39,7 +39,7 @@ public final class PalazzoArchers extends CardImpl {
|
|||
this.addAbility(ReachAbility.getInstance());
|
||||
|
||||
// Whenever a creature with flying attacks you or a planeswalker you control, Palazzo Archers deals damage equal to its power to that creature.
|
||||
this.addAbility(new AttacksAllTriggeredAbility(new DamageTargetEffect(new SourcePermanentPowerCount()),
|
||||
this.addAbility(new AttacksAllTriggeredAbility(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE),
|
||||
false, filter, SetTargetPointer.PERMANENT, true));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public final class PhenaxGodOfDeception extends CardImpl {
|
|||
|
||||
// Creatures you control have "{T}: Target player puts the top X cards of their library into their graveyard, where X is this creature's toughness."
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new MillCardsTargetEffect(SourcePermanentToughnessValue.getInstance())
|
||||
new MillCardsTargetEffect(SourcePermanentToughnessValue.instance)
|
||||
.setText("Target player mills X cards, where X is this creature's toughness"), new TapSourceCost());
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(new SimpleStaticAbility(
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@ package mage.cards.p;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.costs.common.PayLifeCost;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
import mage.abilities.keyword.MenaceAbility;
|
||||
import mage.abilities.keyword.PrototypeAbility;
|
||||
|
|
@ -20,8 +19,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class PhyrexianFleshgorger extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount();
|
||||
|
||||
public PhyrexianFleshgorger(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{7}");
|
||||
|
||||
|
|
@ -40,7 +37,7 @@ public final class PhyrexianFleshgorger extends CardImpl {
|
|||
this.addAbility(LifelinkAbility.getInstance());
|
||||
|
||||
// Ward--Pay life equal to Phyrexian Fleshgorger's power.
|
||||
this.addAbility(new WardAbility(new PayLifeCost(xValue, "life equal to {this}'s power"), false));
|
||||
this.addAbility(new WardAbility(new PayLifeCost(SourcePermanentPowerValue.NOT_NEGATIVE, "life equal to {this}'s power"), false));
|
||||
}
|
||||
|
||||
private PhyrexianFleshgorger(final PhyrexianFleshgorger card) {
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
|
|
@ -20,6 +19,8 @@ import mage.filter.common.FilterControlledCreaturePermanent;
|
|||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Plopman
|
||||
|
|
@ -41,7 +42,7 @@ public final class PrimeSpeakerZegana extends CardImpl {
|
|||
effect.setText("with X +1/+1 counters on it, where X is the greatest power among other creatures you control.");
|
||||
this.addAbility(new EntersBattlefieldAbility(effect));
|
||||
//When Prime Speaker Zegana enters the battlefield, draw cards equal to its power.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(new SourcePermanentPowerCount())
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("draw cards equal to its power")));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,11 @@
|
|||
package mage.cards.r;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ColoredManaCost;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.dynamicvalue.common.StaticValue;
|
||||
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
||||
import mage.abilities.keyword.BloodthirstAbility;
|
||||
|
|
@ -19,14 +17,13 @@ import mage.constants.Duration;
|
|||
import mage.constants.SubType;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BursegSardaukar
|
||||
*/
|
||||
public final class RabbleRouser extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public RabbleRouser(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
|
||||
this.subtype.add(SubType.GOBLIN);
|
||||
|
|
@ -35,13 +32,12 @@ public final class RabbleRouser extends CardImpl {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
//Bloodthirst 1 (If an opponent was dealt damage this turn, this creature enters the battlefield with a +1/+1 counter on it.)
|
||||
// Bloodthirst 1 (If an opponent was dealt damage this turn, this creature enters the battlefield with a +1/+1 counter on it.)
|
||||
this.addAbility(new BloodthirstAbility(1));
|
||||
|
||||
//{R}, {T}: Attacking creatures get +X/+0 until end of turn, where X is Rabble-Rouser's power.
|
||||
|
||||
// {R}, {T}: Attacking creatures get +X/+0 until end of turn, where X is Rabble-Rouser's power.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new BoostAllEffect(xValue, StaticValue.get(0), Duration.EndOfTurn, StaticFilters.FILTER_ATTACKING_CREATURES, false, null),
|
||||
new BoostAllEffect(SourcePermanentPowerValue.NOT_NEGATIVE, StaticValue.get(0), Duration.EndOfTurn, StaticFilters.FILTER_ATTACKING_CREATURES, false, null),
|
||||
new ColoredManaCost(ColoredManaSymbol.R));
|
||||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.DealCombatDamageControlledTriggeredAbility;
|
||||
import mage.abilities.common.LeavesBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SacrificePermanentTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.LoseLifeTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
|
|
@ -27,8 +26,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class RapaciousGuest extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public RapaciousGuest(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}");
|
||||
|
||||
|
|
@ -53,7 +50,7 @@ public final class RapaciousGuest extends CardImpl {
|
|||
|
||||
// When Rapacious Guest leaves the battlefield, target opponent loses life equal to its power.
|
||||
Ability ability = new LeavesBattlefieldTriggeredAbility(
|
||||
new LoseLifeTargetEffect(xValue).setText("target opponent loses life equal to its power."),
|
||||
new LoseLifeTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE).setText("target opponent loses life equal to its power."),
|
||||
false
|
||||
);
|
||||
ability.addTarget(new TargetOpponent());
|
||||
|
|
@ -68,4 +65,4 @@ public final class RapaciousGuest extends CardImpl {
|
|||
public RapaciousGuest copy() {
|
||||
return new RapaciousGuest(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package mage.cards.r;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageWithExcessEffect;
|
||||
import mage.abilities.keyword.DevourAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -37,7 +37,7 @@ public final class RavenousTyrannosaurus extends CardImpl {
|
|||
this.addAbility(new DevourAbility(3));
|
||||
|
||||
// Whenever Ravenous Tyrannosaurus attacks, it deals damage equal to its power to up to one other target creature. Excess damage is dealt to that creature's controller instead.
|
||||
Ability ability = new AttacksTriggeredAbility(new DamageWithExcessEffect(new SourcePermanentPowerCount(false))
|
||||
Ability ability = new AttacksTriggeredAbility(new DamageWithExcessEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("it deals damage equal to its power to up to one other target creature. Excess damage is dealt to that creature's controller instead."));
|
||||
ability.addTarget(new TargetCreaturePermanent(0, 1, filter, false));
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package mage.cards.r;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentToughnessValue;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -20,8 +19,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class RecklessAmplimancer extends CardImpl {
|
||||
|
||||
private static final DynamicValue sourcePower = new SourcePermanentPowerCount();
|
||||
|
||||
public RecklessAmplimancer(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}");
|
||||
|
||||
|
|
@ -32,7 +29,7 @@ public final class RecklessAmplimancer extends CardImpl {
|
|||
|
||||
// {4}{G}: Double Reckless Amplimancer's power and toughness until end of turn.
|
||||
this.addAbility(new SimpleActivatedAbility(new BoostSourceEffect(
|
||||
sourcePower, SourcePermanentToughnessValue.getInstance(), Duration.EndOfTurn
|
||||
SourcePermanentPowerValue.ALLOW_NEGATIVE, SourcePermanentToughnessValue.instance, Duration.EndOfTurn
|
||||
).setText("double {this}'s power and toughness until end of turn"), new ManaCostsImpl<>("{4}{G}")));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,21 +1,21 @@
|
|||
package mage.cards.r;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.keyword.EternalizeAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
|
|
@ -30,8 +30,8 @@ public final class ResilientKhenra extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// When Resilient Khenra enters the battlefield, you may have target creature get +X/+X until end of turn, where X is Resilient Khenra's power.
|
||||
DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(xValue, xValue, Duration.EndOfTurn), true);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(
|
||||
SourcePermanentPowerValue.NOT_NEGATIVE, SourcePermanentPowerValue.NOT_NEGATIVE, Duration.EndOfTurn), true);
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.TriggeredAbility;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.ContinuousEffectImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
|
|
@ -43,7 +43,7 @@ public final class RiverSong extends CardImpl {
|
|||
// Spoilers -- Whenever an opponent scries, surveils, or searches their library, put a +1/+1 counter on River Song.
|
||||
// Then River Song deals damage to that player equal to its power.
|
||||
TriggeredAbility trigger = new RiverSongTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()));
|
||||
trigger.addEffect(new DamageTargetEffect(new SourcePermanentPowerCount(false))
|
||||
trigger.addEffect(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE)
|
||||
.setText("Then {this} deals damage to that player equal to its power"));
|
||||
this.addAbility(trigger.withFlavorWord("Spoilers"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
||||
import mage.abilities.common.ChooseABackgroundAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.LoseLifeTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -18,15 +18,12 @@ import mage.game.Game;
|
|||
import mage.watchers.common.RevoltWatcher;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class SarevokDeathbringer extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public SarevokDeathbringer(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
|
||||
|
||||
|
|
@ -38,7 +35,7 @@ public final class SarevokDeathbringer extends CardImpl {
|
|||
|
||||
// At the beginning of each player's end step, if no permanents left the battlefield this turn, that player loses X life, where X is Sarevok's power.
|
||||
this.addAbility(new BeginningOfEndStepTriggeredAbility(
|
||||
new LoseLifeTargetEffect(xValue), TargetController.EACH_PLAYER,
|
||||
new LoseLifeTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE), TargetController.EACH_PLAYER,
|
||||
new InvertCondition(SarevokDeathbringerCondition.instance), false
|
||||
), new RevoltWatcher());
|
||||
|
||||
|
|
|
|||
|
|
@ -4,9 +4,8 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.SetBasePowerSourceEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
|
|
@ -35,8 +34,6 @@ public final class SharpshooterElf extends CardImpl {
|
|||
filter.add(new AbilityPredicate(FlyingAbility.class));
|
||||
}
|
||||
|
||||
private static final DynamicValue xValue = new SourcePermanentPowerCount(false);
|
||||
|
||||
public SharpshooterElf(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
|
||||
|
||||
|
|
@ -55,7 +52,7 @@ public final class SharpshooterElf extends CardImpl {
|
|||
|
||||
// When Sharpshooter Elf enters the battlefield, it deals damage equal to its power to target creature with flying an opponent controls.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(
|
||||
new DamageTargetEffect(xValue, "it"), true
|
||||
new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE, "it"), true
|
||||
);
|
||||
ability.addTarget(new TargetPermanent(filter));
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,27 +1,22 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
||||
import mage.constants.Outcome;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.abilities.keyword.EnchantAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AttachmentType;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetAttackingOrBlockingCreature;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -42,7 +37,7 @@ public final class SinstrikersWill extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature has "{tap}: This creature deals damage equal to its power to target attacking or blocking creature."
|
||||
ability = new SimpleActivatedAbility(new DamageTargetEffect(new SourcePermanentPowerCount()), new TapSourceCost());
|
||||
ability = new SimpleActivatedAbility(new DamageTargetEffect(SourcePermanentPowerValue.NOT_NEGATIVE), new TapSourceCost());
|
||||
ability.addTarget(new TargetAttackingOrBlockingCreature());
|
||||
this.addAbility(new SimpleStaticAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue