From ffa05bf9db964cab496a1d677a205ee0a482f2ef Mon Sep 17 00:00:00 2001
From: Alex Vasile <48962821+Alex-Vasile@users.noreply.github.com>
Date: Fri, 28 Jan 2022 00:52:46 -0500
Subject: [PATCH] - Fixed Khalni Ambush - Added Effect hint for
FightTargetsEffect - Added test for FightTargetsEffect hint to
VerifyCardDataTest (for #6728)
---
.../src/mage/cards/a/AffectionateIndrik.java | 4 ++--
Mage.Sets/src/mage/cards/a/AncientAnimus.java | 3 ++-
Mage.Sets/src/mage/cards/a/Arena.java | 3 ++-
Mage.Sets/src/mage/cards/a/AtzocanArcher.java | 3 ++-
.../mage/cards/a/AyulaQueenAmongBears.java | 2 +-
Mage.Sets/src/mage/cards/b/BackForMore.java | 3 ++-
Mage.Sets/src/mage/cards/b/BlizzardBrawl.java | 4 +++-
.../src/mage/cards/c/CartoucheOfStrength.java | 3 ++-
.../src/mage/cards/d/DecisiveDenial.java | 3 ++-
.../mage/cards/d/DissensionInTheRanks.java | 2 +-
.../src/mage/cards/d/DomriAnarchOfBolas.java | 2 +-
Mage.Sets/src/mage/cards/d/DomriRade.java | 2 +-
.../src/mage/cards/e/EpicConfrontation.java | 3 ++-
Mage.Sets/src/mage/cards/h/HuntTheWeak.java | 3 ++-
.../mage/cards/i/InscriptionOfAbundance.java | 5 +++--
Mage.Sets/src/mage/cards/j/Joust.java | 2 +-
Mage.Sets/src/mage/cards/m/MageDuel.java | 7 +++++--
.../src/mage/cards/m/MagusOfTheArena.java | 3 ++-
.../src/mage/cards/n/NessianWildsRavager.java | 8 +++++--
.../src/mage/cards/n/NightfallPredator.java | 5 ++++-
Mage.Sets/src/mage/cards/o/Outmuscle.java | 3 ++-
.../src/mage/cards/p/PheresBandBrawler.java | 3 ++-
Mage.Sets/src/mage/cards/p/PrepareFight.java | 2 +-
Mage.Sets/src/mage/cards/r/RivalsDuel.java | 3 ++-
Mage.Sets/src/mage/cards/s/SavageSmash.java | 3 ++-
Mage.Sets/src/mage/cards/s/SavageStomp.java | 3 ++-
Mage.Sets/src/mage/cards/s/SavageSwipe.java | 3 ++-
.../src/mage/cards/s/SkophosMazeWarden.java | 3 ++-
.../src/mage/cards/s/StruggleForSkemfar.java | 3 ++-
.../src/mage/cards/t/TheTriumphOfAnax.java | 9 ++++----
Mage.Sets/src/mage/cards/t/TimeToFeed.java | 3 ++-
.../src/mage/cards/u/UlvenwaldTracker.java | 2 +-
.../src/mage/cards/u/UndercityUprising.java | 3 ++-
.../src/mage/cards/u/UnnaturalAggression.java | 2 +-
.../src/mage/cards/w/WarbriarBlessing.java | 3 ++-
Mage.Sets/src/mage/cards/w/WildInstincts.java | 21 ++++++++-----------
.../java/mage/verify/VerifyCardDataTest.java | 4 ++++
.../effects/common/FightTargetsEffect.java | 17 +++++++++++++--
38 files changed, 104 insertions(+), 56 deletions(-)
diff --git a/Mage.Sets/src/mage/cards/a/AffectionateIndrik.java b/Mage.Sets/src/mage/cards/a/AffectionateIndrik.java
index ef55269359..3e469e6ebb 100644
--- a/Mage.Sets/src/mage/cards/a/AffectionateIndrik.java
+++ b/Mage.Sets/src/mage/cards/a/AffectionateIndrik.java
@@ -28,8 +28,8 @@ public final class AffectionateIndrik extends CardImpl {
// When Affectionate Indrik enters the battlefield, you may have it fight target creature you don't control.
Ability ability = new EntersBattlefieldTriggeredAbility(
new FightTargetSourceEffect()
- .setText("you may have it fight "
- + "target creature you don't control"),
+ .setText("you may have it fight target creature you don't control. " +
+ "(Each deals damage equal to its power to the other.)"),
true
);
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL));
diff --git a/Mage.Sets/src/mage/cards/a/AncientAnimus.java b/Mage.Sets/src/mage/cards/a/AncientAnimus.java
index e2b0e9387d..ebcc1ab75b 100644
--- a/Mage.Sets/src/mage/cards/a/AncientAnimus.java
+++ b/Mage.Sets/src/mage/cards/a/AncientAnimus.java
@@ -33,7 +33,8 @@ public final class AncientAnimus extends CardImpl {
effect.setText("Put a +1/+1 counter on target creature you control if it's legendary");
this.getSpellAbility().addEffect(effect);
effect = new FightTargetsEffect();
- effect.setText("Then it fights target creature an opponent controls");
+ effect.setText("Then it fights target creature an opponent controls. " +
+ "(Each deals damage equal to its power to the other.)");
this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
Target target = new TargetOpponentsCreaturePermanent();
diff --git a/Mage.Sets/src/mage/cards/a/Arena.java b/Mage.Sets/src/mage/cards/a/Arena.java
index 6f800a7e01..f0e338e21c 100644
--- a/Mage.Sets/src/mage/cards/a/Arena.java
+++ b/Mage.Sets/src/mage/cards/a/Arena.java
@@ -49,7 +49,8 @@ class ArenaEffect extends OneShotEffect {
ArenaEffect() {
super(Outcome.Benefit);
- this.staticText = "Tap target creature you control and target creature of an opponent's choice they control. Those creatures fight each other.";
+ this.staticText = "Tap target creature you control and target creature of an opponent's choice they control. " +
+ "Those creatures fight each other. (Each deals damage equal to its power to the other.)";
}
ArenaEffect(final ArenaEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/a/AtzocanArcher.java b/Mage.Sets/src/mage/cards/a/AtzocanArcher.java
index d9d0853a91..44df92aefb 100644
--- a/Mage.Sets/src/mage/cards/a/AtzocanArcher.java
+++ b/Mage.Sets/src/mage/cards/a/AtzocanArcher.java
@@ -41,7 +41,8 @@ public final class AtzocanArcher extends CardImpl {
// When Atzocan Archer enters the battlefield, you may have it fight another target creature.
Effect effect = new FightTargetSourceEffect();
- effect.setText("you may have it fight another target creature");
+ effect.setText("you may have it fight another target creature. " +
+ "(Each deals damage equal to its power to the other.)");
Ability ability = new EntersBattlefieldTriggeredAbility(effect, true);
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/a/AyulaQueenAmongBears.java b/Mage.Sets/src/mage/cards/a/AyulaQueenAmongBears.java
index 14285783f7..88b7d742c0 100644
--- a/Mage.Sets/src/mage/cards/a/AyulaQueenAmongBears.java
+++ b/Mage.Sets/src/mage/cards/a/AyulaQueenAmongBears.java
@@ -51,7 +51,7 @@ public final class AyulaQueenAmongBears extends CardImpl {
ability.addTarget(new TargetPermanent(filter2));
// • Target Bear you control fights target creature you don't control.
- Mode mode = new Mode(new FightTargetsEffect());
+ Mode mode = new Mode(new FightTargetsEffect(false));
mode.addTarget(new TargetControlledPermanent(filter3));
mode.addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL));
ability.addMode(mode);
diff --git a/Mage.Sets/src/mage/cards/b/BackForMore.java b/Mage.Sets/src/mage/cards/b/BackForMore.java
index 26ed102c20..6d2ee7840d 100644
--- a/Mage.Sets/src/mage/cards/b/BackForMore.java
+++ b/Mage.Sets/src/mage/cards/b/BackForMore.java
@@ -58,7 +58,8 @@ class BackForMoreEffect extends OneShotEffect {
BackForMoreEffect() {
super(Outcome.Benefit);
staticText = "Return target creature card from your graveyard to the battlefield. " +
- "When you do, it fights up to one target creature you don't control.";
+ "When you do, it fights up to one target creature you don't control. " +
+ "(Each deals damage equal to its power to the other.)";
}
private BackForMoreEffect(final BackForMoreEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/b/BlizzardBrawl.java b/Mage.Sets/src/mage/cards/b/BlizzardBrawl.java
index 91b2bdd1e6..4d82979e5e 100644
--- a/Mage.Sets/src/mage/cards/b/BlizzardBrawl.java
+++ b/Mage.Sets/src/mage/cards/b/BlizzardBrawl.java
@@ -60,7 +60,9 @@ class BlizzardBrawlEffect extends OneShotEffect {
super(Outcome.Benefit);
staticText = "Choose target creature you control and target creature you don't control. " +
"If you control three or more snow permanents, the creature you control gets +1/+0 " +
- "and gains indestructible until end of turn. Then those creatures fight each other.";
+ "and gains indestructible until end of turn. " +
+ "Then those creatures fight each other." +
+ "(Each deals damage equal to its power to the other.)";
}
private BlizzardBrawlEffect(final BlizzardBrawlEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/c/CartoucheOfStrength.java b/Mage.Sets/src/mage/cards/c/CartoucheOfStrength.java
index 1ce52f01ab..d89bff5cb9 100644
--- a/Mage.Sets/src/mage/cards/c/CartoucheOfStrength.java
+++ b/Mage.Sets/src/mage/cards/c/CartoucheOfStrength.java
@@ -108,7 +108,8 @@ class FightEnchantedTargetEffect extends OneShotEffect {
@Override
public String getText(Mode mode) {
- return "you may have enchanted creature fight target creature an opponent controls.";
+ return "you may have enchanted creature fight target creature an opponent controls. " +
+ "(Each deals damage equal to its power to the other.)";
}
}
\ No newline at end of file
diff --git a/Mage.Sets/src/mage/cards/d/DecisiveDenial.java b/Mage.Sets/src/mage/cards/d/DecisiveDenial.java
index c57bed8a33..d6957b31e9 100644
--- a/Mage.Sets/src/mage/cards/d/DecisiveDenial.java
+++ b/Mage.Sets/src/mage/cards/d/DecisiveDenial.java
@@ -25,7 +25,8 @@ public final class DecisiveDenial extends CardImpl {
// Choose one —
// • Target creature you control fights target creature you don't control.
this.getSpellAbility().addEffect(new FightTargetsEffect()
- .setText("target creature you control fights target creature you don't control"));
+ .setText("target creature you control fights target creature you don't control. " +
+ "(Each deals damage equal to its power to the other.)"));
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL));
diff --git a/Mage.Sets/src/mage/cards/d/DissensionInTheRanks.java b/Mage.Sets/src/mage/cards/d/DissensionInTheRanks.java
index aa495af369..5c3567832f 100644
--- a/Mage.Sets/src/mage/cards/d/DissensionInTheRanks.java
+++ b/Mage.Sets/src/mage/cards/d/DissensionInTheRanks.java
@@ -27,7 +27,7 @@ public final class DissensionInTheRanks extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{R}{R}");
// Target blocking creature fights another target blocking creature.
- this.getSpellAbility().addEffect(new FightTargetsEffect());
+ this.getSpellAbility().addEffect(new FightTargetsEffect(false));
TargetCreaturePermanent target = new TargetCreaturePermanent(1, 1, filter, false);
target.setTargetTag(1);
this.getSpellAbility().addTarget(target);
diff --git a/Mage.Sets/src/mage/cards/d/DomriAnarchOfBolas.java b/Mage.Sets/src/mage/cards/d/DomriAnarchOfBolas.java
index 295ccb1645..ef161e24f0 100644
--- a/Mage.Sets/src/mage/cards/d/DomriAnarchOfBolas.java
+++ b/Mage.Sets/src/mage/cards/d/DomriAnarchOfBolas.java
@@ -41,7 +41,7 @@ public final class DomriAnarchOfBolas extends CardImpl {
this.addAbility(new LoyaltyAbility(new DomriAnarchOfBolasEffect(), 1));
// -2: Target creature you control fights target creature you don't control.
- Ability ability = new LoyaltyAbility(new FightTargetsEffect(), -2);
+ Ability ability = new LoyaltyAbility(new FightTargetsEffect(false), -2);
ability.addTarget(new TargetControlledCreaturePermanent());
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/d/DomriRade.java b/Mage.Sets/src/mage/cards/d/DomriRade.java
index d383d9f9f6..137e79e033 100644
--- a/Mage.Sets/src/mage/cards/d/DomriRade.java
+++ b/Mage.Sets/src/mage/cards/d/DomriRade.java
@@ -37,7 +37,7 @@ public final class DomriRade extends CardImpl {
this.addAbility(new LoyaltyAbility(new DomriRadeEffect1(), 1));
// -2: Target creature you control fights another target creature.
- LoyaltyAbility ability2 = new LoyaltyAbility(new FightTargetsEffect(), -2);
+ LoyaltyAbility ability2 = new LoyaltyAbility(new FightTargetsEffect(false), -2);
TargetControlledCreaturePermanent target = new TargetControlledCreaturePermanent();
target.setTargetTag(1);
ability2.addTarget(target);
diff --git a/Mage.Sets/src/mage/cards/e/EpicConfrontation.java b/Mage.Sets/src/mage/cards/e/EpicConfrontation.java
index 8fe1d32f2e..a4588b7168 100644
--- a/Mage.Sets/src/mage/cards/e/EpicConfrontation.java
+++ b/Mage.Sets/src/mage/cards/e/EpicConfrontation.java
@@ -26,7 +26,8 @@ public final class EpicConfrontation extends CardImpl {
Effect effect = new BoostTargetEffect(1, 2, Duration.EndOfTurn);
this.getSpellAbility().addEffect(effect);
effect = new FightTargetsEffect();
- effect.setText("It fights target creature you don't control");
+ effect.setText("It fights target creature you don't control. " +
+ "(Each deals damage equal to its power to the other.)");
this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
Target target = new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL);
diff --git a/Mage.Sets/src/mage/cards/h/HuntTheWeak.java b/Mage.Sets/src/mage/cards/h/HuntTheWeak.java
index 744a457d06..7243ab70a3 100644
--- a/Mage.Sets/src/mage/cards/h/HuntTheWeak.java
+++ b/Mage.Sets/src/mage/cards/h/HuntTheWeak.java
@@ -23,7 +23,8 @@ public final class HuntTheWeak extends CardImpl {
// Put a +1/+1 counter on target creature you control. Then that creature fights target creature you don't control.
this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance()));
this.getSpellAbility().addEffect(new FightTargetsEffect().setText(
- "Then that creature fights target creature you don't control"
+ "Then that creature fights target creature you don't control. " +
+ "(Each deals damage equal to its power to the other.)"
));
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL));
diff --git a/Mage.Sets/src/mage/cards/i/InscriptionOfAbundance.java b/Mage.Sets/src/mage/cards/i/InscriptionOfAbundance.java
index 0d7a0aeadf..017823e60f 100644
--- a/Mage.Sets/src/mage/cards/i/InscriptionOfAbundance.java
+++ b/Mage.Sets/src/mage/cards/i/InscriptionOfAbundance.java
@@ -36,7 +36,8 @@ public final class InscriptionOfAbundance extends CardImpl {
// Choose one. If this spell was kicked, choose any number instead.
// • Put two +1/+1 counters on target creature.
- this.getSpellAbility().getModes().setChooseText("choose one. If this spell was kicked, choose any number instead.");
+ this.getSpellAbility().getModes().setChooseText("choose one. " +
+ "If this spell was kicked, choose any number instead.");
this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance(2)));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
@@ -46,7 +47,7 @@ public final class InscriptionOfAbundance extends CardImpl {
this.getSpellAbility().addMode(mode);
// • Target creature you control fights target creature you don't control.
- mode = new Mode(new FightTargetsEffect());
+ mode = new Mode(new FightTargetsEffect(false));
mode.addTarget(new TargetControlledCreaturePermanent());
mode.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL));
this.getSpellAbility().addMode(mode);
diff --git a/Mage.Sets/src/mage/cards/j/Joust.java b/Mage.Sets/src/mage/cards/j/Joust.java
index 77b8d33df2..7fa44d822b 100644
--- a/Mage.Sets/src/mage/cards/j/Joust.java
+++ b/Mage.Sets/src/mage/cards/j/Joust.java
@@ -49,7 +49,7 @@ class JoustEffect extends OneShotEffect {
super(Outcome.Benefit);
staticText = "Choose target creature you control and target creature you don't control. " +
"The creature you control gets +2/+1 until end of turn if it's a Knight. " +
- "Then those creatures fight each other.";
+ "Then those creatures fight each other. (Each deals damage equal to its power to the other.)";
}
private JoustEffect(final JoustEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/m/MageDuel.java b/Mage.Sets/src/mage/cards/m/MageDuel.java
index 521ed8d635..d51a36f166 100644
--- a/Mage.Sets/src/mage/cards/m/MageDuel.java
+++ b/Mage.Sets/src/mage/cards/m/MageDuel.java
@@ -37,12 +37,15 @@ public final class MageDuel extends CardImpl {
// This spell costs {2} less to cast if you've cast another instant or sorcery spell this turn.
this.addAbility(new SimpleStaticAbility(
- Zone.ALL, new SpellCostReductionSourceEffect(2, MageDuelCondition.instance).setCanWorksOnStackOnly(true)
+ Zone.ALL,
+ new SpellCostReductionSourceEffect(2, MageDuelCondition.instance).setCanWorksOnStackOnly(true)
).setRuleAtTheTop(true), new SpellsCastWatcher());
// Target creature you control gets +1/+2 until end of turn. Then it fights target creature you don't control.
this.getSpellAbility().addEffect(new BoostTargetEffect(1, 2));
- this.getSpellAbility().addEffect(new FightTargetsEffect().setText("Then it fights target creature you don't control"));
+ this.getSpellAbility().addEffect(new FightTargetsEffect().setText(
+ "Then it fights target creature you don't control. " +
+ "(Each deals damage equal to its power to the other.)"));
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL));
this.getSpellAbility().addWatcher(new SpellsCastWatcher());
diff --git a/Mage.Sets/src/mage/cards/m/MagusOfTheArena.java b/Mage.Sets/src/mage/cards/m/MagusOfTheArena.java
index 4ffc5416ac..b848d83710 100644
--- a/Mage.Sets/src/mage/cards/m/MagusOfTheArena.java
+++ b/Mage.Sets/src/mage/cards/m/MagusOfTheArena.java
@@ -56,7 +56,8 @@ class MagusOfTheArenaEffect extends OneShotEffect {
MagusOfTheArenaEffect() {
super(Outcome.Benefit);
- this.staticText = "Tap target creature you control and target creature of an opponent's choice they control. Those creatures fight each other";
+ this.staticText = "Tap target creature you control and target creature of an opponent's choice they control. " +
+ "Those creatures fight each other. (Each deals damage equal to its power to the other.)";
}
MagusOfTheArenaEffect(final MagusOfTheArenaEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/n/NessianWildsRavager.java b/Mage.Sets/src/mage/cards/n/NessianWildsRavager.java
index 39546a067c..b0a2761a92 100644
--- a/Mage.Sets/src/mage/cards/n/NessianWildsRavager.java
+++ b/Mage.Sets/src/mage/cards/n/NessianWildsRavager.java
@@ -40,8 +40,12 @@ public final class NessianWildsRavager extends CardImpl {
// When Nessian Wilds Ravager enters the battlefield, if tribute wasn't paid, you may have Nessian Wilds Ravager fight another target creature.
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new FightTargetSourceEffect(), true);
ability.addTarget(new TargetCreaturePermanent(filter));
- this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TributeNotPaidCondition.instance,
- "When {this} enters the battlefield, if tribute wasn't paid, you may have {this} fight another target creature."));
+ this.addAbility(new ConditionalInterveningIfTriggeredAbility(
+ ability,
+ TributeNotPaidCondition.instance,
+ "When {this} enters the battlefield, if tribute wasn't paid, " +
+ "you may have {this} fight another target creature. " +
+ "(Each deals damage equal to its power to the other.)"));
}
private NessianWildsRavager(final NessianWildsRavager card) {
diff --git a/Mage.Sets/src/mage/cards/n/NightfallPredator.java b/Mage.Sets/src/mage/cards/n/NightfallPredator.java
index bc354ed542..658b093721 100644
--- a/Mage.Sets/src/mage/cards/n/NightfallPredator.java
+++ b/Mage.Sets/src/mage/cards/n/NightfallPredator.java
@@ -33,7 +33,10 @@ public final class NightfallPredator extends CardImpl {
// {R}, {tap}: Nightfall Predator fights target creature.
Ability activatedAbility = new SimpleActivatedAbility(
- new FightTargetSourceEffect().setText("{this} fights target creature"), new ManaCostsImpl("{R}")
+ new FightTargetSourceEffect().setText(
+ "{this} fights target creature. " +
+ "(Each deals damage equal to its power to the other.)"),
+ new ManaCostsImpl("{R}")
);
activatedAbility.addCost(new TapSourceCost());
activatedAbility.addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/o/Outmuscle.java b/Mage.Sets/src/mage/cards/o/Outmuscle.java
index ee2dfabe1b..5702c8a189 100644
--- a/Mage.Sets/src/mage/cards/o/Outmuscle.java
+++ b/Mage.Sets/src/mage/cards/o/Outmuscle.java
@@ -51,7 +51,8 @@ class OutmuscleEffect extends OneShotEffect {
OutmuscleEffect() {
super(Outcome.Benefit);
staticText = "Put a +1/+1 counter on target creature you control, " +
- "then it fights target creature you don't control." +
+ "then it fights target creature you don't control. " +
+ "(Each deals damage equal to its power to the other.) " +
"
Adamant — If at least three green mana was spent to cast this spell, " +
"the creature you control gains indestructible until end of turn.";
}
diff --git a/Mage.Sets/src/mage/cards/p/PheresBandBrawler.java b/Mage.Sets/src/mage/cards/p/PheresBandBrawler.java
index b4a3693517..ec66b0dd97 100644
--- a/Mage.Sets/src/mage/cards/p/PheresBandBrawler.java
+++ b/Mage.Sets/src/mage/cards/p/PheresBandBrawler.java
@@ -28,7 +28,8 @@ public final class PheresBandBrawler extends CardImpl {
// When Pheres-Band Brawler enters the battlefield, it fights up to one target creature you don't control.
Ability ability = new EntersBattlefieldTriggeredAbility(new FightTargetSourceEffect()
- .setText("it fights up to one target creature you don't control"));
+ .setText("it fights up to one target creature you don't control. " +
+ "(Each deals damage equal to its power to the other.)"));
ability.addTarget(new TargetPermanent(0, 1, StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL, false));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/p/PrepareFight.java b/Mage.Sets/src/mage/cards/p/PrepareFight.java
index bd2987480e..b7622777ca 100644
--- a/Mage.Sets/src/mage/cards/p/PrepareFight.java
+++ b/Mage.Sets/src/mage/cards/p/PrepareFight.java
@@ -43,7 +43,7 @@ public final class PrepareFight extends SplitCard {
// Fight
// Target creature you control fights target creature you don't control.
getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true));
- getRightHalfCard().getSpellAbility().addEffect(new FightTargetsEffect());
+ getRightHalfCard().getSpellAbility().addEffect(new FightTargetsEffect(false));
getRightHalfCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
getRightHalfCard().getSpellAbility().addTarget(new TargetOpponentsCreaturePermanent());
}
diff --git a/Mage.Sets/src/mage/cards/r/RivalsDuel.java b/Mage.Sets/src/mage/cards/r/RivalsDuel.java
index ab2aed7770..633080b3f5 100644
--- a/Mage.Sets/src/mage/cards/r/RivalsDuel.java
+++ b/Mage.Sets/src/mage/cards/r/RivalsDuel.java
@@ -41,7 +41,8 @@ class RivalsDuelFightTargetsEffect extends OneShotEffect {
public RivalsDuelFightTargetsEffect() {
super(Outcome.Damage);
- staticText = "Choose two target creatures that share no creature types. Those creatures fight each other";
+ staticText = "Choose two target creatures that share no creature types. " +
+ "Those creatures fight each other. (Each deals damage equal to its power to the other.)";
}
public RivalsDuelFightTargetsEffect(final RivalsDuelFightTargetsEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/s/SavageSmash.java b/Mage.Sets/src/mage/cards/s/SavageSmash.java
index 79533c4e61..b989ee1d17 100644
--- a/Mage.Sets/src/mage/cards/s/SavageSmash.java
+++ b/Mage.Sets/src/mage/cards/s/SavageSmash.java
@@ -23,7 +23,8 @@ public final class SavageSmash extends CardImpl {
// Target creature you control gets +2/+2 until end of turn. It fights target creature you don't control.
this.getSpellAbility().addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn));
this.getSpellAbility().addEffect(
- new FightTargetsEffect().setText("It fights target creature you don't control")
+ new FightTargetsEffect().setText("It fights target creature you don't control." +
+ "(Each deals damage equal to its power to the other.)")
);
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL));
diff --git a/Mage.Sets/src/mage/cards/s/SavageStomp.java b/Mage.Sets/src/mage/cards/s/SavageStomp.java
index d2a8f044d1..a054c9082f 100644
--- a/Mage.Sets/src/mage/cards/s/SavageStomp.java
+++ b/Mage.Sets/src/mage/cards/s/SavageStomp.java
@@ -43,7 +43,8 @@ public final class SavageStomp extends CardImpl {
Effect effect = new AddCountersTargetEffect(CounterType.P1P1.createInstance());
this.getSpellAbility().addEffect(effect);
effect = new FightTargetsEffect();
- effect.setText("Then that creature fights target creature you don't control");
+ effect.setText("Then that creature fights target creature you don't control. " +
+ "(Each deals damage equal to its power to the other.)");
this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL));
diff --git a/Mage.Sets/src/mage/cards/s/SavageSwipe.java b/Mage.Sets/src/mage/cards/s/SavageSwipe.java
index 65caea0855..2709e5f681 100644
--- a/Mage.Sets/src/mage/cards/s/SavageSwipe.java
+++ b/Mage.Sets/src/mage/cards/s/SavageSwipe.java
@@ -48,7 +48,8 @@ class SavageSwipeEffect extends OneShotEffect {
SavageSwipeEffect() {
super(Outcome.Benefit);
staticText = "Target creature you control gets +2/+2 until end of turn if its power is 2. " +
- "Then it fights target creature you don't control.";
+ "Then it fights target creature you don't control. " +
+ "(Each deals damage equal to its power to the other.)";
}
private SavageSwipeEffect(final SavageSwipeEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/s/SkophosMazeWarden.java b/Mage.Sets/src/mage/cards/s/SkophosMazeWarden.java
index 3362476b6b..e76024a554 100644
--- a/Mage.Sets/src/mage/cards/s/SkophosMazeWarden.java
+++ b/Mage.Sets/src/mage/cards/s/SkophosMazeWarden.java
@@ -99,6 +99,7 @@ class SkophosMazeWardenTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever another creature becomes the target of an ability of a land you control " +
- "named Labyrinth of Skophos, you may have {this} fight that creature.";
+ "named Labyrinth of Skophos, you may have {this} fight that creature. " +
+ "(Each deals damage equal to its power to the other.)";
}
}
diff --git a/Mage.Sets/src/mage/cards/s/StruggleForSkemfar.java b/Mage.Sets/src/mage/cards/s/StruggleForSkemfar.java
index 9d6e304316..13f0055c91 100644
--- a/Mage.Sets/src/mage/cards/s/StruggleForSkemfar.java
+++ b/Mage.Sets/src/mage/cards/s/StruggleForSkemfar.java
@@ -24,7 +24,8 @@ public final class StruggleForSkemfar extends CardImpl {
// Put a +1/+1 counter on target creature you control. Then that creature fights up to one target creature you don't control.
this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance()));
this.getSpellAbility().addEffect(new FightTargetsEffect().setText(
- "Then that creature fights up to one target creature you don't control"
+ "Then that creature fights up to one target creature you don't control. " +
+ "(Each deals damage equal to its power to the other.)"
));
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addTarget(new TargetCreaturePermanent(
diff --git a/Mage.Sets/src/mage/cards/t/TheTriumphOfAnax.java b/Mage.Sets/src/mage/cards/t/TheTriumphOfAnax.java
index 98759c0e9e..d24f163925 100644
--- a/Mage.Sets/src/mage/cards/t/TheTriumphOfAnax.java
+++ b/Mage.Sets/src/mage/cards/t/TheTriumphOfAnax.java
@@ -55,11 +55,12 @@ public final class TheTriumphOfAnax extends CardImpl {
sagaAbility.addChapterEffect(
this, SagaChapter.CHAPTER_IV, SagaChapter.CHAPTER_IV,
new Effects(new FightTargetsEffect().setText(
- "Target creature you control fights up to one target creature you don't control"
- )), new Targets(
+ "Target creature you control fights up to one target creature you don't control. " +
+ "(Each deals damage equal to its power to the other.)")),
+ new Targets(
new TargetControlledCreaturePermanent(),
- new TargetPermanent(0, 1, StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL, false)
- )
+ new TargetPermanent(0, 1,
+ StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL, false))
);
this.addAbility(sagaAbility);
}
diff --git a/Mage.Sets/src/mage/cards/t/TimeToFeed.java b/Mage.Sets/src/mage/cards/t/TimeToFeed.java
index 92a4a5857e..9235ceedb2 100644
--- a/Mage.Sets/src/mage/cards/t/TimeToFeed.java
+++ b/Mage.Sets/src/mage/cards/t/TimeToFeed.java
@@ -53,7 +53,8 @@ public final class TimeToFeed extends CardImpl {
this.getSpellAbility().addEffect(new TimeToFeedTextEffect());
// Target creature you control fights that creature.
Effect effect = new FightTargetsEffect();
- effect.setText("Target creature you control fights that creature");
+ effect.setText("Target creature you control fights that creature. " +
+ "(Each deals damage equal to its power to the other.)");
this.getSpellAbility().addEffect(effect);
Target target = new TargetCreaturePermanent(filter1);
diff --git a/Mage.Sets/src/mage/cards/u/UlvenwaldTracker.java b/Mage.Sets/src/mage/cards/u/UlvenwaldTracker.java
index 910ea83754..d45b79ca50 100644
--- a/Mage.Sets/src/mage/cards/u/UlvenwaldTracker.java
+++ b/Mage.Sets/src/mage/cards/u/UlvenwaldTracker.java
@@ -31,7 +31,7 @@ public final class UlvenwaldTracker extends CardImpl {
this.toughness = new MageInt(1);
// {1}{G}, {tap}: Target creature you control fights another target creature.
- Ability ability = new SimpleActivatedAbility(new FightTargetsEffect(), new ManaCostsImpl<>("{1}{G}"));
+ Ability ability = new SimpleActivatedAbility(new FightTargetsEffect(false), new ManaCostsImpl<>("{1}{G}"));
ability.addCost(new TapSourceCost());
Target controlledTarget = new TargetControlledCreaturePermanent();
controlledTarget.setTargetTag(1);
diff --git a/Mage.Sets/src/mage/cards/u/UndercityUprising.java b/Mage.Sets/src/mage/cards/u/UndercityUprising.java
index 3368457e48..a3758ace5e 100644
--- a/Mage.Sets/src/mage/cards/u/UndercityUprising.java
+++ b/Mage.Sets/src/mage/cards/u/UndercityUprising.java
@@ -27,7 +27,8 @@ public final class UndercityUprising extends CardImpl {
StaticFilters.FILTER_PERMANENT_CREATURES
));
this.getSpellAbility().addEffect(new FightTargetsEffect()
- .setText("Then target creature you control fights target creature you don't control"));
+ .setText("Then target creature you control fights target creature you don't control. " +
+ "(Each deals damage equal to its power to the other.)"));
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL));
}
diff --git a/Mage.Sets/src/mage/cards/u/UnnaturalAggression.java b/Mage.Sets/src/mage/cards/u/UnnaturalAggression.java
index e59573e887..6d253ae52e 100644
--- a/Mage.Sets/src/mage/cards/u/UnnaturalAggression.java
+++ b/Mage.Sets/src/mage/cards/u/UnnaturalAggression.java
@@ -34,7 +34,7 @@ public final class UnnaturalAggression extends CardImpl {
this.addAbility(new DevoidAbility(this.color));
// Target creature you control fights target creature an opponent controls.
- this.getSpellAbility().addEffect(new FightTargetsEffect());
+ this.getSpellAbility().addEffect(new FightTargetsEffect(false));
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
// If the creature an opponent controls would die this turn, exile it instead.
diff --git a/Mage.Sets/src/mage/cards/w/WarbriarBlessing.java b/Mage.Sets/src/mage/cards/w/WarbriarBlessing.java
index b5f4903853..69174fca26 100644
--- a/Mage.Sets/src/mage/cards/w/WarbriarBlessing.java
+++ b/Mage.Sets/src/mage/cards/w/WarbriarBlessing.java
@@ -59,7 +59,8 @@ class WarbriarBlessingEffect extends OneShotEffect {
WarbriarBlessingEffect() {
super(Outcome.Benefit);
- staticText = "enchanted creature fights up to one target creature you don't control";
+ staticText = "enchanted creature fights up to one target creature you don't control. " +
+ "(Each deals damage equal to its power to the other.)";
}
private WarbriarBlessingEffect(final WarbriarBlessingEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/w/WildInstincts.java b/Mage.Sets/src/mage/cards/w/WildInstincts.java
index b6b62fc6d1..eef26a7ebb 100644
--- a/Mage.Sets/src/mage/cards/w/WildInstincts.java
+++ b/Mage.Sets/src/mage/cards/w/WildInstincts.java
@@ -10,6 +10,7 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.TargetController;
+import mage.filter.StaticFilters;
import mage.filter.common.FilterCreaturePermanent;
import mage.target.common.TargetControlledCreaturePermanent;
import mage.target.common.TargetCreaturePermanent;
@@ -20,23 +21,19 @@ import mage.target.common.TargetCreaturePermanent;
*/
public final class WildInstincts extends CardImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls");
-
- static {
- filter.add(TargetController.OPPONENT.getControllerPredicate());
- }
-
public WildInstincts(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{G}");
// Target creature you control gets +2/+2 until end of turn. It fights target creature an opponent controls.
- Effect effect = new BoostTargetEffect(2, 2, Duration.EndOfTurn);
- getSpellAbility().addEffect(effect);
+ Effect boostTargetEffect = new BoostTargetEffect(2, 2, Duration.EndOfTurn);
+ getSpellAbility().addEffect(boostTargetEffect);
getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
- effect = new FightTargetsEffect();
- effect.setText("It fights target creature an opponent controls (Each deals damage equal to its power to each other)");
- getSpellAbility().addEffect(effect);
- getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
+ Effect fightTargetsEffect = new FightTargetsEffect();
+ fightTargetsEffect.setText("It fights target creature an opponent controls. " +
+ "(Each deals damage equal to its power to the other.)");
+ getSpellAbility().addEffect(fightTargetsEffect);
+
+ getSpellAbility().addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE));
}
private WildInstincts(final WildInstincts card) {
diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
index 52d1a93c31..5cb839101a 100644
--- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
+++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
@@ -6,6 +6,7 @@ import mage.abilities.Ability;
import mage.abilities.common.SagaAbility;
import mage.abilities.common.WerewolfBackTriggeredAbility;
import mage.abilities.common.WerewolfFrontTriggeredAbility;
+import mage.abilities.effects.common.FightTargetsEffect;
import mage.abilities.effects.keyword.ScryEffect;
import mage.abilities.keyword.EnchantAbility;
import mage.abilities.keyword.MenaceAbility;
@@ -1411,8 +1412,11 @@ public class VerifyCardDataTest {
// special check: missing or wrong ability/effect hints
Map hints = new HashMap<>();
+
+ hints.put(FightTargetsEffect.class, "Each deals damage equal to its power to the other");
hints.put(MenaceAbility.class, "can't be blocked except by two or more");
hints.put(ScryEffect.class, "Look at the top card of your library. You may put that card on the bottom of your library");
+
for (Class objectClass : hints.keySet()) {
String objectHint = hints.get(objectClass);
// ability/effect must have description or not
diff --git a/Mage/src/main/java/mage/abilities/effects/common/FightTargetsEffect.java b/Mage/src/main/java/mage/abilities/effects/common/FightTargetsEffect.java
index c4cc12d733..6053303963 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/FightTargetsEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/FightTargetsEffect.java
@@ -16,8 +16,15 @@ import java.util.UUID;
*/
public class FightTargetsEffect extends OneShotEffect {
+ protected boolean showEffectHint;
+
public FightTargetsEffect() {
- super(Outcome.Damage);
+ this(true);
+ }
+
+ public FightTargetsEffect(boolean showEffectHint) {
+ super(Outcome.Benefit);
+ this.showEffectHint = showEffectHint;
}
public FightTargetsEffect(final FightTargetsEffect effect) {
@@ -80,6 +87,12 @@ public class FightTargetsEffect extends OneShotEffect {
if(!target.getTargetName().contains("other")){
sb.append("target ");
}
- sb.append(target.getTargetName());return sb.toString();
+ sb.append(target.getTargetName());
+
+ if (showEffectHint) {
+ sb.append(". (Each deals damage equal to its power to the other.)");
+ }
+
+ return sb.toString();
}
}
\ No newline at end of file