mirror of
https://github.com/correl/mage.git
synced 2024-11-14 19:19:32 +00:00
Merge branch 'planeswalkerErrata' into master
This commit is contained in:
commit
95d2721421
754 changed files with 3085 additions and 3051 deletions
|
@ -253,9 +253,9 @@ public class ComputerPlayer extends PlayerImpl implements Player {
|
|||
}
|
||||
return target.isChosen();
|
||||
}
|
||||
if (target.getOriginalTarget() instanceof TargetCreatureOrPlayer) {
|
||||
if (target.getOriginalTarget() instanceof TargetAnyTarget) {
|
||||
List<Permanent> targets;
|
||||
TargetCreatureOrPlayer t = ((TargetCreatureOrPlayer) target);
|
||||
TargetAnyTarget t = ((TargetAnyTarget) target);
|
||||
if (outcome.isGood()) {
|
||||
targets = threats(abilityControllerId, sourceId, ((FilterCreatureOrPlayer) t.getFilter()).getCreatureFilter(), game, target.getTargets());
|
||||
} else {
|
||||
|
@ -496,9 +496,9 @@ public class ComputerPlayer extends PlayerImpl implements Player {
|
|||
}
|
||||
return target.isChosen();
|
||||
}
|
||||
if (target.getOriginalTarget() instanceof TargetCreatureOrPlayer) {
|
||||
if (target.getOriginalTarget() instanceof TargetAnyTarget) {
|
||||
List<Permanent> targets;
|
||||
TargetCreatureOrPlayer t = ((TargetCreatureOrPlayer) target);
|
||||
TargetAnyTarget t = ((TargetAnyTarget) target);
|
||||
if (outcome.isGood()) {
|
||||
targets = threats(abilityControllerId, source.getSourceId(), ((FilterCreatureOrPlayer) t.getFilter()).getCreatureFilter(), game, target.getTargets());
|
||||
} else {
|
||||
|
@ -821,7 +821,8 @@ public class ComputerPlayer extends PlayerImpl implements Player {
|
|||
log.debug("chooseTarget: " + outcome.toString() + ':' + target.toString());
|
||||
}
|
||||
UUID opponentId = game.getOpponents(playerId).iterator().next();
|
||||
if (target.getOriginalTarget() instanceof TargetCreatureOrPlayerAmount) {
|
||||
if (target.getOriginalTarget() instanceof TargetCreatureOrPlayerAmount
|
||||
|| target.getOriginalTarget() instanceof TargetAnyTargetAmount) {
|
||||
if (outcome == Outcome.Damage && game.getPlayer(opponentId).getLife() <= target.getAmountRemaining()) {
|
||||
target.addTarget(opponentId, target.getAmountRemaining(), source, game);
|
||||
return true;
|
||||
|
|
|
@ -7,7 +7,7 @@ import mage.cards.Card;
|
|||
import mage.constants.ColoredManaSymbol;
|
||||
import mage.constants.Outcome;
|
||||
import mage.target.Target;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
|
@ -91,7 +91,7 @@ public final class RateCard {
|
|||
DamageTargetEffect damageEffect = (DamageTargetEffect) effect;
|
||||
if (damageEffect.getAmount() > 1) {
|
||||
for (Target target : ability.getTargets()) {
|
||||
if (target instanceof TargetCreaturePermanent || target instanceof TargetCreatureOrPlayer) {
|
||||
if (target instanceof TargetCreaturePermanent || target instanceof TargetAnyTarget) {
|
||||
log.debug("Found damage dealer: " + card.getName());
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -69,7 +69,7 @@ import mage.target.TargetAmount;
|
|||
import mage.target.TargetCard;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetAttackingCreature;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.target.common.TargetDefender;
|
||||
import mage.util.GameLog;
|
||||
import mage.util.ManaUtil;
|
||||
|
@ -1483,7 +1483,7 @@ public class HumanPlayer extends PlayerImpl {
|
|||
updateGameStatePriority("assignDamage", game);
|
||||
int remainingDamage = damage;
|
||||
while (remainingDamage > 0 && canRespond()) {
|
||||
Target target = new TargetCreatureOrPlayer();
|
||||
Target target = new TargetAnyTarget();
|
||||
target.setNotTarget(true);
|
||||
if (singleTargetName != null) {
|
||||
target.setTargetName(singleTargetName);
|
||||
|
|
|
@ -41,7 +41,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
@ -64,7 +64,7 @@ public class AbunaAcolyte extends CardImpl {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
Ability ability1 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn, 1), new TapSourceCost());
|
||||
ability1.addTarget(new TargetCreatureOrPlayer());
|
||||
ability1.addTarget(new TargetAnyTarget());
|
||||
Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn, 2), new TapSourceCost());
|
||||
ability2.addTarget(new TargetCreaturePermanent(filter));
|
||||
this.addAbility(ability1);
|
||||
|
|
|
@ -43,7 +43,7 @@ import mage.constants.Duration;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -58,14 +58,14 @@ public class AcidicSliver extends CardImpl {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// All Slivers have "{2}, Sacrifice this permanent: This permanent deals 2 damage to target creature or player."
|
||||
// All Slivers have "{2}, Sacrifice this permanent: This permanent deals 2 damage to any target."
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new SacrificeSourceCost());
|
||||
ability.addCost(new GenericManaCost(2));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
|
||||
new GainAbilityAllEffect(ability,
|
||||
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS,
|
||||
"All Slivers have \"{2}, Sacrifice this permanent: This permanent deals 2 damage to target creature or player.\"")));
|
||||
"All Slivers have \"{2}, Sacrifice this permanent: This permanent deals 2 damage to any target.\"")));
|
||||
}
|
||||
|
||||
public AcidicSliver(final AcidicSliver card) {
|
||||
|
|
|
@ -40,7 +40,7 @@ import mage.game.Game;
|
|||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
@ -53,10 +53,10 @@ public class AcolytesReward extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{W}");
|
||||
|
||||
|
||||
// Prevent the next X damage that would be dealt to target creature this turn, where X is your devotion to white. If damage is prevented this way, Acolyte's Reward deals that much damage to target creature or player.
|
||||
// Prevent the next X damage that would be dealt to target creature this turn, where X is your devotion to white. If damage is prevented this way, Acolyte's Reward deals that much damage to any target.
|
||||
this.getSpellAbility().addEffect(new AcolytesRewardEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
}
|
||||
|
||||
public AcolytesReward(final AcolytesReward card) {
|
||||
|
@ -75,7 +75,7 @@ class AcolytesRewardEffect extends PreventionEffectImpl {
|
|||
|
||||
public AcolytesRewardEffect() {
|
||||
super(Duration.EndOfTurn);
|
||||
staticText = "Prevent the next X damage that would be dealt to target creature this turn, where X is your devotion to white. If damage is prevented this way, {this} deals that much damage to target creature or player";
|
||||
staticText = "Prevent the next X damage that would be dealt to target creature this turn, where X is your devotion to white. If damage is prevented this way, {this} deals that much damage to any target";
|
||||
}
|
||||
|
||||
public AcolytesRewardEffect(final AcolytesRewardEffect effect) {
|
||||
|
|
|
@ -43,7 +43,7 @@ import mage.game.Game;
|
|||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.SquirrelToken;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -54,11 +54,11 @@ public class AcornCatapult extends CardImpl {
|
|||
public AcornCatapult(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||
|
||||
// {1}, {tap}: Acorn Catapult deals 1 damage to target creature or player. That creature's controller or that player creates a 1/1 green Squirrel creature token.
|
||||
// {1}, {tap}: Acorn Catapult deals 1 damage to any target. That creature's controller or that player creates a 1/1 green Squirrel creature token.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{1}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addEffect(new AcornCatapultEffect());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -49,11 +49,11 @@ public class Aeolipile extends CardImpl {
|
|||
public Aeolipile(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}");
|
||||
|
||||
// {1}, {tap}, Sacrifice Aeolipile: Aeolipile deals 2 damage to target creature or player.
|
||||
// {1}, {tap}, Sacrifice Aeolipile: Aeolipile deals 2 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{1}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
*/
|
||||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
|
@ -43,10 +44,7 @@ import mage.game.Game;
|
|||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetOpponent;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.target.common.TargetOpponentOrPlaneswalker;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -61,11 +59,11 @@ public class AetherCharge extends CardImpl {
|
|||
}
|
||||
|
||||
public AetherCharge(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{R}");
|
||||
|
||||
// Whenever a Beast enters the battlefield under your control, you may have it deal 4 damage to target opponent.
|
||||
Ability ability = new AetherChargeTriggeredAbility();
|
||||
ability.addTarget(new TargetOpponent());
|
||||
ability.addTarget(new TargetOpponentOrPlaneswalker());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
@ -108,7 +106,7 @@ class AetherChargeTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a Beast enters the battlefield under your control, you may have it deal 4 damage to target opponent.";
|
||||
return "Whenever a Beast enters the battlefield under your control, you may have it deal 4 damage to target opponent or planeswalker.";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -121,7 +119,7 @@ class AetherChargeEffect extends OneShotEffect {
|
|||
|
||||
public AetherChargeEffect() {
|
||||
super(Outcome.Damage);
|
||||
staticText = "you may have it deal 4 damage to target opponent";
|
||||
staticText = "you may have it deal 4 damage to target opponent or planeswalker";
|
||||
}
|
||||
|
||||
public AetherChargeEffect(final AetherChargeEffect effect) {
|
||||
|
@ -141,12 +139,7 @@ class AetherChargeEffect extends OneShotEffect {
|
|||
creature = (Permanent) game.getLastKnownInformation(creatureId, Zone.BATTLEFIELD);
|
||||
}
|
||||
if (creature != null) {
|
||||
UUID target = source.getTargets().getFirstTarget();
|
||||
Player opponent = game.getPlayer(target);
|
||||
if (opponent != null) {
|
||||
opponent.damage(4, creature.getId(), game, false, true);
|
||||
return true;
|
||||
}
|
||||
return game.damagePlayerOrPlaneswalker(source.getFirstTarget(), 4, creature.getId(), game, false, true) > 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.watchers.common.CastSpellLastTurnWatcher;
|
||||
|
||||
/**
|
||||
|
@ -56,9 +56,9 @@ public class AetherfluxReservoir extends CardImpl {
|
|||
// Whenever you cast a spell, you gain 1 life for each spell you've cast this turn.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new GainLifeEffect(new AetherfluxReservoirDynamicValue()), false));
|
||||
|
||||
// Pay 50 life: Aetherflux Reservoir deals 50 damage to target creature or player.
|
||||
// Pay 50 life: Aetherflux Reservoir deals 50 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(50), new PayLifeCost(50));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -41,8 +41,8 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.common.TargetPlayerOrPlaneswalker;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -51,7 +51,7 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
public class AethertorchRenegade extends CardImpl {
|
||||
|
||||
public AethertorchRenegade(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.ROGUE);
|
||||
this.power = new MageInt(1);
|
||||
|
@ -67,7 +67,7 @@ public class AethertorchRenegade extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
// {t}, Pay {E}{E}{E}{E}{E}{E}{E}{E}: Aethertorch Renegade deals 6 damage to target player.
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(6), new TapSourceCost());
|
||||
ability.addTarget(new TargetPlayer());
|
||||
ability.addTarget(new TargetPlayerOrPlaneswalker());
|
||||
ability.addCost(new PayEnergyCost(8));
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ import mage.constants.Zone;
|
|||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -67,10 +67,10 @@ public class AirdropCondor extends CardImpl {
|
|||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// {1}{R}, Sacrifice a Goblin creature: Airdrop Condor deals damage equal to the sacrificed creature's power to target creature or player.
|
||||
// {1}{R}, Sacrifice a Goblin creature: Airdrop Condor deals damage equal to the sacrificed creature's power to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SacrificeCostCreaturesPower()), new ManaCostsImpl("{1}{R}"));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(filter)));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ import mage.filter.FilterPermanent;
|
|||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -70,12 +70,12 @@ public class AjaniVengeant extends CardImpl {
|
|||
ability1.addTarget(new TargetPermanent());
|
||||
this.addAbility(ability1);
|
||||
|
||||
// −2: Ajani Vengeant deals 3 damage to target creature or player and you gain 3 life.
|
||||
// −2: Ajani Vengeant deals 3 damage to any target and you gain 3 life.
|
||||
Effects effects1 = new Effects();
|
||||
effects1.add(new DamageTargetEffect(3));
|
||||
effects1.add(new GainLifeEffect(3));
|
||||
LoyaltyAbility ability2 = new LoyaltyAbility(effects1, -2);
|
||||
ability2.addTarget(new TargetCreatureOrPlayer());
|
||||
ability2.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability2);
|
||||
|
||||
// −7: Destroy all lands target player controls.
|
||||
|
|
|
@ -37,7 +37,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.Target;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -54,7 +54,7 @@ public class AkoumBoulderfoot extends CardImpl {
|
|||
this.toughness = new MageInt(5);
|
||||
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(1), false);
|
||||
Target target = new TargetCreatureOrPlayer();
|
||||
Target target = new TargetAnyTarget();
|
||||
ability.addTarget(target);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ import mage.game.Game;
|
|||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -55,7 +55,7 @@ import java.util.UUID;
|
|||
public class AkoumHellkite extends CardImpl {
|
||||
|
||||
public AkoumHellkite(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}{R}");
|
||||
this.subtype.add(SubType.DRAGON);
|
||||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(4);
|
||||
|
@ -63,10 +63,10 @@ public class AkoumHellkite extends CardImpl {
|
|||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// <i>Landfall</i>-Whenever a land enters the battlefield under you control, Akoum Hellkite deals 1 damage to target creature or player.
|
||||
// <i>Landfall</i>-Whenever a land enters the battlefield under you control, Akoum Hellkite deals 1 damage to any target.
|
||||
// If that land is a Mountain, Akoum Hellkite deals 2 damage to that creature or player instead.
|
||||
Ability ability = new AkoumHellkiteTriggeredAbility();
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
@ -82,8 +82,8 @@ public class AkoumHellkite extends CardImpl {
|
|||
|
||||
class AkoumHellkiteTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
private static final String text = "<i>Landfall</i> - Whenever a land enters the battlefield under your control, {this} deals 1 damage to target creature or player. "
|
||||
+ "If that land is a Mountain, Akoum Hellkite deals 2 damage to that creature or player instead.";
|
||||
private static final String text = "<i>Landfall</i> - Whenever a land enters the battlefield under your control, {this} deals 1 damage to any target. "
|
||||
+ "If that land is a Mountain, Akoum Hellkite deals 2 damage to that permanent or player instead.";
|
||||
|
||||
public AkoumHellkiteTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new AkoumHellkiteDamageEffect());
|
||||
|
@ -110,12 +110,13 @@ class AkoumHellkiteTriggeredAbility extends TriggeredAbilityImpl {
|
|||
&& permanent.isLand()
|
||||
&& permanent.getControllerId().equals(getControllerId())) {
|
||||
Permanent sourcePermanent = game.getPermanent(getSourceId());
|
||||
if (sourcePermanent != null)
|
||||
if (sourcePermanent != null) {
|
||||
for (Effect effect : getEffects()) {
|
||||
if (effect instanceof AkoumHellkiteDamageEffect) {
|
||||
effect.setTargetPointer(new FixedTarget(permanent, game));
|
||||
if (effect instanceof AkoumHellkiteDamageEffect) {
|
||||
effect.setTargetPointer(new FixedTarget(permanent, game));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -37,7 +37,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -48,12 +48,12 @@ public class AlabasterPotion extends CardImpl {
|
|||
public AlabasterPotion(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{W}{W}");
|
||||
|
||||
// Choose one - Target player gains X life; or prevent the next X damage that would be dealt to target creature or player this turn.
|
||||
// Choose one - Target player gains X life; or prevent the next X damage that would be dealt to any target this turn.
|
||||
this.getSpellAbility().addEffect(new GainLifeTargetEffect(new ManacostVariableValue()));
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
Mode mode = new Mode();
|
||||
mode.getEffects().add(new PreventDamageToTargetEffect(Duration.EndOfTurn, false, true, new ManacostVariableValue()));
|
||||
mode.getTargets().add(new TargetCreatureOrPlayer());
|
||||
mode.getTargets().add(new TargetAnyTarget());
|
||||
this.getSpellAbility().addMode(mode);
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -56,9 +56,9 @@ public class AlabasterWall extends CardImpl {
|
|||
|
||||
// Defender
|
||||
this.addAbility(DefenderAbility.getInstance());
|
||||
// {tap}: Prevent the next 1 damage that would be dealt to target creature or player this turn.
|
||||
// {tap}: Prevent the next 1 damage that would be dealt to any target this turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn, 1), new TapSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -48,9 +48,9 @@ public class AladdinsRing extends CardImpl {
|
|||
public AladdinsRing(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{8}");
|
||||
|
||||
// {8}, {tap}: Aladdin's Ring deals 4 damage to target creature or player.
|
||||
// {8}, {tap}: Aladdin's Ring deals 4 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4), new ManaCostsImpl("{8}"));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -49,10 +49,10 @@ public class AmuletOfKroog extends CardImpl {
|
|||
public AmuletOfKroog(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}");
|
||||
|
||||
// {2}, {tap}: Prevent the next 1 damage that would be dealt to target creature or player this turn.
|
||||
// {2}, {tap}: Prevent the next 1 damage that would be dealt to any target this turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn, 1), new GenericManaCost(2));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -55,10 +55,10 @@ public class AnabaShaman extends CardImpl {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// {R}, {tap}: Anaba Shaman deals 1 damage to target creature or player.
|
||||
// {R}, {tap}: Anaba Shaman deals 1 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{R}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -57,10 +57,10 @@ public class AncientHydra extends CardImpl {
|
|||
|
||||
// Fading 5
|
||||
this.addAbility(new FadingAbility(5, this));
|
||||
// {1}, Remove a fade counter from Ancient Hydra: Ancient Hydra deals 1 damage to target creature or player.
|
||||
// {1}, Remove a fade counter from Ancient Hydra: Ancient Hydra deals 1 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{1}"));
|
||||
ability.addCost(new RemoveCountersSourceCost(CounterType.FADE.createInstance(1)));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreatureOrPlayerAmount;
|
||||
import mage.target.common.TargetAnyTargetAmount;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -62,7 +62,7 @@ public class AngelOfSalvation extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
// When Angel of Salvation enters the battlefield, prevent the next 5 damage that would be dealt this turn to any number of target creatures and/or players, divided as you choose.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new PreventDamageToTargetMultiAmountEffect(Duration.EndOfTurn, 5));
|
||||
ability.addTarget(new TargetCreatureOrPlayerAmount(5));
|
||||
ability.addTarget(new TargetAnyTargetAmount(5));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -52,6 +52,7 @@ import mage.game.permanent.Permanent;
|
|||
import mage.players.Player;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
import mage.target.common.TargetOpponent;
|
||||
import mage.target.common.TargetOpponentOrPlaneswalker;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -69,9 +70,11 @@ public class AngrathMinotaurPirate extends CardImpl {
|
|||
// +2: Angrath, Minotaur Pirate deals 1 damage to target opponent and each creature that player controls.
|
||||
Effects effects1 = new Effects();
|
||||
effects1.add(new DamageTargetEffect(1));
|
||||
effects1.add(new DamageAllControlledTargetEffect(1, new FilterCreaturePermanent()).setText("and each creature that player controls"));
|
||||
effects1.add(new DamageAllControlledTargetEffect(1, new FilterCreaturePermanent())
|
||||
.setText("and each creature that player or that planeswalker’s controller controls")
|
||||
);
|
||||
LoyaltyAbility ability1 = new LoyaltyAbility(effects1, +2);
|
||||
ability1.addTarget(new TargetOpponent());
|
||||
ability1.addTarget(new TargetOpponentOrPlaneswalker());
|
||||
this.addAbility(ability1);
|
||||
|
||||
// -3: Return target Pirate card from your graveyard to the battlefield.
|
||||
|
|
|
@ -36,8 +36,8 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.NamePredicate;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.common.TargetPlayerOrPlaneswalker;
|
||||
import mage.target.targetpointer.SecondTargetPointer;
|
||||
|
||||
/**
|
||||
|
@ -61,8 +61,8 @@ public class AngrathsFury extends CardImpl {
|
|||
|
||||
// Angrath's Fury deals 3 damage to target player.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(3).setTargetPointer(new SecondTargetPointer())
|
||||
.setText("{this} deals 3 damage to target player"));
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
.setText("{this} deals 3 damage to target player or planeswalker"));
|
||||
this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker());
|
||||
|
||||
// You may search your library and/or graveyard for a card named Angrath, Minotaur Pirate, reveal it, and put it into your hand. If you search your library this way, shuffle it.
|
||||
this.getSpellAbility().addEffect(new SearchLibraryGraveyardPutInHandEffect(filter)
|
||||
|
|
|
@ -36,7 +36,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.watchers.common.DamagedByWatcher;
|
||||
|
||||
/**
|
||||
|
@ -48,9 +48,9 @@ public class AnnihilatingFire extends CardImpl {
|
|||
public AnnihilatingFire(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{R}{R}");
|
||||
|
||||
// Annihilating Fire deals 3 damage to target creature or player.
|
||||
// Annihilating Fire deals 3 damage to any target.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(3));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
|
||||
// If a creature dealt damage this way would die this turn, exile it instead.
|
||||
this.getSpellAbility().addEffect(new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn));
|
||||
|
|
|
@ -81,7 +81,7 @@ class AnthemOfRakdosHellbentEffect extends ReplacementEffectImpl {
|
|||
|
||||
public AnthemOfRakdosHellbentEffect() {
|
||||
super(Duration.WhileOnBattlefield, Outcome.Damage);
|
||||
staticText = "<i>Hellbent</i> - As long as you have no cards in hand, if a source you control would deal damage to a creature or player, it deals double that damage to that creature or player instead.";
|
||||
staticText = "<i>Hellbent</i> - As long as you have no cards in hand, if a source you control would deal damage to a permanent or player, it deals double that damage to that permanent or player instead.";
|
||||
}
|
||||
|
||||
public AnthemOfRakdosHellbentEffect(final AnthemOfRakdosHellbentEffect effect) {
|
||||
|
@ -96,7 +96,8 @@ class AnthemOfRakdosHellbentEffect extends ReplacementEffectImpl {
|
|||
@Override
|
||||
public boolean checksEventType(GameEvent event, Game game) {
|
||||
return event.getType() == GameEvent.EventType.DAMAGE_CREATURE
|
||||
|| event.getType() == GameEvent.EventType.DAMAGE_PLAYER;
|
||||
|| event.getType() == GameEvent.EventType.DAMAGE_PLAYER
|
||||
|| event.getType() == GameEvent.EventType.DAMAGE_PLANESWALKER;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -47,7 +47,7 @@ import mage.constants.Zone;
|
|||
import mage.counters.CounterType;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -65,10 +65,10 @@ public class ApocalypseHydra extends CardImpl {
|
|||
// Apocalypse Hydra enters the battlefield with X +1/+1 counters on it. If X is 5 or more, it enters the battlefield with an additional X +1/+1 counters on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(new ApocalypseHydraEffect()));
|
||||
|
||||
// {1}{R}, Remove a +1/+1 counter from Apocalypse Hydra: Apocalypse Hydra deals 1 damage to target creature or player.
|
||||
// {1}{R}, Remove a +1/+1 counter from Apocalypse Hydra: Apocalypse Hydra deals 1 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{1}{R}"));
|
||||
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance()));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -54,10 +54,10 @@ public class ApprenticeSorcerer extends CardImpl {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// {tap}: Apprentice Sorcerer deals 1 damage to target creature or player. Activate this ability only during your turn, before attackers are declared.
|
||||
// {tap}: Apprentice Sorcerer deals 1 damage to any target. Activate this ability only during your turn, before attackers are declared.
|
||||
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD,
|
||||
new DamageTargetEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -50,7 +50,7 @@ public class ArcBlade extends CardImpl {
|
|||
public ArcBlade(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{R}{R}");
|
||||
|
||||
// Arc Blade deals 2 damage to target creature or player.
|
||||
// Arc Blade deals 2 damage to any target.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(2));
|
||||
// Exile Arc Blade
|
||||
this.getSpellAbility().addEffect(ExileSpellEffect.getInstance());
|
||||
|
@ -58,7 +58,7 @@ public class ArcBlade extends CardImpl {
|
|||
Effect effect = new AddCountersSourceEffect(CounterType.TIME.createInstance(), new StaticValue(3), false, true);
|
||||
effect.setText("with 3 time counters on it");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
|
||||
// Suspend 3-{2}{R}
|
||||
this.addAbility(new SuspendAbility(3, new ManaCostsImpl<>("{2}{R}"), this));
|
||||
|
|
|
@ -33,7 +33,7 @@ import mage.abilities.effects.common.DamageMultiEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreatureOrPlayerAmount;
|
||||
import mage.target.common.TargetAnyTargetAmount;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -46,7 +46,7 @@ public class ArcLightning extends CardImpl {
|
|||
|
||||
// Arc Lightning deals 3 damage divided as you choose among one, two, or three target creatures and/or players.
|
||||
this.getSpellAbility().addEffect(new DamageMultiEffect(3));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayerAmount(3));
|
||||
this.getSpellAbility().addTarget(new TargetAnyTargetAmount(3));
|
||||
}
|
||||
|
||||
public ArcLightning(final ArcLightning card) {
|
||||
|
|
|
@ -41,7 +41,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayerAmount;
|
||||
import mage.target.common.TargetAnyTargetAmount;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -62,7 +62,7 @@ public class ArcMage extends CardImpl {
|
|||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{2}{R}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new DiscardCardCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayerAmount(2));
|
||||
ability.addTarget(new TargetAnyTargetAmount(2));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -54,10 +54,10 @@ public class ArcSlogger extends CardImpl {
|
|||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
// {R}, Exile the top ten cards of your library: Arc-Slogger deals 2 damage to target creature or player.
|
||||
// {R}, Exile the top ten cards of your library: Arc-Slogger deals 2 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{R}"));
|
||||
ability.addCost(new ExileFromTopOfLibraryCost(10));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
|
||||
package mage.cards.a;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
@ -37,13 +36,13 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.filter.common.FilterCreatureOrPlayer;
|
||||
import mage.filter.common.FilterCreaturePlayerOrPlaneswalker;
|
||||
import mage.filter.predicate.mageobject.AnotherTargetPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.Target;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -51,27 +50,27 @@ import mage.target.common.TargetCreatureOrPlayer;
|
|||
*/
|
||||
public class ArcTrail extends CardImpl {
|
||||
|
||||
public ArcTrail (UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}");
|
||||
public ArcTrail(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}");
|
||||
|
||||
// Arc Trail deals 2 damage to target creature or player and 1 damage to another target creature or player
|
||||
FilterCreatureOrPlayer filter1 = new FilterCreatureOrPlayer("creature or player to deal 2 damage");
|
||||
TargetCreatureOrPlayer target1 = new TargetCreatureOrPlayer(1, 1, filter1);
|
||||
// Arc Trail deals 2 damage to any target and 1 damage to another any target
|
||||
FilterCreaturePlayerOrPlaneswalker filter1 = new FilterCreaturePlayerOrPlaneswalker("creature, player or planeswalker to deal 2 damage");
|
||||
TargetAnyTarget target1 = new TargetAnyTarget(1, 1, filter1);
|
||||
target1.setTargetTag(1);
|
||||
this.getSpellAbility().addTarget(target1);
|
||||
|
||||
FilterCreatureOrPlayer filter2 = new FilterCreatureOrPlayer("another creature or player to deal 1 damage");
|
||||
|
||||
FilterCreaturePlayerOrPlaneswalker filter2 = new FilterCreaturePlayerOrPlaneswalker("another creature, player or planeswalker to deal 1 damage");
|
||||
AnotherTargetPredicate predicate = new AnotherTargetPredicate(2);
|
||||
filter2.getCreatureFilter().add(predicate);
|
||||
filter2.getPlayerFilter().add(predicate);
|
||||
TargetCreatureOrPlayer target2 = new TargetCreatureOrPlayer(1, 1, filter2);
|
||||
TargetAnyTarget target2 = new TargetAnyTarget(1, 1, filter2);
|
||||
target2.setTargetTag(2);
|
||||
this.getSpellAbility().addTarget(target2);
|
||||
|
||||
|
||||
this.getSpellAbility().addEffect(ArcTrailEffect.getInstance());
|
||||
}
|
||||
|
||||
public ArcTrail (final ArcTrail card) {
|
||||
public ArcTrail(final ArcTrail card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
|
@ -84,7 +83,7 @@ public class ArcTrail extends CardImpl {
|
|||
|
||||
class ArcTrailEffect extends OneShotEffect {
|
||||
|
||||
private static final ArcTrailEffect instance = new ArcTrailEffect();
|
||||
private static final ArcTrailEffect instance = new ArcTrailEffect();
|
||||
|
||||
private Object readResolve() throws ObjectStreamException {
|
||||
return instance;
|
||||
|
@ -94,9 +93,9 @@ class ArcTrailEffect extends OneShotEffect {
|
|||
return instance;
|
||||
}
|
||||
|
||||
private ArcTrailEffect ( ) {
|
||||
private ArcTrailEffect() {
|
||||
super(Outcome.Damage);
|
||||
staticText = "{source} deals 2 damage to target creature or player and 1 damage to another target creature or player";
|
||||
staticText = "{source} deals 2 damage to any target and 1 damage to another target";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -106,19 +105,19 @@ class ArcTrailEffect extends OneShotEffect {
|
|||
boolean twoDamageDone = false;
|
||||
int damage = 2;
|
||||
|
||||
for ( Target target : source.getTargets() ) {
|
||||
for (Target target : source.getTargets()) {
|
||||
Permanent permanent = game.getPermanent(target.getFirstTarget());
|
||||
|
||||
if ( twoDamageDone ) {
|
||||
if (twoDamageDone) {
|
||||
damage = 1;
|
||||
}
|
||||
|
||||
if (permanent != null) {
|
||||
applied |= (permanent.damage( damage, source.getSourceId(), game, false, true ) > 0);
|
||||
applied |= (permanent.damage(damage, source.getSourceId(), game, false, true) > 0);
|
||||
}
|
||||
Player player = game.getPlayer(target.getFirstTarget());
|
||||
if (player != null) {
|
||||
applied |= (player.damage( damage, source.getSourceId(), game, false, true ) > 0);
|
||||
applied |= (player.damage(damage, source.getSourceId(), game, false, true) > 0);
|
||||
}
|
||||
|
||||
twoDamageDone = true;
|
||||
|
|
|
@ -41,7 +41,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
@ -61,7 +61,7 @@ public class ArcaneTeachings extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield)));
|
||||
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost());
|
||||
gainedAbility.addTarget(new TargetCreatureOrPlayer());
|
||||
gainedAbility.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA)));
|
||||
}
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.SuperType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.command.emblems.ArlinnEmbracedByTheMoonEmblem;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -72,14 +72,14 @@ public class ArlinnEmbracedByTheMoon extends CardImpl {
|
|||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
|
||||
// -1: Arlinn, Embraced by the Moon deals 3 damage to target creature or player. Transform Arlinn, Embraced by the Moon.
|
||||
// -1: Arlinn, Embraced by the Moon deals 3 damage to any target. Transform Arlinn, Embraced by the Moon.
|
||||
this.addAbility(new TransformAbility());
|
||||
ability = new LoyaltyAbility(new DamageTargetEffect(3), -1);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
ability.addEffect(new TransformSourceEffect(false));
|
||||
this.addAbility(ability);
|
||||
|
||||
// -6: You get an emblem with "Creatures you control have haste and '{T}: This creature deals damage equal to its power to target creature or player.'"
|
||||
// -6: You get an emblem with "Creatures you control have haste and '{T}: This creature deals damage equal to its power to any target.'"
|
||||
this.addAbility(new LoyaltyAbility(new GetEmblemEffect(new ArlinnEmbracedByTheMoonEmblem()), -6));
|
||||
}
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ import mage.abilities.effects.common.DamageTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.watchers.common.PlayerAttackedWatcher;
|
||||
|
||||
/**
|
||||
|
@ -47,17 +47,17 @@ public class ArrowStorm extends CardImpl {
|
|||
public ArrowStorm(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}{R}");
|
||||
|
||||
// Arrow Storm deals 4 damage to target creature or player.
|
||||
// Arrow Storm deals 4 damage to any target.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamageTargetEffect(4),
|
||||
new InvertCondition(RaidCondition.instance),
|
||||
"{this} deals 4 damage to target creature or player"));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
"{this} deals 4 damage to any target"));
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
// Raid - If you attacked with a creature this turn, instead Arrow Storm deals 5 damage to that creature or player and the damage can't be prevented.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamageTargetEffect(5, false),
|
||||
RaidCondition.instance,
|
||||
"<br/><br/><i>Raid</i> — If you attacked with a creature this turn, instead {this} deals 5 damage to that creature or player and the damage can't be prevented"));
|
||||
"<br/><br/><i>Raid</i> — If you attacked with a creature this turn, instead {this} deals 5 damage to that permanent or player and the damage can't be prevented"));
|
||||
this.getSpellAbility().addWatcher(new PlayerAttackedWatcher());
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import mage.filter.common.FilterControlledPermanent;
|
|||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -57,7 +57,7 @@ public class Artillerize extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{R}");
|
||||
|
||||
this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(5));
|
||||
}
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ import mage.cards.SplitCard;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SpellAbilityType;
|
||||
import mage.game.permanent.token.ElephantToken;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
public class AssaultBattery extends SplitCard {
|
||||
|
||||
|
@ -44,11 +44,11 @@ public class AssaultBattery extends SplitCard {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{R}", "{3}{G}", SpellAbilityType.SPLIT);
|
||||
|
||||
// Assault
|
||||
// Assault deals 2 damage to target creature or player.
|
||||
// Assault deals 2 damage to any target.
|
||||
Effect effect = new DamageTargetEffect(2);
|
||||
effect.setText("Assault deals 2 damage to target creature or player");
|
||||
effect.setText("Assault deals 2 damage to any target");
|
||||
getLeftHalfCard().getSpellAbility().addEffect(effect);
|
||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
|
||||
// Battery
|
||||
// Create a 3/3 green Elephant creature token.
|
||||
|
|
|
@ -39,7 +39,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -57,11 +57,11 @@ public class AtarkaEfreet extends CardImpl {
|
|||
// Megamorph {2}{R}
|
||||
this.addAbility(new MorphAbility(this, new ManaCostsImpl("{2}{R}"), true));
|
||||
|
||||
// When Atarka Efreet is turned face up, it deals 1 damage to target creature or player.
|
||||
// When Atarka Efreet is turned face up, it deals 1 damage to any target.
|
||||
Effect effect = new DamageTargetEffect(1, "it");
|
||||
effect.setText("it deals 1 damage to target creature or player");
|
||||
effect.setText("it deals 1 damage to any target");
|
||||
Ability ability = new TurnedFaceUpSourceTriggeredAbility(effect, false, false);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ import mage.game.events.GameEvent.EventType;
|
|||
import mage.game.permanent.Permanent;
|
||||
import mage.game.stack.Spell;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCreatureOrPlayerAmount;
|
||||
import mage.target.common.TargetAnyTargetAmount;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
import mage.watchers.Watcher;
|
||||
|
||||
|
@ -88,7 +88,7 @@ public class AureliasFury extends CardImpl {
|
|||
DynamicValue xValue = new ManacostVariableValue();
|
||||
this.getSpellAbility().addEffect(new DamageMultiEffect(xValue));
|
||||
this.getSpellAbility().addEffect(new AureliasFuryEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayerAmount(xValue));
|
||||
this.getSpellAbility().addTarget(new TargetAnyTargetAmount(xValue));
|
||||
this.getSpellAbility().addWatcher(new AureliasFuryDamagedByWatcher());
|
||||
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.mageobject.MulticoloredPredicate;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -64,10 +64,10 @@ public class AuroraEidolon extends CardImpl {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// {W}, Sacrifice Aurora Eidolon: Prevent the next 3 damage that would be dealt to target creature or player this turn.
|
||||
// {W}, Sacrifice Aurora Eidolon: Prevent the next 3 damage that would be dealt to any target this turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn, 3), new ManaCostsImpl("{W}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
// Whenever you cast a multicolored spell, you may return Aurora Eidolon from your graveyard to your hand.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToHandEffect(), filter, true, false));
|
||||
|
|
|
@ -47,8 +47,8 @@ import mage.filter.predicate.permanent.AnotherPredicate;
|
|||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.common.TargetPlayerOrPlaneswalker;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -57,13 +57,13 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
public class AvacynGuardianAngel extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another target creature");
|
||||
|
||||
|
||||
static {
|
||||
filter.add(new AnotherPredicate());
|
||||
}
|
||||
|
||||
|
||||
public AvacynGuardianAngel(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{W}{W}");
|
||||
this.addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.ANGEL);
|
||||
|
||||
|
@ -75,17 +75,17 @@ public class AvacynGuardianAngel extends CardImpl {
|
|||
// Vigilance
|
||||
this.addAbility(VigilanceAbility.getInstance());
|
||||
// {1}{W}: Prevent all damage that would be dealt to another target creature this turn by sources of the color of your choice.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new AvacynGuardianAngelPreventToCreatureEffect(),
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new AvacynGuardianAngelPreventToCreatureEffect(),
|
||||
new ManaCostsImpl<>("{1}{W}"));
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
this.addAbility(ability);
|
||||
|
||||
|
||||
// {5}{W}{W}: Prevent all damage that would be dealt to target player this turn by sources of the color of your choice.
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new AvacynGuardianAngelPreventToPlayerEffect(),
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new AvacynGuardianAngelPreventToPlayerEffect(),
|
||||
new ManaCostsImpl<>("{5}{W}{W}"));
|
||||
ability.addTarget(new TargetPlayer());
|
||||
ability.addTarget(new TargetPlayerOrPlaneswalker());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
@ -100,21 +100,21 @@ public class AvacynGuardianAngel extends CardImpl {
|
|||
}
|
||||
|
||||
class AvacynGuardianAngelPreventToCreatureEffect extends OneShotEffect {
|
||||
|
||||
|
||||
AvacynGuardianAngelPreventToCreatureEffect() {
|
||||
super(Outcome.PreventDamage);
|
||||
this.staticText = "Prevent all damage that would be dealt to another target creature this turn by sources of the color of your choice";
|
||||
}
|
||||
|
||||
|
||||
AvacynGuardianAngelPreventToCreatureEffect(final AvacynGuardianAngelPreventToCreatureEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public AvacynGuardianAngelPreventToCreatureEffect copy() {
|
||||
return new AvacynGuardianAngelPreventToCreatureEffect(this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
|
@ -130,7 +130,7 @@ class AvacynGuardianAngelPreventToCreatureEffect extends OneShotEffect {
|
|||
}
|
||||
|
||||
class AvacynGuardianAngelPreventToCreaturePreventionEffect extends PreventionEffectImpl {
|
||||
|
||||
|
||||
private final ObjectColor color;
|
||||
|
||||
AvacynGuardianAngelPreventToCreaturePreventionEffect(ObjectColor color) {
|
||||
|
@ -169,21 +169,21 @@ class AvacynGuardianAngelPreventToCreaturePreventionEffect extends PreventionEff
|
|||
}
|
||||
|
||||
class AvacynGuardianAngelPreventToPlayerEffect extends OneShotEffect {
|
||||
|
||||
|
||||
AvacynGuardianAngelPreventToPlayerEffect() {
|
||||
super(Outcome.PreventDamage);
|
||||
this.staticText = "Prevent all damage that would be dealt to target player this turn by sources of the color of your choice";
|
||||
this.staticText = "Prevent all damage that would be dealt to target player or planeswalker this turn by sources of the color of your choice";
|
||||
}
|
||||
|
||||
|
||||
AvacynGuardianAngelPreventToPlayerEffect(final AvacynGuardianAngelPreventToPlayerEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public AvacynGuardianAngelPreventToPlayerEffect copy() {
|
||||
return new AvacynGuardianAngelPreventToPlayerEffect(this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
|
@ -199,7 +199,7 @@ class AvacynGuardianAngelPreventToPlayerEffect extends OneShotEffect {
|
|||
}
|
||||
|
||||
class AvacynGuardianAngelPreventToPlayerPreventionEffect extends PreventionEffectImpl {
|
||||
|
||||
|
||||
private final ObjectColor color;
|
||||
|
||||
AvacynGuardianAngelPreventToPlayerPreventionEffect(ObjectColor color) {
|
||||
|
@ -220,7 +220,8 @@ class AvacynGuardianAngelPreventToPlayerPreventionEffect extends PreventionEffec
|
|||
@Override
|
||||
public boolean applies(GameEvent event, Ability source, Game game) {
|
||||
if (super.applies(event, source, game)) {
|
||||
if (event.getType() == GameEvent.EventType.DAMAGE_PLAYER
|
||||
if ((event.getType() == GameEvent.EventType.DAMAGE_PLAYER
|
||||
|| event.getType() == GameEvent.EventType.DAMAGED_PLANESWALKER)
|
||||
&& event.getTargetId().equals(getTargetPointer().getFirst(game, source))) {
|
||||
MageObject sourceObject = game.getObject(event.getSourceId());
|
||||
if (sourceObject != null && sourceObject.getColor(game).shares(this.color)) {
|
||||
|
|
|
@ -39,7 +39,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.game.Game;
|
||||
import mage.target.common.TargetCreatureOrPlayerAmount;
|
||||
import mage.target.common.TargetAnyTargetAmount;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -60,7 +60,7 @@ public class AvacynsJudgment extends CardImpl {
|
|||
Effect effect = new DamageMultiEffect(xValue);
|
||||
effect.setText("{this} deals 2 damage divided as you choose among any number of target creatures and/or players. If {this}'s madness cost was paid, it deals X damage divided as you choose among those creatures and/or players instead.");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayerAmount(xValue));
|
||||
this.getSpellAbility().addTarget(new TargetAnyTargetAmount(xValue));
|
||||
}
|
||||
|
||||
public AvacynsJudgment(final AvacynsJudgment card) {
|
||||
|
|
|
@ -40,7 +40,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -58,9 +58,9 @@ public class AvenRedeemer extends CardImpl {
|
|||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// {tap}: Prevent the next 2 damage that would be dealt to target creature or player this turn.
|
||||
// {tap}: Prevent the next 2 damage that would be dealt to any target this turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn, 2), new TapSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SetTargetPointer;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetPlayerOrPlaneswalker;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -66,7 +66,7 @@ public class AxelrodGunnarson extends CardImpl {
|
|||
Effect effect = new DamageTargetEffect(1);
|
||||
effect.setText("and {this} deals 1 damage to target player");
|
||||
ability.addEffect(effect);
|
||||
ability.addTarget(new TargetPlayer());
|
||||
ability.addTarget(new TargetPlayerOrPlaneswalker());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ import mage.constants.Zone;
|
|||
import mage.filter.FilterSpell;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetPlayerOrPlaneswalker;
|
||||
|
||||
/**
|
||||
* @author Loki
|
||||
|
@ -65,16 +65,15 @@ public class BalefireLiege extends CardImpl {
|
|||
}
|
||||
|
||||
public BalefireLiege(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R/W}{R/W}{R/W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R/W}{R/W}{R/W}");
|
||||
this.subtype.add(SubType.SPIRIT, SubType.HORROR);
|
||||
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(4);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filterRedCreature, true)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filterWhiteCreature, true)));
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(new DamageTargetEffect(3), filterRedSpell, false);
|
||||
ability.addTarget(new TargetPlayer());
|
||||
ability.addTarget(new TargetPlayerOrPlaneswalker());
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new GainLifeEffect(3), filterWhiteSpell, false));
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -52,9 +52,9 @@ public class BallistaCharger extends CardImpl {
|
|||
this.power = new MageInt(6);
|
||||
this.toughness = new MageInt(6);
|
||||
|
||||
// Whenever Ballista Charger attacks, it deals 1 damage to target creature or player.
|
||||
// Whenever Ballista Charger attacks, it deals 1 damage to any target.
|
||||
Ability ability = new AttacksTriggeredAbility(new DamageTargetEffect(1, "it"), false);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Crew 3
|
||||
|
|
|
@ -41,7 +41,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -57,10 +57,10 @@ public class BalmOfRestoration extends CardImpl {
|
|||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
|
||||
// or prevent the next 2 damage that would be dealt to target creature or player this turn.
|
||||
// or prevent the next 2 damage that would be dealt to any target this turn.
|
||||
Mode mode = new Mode();
|
||||
mode.getEffects().add(new PreventDamageToTargetEffect(Duration.EndOfTurn, 2));
|
||||
mode.getTargets().add(new TargetCreatureOrPlayer());
|
||||
mode.getTargets().add(new TargetAnyTarget());
|
||||
ability.addMode(mode);
|
||||
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -34,7 +34,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -46,7 +46,7 @@ public class Bandage extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{W}");
|
||||
|
||||
this.getSpellAbility().addEffect(new PreventDamageToTargetEffect(Duration.EndOfTurn, 1));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ import mage.game.events.GameEvent.EventType;
|
|||
import mage.game.permanent.Permanent;
|
||||
import mage.game.stack.Spell;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -59,9 +59,9 @@ public class Banefire extends CardImpl {
|
|||
public Banefire(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{R}");
|
||||
|
||||
// Banefire deals X damage to target creature or player.
|
||||
// Banefire deals X damage to any target.
|
||||
this.getSpellAbility().addEffect(new BaneFireEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
// If X is 5 or more, Banefire can't be countered by spells or abilities and the damage can't be prevented.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.STACK, new BanefireCantCounterEffect()));
|
||||
}
|
||||
|
@ -101,7 +101,7 @@ class BaneFireEffect extends OneShotEffect {
|
|||
|
||||
public BaneFireEffect() {
|
||||
super(Outcome.Damage);
|
||||
staticText = "{this} deals X damage to target creature or player";
|
||||
staticText = "{this} deals X damage to any target";
|
||||
}
|
||||
|
||||
public BaneFireEffect(final BaneFireEffect effect) {
|
||||
|
|
|
@ -43,7 +43,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -57,11 +57,11 @@ public class Banshee extends CardImpl {
|
|||
this.power = new MageInt(0);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// {X}, {T}: Banshee deals half X damage, rounded down, to target creature or player, and half X damage, rounded up, to you.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new HalfValue(new ManacostVariableValue(), false)).setText("Banshee deals half X damage, rounded down, to target creature or player,"), new ManaCostsImpl("{X}"));
|
||||
// {X}, {T}: Banshee deals half X damage, rounded down, to any target, and half X damage, rounded up, to you.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new HalfValue(new ManacostVariableValue(), false)).setText("Banshee deals half X damage, rounded down, to any target,"), new ManaCostsImpl("{X}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addEffect(new DamageControllerEffect(new HalfValue(new ManacostVariableValue(), true)).setText(" and half X damage, rounded up, to you"));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -58,14 +58,14 @@ public class BarbarianRing extends CardImpl {
|
|||
redManaAbility.addEffect(new DamageControllerEffect(1));
|
||||
this.addAbility(redManaAbility);
|
||||
|
||||
// Threshold - {R}, {T}, Sacrifice Barbarian Ring: Barbarian Ring deals 2 damage to target creature or player. Activate this ability only if seven or more cards are in your graveyard.
|
||||
// Threshold - {R}, {T}, Sacrifice Barbarian Ring: Barbarian Ring deals 2 damage to any target. Activate this ability only if seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new DamageTargetEffect(2),
|
||||
new ManaCostsImpl("{R}"),
|
||||
new CardsInControllerGraveCondition(7));
|
||||
thresholdAbility.addCost(new TapSourceCost());
|
||||
thresholdAbility.addCost(new SacrificeSourceCost());
|
||||
thresholdAbility.addTarget(new TargetCreatureOrPlayer());
|
||||
thresholdAbility.addTarget(new TargetAnyTarget());
|
||||
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
|
||||
this.addAbility(thresholdAbility);
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
||||
/**
|
||||
|
@ -60,11 +60,11 @@ public class BarbedField extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
|
||||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
||||
this.addAbility(ability);
|
||||
// Enchanted land has "{tap}: This land deals 1 damage to target creature or player."
|
||||
// Enchanted land has "{tap}: This land deals 1 damage to any target."
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
Effect effect = new GainAbilityAttachedEffect(ability, AttachmentType.AURA);
|
||||
effect.setText("Enchanted land has \"{T}: This land deals 1 damage to target creature or player.\"");
|
||||
effect.setText("Enchanted land has \"{T}: This land deals 1 damage to any target.\"");
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
}
|
||||
|
||||
|
|
|
@ -34,8 +34,8 @@ import mage.abilities.keyword.EntwineAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.common.TargetPlayerOrPlaneswalker;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -44,18 +44,18 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
public class BarbedLightning extends CardImpl {
|
||||
|
||||
public BarbedLightning(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{R}");
|
||||
|
||||
// Choose one - Barbed Lightning deals 3 damage to target creature;
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(3));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
|
||||
// or Barbed Lightning deals 3 damage to target player.
|
||||
Mode mode = new Mode();
|
||||
mode.getEffects().add(new DamageTargetEffect(3));
|
||||
mode.getTargets().add(new TargetPlayer());
|
||||
mode.getTargets().add(new TargetPlayerOrPlaneswalker());
|
||||
this.getSpellAbility().getModes().addMode(mode);
|
||||
|
||||
|
||||
// Entwine {2}
|
||||
this.addAbility(new EntwineAbility("{2}"));
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Zone;
|
||||
import static mage.filter.StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -50,10 +50,10 @@ public class BarrageOfExpendables extends CardImpl {
|
|||
public BarrageOfExpendables(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{R}");
|
||||
|
||||
// {R}, Sacrifice a creature: Barrage of Expendables deals 1 damage to target creature or player.
|
||||
// {R}, Sacrifice a creature: Barrage of Expendables deals 1 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{R}"));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ import mage.constants.Zone;
|
|||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -64,7 +64,7 @@ public class BarrageOgre extends CardImpl {
|
|||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new TapSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ import mage.filter.common.FilterControlledCreaturePermanent;
|
|||
import mage.filter.predicate.mageobject.ColorlessPredicate;
|
||||
import mage.filter.predicate.permanent.AnotherPredicate;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -70,12 +70,12 @@ public class BarrageTyrant extends CardImpl {
|
|||
// Devoid
|
||||
this.addAbility(new DevoidAbility(this.color));
|
||||
|
||||
// {2}{R}, Sacrifice another colorless creature: Barrage Tyrant deals damage equal to the sacrificed creature's power to target creature or player.
|
||||
// {2}{R}, Sacrifice another colorless creature: Barrage Tyrant deals damage equal to the sacrificed creature's power to any target.
|
||||
Effect effect = new DamageTargetEffect(new SacrificeCostCreaturesPower());
|
||||
effect.setText("{this} deals damage equal to the sacrificed creature's power to target creature or player");
|
||||
effect.setText("{this} deals damage equal to the sacrificed creature's power to any target");
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{2}{R}"));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(filter)));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ import mage.constants.Duration;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -58,9 +58,9 @@ public class BarrentonMedic extends CardImpl {
|
|||
this.power = new MageInt(0);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
// {tap}: Prevent the next 1 damage that would be dealt to target creature or player this turn.
|
||||
// {tap}: Prevent the next 1 damage that would be dealt to any target this turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn, 1), new TapSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Put a -1/-1 counter on Barrenton Medic: Untap Barrenton Medic.
|
||||
|
|
|
@ -33,7 +33,7 @@ import mage.abilities.effects.common.ShuffleSpellEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -45,7 +45,7 @@ public class BeaconOfDestruction extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{R}{R}");
|
||||
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(5));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
this.getSpellAbility().addEffect(ShuffleSpellEffect.getInstance());
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ import mage.abilities.effects.common.DamageTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -43,9 +43,9 @@ public class BeeSting extends CardImpl {
|
|||
public BeeSting(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{G}");
|
||||
|
||||
// Bee Sting deals 2 damage to target creature or player.
|
||||
// Bee Sting deals 2 damage to any target.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(2));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
}
|
||||
|
||||
public BeeSting(final BeeSting card) {
|
||||
|
|
|
@ -40,7 +40,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -55,9 +55,9 @@ public class BenevolentAncestor extends CardImpl {
|
|||
this.power = new MageInt(0);
|
||||
this.toughness = new MageInt(4);
|
||||
this.addAbility(DefenderAbility.getInstance());
|
||||
// {tap}: Prevent the next 1 damage that would be dealt to target creature or player this turn.
|
||||
// {tap}: Prevent the next 1 damage that would be dealt to any target this turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn, 1), new TapSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -39,24 +38,21 @@ import mage.constants.Outcome;
|
|||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.target.common.TargetDiscard;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
|
||||
|
||||
public class BlastOfGenius extends CardImpl {
|
||||
|
||||
public BlastOfGenius(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{U}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{U}{R}");
|
||||
|
||||
|
||||
// Choose target creature or player. Draw three cards and discard a card. Blast of Genius deals damage equal to the converted mana cost of the discard card to that creature or player.
|
||||
// Choose any target. Draw three cards and discard a card. Blast of Genius deals damage equal to the converted mana cost of the discard card to that creature or player.
|
||||
this.getSpellAbility().addEffect(new BlastOfGeniusEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
}
|
||||
|
||||
public BlastOfGenius(final BlastOfGenius card) {
|
||||
|
@ -74,7 +70,7 @@ class BlastOfGeniusEffect extends OneShotEffect {
|
|||
|
||||
public BlastOfGeniusEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "Choose target creature or player. Draw three cards and discard a card. Blast of Genius deals damage equal to the converted mana cost of the discard card to that creature or player";
|
||||
this.staticText = "Choose any target. Draw three cards and discard a card. Blast of Genius deals damage equal to the converted mana cost of the discard card to that permanent or player";
|
||||
}
|
||||
|
||||
public BlastOfGeniusEffect(final BlastOfGeniusEffect effect) {
|
||||
|
|
|
@ -42,7 +42,7 @@ import mage.constants.Zone;
|
|||
import static mage.filter.StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -53,10 +53,10 @@ public class BlastingStation extends CardImpl {
|
|||
public BlastingStation(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
|
||||
|
||||
// {tap}, Sacrifice a creature: Blasting Station deals 1 damage to target creature or player.
|
||||
// {tap}, Sacrifice a creature: Blasting Station deals 1 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost());
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
// Whenever a creature enters the battlefield, you may untap Blasting Station.
|
||||
this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new FilterCreaturePermanent("a creature"), true));
|
||||
|
|
|
@ -33,7 +33,7 @@ import mage.abilities.effects.common.DamageTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -45,9 +45,9 @@ public class Blaze extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{R}");
|
||||
|
||||
|
||||
// Blaze deals X damage to target creature or player.
|
||||
// Blaze deals X damage to any target.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(new ManacostVariableValue()));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
}
|
||||
|
||||
public Blaze(final Blaze card) {
|
||||
|
|
|
@ -41,7 +41,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -55,10 +55,10 @@ public class BlazingHellhound extends CardImpl {
|
|||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// {1}, Sacrifice another creature: Blazing Hellhound deals 1 damage to target creature or player.
|
||||
// {1}, Sacrifice another creature: Blazing Hellhound deals 1 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{1}"));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE)));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ import mage.constants.*;
|
|||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
@ -73,10 +73,10 @@ public class BlazingTorch extends CardImpl {
|
|||
new CantBeBlockedByCreaturesAttachedEffect(Duration.WhileOnBattlefield, filter, AttachmentType.EQUIPMENT)));
|
||||
|
||||
|
||||
// Equipped creature has "{tap}, Sacrifice Blazing Torch: Blazing Torch deals 2 damage to target creature or player.")
|
||||
// Equipped creature has "{tap}, Sacrifice Blazing Torch: Blazing Torch deals 2 damage to any target.")
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BlazingTorchDamageEffect(), new TapSourceCost());
|
||||
ability.addCost(new BlazingTorchCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.EQUIPMENT)));
|
||||
|
||||
// Equip {1}
|
||||
|
@ -135,7 +135,7 @@ class BlazingTorchDamageEffect extends OneShotEffect {
|
|||
|
||||
public BlazingTorchDamageEffect() {
|
||||
super(Outcome.Damage);
|
||||
this.staticText = "Blazing Torch deals 2 damage to target creature or player";
|
||||
this.staticText = "Blazing Torch deals 2 damage to any target";
|
||||
}
|
||||
|
||||
public BlazingTorchDamageEffect(final BlazingTorchDamageEffect effect) {
|
||||
|
|
|
@ -39,7 +39,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -53,13 +53,13 @@ public class BlightedGorge extends CardImpl {
|
|||
// {T}: Add {C}.
|
||||
this.addAbility(new ColorlessManaAbility());
|
||||
|
||||
// {4}{R}, {T}, Sacrifice Blighted Gorge: Blighted Gorge deals 2 damage to target creature or player.
|
||||
// {4}{R}, {T}, Sacrifice Blighted Gorge: Blighted Gorge deals 2 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new DamageTargetEffect(2),
|
||||
new ManaCostsImpl<>("{4}{R}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -24,17 +24,24 @@
|
|||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
|
||||
*/
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.discard.DiscardTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.constants.Outcome;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetPlayerOrPlaneswalker;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -43,14 +50,12 @@ import mage.target.TargetPlayer;
|
|||
public class Blightning extends CardImpl {
|
||||
|
||||
public Blightning(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{B}{R}");
|
||||
|
||||
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}{R}");
|
||||
|
||||
// Blightning deals 3 damage to target player. That player discards two cards.
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker());
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(3));
|
||||
this.getSpellAbility().addEffect(new DiscardTargetEffect(2));
|
||||
this.getSpellAbility().addEffect(new BlightningEffect());
|
||||
}
|
||||
|
||||
public Blightning(final Blightning card) {
|
||||
|
@ -62,3 +67,37 @@ public class Blightning extends CardImpl {
|
|||
return new Blightning(this);
|
||||
}
|
||||
}
|
||||
|
||||
class BlightningEffect extends OneShotEffect {
|
||||
|
||||
BlightningEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "That player or that planeswalker’s controller discards two cards.";
|
||||
}
|
||||
|
||||
BlightningEffect(final BlightningEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlightningEffect copy() {
|
||||
return new BlightningEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player player = game.getPlayer(source.getFirstTarget());
|
||||
if (player == null) {
|
||||
Permanent permanent = game.getPermanent(source.getFirstTarget());
|
||||
if (permanent != null) {
|
||||
player = game.getPlayer(permanent.getControllerId());
|
||||
}
|
||||
}
|
||||
if (player == null) {
|
||||
return false;
|
||||
}
|
||||
Effect effect = new DiscardTargetEffect(2);
|
||||
effect.setTargetPointer(new FixedTarget(player.getId(), game));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -52,7 +52,7 @@ public class BlisterstickShaman extends CardImpl {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(1);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(1));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Zone;
|
||||
import static mage.filter.StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
* @author Loki
|
||||
|
@ -51,7 +51,7 @@ public class BloodRites extends CardImpl {
|
|||
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{1}{R}"));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -54,13 +54,13 @@ public class BloodhallPriest extends CardImpl {
|
|||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
// Whenever Bloodhall Priest enters the battlefield or attacks, if you have no cards in hand, Bloodhall Priest deals 2 damage to target creature or player.
|
||||
// Whenever Bloodhall Priest enters the battlefield or attacks, if you have no cards in hand, Bloodhall Priest deals 2 damage to any target.
|
||||
TriggeredAbility triggeredAbility = new EntersBattlefieldOrAttacksSourceTriggeredAbility(new DamageTargetEffect(2));
|
||||
triggeredAbility.addTarget(new TargetCreatureOrPlayer());
|
||||
triggeredAbility.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(new ConditionalTriggeredAbility(
|
||||
triggeredAbility,
|
||||
HellbentCondition.instance,
|
||||
"Whenever {this} enters the battlefield or attacks, if you have no cards in hand, {this} deals 2 damage to target creature or player"
|
||||
"Whenever {this} enters the battlefield or attacks, if you have no cards in hand, {this} deals 2 damage to any target"
|
||||
));
|
||||
|
||||
// Madness {1}{B}{R}
|
||||
|
|
|
@ -41,7 +41,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import static mage.filter.StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -57,12 +57,12 @@ public class BloodshotCyclops extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// {T}, Sacrifice a creature: Bloodshot Cyclops deals damage equal to the sacrificed
|
||||
// creature's power to target creature or player.
|
||||
// creature's power to any target.
|
||||
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new DamageTargetEffect(new SacrificeCostCreaturesPower()),
|
||||
new TapSourceCost());
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreatureOrPlayerAmount;
|
||||
import mage.target.common.TargetAnyTargetAmount;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -57,7 +57,7 @@ public class BogardanHellkite extends CardImpl {
|
|||
this.addAbility(FlashAbility.getInstance());
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageMultiEffect(5), false);
|
||||
ability.addTarget(new TargetCreatureOrPlayerAmount(5));
|
||||
ability.addTarget(new TargetAnyTargetAmount(5));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ import mage.constants.TargetController;
|
|||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetPlayerOrPlaneswalker;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -55,13 +55,12 @@ public class BoggartShenanigans extends CardImpl {
|
|||
}
|
||||
|
||||
public BoggartShenanigans(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.TRIBAL,CardType.ENCHANTMENT},"{2}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.TRIBAL, CardType.ENCHANTMENT}, "{2}{R}");
|
||||
this.subtype.add(SubType.GOBLIN);
|
||||
|
||||
|
||||
// Whenever another Goblin you control dies, you may have Boggart Shenanigans deal 1 damage to target player.
|
||||
Ability ability = new DiesCreatureTriggeredAbility(new DamageTargetEffect(1), true, filter, false);
|
||||
ability.addTarget(new TargetPlayer());
|
||||
ability.addTarget(new TargetPlayerOrPlaneswalker());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ import mage.abilities.effects.keyword.ScryEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -47,7 +47,7 @@ public class BoltOfKeranos extends CardImpl {
|
|||
|
||||
// Bolt of Keranos deals 3 damage to target creature and/or player. Scry 1.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(3));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
this.getSpellAbility().addEffect(new ScryEffect(1));
|
||||
}
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -51,9 +51,9 @@ public class BomberCorps extends CardImpl {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Battalion - Whenever Bomber Corps and at least two other creatures attack, Bomber Corps deals 1 damage to target creature or player.
|
||||
// Battalion - Whenever Bomber Corps and at least two other creatures attack, Bomber Corps deals 1 damage to any target.
|
||||
Ability ability = new BattalionAbility(new DamageTargetEffect(1));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -52,9 +52,9 @@ public class BonethornValesk extends CardImpl {
|
|||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Whenever a permanent is turned face up, Bonethorn Valesk deals 1 damage to target creature or player.
|
||||
// Whenever a permanent is turned face up, Bonethorn Valesk deals 1 damage to any target.
|
||||
Ability ability = new TurnedFaceUpAllTriggeredAbility(new DamageTargetEffect(1), new FilterPermanent("a permanent"));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -50,8 +50,7 @@ import mage.target.TargetPlayer;
|
|||
public class BonfireOfTheDamned extends CardImpl {
|
||||
|
||||
public BonfireOfTheDamned(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{X}{R}");
|
||||
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{X}{R}");
|
||||
|
||||
// Bonfire of the Damned deals X damage to target player and each creature he or she controls.
|
||||
this.getSpellAbility().addEffect(new BonfireOfTheDamnedEffect());
|
||||
|
@ -77,7 +76,7 @@ class BonfireOfTheDamnedEffect extends OneShotEffect {
|
|||
|
||||
public BonfireOfTheDamnedEffect() {
|
||||
super(Outcome.Damage);
|
||||
staticText = "{this} deals X damage to target player and each creature he or she controls";
|
||||
staticText = "{this} deals X damage to target player or planeswalker and each creature that player or that planeswalker’s controller controls";
|
||||
}
|
||||
|
||||
public BonfireOfTheDamnedEffect(final BonfireOfTheDamnedEffect effect) {
|
||||
|
@ -86,12 +85,12 @@ class BonfireOfTheDamnedEffect extends OneShotEffect {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player player = game.getPlayer(source.getFirstTarget());
|
||||
Player player = game.getPlayerOrPlaneswalkerController(source.getFirstTarget());
|
||||
if (player != null) {
|
||||
int damage = source.getManaCostsToPay().getX();
|
||||
if (damage > 0) {
|
||||
int damage = source.getManaCostsToPay().getX();
|
||||
if (damage > 0) {
|
||||
player.damage(damage, source.getSourceId(), game, false, true);
|
||||
for (Permanent perm: game.getBattlefield().getAllActivePermanents(filter, player.getId(), game)) {
|
||||
for (Permanent perm : game.getBattlefield().getAllActivePermanents(filter, player.getId(), game)) {
|
||||
perm.damage(damage, source.getSourceId(), game, false, true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ import mage.constants.SuperType;
|
|||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterLandCard;
|
||||
import mage.target.common.TargetCardInHand;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -67,9 +67,9 @@ public class BorborygmosEnraged extends CardImpl {
|
|||
//Whenever Borborygmous Enraged deals combat damage to a player, reveal the top three cards of your library. Put all land cards revealed this way into your hand and the rest into your graveyard.
|
||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new RevealLibraryPutIntoHandEffect(3, new FilterLandCard(), Zone.GRAVEYARD), false, false));
|
||||
|
||||
//Discard a land card: Borborygmos Enraged deals 3 damage to target creature or player
|
||||
//Discard a land card: Borborygmos Enraged deals 3 damage to any target
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(3), new DiscardTargetCost(new TargetCardInHand(new FilterLandCard())));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -40,8 +40,8 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.common.TargetPlayerOrPlaneswalker;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -49,13 +49,12 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public class BorosCharm extends CardImpl {
|
||||
|
||||
public BorosCharm (UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}{W}");
|
||||
|
||||
public BorosCharm(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}{W}");
|
||||
|
||||
//Choose one - Boros Charm deals 4 damage to target player
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(4));
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker());
|
||||
//or permanents you control are indestructible this turn
|
||||
Mode mode = new Mode();
|
||||
Effect effect = new GainAbilityAllEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn, new FilterControlledPermanent(), false);
|
||||
|
@ -74,7 +73,7 @@ public class BorosCharm extends CardImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public BorosCharm copy() {
|
||||
public BorosCharm copy() {
|
||||
return new BorosCharm(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ import mage.constants.*;
|
|||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -57,9 +57,9 @@ public class BorosReckoner extends CardImpl {
|
|||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Whenever Boros Reckoner is dealt damage, it deals that much damage to target creature or player.
|
||||
// Whenever Boros Reckoner is dealt damage, it deals that much damage to any target.
|
||||
Ability ability = new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new BorosReckonerDealDamageEffect(), false, false, true);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
||||
// {R/W}: Boros Reckoner gains first strike until end of turn.
|
||||
|
@ -81,7 +81,7 @@ class BorosReckonerDealDamageEffect extends OneShotEffect {
|
|||
|
||||
public BorosReckonerDealDamageEffect() {
|
||||
super(Outcome.Damage);
|
||||
this.staticText = "it deals that much damage to target creature or player";
|
||||
this.staticText = "it deals that much damage to any target";
|
||||
}
|
||||
|
||||
public BorosReckonerDealDamageEffect(final BorosReckonerDealDamageEffect effect) {
|
||||
|
|
|
@ -45,7 +45,7 @@ import mage.constants.SuperType;
|
|||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledArtifactPermanent;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -64,12 +64,12 @@ public class BoshIronGolem extends CardImpl {
|
|||
// Trample
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// {3}{R}, Sacrifice an artifact: Bosh, Iron Golem deals damage equal to the sacrificed artifact's converted mana cost to target creature or player.
|
||||
// {3}{R}, Sacrifice an artifact: Bosh, Iron Golem deals damage equal to the sacrificed artifact's converted mana cost to any target.
|
||||
Effect effect = new DamageTargetEffect(new SacrificeCostConvertedMana("artifact"));
|
||||
effect.setText("{this} deals damage equal to the sacrificed artifact's converted mana cost to target creature or player");
|
||||
effect.setText("{this} deals damage equal to the sacrificed artifact's converted mana cost to any target");
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{3}{R}"));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledArtifactPermanent("an artifact"))));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ import mage.abilities.effects.common.DamageMultiEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreatureOrPlayerAmount;
|
||||
import mage.target.common.TargetAnyTargetAmount;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -46,7 +46,7 @@ public class Boulderfall extends CardImpl {
|
|||
|
||||
// Boulderfall deals 5 damage divided as you choose among any number of target creatures and/or players.
|
||||
this.getSpellAbility().addEffect(new DamageMultiEffect(5));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayerAmount(5));
|
||||
this.getSpellAbility().addTarget(new TargetAnyTargetAmount(5));
|
||||
}
|
||||
|
||||
public Boulderfall(final Boulderfall card) {
|
||||
|
|
|
@ -44,9 +44,9 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.*;
|
||||
import mage.filter.common.FilterControlledArtifactPermanent;
|
||||
import mage.game.permanent.token.ThopterToken;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.common.TargetPlayerOrPlaneswalker;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -71,7 +71,7 @@ public class BreyaEtheriumShaper extends CardImpl {
|
|||
new DamageTargetEffect(3),
|
||||
new GenericManaCost(2));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(2, 2, new FilterControlledArtifactPermanent("two artifacts"), true)));
|
||||
ability.addTarget(new TargetPlayer());
|
||||
ability.addTarget(new TargetPlayerOrPlaneswalker());
|
||||
|
||||
// Target creature gets -4/-4 until end of turn.
|
||||
Mode mode = new Mode();
|
||||
|
|
|
@ -44,7 +44,7 @@ import mage.cards.LevelerCard;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -62,12 +62,12 @@ public class BrimstoneMage extends LevelerCard {
|
|||
this.addAbility(new LevelUpAbility(new ManaCostsImpl("{3}{R}")));
|
||||
Abilities<Ability> abilities1 = new AbilitiesImpl<>();
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
abilities1.add(ability);
|
||||
|
||||
Abilities<Ability> abilities2 = new AbilitiesImpl<>();
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(3), new TapSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
abilities2.add(ability);
|
||||
|
||||
this.addAbilities(LevelerCardBuilder.construct(
|
||||
|
|
|
@ -37,7 +37,7 @@ import mage.constants.Outcome;
|
|||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.watchers.Watcher;
|
||||
import mage.watchers.common.MorbidWatcher;
|
||||
|
||||
|
@ -47,13 +47,12 @@ import mage.watchers.common.MorbidWatcher;
|
|||
public class BrimstoneVolley extends CardImpl {
|
||||
|
||||
public BrimstoneVolley(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{R}");
|
||||
|
||||
|
||||
// Brimstone Volley deals 3 damage to target creature or player.
|
||||
// Brimstone Volley deals 3 damage to any target.
|
||||
// Morbid - Brimstone Volley deals 5 damage to that creature or player instead if a creature died this turn.
|
||||
this.getSpellAbility().addEffect(new BrimstoneVolleyEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
}
|
||||
|
||||
public BrimstoneVolley(final BrimstoneVolley card) {
|
||||
|
@ -70,7 +69,7 @@ class BrimstoneVolleyEffect extends OneShotEffect {
|
|||
|
||||
public BrimstoneVolleyEffect() {
|
||||
super(Outcome.Damage);
|
||||
staticText = "{this} deals 3 damage to target creature or player.\n Morbid - {this} deals 5 damage to that creature or player instead if a creature died this turn";
|
||||
staticText = "{this} deals 3 damage to any target.\n Morbid - {this} deals 5 damage to that permanent or player instead if a creature died this turn";
|
||||
}
|
||||
|
||||
public BrimstoneVolleyEffect(final BrimstoneVolleyEffect effect) {
|
||||
|
@ -82,7 +81,7 @@ class BrimstoneVolleyEffect extends OneShotEffect {
|
|||
int damage = 3;
|
||||
Watcher watcher = game.getState().getWatchers().get(MorbidWatcher.class.getSimpleName());
|
||||
if (watcher.conditionMet()) {
|
||||
damage = 5;
|
||||
damage = 5;
|
||||
}
|
||||
Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source));
|
||||
if (permanent != null) {
|
||||
|
|
|
@ -36,6 +36,7 @@ import mage.abilities.costs.common.SacrificeTargetCost;
|
|||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -43,9 +44,8 @@ import mage.constants.*;
|
|||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.permanent.AnotherPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.common.TargetPlayerOrPlaneswalker;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -60,7 +60,7 @@ public class BrionStoutarm extends CardImpl {
|
|||
}
|
||||
|
||||
public BrionStoutarm(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{W}");
|
||||
addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.GIANT, SubType.WARRIOR);
|
||||
|
||||
|
@ -73,7 +73,7 @@ public class BrionStoutarm extends CardImpl {
|
|||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BrionStoutarmEffect(), new ManaCostsImpl("{R}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, true)));
|
||||
ability.addTarget(new TargetPlayer());
|
||||
ability.addTarget(new TargetPlayerOrPlaneswalker());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
@ -91,7 +91,7 @@ class BrionStoutarmEffect extends OneShotEffect {
|
|||
|
||||
public BrionStoutarmEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "{this} deals damage equal to the sacrificed creature's power to target player";
|
||||
this.staticText = "{this} deals damage equal to the sacrificed creature's power to target player or planeswalker";
|
||||
}
|
||||
|
||||
public BrionStoutarmEffect(final BrionStoutarmEffect effect) {
|
||||
|
@ -113,10 +113,7 @@ class BrionStoutarmEffect extends OneShotEffect {
|
|||
}
|
||||
}
|
||||
if (amount > 0) {
|
||||
Player player = game.getPlayer(source.getFirstTarget());
|
||||
if (player != null) {
|
||||
player.damage(amount, source.getSourceId(), game, false, true);
|
||||
}
|
||||
return new DamageTargetEffect(amount).apply(game, source);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -54,12 +54,12 @@ public class BrothersOfFire extends CardImpl {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// {1}{R}{R}: Brothers of Fire deals 1 damage to target creature or player and 1 damage to you.
|
||||
// {1}{R}{R}: Brothers of Fire deals 1 damage to any target and 1 damage to you.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{1}{R}{R}"));
|
||||
Effect effect = new DamageControllerEffect(1);
|
||||
effect.setText("and 1 damage to you");
|
||||
ability.addEffect(effect);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ import mage.filter.predicate.permanent.TappedPredicate;
|
|||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -62,9 +62,9 @@ public class BurnAtTheStake extends CardImpl {
|
|||
|
||||
// As an additional cost to cast Burn at the Stake, tap any number of untapped creatures you control.
|
||||
this.getSpellAbility().addCost(new TapVariableTargetCost(filter, true, "any number of"));
|
||||
// Burn at the Stake deals damage to target creature or player equal to three times the number of creatures tapped this way.
|
||||
// Burn at the Stake deals damage to any target equal to three times the number of creatures tapped this way.
|
||||
this.getSpellAbility().addEffect(new BurnAtTheStakeEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
}
|
||||
|
||||
public BurnAtTheStake(final BurnAtTheStake card) {
|
||||
|
@ -81,7 +81,7 @@ class BurnAtTheStakeEffect extends OneShotEffect {
|
|||
|
||||
public BurnAtTheStakeEffect() {
|
||||
super(Outcome.Damage);
|
||||
this.staticText = "{this} deals damage to target creature or player equal to three times the number of creatures tapped this way";
|
||||
this.staticText = "{this} deals damage to any target equal to three times the number of creatures tapped this way";
|
||||
}
|
||||
|
||||
public BurnAtTheStakeEffect(final BurnAtTheStakeEffect effect) {
|
||||
|
|
|
@ -43,7 +43,7 @@ import mage.constants.Outcome;
|
|||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
/**
|
||||
|
@ -55,10 +55,10 @@ public class BurnFromWithin extends CardImpl {
|
|||
public BurnFromWithin(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}");
|
||||
|
||||
// Burn from Within deals X damage to target creature or player. If a creature is dealt damage this way, it loses indestructible until end of turn.
|
||||
// Burn from Within deals X damage to any target. If a creature is dealt damage this way, it loses indestructible until end of turn.
|
||||
// If that creature would die this turn, exile it instead.
|
||||
this.getSpellAbility().addEffect(new BurnFromWithinEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
|
||||
}
|
||||
|
||||
|
@ -76,7 +76,7 @@ class BurnFromWithinEffect extends OneShotEffect {
|
|||
|
||||
public BurnFromWithinEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "{this} deals X damage to target creature or player. If a creature is dealt damage this way, it loses indestructible until end of turn. If that creature would die this turn, exile it instead";
|
||||
this.staticText = "{this} deals X damage to any target. If a creature is dealt damage this way, it loses indestructible until end of turn. If that creature would die this turn, exile it instead";
|
||||
}
|
||||
|
||||
public BurnFromWithinEffect(final BurnFromWithinEffect effect) {
|
||||
|
|
|
@ -33,7 +33,7 @@ import mage.abilities.keyword.ConspireAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -44,9 +44,9 @@ public class BurnTrail extends CardImpl {
|
|||
public BurnTrail(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{R}");
|
||||
|
||||
// Burn Trail deals 3 damage to target creature or player.
|
||||
// Burn Trail deals 3 damage to any target.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(3));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
|
||||
// Conspire
|
||||
this.addAbility(new ConspireAbility(getId(), ConspireAbility.ConspireTargets.ONE));
|
||||
|
|
|
@ -42,7 +42,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
@ -63,13 +63,13 @@ public class BurningAnger extends CardImpl {
|
|||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature has "{T}: This creature deals damage equal to its power to target creature or player."
|
||||
// Enchanted creature has "{T}: This creature deals damage equal to its power to any target."
|
||||
Effect effect = new DamageTargetEffect(new SourcePermanentPowerCount());
|
||||
effect.setText("{this} deals damage equal to its power to target creature or player");
|
||||
effect.setText("{this} deals damage equal to its power to any target");
|
||||
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost());
|
||||
gainedAbility.addTarget(new TargetCreatureOrPlayer());
|
||||
gainedAbility.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA, Duration.WhileOnBattlefield,
|
||||
"Enchanted creature has \"{T}: This creature deals damage equal to its power to target creature or player.\"")));
|
||||
"Enchanted creature has \"{T}: This creature deals damage equal to its power to any target.\"")));
|
||||
}
|
||||
|
||||
public BurningAnger(final BurningAnger card) {
|
||||
|
|
|
@ -41,7 +41,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -56,10 +56,10 @@ public class BurningEyeZubera extends CardImpl {
|
|||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// When Burning-Eye Zubera dies, if 4 or more damage was dealt to it this turn, Burning-Eye Zubera deals 3 damage to target creature or player.
|
||||
// When Burning-Eye Zubera dies, if 4 or more damage was dealt to it this turn, Burning-Eye Zubera deals 3 damage to any target.
|
||||
Ability ability = new ConditionalTriggeredAbility(new DiesTriggeredAbility(new DamageTargetEffect(3)),new SourceGotFourDamage(),
|
||||
"When {this} dies, if 4 or more damage was dealt to it this turn, Burning-Eye Zubera deals 3 damage to target creature or player");
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
"When {this} dies, if 4 or more damage was dealt to it this turn, Burning-Eye Zubera deals 3 damage to any target");
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ import mage.abilities.effects.common.DamageTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetOpponent;
|
||||
import mage.target.common.TargetOpponentOrPlaneswalker;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -41,10 +41,10 @@ import mage.target.common.TargetOpponent;
|
|||
public class BurningFields extends CardImpl {
|
||||
|
||||
public BurningFields(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{R}");
|
||||
|
||||
// Burning Fields deals 5 damage to target opponent.
|
||||
this.getSpellAbility().addTarget(new TargetOpponent());
|
||||
this.getSpellAbility().addTarget(new TargetOpponentOrPlaneswalker());
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(5));
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.common.TargetOpponent;
|
||||
import mage.target.common.TargetOpponentOrPlaneswalker;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -56,9 +56,9 @@ public class BurningSunsAvatar extends CardImpl {
|
|||
|
||||
// When Burning Sun's Avatar enters the battlefield, it deals 3 damage to target opponent and 3 damage to up to one target creature.
|
||||
Effect effect = new DamageTargetEffect(3);
|
||||
effect.setText("it deals 3 damage to target opponent and 3 damage to up to one target creature");
|
||||
effect.setText("it deals 3 damage to target opponent or planeswalker and 3 damage to up to one target creature");
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(effect, false);
|
||||
ability.addTarget(new TargetOpponent());
|
||||
ability.addTarget(new TargetOpponentOrPlaneswalker());
|
||||
ability.addTarget(new TargetCreaturePermanent(0, 1));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ import mage.constants.Zone;
|
|||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
* @author nantuko
|
||||
|
@ -48,7 +48,7 @@ public class BurningVengeance extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{R}");
|
||||
|
||||
|
||||
// Whenever you cast a spell from your graveyard, Burning Vengeance deals 2 damage to target creature or player.
|
||||
// Whenever you cast a spell from your graveyard, Burning Vengeance deals 2 damage to any target.
|
||||
this.addAbility(new BurningVengeanceOnCastAbility());
|
||||
}
|
||||
|
||||
|
@ -64,11 +64,11 @@ public class BurningVengeance extends CardImpl {
|
|||
|
||||
class BurningVengeanceOnCastAbility extends TriggeredAbilityImpl {
|
||||
|
||||
private static final String abilityText = "Whenever you cast a spell from your graveyard, Burning Vengeance deals 2 damage to target creature or player";
|
||||
private static final String abilityText = "Whenever you cast a spell from your graveyard, Burning Vengeance deals 2 damage to any target";
|
||||
|
||||
BurningVengeanceOnCastAbility() {
|
||||
super(Zone.BATTLEFIELD, new DamageTargetEffect(2), false);
|
||||
TargetCreatureOrPlayer target = new TargetCreatureOrPlayer();
|
||||
TargetAnyTarget target = new TargetAnyTarget();
|
||||
this.addTarget(target);
|
||||
}
|
||||
|
||||
|
|
|
@ -24,8 +24,7 @@
|
|||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
|
||||
*/
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -36,7 +35,7 @@ import mage.abilities.keyword.KickerAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -45,16 +44,15 @@ import mage.target.common.TargetCreatureOrPlayer;
|
|||
public class BurstLightning extends CardImpl {
|
||||
|
||||
public BurstLightning(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}");
|
||||
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}");
|
||||
|
||||
// Kicker {4} (You may pay an additional {4} as you cast this spell.)
|
||||
this.addAbility(new KickerAbility("{4}"));
|
||||
|
||||
// Burst Lightning deals 2 damage to target creature or player. If Burst Lightning was kicked, it deals 4 damage to that creature or player instead.
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
// Burst Lightning deals 2 damage to any target. If Burst Lightning was kicked, it deals 4 damage to that creature or player instead.
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetEffect(4),
|
||||
new DamageTargetEffect(2), KickedCondition.instance, "{this} deals 2 damage to target creature or player. If {this} was kicked, it deals 4 damage to that creature or player instead"));
|
||||
new DamageTargetEffect(2), KickedCondition.instance, "{this} deals 2 damage to any target. If {this} was kicked, it deals 4 damage to that permanent or player instead"));
|
||||
}
|
||||
|
||||
public BurstLightning(final BurstLightning card) {
|
||||
|
|
|
@ -35,7 +35,7 @@ import mage.abilities.effects.common.DamageTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -44,22 +44,20 @@ import mage.target.common.TargetCreatureOrPlayer;
|
|||
public class CacklingFlames extends CardImpl {
|
||||
|
||||
public CacklingFlames(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{R}");
|
||||
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{R}");
|
||||
|
||||
|
||||
// Cackling Flames deals 3 damage to target creature or player.
|
||||
// Cackling Flames deals 3 damage to any target.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamageTargetEffect(3),
|
||||
new InvertCondition(HellbentCondition.instance),
|
||||
"{this} deals 3 damage to target creature or player"));
|
||||
"{this} deals 3 damage to any target"));
|
||||
// Hellbent - Cackling Flames deals 5 damage to that creature or player instead if you have no cards in hand.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamageTargetEffect(5),
|
||||
HellbentCondition.instance,
|
||||
"<br/><br/><i>Hellbent</i> - {this} deals 5 damage to that creature or player instead if you have no cards in hand."));
|
||||
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
"<br/><br/><i>Hellbent</i> - {this} deals 5 damage to that permanent or player instead if you have no cards in hand."));
|
||||
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
}
|
||||
|
||||
public CacklingFlames(final CacklingFlames card) {
|
||||
|
|
|
@ -38,7 +38,7 @@ import mage.constants.SubType;
|
|||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -53,9 +53,9 @@ public class CandlesGlow extends CardImpl {
|
|||
this.subtype.add(SubType.ARCANE);
|
||||
|
||||
|
||||
// Prevent the next 3 damage that would be dealt to target creature or player this turn. You gain life equal to the damage prevented this way.
|
||||
// Prevent the next 3 damage that would be dealt to any target this turn. You gain life equal to the damage prevented this way.
|
||||
this.getSpellAbility().addEffect(new CandlesGlowPreventDamageTargetEffect(Duration.EndOfTurn));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
// Splice onto Arcane {1}{W}
|
||||
this.addAbility(new SpliceOntoArcaneAbility("{1}{W}"));
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ class CandlesGlowPreventDamageTargetEffect extends PreventionEffectImpl {
|
|||
|
||||
public CandlesGlowPreventDamageTargetEffect(Duration duration) {
|
||||
super(duration);
|
||||
staticText = "Prevent the next 3 damage that would be dealt to target creature or player this turn. You gain life equal to the damage prevented this way";
|
||||
staticText = "Prevent the next 3 damage that would be dealt to any target this turn. You gain life equal to the damage prevented this way";
|
||||
}
|
||||
|
||||
public CandlesGlowPreventDamageTargetEffect(final CandlesGlowPreventDamageTargetEffect effect) {
|
||||
|
|
|
@ -39,7 +39,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -54,10 +54,10 @@ public class CapriciousSorcerer extends CardImpl {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// {tap}: Capricious Sorcerer deals 1 damage to target creature or player. Activate this ability only during your turn, before attackers are declared.
|
||||
// {tap}: Capricious Sorcerer deals 1 damage to any target. Activate this ability only during your turn, before attackers are declared.
|
||||
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD,
|
||||
new DamageTargetEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue