mirror of
https://github.com/magefree/mage.git
synced 2025-12-26 05:22:02 -08:00
Merge origin/master
This commit is contained in:
commit
ae9bb9dc42
28 changed files with 83 additions and 84 deletions
|
|
@ -31,9 +31,9 @@ public final class AbruptDecay extends CardImpl {
|
|||
public AbruptDecay(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{B}{G}");
|
||||
|
||||
// Abrupt Decay can't be countered by spells or abilities.
|
||||
// Abrupt Decay can't be countered.
|
||||
Effect effect = new CantBeCounteredSourceEffect();
|
||||
effect.setText("{this} can't be countered by spells or abilities");
|
||||
effect.setText("this spell can't be countered");
|
||||
Ability ability = new SimpleStaticAbility(Zone.STACK, effect);
|
||||
ability.setRuleAtTheTop(true);
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -31,12 +30,12 @@ import mage.target.common.TargetAnyTarget;
|
|||
public final class Banefire extends CardImpl {
|
||||
|
||||
public Banefire(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}");
|
||||
|
||||
// Banefire deals X damage to any target.
|
||||
this.getSpellAbility().addEffect(new BaneFireEffect());
|
||||
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.
|
||||
// If X is 5 or more, Banefire can't be countered and the damage can't be prevented.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.STACK, new BanefireCantCounterEffect()));
|
||||
}
|
||||
|
||||
|
|
@ -111,7 +110,7 @@ class BanefireCantCounterEffect extends ContinuousRuleModifyingEffectImpl {
|
|||
|
||||
public BanefireCantCounterEffect() {
|
||||
super(Duration.WhileOnStack, Outcome.Benefit);
|
||||
staticText = "If X is 5 or more, {this} can't be countered by spells or abilities and the damage can't be prevented";
|
||||
staticText = "If X is 5 or more, this spell can't be countered and the damage can't be prevented";
|
||||
}
|
||||
|
||||
public BanefireCantCounterEffect(final BanefireCantCounterEffect effect) {
|
||||
|
|
@ -145,4 +144,4 @@ class BanefireCantCounterEffect extends ContinuousRuleModifyingEffectImpl {
|
|||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,12 +36,12 @@ public final class BoseijuWhoSheltersAll extends CardImpl {
|
|||
// Boseiju, Who Shelters All enters the battlefield tapped.
|
||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||
|
||||
// {T}, Pay 2 life: Add {C}. If that mana is spent on an instant or sorcery spell, that spell can't be countered by spells or abilities.
|
||||
// {T}, Pay 2 life: Add {C}. If that mana is spent on an instant or sorcery spell, that spell can't be countered.
|
||||
Mana mana = Mana.ColorlessMana(1);
|
||||
mana.setFlag(true); // used to indicate this mana ability
|
||||
SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, mana, new TapSourceCost());
|
||||
ability.addCost(new PayLifeCost(2));
|
||||
ability.getEffects().get(0).setText("Add {C}. If that mana is spent on an instant or sorcery spell, that spell can't be countered by spells or abilities");
|
||||
ability.getEffects().get(0).setText("Add {C}. If that mana is spent on an instant or sorcery spell, that spell can't be countered");
|
||||
this.addAbility(ability);
|
||||
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoseijuWhoSheltersAllCantCounterEffect()), new BoseijuWhoSheltersAllWatcher());
|
||||
|
|
@ -119,7 +119,7 @@ class BoseijuWhoSheltersAllCantCounterEffect extends ContinuousRuleModifyingEffe
|
|||
public String getInfoMessage(Ability source, GameEvent event, Game game) {
|
||||
MageObject sourceObject = game.getObject(source.getSourceId());
|
||||
if (sourceObject != null) {
|
||||
return "This spell can't be countered by spells or abilities (" + sourceObject.getName() + ").";
|
||||
return "This spell can't be countered (" + sourceObject.getName() + ").";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public final class BoundDetermined extends SplitCard {
|
|||
effect.setText("Exile this card");
|
||||
getLeftHalfCard().getSpellAbility().addEffect(effect);
|
||||
// Determined
|
||||
// Other spells you control can't be countered by spells or abilities this turn.
|
||||
// Other spells you control can't be countered this turn.
|
||||
// Draw a card.
|
||||
getRightHalfCard().getSpellAbility().addEffect(new DeterminedEffect());
|
||||
getRightHalfCard().getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
|
||||
|
|
@ -107,7 +107,7 @@ class DeterminedEffect extends ContinuousRuleModifyingEffectImpl {
|
|||
|
||||
DeterminedEffect() {
|
||||
super(Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "Other spells you control can't be countered by spells or abilities this turn";
|
||||
staticText = "Other spells you control can't be countered this turn";
|
||||
}
|
||||
|
||||
DeterminedEffect(final DeterminedEffect effect) {
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public final class Combust extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new DamageTargetEffect(5, false));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
|
||||
|
||||
// Combust can't be countered by spells or abilities.
|
||||
// Combust can't be countered.
|
||||
Ability ability = new SimpleStaticAbility(Zone.STACK, new CantBeCounteredSourceEffect());
|
||||
ability.setRuleAtTheTop(true);
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -42,9 +42,9 @@ public final class Counterflux extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{U}{U}{R}");
|
||||
|
||||
|
||||
// Counterflux can't be countered by spells or abilities.
|
||||
// Counterflux can't be countered.
|
||||
Effect effect = new CantBeCounteredSourceEffect();
|
||||
effect.setText("{this} can't be countered by spells or abilities");
|
||||
effect.setText("this spell can't be countered");
|
||||
Ability ability = new SimpleStaticAbility(Zone.STACK,effect);
|
||||
ability.setRuleAtTheTop(true);
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -39,11 +39,11 @@ public final class Demonfire extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn));
|
||||
this.getSpellAbility().addWatcher(new DamagedByWatcher());
|
||||
|
||||
// Hellbent - If you have no cards in hand, Demonfire can't be countered by spells or abilities and the damage can't be prevented.
|
||||
// Hellbent - If you have no cards in hand, Demonfire can't be countered and the damage can't be prevented.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamageTargetEffect(new ManacostVariableValue(), false),
|
||||
HellbentCondition.instance,
|
||||
"<br/><i>Hellbent</i> — If you have no cards in hand, {this} can't be countered by spells or abilities and the damage can't be prevented."));
|
||||
"<br/><i>Hellbent</i> — If you have no cards in hand, this spell can't be countered and the damage can't be prevented."));
|
||||
// can't be countered
|
||||
Effect effect = new CantBeCounteredSourceEffect();
|
||||
effect.setText("");
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ public final class DragonlordsPrerogative extends CardImpl {
|
|||
Condition condition = new DragonlordsPrerogativeCondition();
|
||||
ContinuousRuleModifyingEffect cantBeCountered = new CantBeCounteredSourceEffect();
|
||||
ConditionalContinuousRuleModifyingEffect conditionalCantBeCountered = new ConditionalContinuousRuleModifyingEffect(cantBeCountered, condition);
|
||||
conditionalCantBeCountered.setText("<br/>If you revealed a Dragon card or controlled a Dragon as you cast {this}, {this} can't be countered");
|
||||
conditionalCantBeCountered.setText("<br/>If you revealed a Dragon card or controlled a Dragon as you cast {this}, this spell can't be countered");
|
||||
Ability ability = new SimpleStaticAbility(Zone.STACK, conditionalCantBeCountered);
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
|||
|
|
@ -28,10 +28,10 @@ public final class ExquisiteFirecraft extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(4));
|
||||
|
||||
// <i>Spell mastery</i> — If there are two or more instant and/or sorcery cards in your graveyard, Exquisite Firecraft can't be countered by spells or abilities.
|
||||
// <i>Spell mastery</i> — If there are two or more instant and/or sorcery cards in your graveyard, Exquisite Firecraft can't be countered.
|
||||
ContinuousRuleModifyingEffect cantBeCountered = new CantBeCounteredSourceEffect();
|
||||
ConditionalContinuousRuleModifyingEffect conditionalCantBeCountered = new ConditionalContinuousRuleModifyingEffect(cantBeCountered, SpellMasteryCondition.instance);
|
||||
conditionalCantBeCountered.setText("<br/>If there are two or more instant and/or sorcery cards in your graveyard, {this} can't be countered by spells or abilities");
|
||||
conditionalCantBeCountered.setText("<br/>If there are two or more instant and/or sorcery cards in your graveyard, this spell can't be countered");
|
||||
Ability ability = new SimpleStaticAbility(Zone.STACK, conditionalCantBeCountered);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ public final class Insist extends CardImpl {
|
|||
public Insist(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{G}");
|
||||
|
||||
// The next creature spell you cast this turn can't be countered by spells or abilities.
|
||||
// The next creature spell you cast this turn can't be countered.
|
||||
this.getSpellAbility().addEffect(new InsistEffect());
|
||||
this.getSpellAbility().addWatcher(new InsistWatcher());
|
||||
|
||||
|
|
@ -50,7 +50,7 @@ class InsistEffect extends ContinuousRuleModifyingEffectImpl {
|
|||
|
||||
InsistEffect() {
|
||||
super(Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "The next creature spell you cast this turn can't be countered by spells or abilities";
|
||||
staticText = "The next creature spell you cast this turn can't be countered";
|
||||
}
|
||||
|
||||
InsistEffect(final InsistEffect effect) {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public final class Overmaster extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{R}");
|
||||
|
||||
|
||||
// The next instant or sorcery spell you cast this turn can't be countered by spells or abilities.
|
||||
// The next instant or sorcery spell you cast this turn can't be countered.
|
||||
this.getSpellAbility().addEffect(new OvermasterEffect());
|
||||
this.getSpellAbility().addWatcher(new OvermasterWatcher());
|
||||
|
||||
|
|
@ -52,7 +52,7 @@ class OvermasterEffect extends ContinuousRuleModifyingEffectImpl {
|
|||
|
||||
OvermasterEffect() {
|
||||
super(Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "The next instant or sorcery spell you cast this turn can't be countered by spells or abilities";
|
||||
staticText = "The next instant or sorcery spell you cast this turn can't be countered";
|
||||
}
|
||||
|
||||
OvermasterEffect(final OvermasterEffect effect) {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ public final class OverwhelmingDenial extends CardImpl {
|
|||
|
||||
// Overwhelming Denial can't be countered by spell or abilities.
|
||||
Effect effect = new CantBeCounteredSourceEffect();
|
||||
effect.setText("{this} can't be countered by spells or abilities");
|
||||
effect.setText("this spell can't be countered");
|
||||
Ability ability = new SimpleStaticAbility(Zone.STACK, effect);
|
||||
ability.setRuleAtTheTop(true);
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -34,9 +34,9 @@ public final class RendingVolley extends CardImpl {
|
|||
public RendingVolley(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}");
|
||||
|
||||
// Rending Volley can't be countered by spells or abilities.
|
||||
// Rending Volley can't be countered.
|
||||
Effect effect = new CantBeCounteredSourceEffect();
|
||||
effect.setText("{this} can't be countered by spells or abilities");
|
||||
effect.setText("this spell can't be countered");
|
||||
Ability ability = new SimpleStaticAbility(Zone.STACK,effect);
|
||||
ability.setRuleAtTheTop(true);
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public final class RootSliver extends CardImpl {
|
|||
|
||||
// Root Sliver can't be countered.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.STACK, new CantBeCounteredSourceEffect()));
|
||||
// Sliver spells can't be countered by spells or abilities.
|
||||
// Sliver spells can't be countered.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new RootSliverEffect()));
|
||||
|
||||
}
|
||||
|
|
@ -62,7 +62,7 @@ class RootSliverEffect extends ContinuousRuleModifyingEffectImpl {
|
|||
|
||||
public RootSliverEffect() {
|
||||
super(Duration.WhileOnBattlefield, Outcome.Benefit);
|
||||
staticText = "Sliver spells can't be countered by spells or abilities";
|
||||
staticText = "Sliver spells can't be countered";
|
||||
}
|
||||
|
||||
public RootSliverEffect(final RootSliverEffect effect) {
|
||||
|
|
|
|||
|
|
@ -24,9 +24,9 @@ public final class SlaughterGames extends CardImpl {
|
|||
public SlaughterGames(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}{R}");
|
||||
|
||||
// Slaughter Games can't be countered by spells or abilities.
|
||||
// Slaughter Games can't be countered.
|
||||
Effect effect = new CantBeCounteredSourceEffect();
|
||||
effect.setText("{this} can't be countered by spells or abilities");
|
||||
effect.setText("this spell can't be countered");
|
||||
Ability ability = new SimpleStaticAbility(Zone.STACK, effect);
|
||||
ability.setRuleAtTheTop(true);
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ public final class SphinxOfTheFinalWord extends CardImpl {
|
|||
// Hexproof
|
||||
this.addAbility(HexproofAbility.getInstance());
|
||||
|
||||
// Instant and sorcery spells you control can't be countered by spells or abilities.
|
||||
// Instant and sorcery spells you control can't be countered.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBeCounteredControlledEffect(filterTarget, null, Duration.WhileOnBattlefield)));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ public final class TaigamOjutaiMaster extends CardImpl {
|
|||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
// Instant, sorcery, and Dragon spells you control can't be countered by spells or abilities.
|
||||
// Instant, sorcery, and Dragon spells you control can't be countered.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBeCounteredControlledEffect(filter, new FilterStackObject(), Duration.WhileOnBattlefield)));
|
||||
|
||||
// Whenever you cast an instant or sorcery spell from your hand, if Taigam, Ojutai Master attacked this turn, that spell gains rebound.
|
||||
|
|
|
|||
|
|
@ -31,9 +31,9 @@ public final class TearsOfValakut extends CardImpl {
|
|||
public TearsOfValakut(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{R}");
|
||||
|
||||
// Tears of Valakut can't be countered by spells or abilities.
|
||||
// Tears of Valakut can't be countered.
|
||||
Effect effect = new CantBeCounteredSourceEffect();
|
||||
effect.setText("{this} can't be countered by spells or abilities");
|
||||
effect.setText("this spell can't be countered");
|
||||
Ability ability = new SimpleStaticAbility(Zone.STACK, effect);
|
||||
ability.setRuleAtTheTop(true);
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -28,9 +28,9 @@ public final class UrzasRage extends CardImpl {
|
|||
// Kicker {8}{R}
|
||||
this.addAbility(new KickerAbility("{8}{R}"));
|
||||
|
||||
// Urza's Rage can't be countered by spells or abilities.
|
||||
// Urza's Rage can't be countered.
|
||||
Effect effect = new CantBeCounteredSourceEffect();
|
||||
effect.setText("{this} can't be countered by spells or abilities");
|
||||
effect.setText("this spell can't be countered");
|
||||
Ability ability = new SimpleStaticAbility(Zone.STACK, effect);
|
||||
ability.setRuleAtTheTop(true);
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ public final class VexingShusher extends CardImpl {
|
|||
|
||||
// Vexing Shusher can't be countered.
|
||||
this.addAbility(new CantBeCounteredAbility());
|
||||
// {R/G}: Target spell can't be countered by spells or abilities.
|
||||
// {R/G}: Target spell can't be countered.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new VexingShusherCantCounterTargetEffect(), new ManaCostsImpl("{R/G}"));
|
||||
ability.addTarget(new TargetSpell());
|
||||
this.addAbility(ability);
|
||||
|
|
@ -57,7 +57,7 @@ class VexingShusherCantCounterTargetEffect extends ContinuousRuleModifyingEffect
|
|||
|
||||
public VexingShusherCantCounterTargetEffect() {
|
||||
super(Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "Target spell can't be countered by spells or abilities";
|
||||
staticText = "Target spell can't be countered";
|
||||
}
|
||||
|
||||
public VexingShusherCantCounterTargetEffect(final VexingShusherCantCounterTargetEffect effect) {
|
||||
|
|
@ -78,7 +78,7 @@ class VexingShusherCantCounterTargetEffect extends ContinuousRuleModifyingEffect
|
|||
public String getInfoMessage(Ability source, GameEvent event, Game game) {
|
||||
MageObject sourceObject = game.getObject(source.getSourceId());
|
||||
if (sourceObject != null) {
|
||||
return "This spell can't be countered by spells or abilities (" + sourceObject.getName() + ").";
|
||||
return "This spell can't be countered (" + sourceObject.getName() + ").";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue