diff --git a/Mage.Sets/src/mage/cards/a/AhnCropInvader.java b/Mage.Sets/src/mage/cards/a/AhnCropInvader.java
index d45b6cb8316..c91347f923d 100644
--- a/Mage.Sets/src/mage/cards/a/AhnCropInvader.java
+++ b/Mage.Sets/src/mage/cards/a/AhnCropInvader.java
@@ -10,12 +10,14 @@ import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
+import mage.constants.Zone;
import mage.filter.StaticFilters;
import java.util.UUID;
@@ -44,7 +46,7 @@ public final class AhnCropInvader extends CardImpl {
"During your turn, "
+ "{this} has first strike."
)
- ));
+ ).addHint(MyTurnHint.instance));
// {1}, Sacrifice another creature: Ahn-Crop Invader gets +2/+0 until end of turn.
Ability ability = new SimpleActivatedAbility(
diff --git a/Mage.Sets/src/mage/cards/a/AngryMob.java b/Mage.Sets/src/mage/cards/a/AngryMob.java
index af753a1b5c4..aa9f1897bfd 100644
--- a/Mage.Sets/src/mage/cards/a/AngryMob.java
+++ b/Mage.Sets/src/mage/cards/a/AngryMob.java
@@ -6,6 +6,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -41,7 +42,8 @@ public final class AngryMob extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new BoostSourceEffect(swamps, swamps, Duration.WhileOnBattlefield),
MyTurnCondition.instance,
- "During your turn, {this}'s power and toughness are each equal to 2 plus the number of Swamps your opponents control. During turns other than yours, {this}'s power and toughness are each 2")));
+ "During your turn, {this}'s power and toughness are each equal to 2 plus the number of Swamps your opponents control. During turns other than yours, {this}'s power and toughness are each 2"))
+ .addHint(MyTurnHint.instance));
}
diff --git a/Mage.Sets/src/mage/cards/b/BilbosRing.java b/Mage.Sets/src/mage/cards/b/BilbosRing.java
index c5c18ef8227..eba03249b05 100644
--- a/Mage.Sets/src/mage/cards/b/BilbosRing.java
+++ b/Mage.Sets/src/mage/cards/b/BilbosRing.java
@@ -11,6 +11,7 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.abilities.effects.common.combat.CantBeBlockedAttachedEffect;
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.EquipAbility;
import mage.abilities.keyword.HexproofAbility;
import mage.cards.CardImpl;
@@ -44,7 +45,7 @@ public final class BilbosRing extends CardImpl {
new CantBeBlockedAttachedEffect(AttachmentType.EQUIPMENT),
MyTurnCondition.instance, "and can't be blocked"
));
- this.addAbility(ability);
+ this.addAbility(ability.addHint(MyTurnHint.instance));
// Whenever equipped creature attacks alone, you draw a card and you lose 1 life.
ability = new AttacksAloneAttachedTriggeredAbility(
diff --git a/Mage.Sets/src/mage/cards/b/BloodBurglar.java b/Mage.Sets/src/mage/cards/b/BloodBurglar.java
index 0eef15b298c..337a1379e0f 100644
--- a/Mage.Sets/src/mage/cards/b/BloodBurglar.java
+++ b/Mage.Sets/src/mage/cards/b/BloodBurglar.java
@@ -5,6 +5,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.LifelinkAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -36,7 +37,7 @@ public final class BloodBurglar extends CardImpl {
), MyTurnCondition.instance,
"During your turn, {this} has lifelink."
)
- ));
+ ).addHint(MyTurnHint.instance));
}
private BloodBurglar(final BloodBurglar card) {
diff --git a/Mage.Sets/src/mage/cards/b/BreathOfTheSleepless.java b/Mage.Sets/src/mage/cards/b/BreathOfTheSleepless.java
index 02ee7ab7368..08650d32144 100644
--- a/Mage.Sets/src/mage/cards/b/BreathOfTheSleepless.java
+++ b/Mage.Sets/src/mage/cards/b/BreathOfTheSleepless.java
@@ -6,6 +6,7 @@ import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.condition.common.OpponentsTurnCondition;
import mage.abilities.effects.common.TapTargetEffect;
import mage.abilities.effects.common.continuous.CastAsThoughItHadFlashAllEffect;
+import mage.abilities.hint.common.OpponentsTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -41,7 +42,7 @@ public final class BreathOfTheSleepless extends CardImpl {
new TapTargetEffect(), StaticFilters.FILTER_SPELL_A_CREATURE, false
).withTriggerCondition(OpponentsTurnCondition.instance);
ability.addTarget(new TargetCreaturePermanent(0, 1));
- this.addAbility(ability);
+ this.addAbility(ability.addHint(OpponentsTurnHint.instance));
}
private BreathOfTheSleepless(final BreathOfTheSleepless card) {
diff --git a/Mage.Sets/src/mage/cards/b/BrinebornCutthroat.java b/Mage.Sets/src/mage/cards/b/BrinebornCutthroat.java
index bc38c6eddc3..274e66f56ba 100644
--- a/Mage.Sets/src/mage/cards/b/BrinebornCutthroat.java
+++ b/Mage.Sets/src/mage/cards/b/BrinebornCutthroat.java
@@ -4,6 +4,7 @@ import mage.MageInt;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.condition.common.OpponentsTurnCondition;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
+import mage.abilities.hint.common.OpponentsTurnHint;
import mage.abilities.keyword.FlashAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -32,7 +33,7 @@ public final class BrinebornCutthroat extends CardImpl {
// Whenever you cast a spell during an opponent's turn, put a +1/+1 counter on Brineborn Cutthroat.
this.addAbility(new SpellCastControllerTriggeredAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false
- ).withTriggerCondition(OpponentsTurnCondition.instance));
+ ).withTriggerCondition(OpponentsTurnCondition.instance).addHint(OpponentsTurnHint.instance));
}
private BrinebornCutthroat(final BrinebornCutthroat card) {
diff --git a/Mage.Sets/src/mage/cards/c/CinderhazeWretch.java b/Mage.Sets/src/mage/cards/c/CinderhazeWretch.java
index 2e6165624fc..a7cf0dbcf05 100644
--- a/Mage.Sets/src/mage/cards/c/CinderhazeWretch.java
+++ b/Mage.Sets/src/mage/cards/c/CinderhazeWretch.java
@@ -9,6 +9,7 @@ import mage.abilities.costs.common.PutCountersSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.UntapSourceEffect;
import mage.abilities.effects.common.discard.DiscardTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -34,6 +35,7 @@ public final class CinderhazeWretch extends CardImpl {
// {T}: Target player discards a card. Activate this ability only during your turn.
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(1), new TapSourceCost(), MyTurnCondition.instance);
+ ability.addHint(MyTurnHint.instance);
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/c/CrownOfDoom.java b/Mage.Sets/src/mage/cards/c/CrownOfDoom.java
index 582977a7417..3f88e155142 100644
--- a/Mage.Sets/src/mage/cards/c/CrownOfDoom.java
+++ b/Mage.Sets/src/mage/cards/c/CrownOfDoom.java
@@ -10,6 +10,7 @@ import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainControlTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
@@ -57,6 +58,7 @@ public final class CrownOfDoom extends CardImpl {
new ManaCostsImpl<>("{2}"),
MyTurnCondition.instance);
ability.addTarget(new TargetPlayer(1, 1, false, filter));
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/d/DaggersailAeronaut.java b/Mage.Sets/src/mage/cards/d/DaggersailAeronaut.java
index 3f7031eca29..8760cfdc5b6 100644
--- a/Mage.Sets/src/mage/cards/d/DaggersailAeronaut.java
+++ b/Mage.Sets/src/mage/cards/d/DaggersailAeronaut.java
@@ -5,6 +5,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -31,7 +32,7 @@ public final class DaggersailAeronaut extends CardImpl {
new ConditionalContinuousEffect(new GainAbilitySourceEffect(
FlyingAbility.getInstance(), Duration.WhileOnBattlefield
), MyTurnCondition.instance, "During your turn, {this} has flying.")
- ));
+ ).addHint(MyTurnHint.instance));
}
private DaggersailAeronaut(final DaggersailAeronaut card) {
diff --git a/Mage.Sets/src/mage/cards/d/DaysUndoing.java b/Mage.Sets/src/mage/cards/d/DaysUndoing.java
index ac40483b7d5..64ae9afeb1d 100644
--- a/Mage.Sets/src/mage/cards/d/DaysUndoing.java
+++ b/Mage.Sets/src/mage/cards/d/DaysUndoing.java
@@ -6,6 +6,7 @@ import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardAllEffect;
import mage.abilities.effects.common.EndTurnEffect;
import mage.abilities.effects.common.ShuffleHandGraveyardAllEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -26,6 +27,7 @@ public final class DaysUndoing extends CardImpl {
effect.setText(", then draws seven cards");
this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new EndTurnEffect(), MyTurnCondition.instance, "If it's your turn, end the turn"));
+ this.getSpellAbility().addHint(MyTurnHint.instance);
}
private DaysUndoing(final DaysUndoing card) {
diff --git a/Mage.Sets/src/mage/cards/d/DefendersOfHumanity.java b/Mage.Sets/src/mage/cards/d/DefendersOfHumanity.java
index cbe84354de3..e20d84241bd 100644
--- a/Mage.Sets/src/mage/cards/d/DefendersOfHumanity.java
+++ b/Mage.Sets/src/mage/cards/d/DefendersOfHumanity.java
@@ -12,6 +12,7 @@ import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.dynamicvalue.common.GetXValue;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -49,7 +50,7 @@ public final class DefendersOfHumanity extends CardImpl {
new CreateTokenEffect(
new WhiteAstartesWarriorToken(), mage.abilities.dynamicvalue.common.GetXValue.instance
), new ManaCostsImpl<>("{X}{2}{W}"), condition
- ).addHint(CreaturesYouControlHint.instance);
+ ).addHint(CreaturesYouControlHint.instance).addHint(MyTurnHint.instance);
ability.addCost(new ExileSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/d/Delirium.java b/Mage.Sets/src/mage/cards/d/Delirium.java
index bf3b04e2ee8..62cc5e30fe6 100644
--- a/Mage.Sets/src/mage/cards/d/Delirium.java
+++ b/Mage.Sets/src/mage/cards/d/Delirium.java
@@ -2,7 +2,7 @@ package mage.cards.d;
import mage.abilities.Ability;
import mage.abilities.common.CastOnlyIfConditionIsTrueAbility;
-import mage.abilities.condition.common.OpponentsTurnCondition;
+import mage.abilities.condition.common.OnOpponentsTurnCondition;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PreventDamageByTargetEffect;
import mage.abilities.effects.common.PreventDamageToTargetEffect;
@@ -37,7 +37,7 @@ public final class Delirium extends CardImpl {
// Cast this spell only during an opponent’s turn.
- this.addAbility(new CastOnlyIfConditionIsTrueAbility(OpponentsTurnCondition.instance, "Cast this spell only during an opponent's turn."));
+ this.addAbility(new CastOnlyIfConditionIsTrueAbility(OnOpponentsTurnCondition.instance, "Cast this spell only during an opponent's turn."));
// Tap target creature that player controls. That creature deals damage equal to its power to the player. Prevent all combat damage that would be dealt to and dealt by the creature this turn.
this.getSpellAbility().addEffect(new TapTargetEffect("tap target creature that player controls"));
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
diff --git a/Mage.Sets/src/mage/cards/d/DementiaSliver.java b/Mage.Sets/src/mage/cards/d/DementiaSliver.java
index c5286849dee..92b47218904 100644
--- a/Mage.Sets/src/mage/cards/d/DementiaSliver.java
+++ b/Mage.Sets/src/mage/cards/d/DementiaSliver.java
@@ -10,6 +10,7 @@ import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ChooseACardNameEffect;
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.*;
import mage.constants.*;
import mage.filter.FilterPermanent;
@@ -41,6 +42,7 @@ public final class DementiaSliver extends CardImpl {
Ability gainedAbility = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new ChooseACardNameEffect(ChooseACardNameEffect.TypeOfName.ALL), new TapSourceCost(), MyTurnCondition.instance);
gainedAbility.addEffect(new DementiaSliverEffect());
gainedAbility.addTarget(new TargetOpponent());
+ gainedAbility.addHint(MyTurnHint.instance);
this.addAbility(new SimpleStaticAbility(
new GainAbilityAllEffect(gainedAbility, Duration.WhileOnBattlefield, filter,
"All Slivers have \"{T}: Choose a card name. "
diff --git a/Mage.Sets/src/mage/cards/d/Discontinuity.java b/Mage.Sets/src/mage/cards/d/Discontinuity.java
index d54818e1c44..1df0bfe7fad 100644
--- a/Mage.Sets/src/mage/cards/d/Discontinuity.java
+++ b/Mage.Sets/src/mage/cards/d/Discontinuity.java
@@ -5,6 +5,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.EndTurnEffect;
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -24,7 +25,8 @@ public final class Discontinuity extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(
new ManaCostsImpl<>("{2}{U}{U}"), MyTurnCondition.instance
).setText("during your turn, this spell costs {2}{U}{U} less to cast"))
- .setRuleAtTheTop(true));
+ .setRuleAtTheTop(true)
+ .addHint(MyTurnHint.instance));
// End the turn.
this.getSpellAbility().addEffect(new EndTurnEffect());
diff --git a/Mage.Sets/src/mage/cards/d/DisruptingScepter.java b/Mage.Sets/src/mage/cards/d/DisruptingScepter.java
index fd003dd5096..c4543772094 100644
--- a/Mage.Sets/src/mage/cards/d/DisruptingScepter.java
+++ b/Mage.Sets/src/mage/cards/d/DisruptingScepter.java
@@ -6,6 +6,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.discard.DiscardTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -26,6 +27,7 @@ public final class DisruptingScepter extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(1), new ManaCostsImpl<>("{3}"), MyTurnCondition.instance);
ability.addTarget(new TargetPlayer());
ability.addCost(new TapSourceCost());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/d/DuelistOfDeepFaith.java b/Mage.Sets/src/mage/cards/d/DuelistOfDeepFaith.java
index 1181daca970..37f43cfc5ac 100644
--- a/Mage.Sets/src/mage/cards/d/DuelistOfDeepFaith.java
+++ b/Mage.Sets/src/mage/cards/d/DuelistOfDeepFaith.java
@@ -5,6 +5,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.abilities.keyword.ToxicAbility;
import mage.cards.CardImpl;
@@ -34,7 +35,7 @@ public final class DuelistOfDeepFaith extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()),
MyTurnCondition.instance, "during your turn, {this} has first strike"
- )));
+ )).addHint(MyTurnHint.instance));
}
private DuelistOfDeepFaith(final DuelistOfDeepFaith card) {
diff --git a/Mage.Sets/src/mage/cards/e/EmberethSkyblazer.java b/Mage.Sets/src/mage/cards/e/EmberethSkyblazer.java
index 3c29f0376fa..4a0f75b013e 100644
--- a/Mage.Sets/src/mage/cards/e/EmberethSkyblazer.java
+++ b/Mage.Sets/src/mage/cards/e/EmberethSkyblazer.java
@@ -11,6 +11,7 @@ import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.common.DoIfCostPaid;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -38,7 +39,7 @@ public final class EmberethSkyblazer extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance, "During your turn, {this} has flying."
- )));
+ )).addHint(MyTurnHint.instance));
// Whenever Embereth Skyblazer attacks, you may pay {2}{R}. If you do, creatures you control get +X/+0 until end of turn, where X is the number of opponents you have.
this.addAbility(new AttacksTriggeredAbility(new DoIfCostPaid(
diff --git a/Mage.Sets/src/mage/cards/e/EverythingamajigC.java b/Mage.Sets/src/mage/cards/e/EverythingamajigC.java
index 3e54ca38531..52e90c7f894 100644
--- a/Mage.Sets/src/mage/cards/e/EverythingamajigC.java
+++ b/Mage.Sets/src/mage/cards/e/EverythingamajigC.java
@@ -12,6 +12,7 @@ import mage.abilities.costs.mana.VariableManaCost;
import mage.abilities.effects.ContinuousEffectImpl;
import mage.abilities.effects.common.discard.DiscardTargetEffect;
import mage.abilities.effects.mana.ManaEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.mana.ActivatedManaAbilityImpl;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -43,6 +44,7 @@ public final class EverythingamajigC extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(1), new GenericManaCost(3), MyTurnCondition.instance);
ability.addTarget(new TargetPlayer());
ability.addCost(new TapSourceCost());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
// Chimeric Staff
diff --git a/Mage.Sets/src/mage/cards/f/FaithfulPikemaster.java b/Mage.Sets/src/mage/cards/f/FaithfulPikemaster.java
index 8e940228ab4..a990fe5b854 100644
--- a/Mage.Sets/src/mage/cards/f/FaithfulPikemaster.java
+++ b/Mage.Sets/src/mage/cards/f/FaithfulPikemaster.java
@@ -7,6 +7,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.effects.keyword.ScryEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -37,7 +38,7 @@ public final class FaithfulPikemaster extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance, "during your turn, {this} has first strike."
- )));
+ )).addHint(MyTurnHint.instance));
}
private FaithfulPikemaster(final FaithfulPikemaster card) {
diff --git a/Mage.Sets/src/mage/cards/f/FatedConflagration.java b/Mage.Sets/src/mage/cards/f/FatedConflagration.java
index 28e388ea8b9..45a53683c97 100644
--- a/Mage.Sets/src/mage/cards/f/FatedConflagration.java
+++ b/Mage.Sets/src/mage/cards/f/FatedConflagration.java
@@ -4,6 +4,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.keyword.ScryEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -24,6 +25,7 @@ public final class FatedConflagration extends CardImpl {
this.getSpellAbility().addEffect(new DamageTargetEffect(5));
this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker());
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ScryEffect(2, false), MyTurnCondition.instance, "If it's your turn, scry 2"));
+ this.getSpellAbility().addHint(MyTurnHint.instance);
}
private FatedConflagration(final FatedConflagration card) {
diff --git a/Mage.Sets/src/mage/cards/f/FatedInfatuation.java b/Mage.Sets/src/mage/cards/f/FatedInfatuation.java
index d1013b621d5..220ba296bb8 100644
--- a/Mage.Sets/src/mage/cards/f/FatedInfatuation.java
+++ b/Mage.Sets/src/mage/cards/f/FatedInfatuation.java
@@ -4,6 +4,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.CreateTokenCopyTargetEffect;
import mage.abilities.effects.keyword.ScryEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -24,6 +25,7 @@ public final class FatedInfatuation extends CardImpl {
this.getSpellAbility().addEffect(new CreateTokenCopyTargetEffect());
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ScryEffect(2), MyTurnCondition.instance, "If it's your turn, scry 2"));
+ this.getSpellAbility().addHint(MyTurnHint.instance);
}
private FatedInfatuation(final FatedInfatuation card) {
diff --git a/Mage.Sets/src/mage/cards/f/FatedIntervention.java b/Mage.Sets/src/mage/cards/f/FatedIntervention.java
index 9ffe53f9b2c..ea08e976f5e 100644
--- a/Mage.Sets/src/mage/cards/f/FatedIntervention.java
+++ b/Mage.Sets/src/mage/cards/f/FatedIntervention.java
@@ -4,6 +4,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.keyword.ScryEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -22,6 +23,7 @@ public final class FatedIntervention extends CardImpl {
// Create two 3/3 green Centaur enchantment creature tokens. If it's your turn, scry 2.
this.getSpellAbility().addEffect(new CreateTokenEffect(new CentaurEnchantmentCreatureToken(), 2));
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ScryEffect(2, false), MyTurnCondition.instance, "If it's your turn, scry 2"));
+ this.getSpellAbility().addHint(MyTurnHint.instance);
}
private FatedIntervention(final FatedIntervention card) {
diff --git a/Mage.Sets/src/mage/cards/f/FatedRetribution.java b/Mage.Sets/src/mage/cards/f/FatedRetribution.java
index fab96e16a72..53b381922d7 100644
--- a/Mage.Sets/src/mage/cards/f/FatedRetribution.java
+++ b/Mage.Sets/src/mage/cards/f/FatedRetribution.java
@@ -4,6 +4,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.DestroyAllEffect;
import mage.abilities.effects.keyword.ScryEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -32,6 +33,7 @@ public final class FatedRetribution extends CardImpl {
// Destroy all creatures and planeswalkers. If it's your turn, scry 2.
this.getSpellAbility().addEffect(new DestroyAllEffect(filter, false));
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ScryEffect(2, false), MyTurnCondition.instance, "If it's your turn, scry 2"));
+ this.getSpellAbility().addHint(MyTurnHint.instance);
}
private FatedRetribution(final FatedRetribution card) {
diff --git a/Mage.Sets/src/mage/cards/f/FatedReturn.java b/Mage.Sets/src/mage/cards/f/FatedReturn.java
index 0b96b4b475a..0b14a823d87 100644
--- a/Mage.Sets/src/mage/cards/f/FatedReturn.java
+++ b/Mage.Sets/src/mage/cards/f/FatedReturn.java
@@ -5,12 +5,14 @@ import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.effects.keyword.ScryEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.IndestructibleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.filter.StaticFilters;
+import mage.filter.common.FilterCreatureCard;
import mage.target.common.TargetCardInGraveyard;
import java.util.UUID;
@@ -31,6 +33,7 @@ public final class FatedReturn extends CardImpl {
"It gains indestructible"));
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ScryEffect(2), MyTurnCondition.instance,
"If it's your turn, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.)"));
+ this.getSpellAbility().addHint(MyTurnHint.instance);
}
private FatedReturn(final FatedReturn card) {
diff --git a/Mage.Sets/src/mage/cards/f/FeastingTrollKing.java b/Mage.Sets/src/mage/cards/f/FeastingTrollKing.java
index 418ffbd22e0..8000de84d1c 100644
--- a/Mage.Sets/src/mage/cards/f/FeastingTrollKing.java
+++ b/Mage.Sets/src/mage/cards/f/FeastingTrollKing.java
@@ -9,6 +9,7 @@ import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.TrampleAbility;
import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl;
@@ -18,6 +19,7 @@ import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.common.FilterControlledPermanent;
import mage.game.permanent.token.FoodToken;
+import mage.target.common.TargetControlledPermanent;
import mage.watchers.common.CastFromHandWatcher;
import java.util.UUID;
@@ -56,7 +58,7 @@ public final class FeastingTrollKing extends CardImpl {
new ReturnSourceFromGraveyardToBattlefieldEffect(false, false),
new SacrificeTargetCost(3, filter),
MyTurnCondition.instance
- ));
+ ).addHint(MyTurnHint.instance));
}
private FeastingTrollKing(final FeastingTrollKing card) {
diff --git a/Mage.Sets/src/mage/cards/f/Festival.java b/Mage.Sets/src/mage/cards/f/Festival.java
index 2f748cd2bfc..ce71913d2b8 100644
--- a/Mage.Sets/src/mage/cards/f/Festival.java
+++ b/Mage.Sets/src/mage/cards/f/Festival.java
@@ -3,7 +3,7 @@ package mage.cards.f;
import java.util.UUID;
import mage.abilities.common.CastOnlyDuringPhaseStepSourceAbility;
-import mage.abilities.condition.common.OpponentsTurnCondition;
+import mage.abilities.condition.common.OnOpponentsTurnCondition;
import mage.abilities.effects.common.combat.CantAttackAllEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -22,7 +22,7 @@ public final class Festival extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{W}");
// Cast Festival only during an opponent's upkeep.
- this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(null, PhaseStep.UPKEEP, OpponentsTurnCondition.instance,
+ this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(null, PhaseStep.UPKEEP, OnOpponentsTurnCondition.instance,
"Cast this spell only during an opponent's upkeep"));
// Creatures can't attack this turn.
diff --git a/Mage.Sets/src/mage/cards/f/FinalWordPhantom.java b/Mage.Sets/src/mage/cards/f/FinalWordPhantom.java
index dfd2195bdb1..2fa3880e2d5 100644
--- a/Mage.Sets/src/mage/cards/f/FinalWordPhantom.java
+++ b/Mage.Sets/src/mage/cards/f/FinalWordPhantom.java
@@ -7,7 +7,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.CompoundCondition;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.IsStepCondition;
-import mage.abilities.condition.common.OpponentsTurnCondition;
+import mage.abilities.condition.common.OnOpponentsTurnCondition;
import mage.abilities.decorator.ConditionalAsThoughEffect;
import mage.abilities.effects.common.continuous.CastAsThoughItHadFlashAllEffect;
import mage.constants.Duration;
@@ -42,7 +42,7 @@ public final class FinalWordPhantom extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// During each opponent's end step, you may cast spells as though they had flash.
- Condition condition = new CompoundCondition(OpponentsTurnCondition.instance, new IsStepCondition(PhaseStep.END_TURN, false));
+ Condition condition = new CompoundCondition(OnOpponentsTurnCondition.instance, new IsStepCondition(PhaseStep.END_TURN, false));
this.addAbility(new SimpleStaticAbility(
new ConditionalAsThoughEffect(new CastAsThoughItHadFlashAllEffect(Duration.WhileOnBattlefield, filter), condition)
.setText("during each opponent's end step, you may cast spells as though they had flash")));
diff --git a/Mage.Sets/src/mage/cards/f/Fleshformer.java b/Mage.Sets/src/mage/cards/f/Fleshformer.java
index 511d5cf8c44..0f3ec0e2994 100644
--- a/Mage.Sets/src/mage/cards/f/Fleshformer.java
+++ b/Mage.Sets/src/mage/cards/f/Fleshformer.java
@@ -9,6 +9,7 @@ import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FearAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -42,6 +43,7 @@ public final class Fleshformer extends CardImpl {
ability.addEffect(effect);
ability.addEffect(new BoostTargetEffect(-2, -2, Duration.EndOfTurn));
ability.addTarget(new TargetCreaturePermanent());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/f/ForceOfDespair.java b/Mage.Sets/src/mage/cards/f/ForceOfDespair.java
index 24a725fa0b1..bb2177fcab1 100644
--- a/Mage.Sets/src/mage/cards/f/ForceOfDespair.java
+++ b/Mage.Sets/src/mage/cards/f/ForceOfDespair.java
@@ -5,6 +5,7 @@ import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.costs.AlternativeCostSourceAbility;
import mage.abilities.costs.common.ExileFromHandCost;
import mage.abilities.effects.common.DestroyAllEffect;
+import mage.abilities.hint.common.NotMyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -40,7 +41,7 @@ public final class ForceOfDespair extends CardImpl {
new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance,
"If it's not your turn, you may exile a black card from " +
"your hand rather than pay this spell's mana cost."
- ));
+ ).addHint(NotMyTurnHint.instance));
// Destroy all creatures that entered the battlefield this turn.
this.getSpellAbility().addEffect(new DestroyAllEffect(filter2));
diff --git a/Mage.Sets/src/mage/cards/f/ForceOfNegation.java b/Mage.Sets/src/mage/cards/f/ForceOfNegation.java
index 8e4421c478e..39dd59e8028 100644
--- a/Mage.Sets/src/mage/cards/f/ForceOfNegation.java
+++ b/Mage.Sets/src/mage/cards/f/ForceOfNegation.java
@@ -5,6 +5,7 @@ import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.costs.AlternativeCostSourceAbility;
import mage.abilities.costs.common.ExileFromHandCost;
import mage.abilities.effects.common.CounterTargetWithReplacementEffect;
+import mage.abilities.hint.common.NotMyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -36,7 +37,7 @@ public final class ForceOfNegation extends CardImpl {
new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance,
"If it's not your turn, you may exile a blue card from " +
"your hand rather than pay this spell's mana cost."
- ));
+ ).addHint(NotMyTurnHint.instance));
// Counter target noncreature spell. If that spell is countered this way, exile it instead of putting it into its owner's graveyard.
this.getSpellAbility().addEffect(new CounterTargetWithReplacementEffect(PutCards.EXILED));
diff --git a/Mage.Sets/src/mage/cards/f/ForceOfRage.java b/Mage.Sets/src/mage/cards/f/ForceOfRage.java
index ed79f2fda15..9dbd00cb51b 100644
--- a/Mage.Sets/src/mage/cards/f/ForceOfRage.java
+++ b/Mage.Sets/src/mage/cards/f/ForceOfRage.java
@@ -9,6 +9,7 @@ import mage.abilities.costs.common.ExileFromHandCost;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.SacrificeTargetEffect;
+import mage.abilities.hint.common.NotMyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -45,7 +46,7 @@ public final class ForceOfRage extends CardImpl {
new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance,
"If it's not your turn, you may exile a red card from " +
"your hand rather than pay this spell's mana cost."
- ));
+ ).addHint(NotMyTurnHint.instance));
// Create two 3/1 red Elemental creature tokens with trample and haste. Sacrifice those tokens at the beginning of your next upkeep.
this.getSpellAbility().addEffect(new ForceOfRageEffect());
@@ -92,3 +93,4 @@ class ForceOfRageEffect extends OneShotEffect {
return true;
}
}
+
diff --git a/Mage.Sets/src/mage/cards/f/ForceOfVigor.java b/Mage.Sets/src/mage/cards/f/ForceOfVigor.java
index 510b0140ffc..3ad3e881e02 100644
--- a/Mage.Sets/src/mage/cards/f/ForceOfVigor.java
+++ b/Mage.Sets/src/mage/cards/f/ForceOfVigor.java
@@ -5,6 +5,7 @@ import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.costs.AlternativeCostSourceAbility;
import mage.abilities.costs.common.ExileFromHandCost;
import mage.abilities.effects.common.DestroyTargetEffect;
+import mage.abilities.hint.common.NotMyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -39,7 +40,7 @@ public final class ForceOfVigor extends CardImpl {
new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance,
"If it's not your turn, you may exile a green card from " +
"your hand rather than pay this spell's mana cost."
- ));
+ ).addHint(NotMyTurnHint.instance));
// Destroy up to two target artifacts and/or enchantments.
this.getSpellAbility().addEffect(new DestroyTargetEffect());
diff --git a/Mage.Sets/src/mage/cards/f/ForceOfVirtue.java b/Mage.Sets/src/mage/cards/f/ForceOfVirtue.java
index 5a8adf54fed..c3f5c9c1c8d 100644
--- a/Mage.Sets/src/mage/cards/f/ForceOfVirtue.java
+++ b/Mage.Sets/src/mage/cards/f/ForceOfVirtue.java
@@ -6,6 +6,7 @@ import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.costs.AlternativeCostSourceAbility;
import mage.abilities.costs.common.ExileFromHandCost;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
+import mage.abilities.hint.common.NotMyTurnHint;
import mage.abilities.keyword.FlashAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -36,7 +37,7 @@ public final class ForceOfVirtue extends CardImpl {
new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance,
"If it's not your turn, you may exile a white card from " +
"your hand rather than pay this spell's mana cost."
- ));
+ ).addHint(NotMyTurnHint.instance));
// Flash
this.addAbility(FlashAbility.getInstance());
diff --git a/Mage.Sets/src/mage/cards/f/FreshFacedRecruit.java b/Mage.Sets/src/mage/cards/f/FreshFacedRecruit.java
index 3e0edddc0a9..07c1351ba95 100644
--- a/Mage.Sets/src/mage/cards/f/FreshFacedRecruit.java
+++ b/Mage.Sets/src/mage/cards/f/FreshFacedRecruit.java
@@ -5,6 +5,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -31,7 +32,7 @@ public final class FreshFacedRecruit extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance, "During your turn, {this} has first strike."
- )));
+ )).addHint(MyTurnHint.instance));
}
private FreshFacedRecruit(final FreshFacedRecruit card) {
diff --git a/Mage.Sets/src/mage/cards/g/GhostTown.java b/Mage.Sets/src/mage/cards/g/GhostTown.java
index 750abeae827..01e430d8539 100644
--- a/Mage.Sets/src/mage/cards/g/GhostTown.java
+++ b/Mage.Sets/src/mage/cards/g/GhostTown.java
@@ -4,6 +4,7 @@ import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.ReturnToHandSourceEffect;
+import mage.abilities.hint.common.NotMyTurnHint;
import mage.abilities.mana.ColorlessManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -25,7 +26,8 @@ public final class GhostTown extends CardImpl {
// {0}: Return Ghost Town to its owner's hand. Activate this ability only if it's not your turn.
this.addAbility(new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true),
- new GenericManaCost(0), NotMyTurnCondition.instance));
+ new GenericManaCost(0), NotMyTurnCondition.instance)
+ .addHint(NotMyTurnHint.instance));
}
private GhostTown(final GhostTown card) {
diff --git a/Mage.Sets/src/mage/cards/g/GideonBlackblade.java b/Mage.Sets/src/mage/cards/g/GideonBlackblade.java
index e5d3043084f..0e781cf7763 100644
--- a/Mage.Sets/src/mage/cards/g/GideonBlackblade.java
+++ b/Mage.Sets/src/mage/cards/g/GideonBlackblade.java
@@ -11,6 +11,7 @@ import mage.abilities.effects.common.ExileTargetEffect;
import mage.abilities.effects.common.GainsChoiceOfAbilitiesEffect;
import mage.abilities.effects.common.PreventAllDamageToSourceEffect;
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.IndestructibleAbility;
import mage.abilities.keyword.LifelinkAbility;
import mage.abilities.keyword.VigilanceAbility;
@@ -53,7 +54,7 @@ public final class GideonBlackblade extends CardImpl {
new GideonBlackbladeToken(), CardType.PLANESWALKER, Duration.WhileOnBattlefield
), MyTurnCondition.instance, "During your turn, " +
"{this} is a 4/4 Human Soldier creature with indestructible that's still a planeswalker."
- )));
+ )).addHint(MyTurnHint.instance));
// Prevent all damage that would be dealt to Gideon Blackblade during your turn.
this.addAbility(new SimpleStaticAbility(new ConditionalPreventionEffect(
diff --git a/Mage.Sets/src/mage/cards/g/GloryOfWarfare.java b/Mage.Sets/src/mage/cards/g/GloryOfWarfare.java
index e97b0178025..60d840e1745 100644
--- a/Mage.Sets/src/mage/cards/g/GloryOfWarfare.java
+++ b/Mage.Sets/src/mage/cards/g/GloryOfWarfare.java
@@ -5,10 +5,12 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
+import mage.constants.Zone;
import java.util.UUID;
@@ -24,7 +26,8 @@ public final class GloryOfWarfare extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new BoostControlledEffect(2, 0, Duration.WhileOnBattlefield),
MyTurnCondition.instance,
- "During your turn, creatures you control get +2/+0")));
+ "During your turn, creatures you control get +2/+0"))
+ .addHint(MyTurnHint.instance));
// As long as it’s not your turn, creatures you control get +0/+2.
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
diff --git a/Mage.Sets/src/mage/cards/g/GruulSpellbreaker.java b/Mage.Sets/src/mage/cards/g/GruulSpellbreaker.java
index 0370d7a1052..38600966b9d 100644
--- a/Mage.Sets/src/mage/cards/g/GruulSpellbreaker.java
+++ b/Mage.Sets/src/mage/cards/g/GruulSpellbreaker.java
@@ -7,6 +7,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilityControllerEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.HexproofAbility;
import mage.abilities.keyword.RiotAbility;
import mage.abilities.keyword.TrampleAbility;
@@ -15,6 +16,7 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
+import mage.constants.Zone;
import java.util.UUID;
@@ -52,6 +54,7 @@ public final class GruulSpellbreaker extends CardImpl {
Duration.WhileOnBattlefield
), MyTurnCondition.instance, "and {this} have hexproof."
));
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GwendlynDiCorci.java b/Mage.Sets/src/mage/cards/g/GwendlynDiCorci.java
index 61764d223aa..886dc073273 100644
--- a/Mage.Sets/src/mage/cards/g/GwendlynDiCorci.java
+++ b/Mage.Sets/src/mage/cards/g/GwendlynDiCorci.java
@@ -6,6 +6,7 @@ import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.discard.DiscardTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -32,6 +33,7 @@ public final class GwendlynDiCorci extends CardImpl {
// {T}: Target player discards a card at random. Activate this ability only during your turn.
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(1, true), new TapSourceCost(), MyTurnCondition.instance);
ability.addTarget(new TargetPlayer());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HardyVeteran.java b/Mage.Sets/src/mage/cards/h/HardyVeteran.java
index d02d4fa82cc..a46a893e8b2 100644
--- a/Mage.Sets/src/mage/cards/h/HardyVeteran.java
+++ b/Mage.Sets/src/mage/cards/h/HardyVeteran.java
@@ -7,11 +7,13 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
+import mage.constants.Zone;
import java.util.UUID;
@@ -34,6 +36,7 @@ public final class HardyVeteran extends CardImpl {
MyTurnCondition.instance,
"During your turn, {this} gets +0/+2");
Ability ability = new SimpleStaticAbility(boostEffect);
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HexgoldHalberd.java b/Mage.Sets/src/mage/cards/h/HexgoldHalberd.java
index 57cda9d8a5f..c3b5c746bfb 100644
--- a/Mage.Sets/src/mage/cards/h/HexgoldHalberd.java
+++ b/Mage.Sets/src/mage/cards/h/HexgoldHalberd.java
@@ -8,6 +8,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.EquipAbility;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.abilities.keyword.TrampleAbility;
@@ -41,7 +42,7 @@ public final class HexgoldHalberd extends CardImpl {
new GainAbilityAttachedEffect(TrampleAbility.getInstance(), AttachmentType.EQUIPMENT),
MyTurnCondition.instance, "and trample"
));
- this.addAbility(ability);
+ this.addAbility(ability.addHint(MyTurnHint.instance));
// Equip {2}{R}
this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl<>("{2}{R}"), false));
diff --git a/Mage.Sets/src/mage/cards/h/HoofprintsOfTheStag.java b/Mage.Sets/src/mage/cards/h/HoofprintsOfTheStag.java
index a22235c1ccd..3c7458d5d71 100644
--- a/Mage.Sets/src/mage/cards/h/HoofprintsOfTheStag.java
+++ b/Mage.Sets/src/mage/cards/h/HoofprintsOfTheStag.java
@@ -8,6 +8,7 @@ import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -33,6 +34,7 @@ public final class HoofprintsOfTheStag extends CardImpl {
// {2}{w}, Remove four hoofprint counters from Hoofprints of the Stag: Create a 4/4 white Elemental creature token with flying. Activate this ability only during your turn.
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new WhiteElementalToken(), 1), new ManaCostsImpl<>("{2}{W}"), MyTurnCondition.instance);
ability.addCost(new RemoveCountersSourceCost(CounterType.HOOFPRINT.createInstance(4)));
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/Hookblade.java b/Mage.Sets/src/mage/cards/h/Hookblade.java
index 48adf077940..dccff7bdb2e 100644
--- a/Mage.Sets/src/mage/cards/h/Hookblade.java
+++ b/Mage.Sets/src/mage/cards/h/Hookblade.java
@@ -6,6 +6,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.EquipAbility;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
@@ -36,7 +37,7 @@ public final class Hookblade extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilityAttachedEffect(FlyingAbility.getInstance().getInstance(), AttachmentType.EQUIPMENT),
MyTurnCondition.instance, "during your turn, equipped creature has flying"
- )));
+ )).addHint(MyTurnHint.instance));
// Equip {2}
this.addAbility(new EquipAbility(2));
diff --git a/Mage.Sets/src/mage/cards/h/HookbladeVeteran.java b/Mage.Sets/src/mage/cards/h/HookbladeVeteran.java
index 45534345866..7e280f5f9e8 100644
--- a/Mage.Sets/src/mage/cards/h/HookbladeVeteran.java
+++ b/Mage.Sets/src/mage/cards/h/HookbladeVeteran.java
@@ -5,6 +5,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -31,7 +32,7 @@ public final class HookbladeVeteran extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance, "during your turn, {this} has flying"
- )));
+ )).addHint(MyTurnHint.instance));
}
private HookbladeVeteran(final HookbladeVeteran card) {
diff --git a/Mage.Sets/src/mage/cards/h/HumbleDefector.java b/Mage.Sets/src/mage/cards/h/HumbleDefector.java
index e484ef8321d..c647ca1a29a 100644
--- a/Mage.Sets/src/mage/cards/h/HumbleDefector.java
+++ b/Mage.Sets/src/mage/cards/h/HumbleDefector.java
@@ -7,6 +7,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.TargetPlayerGainControlSourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -33,6 +34,7 @@ public final class HumbleDefector extends CardImpl {
new DrawCardSourceControllerEffect(2), new TapSourceCost(), MyTurnCondition.instance);
ability.addEffect(new TargetPlayerGainControlSourceEffect());
ability.addTarget(new TargetOpponent());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/i/IllusionistsGambit.java b/Mage.Sets/src/mage/cards/i/IllusionistsGambit.java
index a747c2772e7..f0e4965e163 100644
--- a/Mage.Sets/src/mage/cards/i/IllusionistsGambit.java
+++ b/Mage.Sets/src/mage/cards/i/IllusionistsGambit.java
@@ -2,7 +2,7 @@ package mage.cards.i;
import mage.abilities.Ability;
import mage.abilities.common.CastOnlyDuringPhaseStepSourceAbility;
-import mage.abilities.condition.common.OpponentsTurnCondition;
+import mage.abilities.condition.common.OnOpponentsTurnCondition;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.RequirementEffect;
@@ -28,7 +28,7 @@ public final class IllusionistsGambit extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}{U}");
// Cast Illusionist's Gambit only during the declare blockers step on an opponent's turn.
- this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(PhaseStep.DECLARE_BLOCKERS, OpponentsTurnCondition.instance));
+ this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(PhaseStep.DECLARE_BLOCKERS, OnOpponentsTurnCondition.instance));
// Remove all attacking creatures from combat and untap them. After this phase, there is an additional combat phase. Each of those creatures attacks that combat if able. They can't attack you or a planeswalker you control that combat.
this.getSpellAbility().addEffect(new IllusionistsGambitRemoveFromCombatEffect());
diff --git a/Mage.Sets/src/mage/cards/i/InspiringPaladin.java b/Mage.Sets/src/mage/cards/i/InspiringPaladin.java
index e5e8d04b182..c8b159db04c 100644
--- a/Mage.Sets/src/mage/cards/i/InspiringPaladin.java
+++ b/Mage.Sets/src/mage/cards/i/InspiringPaladin.java
@@ -6,12 +6,14 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
+import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.common.FilterControlledCreaturePermanent;
@@ -47,7 +49,7 @@ public final class InspiringPaladin extends CardImpl {
), MyTurnCondition.instance,
"During your turn, this creature has first strike."
)
- ));
+ ).addHint(MyTurnHint.instance));
// During your turn, creatures you control with +1/+1 counters on them have first strike.
this.addAbility(new SimpleStaticAbility(
diff --git a/Mage.Sets/src/mage/cards/i/InstillEnergy.java b/Mage.Sets/src/mage/cards/i/InstillEnergy.java
index 8a92022426f..c64923b68e3 100644
--- a/Mage.Sets/src/mage/cards/i/InstillEnergy.java
+++ b/Mage.Sets/src/mage/cards/i/InstillEnergy.java
@@ -8,6 +8,7 @@ import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.AsThoughEffectImpl;
import mage.abilities.effects.common.AttachEffect;
import mage.abilities.effects.common.UntapAttachedEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.EnchantAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -41,7 +42,8 @@ public final class InstillEnergy extends CardImpl {
// {0}: Untap enchanted creature. Activate this ability only during your turn and only once each turn.
this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD,
new UntapAttachedEffect(),
- new GenericManaCost(0), 1, MyTurnCondition.instance));
+ new GenericManaCost(0), 1, MyTurnCondition.instance)
+ .addHint(MyTurnHint.instance));
}
private InstillEnergy(final InstillEnergy card) {
diff --git a/Mage.Sets/src/mage/cards/j/JavelinOfLightning.java b/Mage.Sets/src/mage/cards/j/JavelinOfLightning.java
index c5fe297f6cf..51e89db9cb6 100644
--- a/Mage.Sets/src/mage/cards/j/JavelinOfLightning.java
+++ b/Mage.Sets/src/mage/cards/j/JavelinOfLightning.java
@@ -7,6 +7,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.EquipAbility;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.abilities.keyword.FlashAbility;
@@ -41,7 +42,7 @@ public final class JavelinOfLightning extends CardImpl {
ability.addEffect(new ConditionalContinuousEffect(new GainAbilityAttachedEffect(
FirstStrikeAbility.getInstance(), AttachmentType.EQUIPMENT
), MyTurnCondition.instance, "and has first strike"));
- this.addAbility(ability);
+ this.addAbility(ability.addHint(MyTurnHint.instance));
// Equip {4}
this.addAbility(new EquipAbility(4));
diff --git a/Mage.Sets/src/mage/cards/j/JeeringInstigator.java b/Mage.Sets/src/mage/cards/j/JeeringInstigator.java
index aef145ee681..61beb4fa0ec 100644
--- a/Mage.Sets/src/mage/cards/j/JeeringInstigator.java
+++ b/Mage.Sets/src/mage/cards/j/JeeringInstigator.java
@@ -10,6 +10,7 @@ import mage.abilities.effects.Effect;
import mage.abilities.effects.common.UntapTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.effects.common.continuous.GainControlTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.HasteAbility;
import mage.abilities.keyword.MorphAbility;
import mage.cards.CardImpl;
@@ -58,6 +59,7 @@ public final class JeeringInstigator extends CardImpl {
effect.setText("It gains haste until end of turn");
ability.addEffect(effect);
ability.addTarget(new TargetCreaturePermanent(filter));
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/j/JoustingLance.java b/Mage.Sets/src/mage/cards/j/JoustingLance.java
index d39277d368f..3748d16456a 100644
--- a/Mage.Sets/src/mage/cards/j/JoustingLance.java
+++ b/Mage.Sets/src/mage/cards/j/JoustingLance.java
@@ -6,6 +6,7 @@ import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.EquipAbility;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl;
@@ -31,7 +32,8 @@ public final class JoustingLance extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.EQUIPMENT, Duration.WhileOnBattlefield),
MyTurnCondition.instance,
- "During your turn, equipped creature has first strike.")));
+ "During your turn, equipped creature has first strike."))
+ .addHint(MyTurnHint.instance));
// Equip {3}
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3)));
diff --git a/Mage.Sets/src/mage/cards/k/KaitoBaneOfNightmares.java b/Mage.Sets/src/mage/cards/k/KaitoBaneOfNightmares.java
index f8ec678c39f..f7d515aa699 100644
--- a/Mage.Sets/src/mage/cards/k/KaitoBaneOfNightmares.java
+++ b/Mage.Sets/src/mage/cards/k/KaitoBaneOfNightmares.java
@@ -14,6 +14,7 @@ import mage.abilities.effects.common.TapTargetEffect;
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.abilities.effects.keyword.SurveilEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.HexproofAbility;
import mage.abilities.keyword.NinjutsuAbility;
import mage.cards.CardImpl;
@@ -55,7 +56,7 @@ public final class KaitoBaneOfNightmares extends CardImpl {
.withAbility(HexproofAbility.getInstance()), null, Duration.WhileOnBattlefield
), KaitoBaneOfNightmaresCondition.instance, "During your turn, as long as {this} has one or more loyalty counters on him, " +
"he's a 3/4 Ninja creature and has hexproof."
- )));
+ )).addHint(MyTurnHint.instance));
// +1: You get an emblem with "Ninjas you control get +1/+1."
this.addAbility(new LoyaltyAbility(new GetEmblemEffect(new KaitoBaneOfNightmaresEmblem()), 1));
diff --git a/Mage.Sets/src/mage/cards/l/LeechFanatic.java b/Mage.Sets/src/mage/cards/l/LeechFanatic.java
index 6bb29335cb4..70c1eb1097a 100644
--- a/Mage.Sets/src/mage/cards/l/LeechFanatic.java
+++ b/Mage.Sets/src/mage/cards/l/LeechFanatic.java
@@ -5,6 +5,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.LifelinkAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -31,7 +32,7 @@ public final class LeechFanatic extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(LifelinkAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance, "during your turn, {this} has lifelink"
- )));
+ )).addHint(MyTurnHint.instance));
}
private LeechFanatic(final LeechFanatic card) {
diff --git a/Mage.Sets/src/mage/cards/l/LiciaSanguineTribune.java b/Mage.Sets/src/mage/cards/l/LiciaSanguineTribune.java
index 24e2b0ea28f..6fc61153eed 100644
--- a/Mage.Sets/src/mage/cards/l/LiciaSanguineTribune.java
+++ b/Mage.Sets/src/mage/cards/l/LiciaSanguineTribune.java
@@ -10,6 +10,7 @@ import mage.abilities.costs.common.PayLifeCost;
import mage.abilities.dynamicvalue.common.ControllerGainedLifeCount;
import mage.abilities.effects.common.cost.CostModificationEffectImpl;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.abilities.keyword.LifelinkAbility;
import mage.cards.CardImpl;
@@ -53,7 +54,7 @@ public final class LiciaSanguineTribune extends CardImpl {
Zone.BATTLEFIELD,
new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)),
new PayLifeCost(5), 1, MyTurnCondition.instance
- ));
+ ).addHint(MyTurnHint.instance));
}
private LiciaSanguineTribune(final LiciaSanguineTribune card) {
diff --git a/Mage.Sets/src/mage/cards/l/LighthouseChronologist.java b/Mage.Sets/src/mage/cards/l/LighthouseChronologist.java
index dac6af86ece..8f3ea692923 100644
--- a/Mage.Sets/src/mage/cards/l/LighthouseChronologist.java
+++ b/Mage.Sets/src/mage/cards/l/LighthouseChronologist.java
@@ -8,6 +8,7 @@ import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.turn.AddExtraTurnControllerEffect;
+import mage.abilities.hint.common.NotMyTurnHint;
import mage.abilities.keyword.LevelUpAbility;
import mage.abilities.keyword.LevelerCardBuilder;
import mage.cards.CardSetInfo;
@@ -42,7 +43,8 @@ public final class LighthouseChronologist extends LevelerCard {
// At the beginning of each end step, if it's not your turn, take an extra turn after this one.
Abilities abilities2 = new AbilitiesImpl<>();
abilities2.add(new BeginningOfEndStepTriggeredAbility(
- TargetController.ANY, new AddExtraTurnControllerEffect(false), false, NotMyTurnCondition.instance));
+ TargetController.ANY, new AddExtraTurnControllerEffect(false), false, NotMyTurnCondition.instance)
+ .addHint(NotMyTurnHint.instance));
this.addAbilities(LevelerCardBuilder.construct(
new LevelerCardBuilder.LevelAbility(4, 6, abilities1, 2, 4),
diff --git a/Mage.Sets/src/mage/cards/m/MineCollapse.java b/Mage.Sets/src/mage/cards/m/MineCollapse.java
index ecd057bcddf..976d45fcd95 100644
--- a/Mage.Sets/src/mage/cards/m/MineCollapse.java
+++ b/Mage.Sets/src/mage/cards/m/MineCollapse.java
@@ -6,11 +6,13 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.AlternativeCostSourceAbility;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.effects.common.DamageTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.filter.common.FilterControlledPermanent;
+import mage.target.common.TargetControlledPermanent;
import mage.target.common.TargetCreatureOrPlaneswalker;
/**
@@ -29,7 +31,7 @@ public final class MineCollapse extends CardImpl {
new SacrificeTargetCost(filter),
MyTurnCondition.instance,
"If it's your turn, you may sacrifice a Mountain rather than pay this spell's mana cost."
- ));
+ ).addHint(MyTurnHint.instance));
// Mine Collapse deals 5 damage to target creature or planeswalker.
this.getSpellAbility().addEffect(new DamageTargetEffect(5));
diff --git a/Mage.Sets/src/mage/cards/m/MiteOverseer.java b/Mage.Sets/src/mage/cards/m/MiteOverseer.java
index 0360be8bfbf..23daae87013 100644
--- a/Mage.Sets/src/mage/cards/m/MiteOverseer.java
+++ b/Mage.Sets/src/mage/cards/m/MiteOverseer.java
@@ -12,6 +12,7 @@ import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.abilities.keyword.FirstStrikeAbility;
@@ -44,7 +45,7 @@ public final class MiteOverseer extends CardImpl {
ability.addEffect(new ConditionalContinuousEffect(new GainAbilityControlledEffect(
FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield, StaticFilters.FILTER_CREATURE_TOKEN
), MyTurnCondition.instance, "and have first strike"));
- this.addAbility(ability);
+ this.addAbility(ability.addHint(MyTurnHint.instance));
// {3}{W/P}: Create a 1/1 colorless Phyrexian Mite artifact creature token with toxic 1 and "This creature can't block."
this.addAbility(new SimpleActivatedAbility(
diff --git a/Mage.Sets/src/mage/cards/n/NahiriStormOfStone.java b/Mage.Sets/src/mage/cards/n/NahiriStormOfStone.java
index cf247ed7656..1cb974504e0 100644
--- a/Mage.Sets/src/mage/cards/n/NahiriStormOfStone.java
+++ b/Mage.Sets/src/mage/cards/n/NahiriStormOfStone.java
@@ -10,6 +10,7 @@ import mage.abilities.dynamicvalue.common.GetXValue;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.effects.common.cost.AbilitiesCostReductionControllerEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.EquipAbility;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl;
@@ -57,6 +58,7 @@ public final class NahiriStormOfStone extends CardImpl {
EquipAbility.class, "Equip"
), MyTurnCondition.instance, "and equip abilities you activate cost {1} less to activate"
));
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
// -X: Nahiri, Storm of Stone deals X damage to target tapped creature.
diff --git a/Mage.Sets/src/mage/cards/n/NaiadOfHiddenCoves.java b/Mage.Sets/src/mage/cards/n/NaiadOfHiddenCoves.java
index a1acf8d4a10..b11356b533f 100644
--- a/Mage.Sets/src/mage/cards/n/NaiadOfHiddenCoves.java
+++ b/Mage.Sets/src/mage/cards/n/NaiadOfHiddenCoves.java
@@ -5,6 +5,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.decorator.ConditionalCostModificationEffect;
import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -30,7 +31,7 @@ public final class NaiadOfHiddenCoves extends CardImpl {
new SpellsCostReductionControllerEffect(StaticFilters.FILTER_CARD, 1),
NotMyTurnCondition.instance, "During turns other than yours, " +
"spells you cast cost {1} less to cast."
- )));
+ )).addHint(MyTurnHint.instance));
}
private NaiadOfHiddenCoves(final NaiadOfHiddenCoves card) {
diff --git a/Mage.Sets/src/mage/cards/n/NaturesChosen.java b/Mage.Sets/src/mage/cards/n/NaturesChosen.java
index 90a32b54d0e..8b4cc8b09c4 100644
--- a/Mage.Sets/src/mage/cards/n/NaturesChosen.java
+++ b/Mage.Sets/src/mage/cards/n/NaturesChosen.java
@@ -11,6 +11,7 @@ import mage.abilities.effects.Effect;
import mage.abilities.effects.common.AttachEffect;
import mage.abilities.effects.common.UntapAttachedEffect;
import mage.abilities.effects.common.UntapTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.EnchantAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -61,7 +62,8 @@ public final class NaturesChosen extends CardImpl {
this.addAbility(ability);
// {0}: Untap enchanted creature. Activate this ability only during your turn and only once each turn.
- this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new UntapAttachedEffect(), new GenericManaCost(0), 1, MyTurnCondition.instance));
+ this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new UntapAttachedEffect(), new GenericManaCost(0), 1, MyTurnCondition.instance)
+ .addHint(MyTurnHint.instance));
// Tap enchanted creature: Untap target artifact, creature, or land. Activate this ability only if enchanted creature is white and is untapped and only once each turn.
Effect effect = new UntapTargetEffect();
diff --git a/Mage.Sets/src/mage/cards/n/Nebuchadnezzar.java b/Mage.Sets/src/mage/cards/n/Nebuchadnezzar.java
index 4e9d9afe01e..20048051a12 100644
--- a/Mage.Sets/src/mage/cards/n/Nebuchadnezzar.java
+++ b/Mage.Sets/src/mage/cards/n/Nebuchadnezzar.java
@@ -9,6 +9,7 @@ import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ChooseACardNameEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.*;
import mage.constants.*;
import mage.game.Game;
@@ -36,6 +37,7 @@ public final class Nebuchadnezzar extends CardImpl {
ability.addCost(new TapSourceCost());
ability.addEffect(new NebuchadnezzarEffect());
ability.addTarget(new TargetOpponent());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/o/OakStreetInnkeeper.java b/Mage.Sets/src/mage/cards/o/OakStreetInnkeeper.java
index ebb810f2df0..d023ef9ba24 100644
--- a/Mage.Sets/src/mage/cards/o/OakStreetInnkeeper.java
+++ b/Mage.Sets/src/mage/cards/o/OakStreetInnkeeper.java
@@ -5,12 +5,14 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
+import mage.abilities.hint.common.NotMyTurnHint;
import mage.abilities.keyword.HexproofAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
+import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.predicate.permanent.TappedPredicate;
@@ -39,7 +41,8 @@ public final class OakStreetInnkeeper extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilityControlledEffect(HexproofAbility.getInstance(), Duration.WhileOnBattlefield, filter),
NotMyTurnCondition.instance,
- "During turns other than yours, tapped creatures you control have hexproof")));
+ "During turns other than yours, tapped creatures you control have hexproof"))
+ .addHint(NotMyTurnHint.instance));
}
diff --git a/Mage.Sets/src/mage/cards/o/OracleEnVec.java b/Mage.Sets/src/mage/cards/o/OracleEnVec.java
index 3e2d6b9c293..042c879eed7 100644
--- a/Mage.Sets/src/mage/cards/o/OracleEnVec.java
+++ b/Mage.Sets/src/mage/cards/o/OracleEnVec.java
@@ -13,6 +13,7 @@ import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.RequirementEffect;
import mage.abilities.effects.RestrictionEffect;
import mage.abilities.effects.common.DestroyTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
@@ -47,6 +48,7 @@ public final class OracleEnVec extends CardImpl {
// destroy each of the chosen creatures that didn’t attack this turn. Activate this ability only during your turn.
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new OracleEnVecEffect(), new TapSourceCost(), MyTurnCondition.instance);
ability.addTarget(new TargetOpponent());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/p/PompousGadabout.java b/Mage.Sets/src/mage/cards/p/PompousGadabout.java
index d489893072c..d62ccf93994 100644
--- a/Mage.Sets/src/mage/cards/p/PompousGadabout.java
+++ b/Mage.Sets/src/mage/cards/p/PompousGadabout.java
@@ -6,6 +6,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.HexproofAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -43,7 +44,7 @@ public final class PompousGadabout extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(HexproofAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance, "during your turn, {this} has hexproof"
- )));
+ )).addHint(MyTurnHint.instance));
// Pompous Gadabout can't be blocked by creatures that don't have a name.
this.addAbility(new SimpleStaticAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield)));
diff --git a/Mage.Sets/src/mage/cards/p/PortalOfSanctuary.java b/Mage.Sets/src/mage/cards/p/PortalOfSanctuary.java
index 5e09db8ec6b..4f854479914 100644
--- a/Mage.Sets/src/mage/cards/p/PortalOfSanctuary.java
+++ b/Mage.Sets/src/mage/cards/p/PortalOfSanctuary.java
@@ -6,6 +6,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.OneShotEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.cards.Cards;
@@ -36,6 +37,7 @@ public final class PortalOfSanctuary extends CardImpl {
);
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetControlledCreaturePermanent());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
@@ -81,4 +83,4 @@ class PortalOfSanctuaryEffect extends OneShotEffect {
.forEach(perm -> cards.add(perm));
return player.moveCards(cards, Zone.HAND, source, game);
}
-}
+}
\ No newline at end of file
diff --git a/Mage.Sets/src/mage/cards/p/PouncingLynx.java b/Mage.Sets/src/mage/cards/p/PouncingLynx.java
index c2098c3aebe..919c4367b7e 100644
--- a/Mage.Sets/src/mage/cards/p/PouncingLynx.java
+++ b/Mage.Sets/src/mage/cards/p/PouncingLynx.java
@@ -5,6 +5,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -36,7 +37,7 @@ public final class PouncingLynx extends CardImpl {
"During your turn, "
+ "{this} has first strike."
)
- ));
+ ).addHint(MyTurnHint.instance));
}
private PouncingLynx(final PouncingLynx card) {
diff --git a/Mage.Sets/src/mage/cards/p/Prickleboar.java b/Mage.Sets/src/mage/cards/p/Prickleboar.java
index 1eb5dcb735b..1d3e91a1317 100644
--- a/Mage.Sets/src/mage/cards/p/Prickleboar.java
+++ b/Mage.Sets/src/mage/cards/p/Prickleboar.java
@@ -8,12 +8,14 @@ import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
+import mage.constants.Zone;
import java.util.UUID;
@@ -40,6 +42,7 @@ public final class Prickleboar extends CardImpl {
"and has first strike");
Ability ability = new SimpleStaticAbility(boostEffect);
ability.addEffect(gainAbilityEffect);
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/r/RadhaHeartOfKeld.java b/Mage.Sets/src/mage/cards/r/RadhaHeartOfKeld.java
index 1bd0379f23c..d8ba30712c2 100644
--- a/Mage.Sets/src/mage/cards/r/RadhaHeartOfKeld.java
+++ b/Mage.Sets/src/mage/cards/r/RadhaHeartOfKeld.java
@@ -12,6 +12,7 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.effects.common.continuous.LookAtTopCardOfLibraryAnyTimeEffect;
import mage.abilities.effects.common.continuous.PlayFromTopOfLibraryEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -42,7 +43,7 @@ public final class RadhaHeartOfKeld extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance, "During your turn, {this} has first strike."
- )));
+ )).addHint(MyTurnHint.instance));
// You may look at the top card of your library any time, and you may play lands from the top of your library.
LookAtTopCardOfLibraryAnyTimeEffect lookEffect = new LookAtTopCardOfLibraryAnyTimeEffect();
diff --git a/Mage.Sets/src/mage/cards/r/RagMan.java b/Mage.Sets/src/mage/cards/r/RagMan.java
index 67606241e5d..7bfdf48b6a2 100644
--- a/Mage.Sets/src/mage/cards/r/RagMan.java
+++ b/Mage.Sets/src/mage/cards/r/RagMan.java
@@ -8,6 +8,7 @@ import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.RevealHandTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.*;
import mage.constants.CardType;
import mage.constants.Outcome;
@@ -38,6 +39,7 @@ public final class RagMan extends CardImpl {
ability.addCost(new TapSourceCost());
ability.addEffect(new RagManDiscardEffect());
ability.addTarget(new TargetOpponent());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/r/RatcatcherTrainee.java b/Mage.Sets/src/mage/cards/r/RatcatcherTrainee.java
index b312a8ed0b1..f61e64e2973 100644
--- a/Mage.Sets/src/mage/cards/r/RatcatcherTrainee.java
+++ b/Mage.Sets/src/mage/cards/r/RatcatcherTrainee.java
@@ -6,6 +6,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.AdventureCard;
import mage.cards.CardSetInfo;
@@ -33,7 +34,7 @@ public final class RatcatcherTrainee extends AdventureCard {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance, "During your turn, {this} has first strike."
- )));
+ )).addHint(MyTurnHint.instance));
// Pest Problem
// Create two 1/1 black Rat creature tokens with "This creature can’t block."
diff --git a/Mage.Sets/src/mage/cards/r/Reset.java b/Mage.Sets/src/mage/cards/r/Reset.java
index ae502a57005..a046e5c3f4b 100644
--- a/Mage.Sets/src/mage/cards/r/Reset.java
+++ b/Mage.Sets/src/mage/cards/r/Reset.java
@@ -5,7 +5,7 @@ import java.util.UUID;
import mage.abilities.common.CastOnlyDuringPhaseStepSourceAbility;
import mage.abilities.condition.CompoundCondition;
import mage.abilities.condition.common.AfterUpkeepStepCondtion;
-import mage.abilities.condition.common.OpponentsTurnCondition;
+import mage.abilities.condition.common.OnOpponentsTurnCondition;
import mage.abilities.effects.common.UntapAllLandsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -21,7 +21,7 @@ public final class Reset extends CardImpl {
// Cast Reset only during an opponent's turn after their upkeep step.
this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(null, null,
- new CompoundCondition(OpponentsTurnCondition.instance, AfterUpkeepStepCondtion.instance),
+ new CompoundCondition(OnOpponentsTurnCondition.instance, AfterUpkeepStepCondtion.instance),
"Cast this spell only during an opponent's turn after their upkeep step"));
// Untap all lands you control.
diff --git a/Mage.Sets/src/mage/cards/r/RestlessSpire.java b/Mage.Sets/src/mage/cards/r/RestlessSpire.java
index 56a3ba27cf8..9fb5d277c8d 100644
--- a/Mage.Sets/src/mage/cards/r/RestlessSpire.java
+++ b/Mage.Sets/src/mage/cards/r/RestlessSpire.java
@@ -10,6 +10,7 @@ import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.effects.keyword.ScryEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.abilities.mana.BlueManaAbility;
import mage.abilities.mana.RedManaAbility;
@@ -44,7 +45,7 @@ public final class RestlessSpire extends CardImpl {
.withAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance, "During your turn, this creature has first strike."
- ))),
+ )).addHint(MyTurnHint.instance)),
CardType.LAND, Duration.EndOfTurn
).withDurationRuleAtStart(true), new ManaCostsImpl<>("{U}{R}")));
diff --git a/Mage.Sets/src/mage/cards/r/ReturnThePast.java b/Mage.Sets/src/mage/cards/r/ReturnThePast.java
index 6874fa6d7fb..edb2db6eca8 100644
--- a/Mage.Sets/src/mage/cards/r/ReturnThePast.java
+++ b/Mage.Sets/src/mage/cards/r/ReturnThePast.java
@@ -3,6 +3,7 @@ package mage.cards.r;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.ContinuousEffectImpl;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FlashbackAbility;
import mage.cards.Card;
import mage.cards.CardImpl;
@@ -25,7 +26,7 @@ public final class ReturnThePast extends CardImpl {
// As long as it's your turn, each instant and sorcery card in your graveyard has flashback. Its flashback cost is equal to its mana cost.
- this.addAbility(new SimpleStaticAbility(new ReturnThePastEffect()));
+ this.addAbility(new SimpleStaticAbility(new ReturnThePastEffect()).addHint(MyTurnHint.instance));
}
private ReturnThePast(final ReturnThePast card) {
diff --git a/Mage.Sets/src/mage/cards/s/SanctumOfEternity.java b/Mage.Sets/src/mage/cards/s/SanctumOfEternity.java
index 80c7b6048f7..337759ea92b 100644
--- a/Mage.Sets/src/mage/cards/s/SanctumOfEternity.java
+++ b/Mage.Sets/src/mage/cards/s/SanctumOfEternity.java
@@ -6,6 +6,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.mana.ColorlessManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -44,6 +45,7 @@ public final class SanctumOfEternity extends CardImpl {
);
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPermanent(filter));
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/s/ScepterOfFugue.java b/Mage.Sets/src/mage/cards/s/ScepterOfFugue.java
index df6829a9c94..d5505d4b008 100644
--- a/Mage.Sets/src/mage/cards/s/ScepterOfFugue.java
+++ b/Mage.Sets/src/mage/cards/s/ScepterOfFugue.java
@@ -6,6 +6,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.discard.DiscardTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -27,6 +28,7 @@ public final class ScepterOfFugue extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(1), new ManaCostsImpl<>("{1}{B}"), MyTurnCondition.instance);
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPlayer());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/s/Seedtime.java b/Mage.Sets/src/mage/cards/s/Seedtime.java
index 20f0d00e512..a34701c97cd 100644
--- a/Mage.Sets/src/mage/cards/s/Seedtime.java
+++ b/Mage.Sets/src/mage/cards/s/Seedtime.java
@@ -6,6 +6,7 @@ import mage.abilities.condition.Condition;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.turn.AddExtraTurnControllerEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -28,7 +29,8 @@ public final class Seedtime extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}");
// Cast Seedtime only during your turn.
- this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(null, null, MyTurnCondition.instance, rule));
+ this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(null, null, MyTurnCondition.instance, rule)
+ .addHint(MyTurnHint.instance));
// Take an extra turn after this one if an opponent cast a blue spell this turn.
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new AddExtraTurnControllerEffect(), OpponentCastBlueSpellThisTurnCondition.instance, rule2));
diff --git a/Mage.Sets/src/mage/cards/s/SirensCall.java b/Mage.Sets/src/mage/cards/s/SirensCall.java
index 8dd8782ad87..124398e2e98 100644
--- a/Mage.Sets/src/mage/cards/s/SirensCall.java
+++ b/Mage.Sets/src/mage/cards/s/SirensCall.java
@@ -8,7 +8,7 @@ import mage.abilities.common.CastOnlyDuringPhaseStepSourceAbility;
import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility;
import mage.abilities.condition.CompoundCondition;
import mage.abilities.condition.common.BeforeAttackersAreDeclaredCondition;
-import mage.abilities.condition.common.OpponentsTurnCondition;
+import mage.abilities.condition.common.OnOpponentsTurnCondition;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.RequirementEffect;
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
@@ -34,7 +34,7 @@ public final class SirensCall extends CardImpl {
// Cast Siren's Call only during an opponent's turn, before attackers are declared.
this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(null, null,
- new CompoundCondition(OpponentsTurnCondition.instance, BeforeAttackersAreDeclaredCondition.instance),
+ new CompoundCondition(OnOpponentsTurnCondition.instance, BeforeAttackersAreDeclaredCondition.instance),
"Cast this spell only during an opponent's turn, before attackers are declared"));
// Creatures the active player controls attack this turn if able.
diff --git a/Mage.Sets/src/mage/cards/s/Six.java b/Mage.Sets/src/mage/cards/s/Six.java
index 99be016dcc0..faa979874b5 100644
--- a/Mage.Sets/src/mage/cards/s/Six.java
+++ b/Mage.Sets/src/mage/cards/s/Six.java
@@ -7,6 +7,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.MillThenPutInHandEffect;
import mage.abilities.effects.common.continuous.GainRetraceYourGraveyardEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.ReachAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -55,7 +56,7 @@ public final class Six extends CardImpl {
MyTurnCondition.instance,
"During your turn, nonland permanent cards in your graveyard have retrace."
)
- ));
+ ).addHint(MyTurnHint.instance));
}
private Six(final Six card) {
diff --git a/Mage.Sets/src/mage/cards/s/SorinVengefulBloodlord.java b/Mage.Sets/src/mage/cards/s/SorinVengefulBloodlord.java
index d9997c9ba61..83389ff0907 100644
--- a/Mage.Sets/src/mage/cards/s/SorinVengefulBloodlord.java
+++ b/Mage.Sets/src/mage/cards/s/SorinVengefulBloodlord.java
@@ -9,6 +9,7 @@ import mage.abilities.effects.ContinuousEffectImpl;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.LifelinkAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -41,7 +42,7 @@ public final class SorinVengefulBloodlord extends CardImpl {
StaticFilters.FILTER_PERMANENT_CREATURE_OR_PLANESWALKER_A
), MyTurnCondition.instance, "During your turn, " +
"creatures and planeswalkers you control have lifelink"
- )));
+ )).addHint(MyTurnHint.instance));
// +2: Sorin, Vengeful Bloodlord deals 1 damage to target player or planeswalker.
Ability ability = new LoyaltyAbility(new DamageTargetEffect(1), 2);
diff --git a/Mage.Sets/src/mage/cards/s/SpartanVeteran.java b/Mage.Sets/src/mage/cards/s/SpartanVeteran.java
index fe117a31504..407031f2ccc 100644
--- a/Mage.Sets/src/mage/cards/s/SpartanVeteran.java
+++ b/Mage.Sets/src/mage/cards/s/SpartanVeteran.java
@@ -8,6 +8,7 @@ import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -34,7 +35,7 @@ public final class SpartanVeteran extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance, "During your turn, {this} has first strike."
- )));
+ )).addHint(MyTurnHint.instance));
// {2}: Spartan Veteran gets +1/+0 until end of turn.
this.addAbility(new SimpleActivatedAbility(new BoostSourceEffect(1, 0, Duration.EndOfTurn), new GenericManaCost(2)));
diff --git a/Mage.Sets/src/mage/cards/s/SpitefulPrankster.java b/Mage.Sets/src/mage/cards/s/SpitefulPrankster.java
index 3635781a4fb..988c5fb4df1 100644
--- a/Mage.Sets/src/mage/cards/s/SpitefulPrankster.java
+++ b/Mage.Sets/src/mage/cards/s/SpitefulPrankster.java
@@ -8,6 +8,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -34,7 +35,7 @@ public final class SpitefulPrankster extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance, "During your turn, {this} has first strike."
- )));
+ )).addHint(MyTurnHint.instance));
// Whenever another creature dies, Spiteful Prankster deals 1 damage to target player or planeswalker.
Ability ability = new DiesCreatureTriggeredAbility(
diff --git a/Mage.Sets/src/mage/cards/s/SporebackWolf.java b/Mage.Sets/src/mage/cards/s/SporebackWolf.java
index 79fd5fa3763..827640ebb0b 100644
--- a/Mage.Sets/src/mage/cards/s/SporebackWolf.java
+++ b/Mage.Sets/src/mage/cards/s/SporebackWolf.java
@@ -5,6 +5,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -29,7 +30,7 @@ public final class SporebackWolf extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new BoostSourceEffect(0, 2, Duration.WhileOnBattlefield),
MyTurnCondition.instance, "during your turn, {this} gets +0/+2."
- )));
+ )).addHint(MyTurnHint.instance));
}
private SporebackWolf(final SporebackWolf card) {
diff --git a/Mage.Sets/src/mage/cards/s/SteadfastUnicorn.java b/Mage.Sets/src/mage/cards/s/SteadfastUnicorn.java
index b3ad684c672..bd89a9d7841 100644
--- a/Mage.Sets/src/mage/cards/s/SteadfastUnicorn.java
+++ b/Mage.Sets/src/mage/cards/s/SteadfastUnicorn.java
@@ -7,6 +7,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -39,7 +40,7 @@ public final class SteadfastUnicorn extends CardImpl {
VigilanceAbility.getInstance(), Duration.EndOfTurn,
StaticFilters.FILTER_PERMANENT_CREATURE
).setText("and gain vigilance until end of turn"));
- this.addAbility(ability);
+ this.addAbility(ability.addHint(MyTurnHint.instance));
}
private SteadfastUnicorn(final SteadfastUnicorn card) {
diff --git a/Mage.Sets/src/mage/cards/s/StreetRiot.java b/Mage.Sets/src/mage/cards/s/StreetRiot.java
index 858fbc39fe6..c3960dc93a6 100644
--- a/Mage.Sets/src/mage/cards/s/StreetRiot.java
+++ b/Mage.Sets/src/mage/cards/s/StreetRiot.java
@@ -6,11 +6,13 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
+import mage.constants.Zone;
import mage.filter.StaticFilters;
import java.util.UUID;
@@ -39,6 +41,7 @@ public final class StreetRiot extends CardImpl {
StaticFilters.FILTER_CONTROLLED_CREATURES
), MyTurnCondition.instance, "and have trample"
));
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/s/SundialOfTheInfinite.java b/Mage.Sets/src/mage/cards/s/SundialOfTheInfinite.java
index 8278f209fd9..5fca98c8f07 100644
--- a/Mage.Sets/src/mage/cards/s/SundialOfTheInfinite.java
+++ b/Mage.Sets/src/mage/cards/s/SundialOfTheInfinite.java
@@ -6,6 +6,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.EndTurnEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -24,6 +25,7 @@ public final class SundialOfTheInfinite extends CardImpl {
// {1}, {T}: End the turn. Activate this ability only during your turn.
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new EndTurnEffect(), new GenericManaCost(1), MyTurnCondition.instance);
ability.addCost(new TapSourceCost());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
@@ -35,4 +37,4 @@ public final class SundialOfTheInfinite extends CardImpl {
public SundialOfTheInfinite copy() {
return new SundialOfTheInfinite(this);
}
-}
+}
\ No newline at end of file
diff --git a/Mage.Sets/src/mage/cards/s/SunlitHoplite.java b/Mage.Sets/src/mage/cards/s/SunlitHoplite.java
index 18c7647a922..f1e8e8d2ea4 100644
--- a/Mage.Sets/src/mage/cards/s/SunlitHoplite.java
+++ b/Mage.Sets/src/mage/cards/s/SunlitHoplite.java
@@ -9,6 +9,7 @@ import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.hint.ConditionHint;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -40,7 +41,7 @@ public final class SunlitHoplite extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance, "During your turn, {this} has first strike."
- )));
+ )).addHint(MyTurnHint.instance));
// Sunlit Hoplite gets +1/+0 as long as you control an Elspeth planeswalker.
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
diff --git a/Mage.Sets/src/mage/cards/t/TetzimocPrimalDeath.java b/Mage.Sets/src/mage/cards/t/TetzimocPrimalDeath.java
index d971891c81e..a7337b11ab3 100644
--- a/Mage.Sets/src/mage/cards/t/TetzimocPrimalDeath.java
+++ b/Mage.Sets/src/mage/cards/t/TetzimocPrimalDeath.java
@@ -9,6 +9,7 @@ import mage.abilities.costs.common.RevealSourceFromYourHandCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DestroyAllEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.DeathtouchAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -47,6 +48,7 @@ public final class TetzimocPrimalDeath extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(Zone.HAND, new AddCountersTargetEffect(CounterType.PREY.createInstance()), new ManaCostsImpl<>("{B}"), MyTurnCondition.instance);
ability.addTarget(new TargetCreaturePermanent());
ability.addCost(new RevealSourceFromYourHandCost());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
// When Tetzimoc, Primal Death enters the battlefield, destroy each creature your opponents control with a prey counter on it.
diff --git a/Mage.Sets/src/mage/cards/t/ThrunBreakerOfSilence.java b/Mage.Sets/src/mage/cards/t/ThrunBreakerOfSilence.java
index c159ab05247..9fce17a797b 100644
--- a/Mage.Sets/src/mage/cards/t/ThrunBreakerOfSilence.java
+++ b/Mage.Sets/src/mage/cards/t/ThrunBreakerOfSilence.java
@@ -9,6 +9,7 @@ import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.ContinuousRuleModifyingEffectImpl;
import mage.abilities.effects.common.CantBeCounteredSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.IndestructibleAbility;
import mage.cards.Card;
import mage.constants.*;
@@ -46,7 +47,8 @@ public final class ThrunBreakerOfSilence extends CardImpl {
this.addAbility(new SimpleStaticAbility(
new ConditionalContinuousEffect(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance,
- "During your turn, {this} has indestructible")));
+ "During your turn, {this} has indestructible"))
+ .addHint(MyTurnHint.instance));
}
private ThrunBreakerOfSilence(final ThrunBreakerOfSilence card) {
diff --git a/Mage.Sets/src/mage/cards/t/TideshaperMystic.java b/Mage.Sets/src/mage/cards/t/TideshaperMystic.java
index 15f26d31a87..b5821d44d6e 100644
--- a/Mage.Sets/src/mage/cards/t/TideshaperMystic.java
+++ b/Mage.Sets/src/mage/cards/t/TideshaperMystic.java
@@ -6,6 +6,7 @@ import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.continuous.BecomesBasicLandTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -32,6 +33,7 @@ public final class TideshaperMystic extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD,
new BecomesBasicLandTargetEffect(Duration.EndOfTurn), new TapSourceCost(), MyTurnCondition.instance);
ability.addTarget(new TargetLandPermanent());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/t/TitheTaker.java b/Mage.Sets/src/mage/cards/t/TitheTaker.java
index bde23a0162c..295a2b253bf 100644
--- a/Mage.Sets/src/mage/cards/t/TitheTaker.java
+++ b/Mage.Sets/src/mage/cards/t/TitheTaker.java
@@ -6,6 +6,7 @@ import mage.abilities.SpellAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.effects.common.cost.CostModificationEffectImpl;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.AfterlifeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -29,7 +30,8 @@ public final class TitheTaker extends CardImpl {
this.toughness = new MageInt(1);
// During your turn, spells your opponents cast cost {1} more to cast and abilities your opponents activate cost {1} more to activate unless they're mana abilities.
- this.addAbility(new SimpleStaticAbility(new TitheTakerCostReductionEffect()));
+ this.addAbility(new SimpleStaticAbility(new TitheTakerCostReductionEffect())
+ .addHint(MyTurnHint.instance));
// Afterlife 1
this.addAbility(new AfterlifeAbility(1));
diff --git a/Mage.Sets/src/mage/cards/t/TombTyrant.java b/Mage.Sets/src/mage/cards/t/TombTyrant.java
index 3908bbefe2f..08e8b632ed3 100644
--- a/Mage.Sets/src/mage/cards/t/TombTyrant.java
+++ b/Mage.Sets/src/mage/cards/t/TombTyrant.java
@@ -16,6 +16,7 @@ import mage.abilities.effects.common.ReturnFromGraveyardAtRandomEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.hint.Hint;
import mage.abilities.hint.ValueHint;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
@@ -66,7 +67,7 @@ public final class TombTyrant extends CardImpl {
);
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE));
- this.addAbility(ability.addHint(hint));
+ this.addAbility(ability.addHint(MyTurnHint.instance).addHint(hint));
}
private TombTyrant(final TombTyrant card) {
diff --git a/Mage.Sets/src/mage/cards/t/TradeCaravan.java b/Mage.Sets/src/mage/cards/t/TradeCaravan.java
index 0bac50909d3..a5d4e318f70 100644
--- a/Mage.Sets/src/mage/cards/t/TradeCaravan.java
+++ b/Mage.Sets/src/mage/cards/t/TradeCaravan.java
@@ -7,7 +7,7 @@ import mage.abilities.Ability;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.CompoundCondition;
import mage.abilities.condition.common.IsStepCondition;
-import mage.abilities.condition.common.OpponentsTurnCondition;
+import mage.abilities.condition.common.OnOpponentsTurnCondition;
import mage.abilities.decorator.ConditionalActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.effects.common.UntapTargetEffect;
@@ -46,7 +46,7 @@ public final class TradeCaravan extends CardImpl {
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.CURRENCY.createInstance())));
// Remove two currency counters from Trade Caravan: Untap target basic land. Activate this ability only during an opponent's upkeep.
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), new RemoveCountersSourceCost(CounterType.CURRENCY.createInstance(2)),
- new CompoundCondition(OpponentsTurnCondition.instance, new IsStepCondition(PhaseStep.UPKEEP, false)),
+ new CompoundCondition(OnOpponentsTurnCondition.instance, new IsStepCondition(PhaseStep.UPKEEP, false)),
"Remove two currency counters from {this}: Untap target basic land. Activate only during an opponent's upkeep.");
ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/t/TriumphantAdventurer.java b/Mage.Sets/src/mage/cards/t/TriumphantAdventurer.java
index ca738ac2b9a..12ed0f8b8bc 100644
--- a/Mage.Sets/src/mage/cards/t/TriumphantAdventurer.java
+++ b/Mage.Sets/src/mage/cards/t/TriumphantAdventurer.java
@@ -9,6 +9,7 @@ import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
import mage.abilities.hint.common.CurrentDungeonHint;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.constants.Duration;
import mage.constants.SubType;
@@ -39,7 +40,7 @@ public final class TriumphantAdventurer extends CardImpl {
new ConditionalContinuousEffect(new GainAbilitySourceEffect(
FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield
), MyTurnCondition.instance, "During your turn, {this} has first strike.")
- ));
+ ).addHint(MyTurnHint.instance));
// Whenever Triumphant Adventurer attacks, venture into the dungeon.
this.addAbility(new AttacksTriggeredAbility(new VentureIntoTheDungeonEffect(), false)
diff --git a/Mage.Sets/src/mage/cards/u/UrtetRemnantOfMemnarch.java b/Mage.Sets/src/mage/cards/u/UrtetRemnantOfMemnarch.java
index fd5e618c971..abc2a955b88 100644
--- a/Mage.Sets/src/mage/cards/u/UrtetRemnantOfMemnarch.java
+++ b/Mage.Sets/src/mage/cards/u/UrtetRemnantOfMemnarch.java
@@ -11,6 +11,7 @@ import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.UntapAllControllerEffect;
import mage.abilities.effects.common.counter.AddCountersAllEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
@@ -50,6 +51,7 @@ public final class UrtetRemnantOfMemnarch extends CardImpl {
// {W}{U}{B}{R}{G}, {T}: Put three +1/+1 counters on each Myr you control. Activate only during your turn.
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new AddCountersAllEffect(CounterType.P1P1.createInstance(3), filter2), new ManaCostsImpl<>("{W}{U}{B}{R}{G}"), MyTurnCondition.instance);
ability.addCost(new TapSourceCost());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/v/VibratingSphere.java b/Mage.Sets/src/mage/cards/v/VibratingSphere.java
index a7a1145e081..eebee450d3b 100644
--- a/Mage.Sets/src/mage/cards/v/VibratingSphere.java
+++ b/Mage.Sets/src/mage/cards/v/VibratingSphere.java
@@ -5,10 +5,12 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
+import mage.constants.Zone;
import java.util.UUID;
@@ -24,7 +26,8 @@ public final class VibratingSphere extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new BoostControlledEffect(2, 0, Duration.WhileOnBattlefield),
MyTurnCondition.instance,
- "During your turn, creatures you control get +2/+0")));
+ "During your turn, creatures you control get +2/+0"))
+ .addHint(MyTurnHint.instance));
// As long as it's not your turn, creatures you control get -0/-2.
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
diff --git a/Mage.Sets/src/mage/cards/v/VoiceOfResurgence.java b/Mage.Sets/src/mage/cards/v/VoiceOfResurgence.java
index fe0ab025b24..1a9ffc011b6 100644
--- a/Mage.Sets/src/mage/cards/v/VoiceOfResurgence.java
+++ b/Mage.Sets/src/mage/cards/v/VoiceOfResurgence.java
@@ -6,6 +6,7 @@ import mage.abilities.common.SpellCastOpponentTriggeredAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.meta.OrTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -37,7 +38,7 @@ public final class VoiceOfResurgence extends CardImpl {
new DiesSourceTriggeredAbility(null, false)
);
ability.setLeavesTheBattlefieldTrigger(true);
- this.addAbility(ability.addHint(CreaturesYouControlHint.instance));
+ this.addAbility(ability.addHint(MyTurnHint.instance).addHint(CreaturesYouControlHint.instance));
}
private VoiceOfResurgence(final VoiceOfResurgence card) {
diff --git a/Mage.Sets/src/mage/cards/v/VonaButcherOfMagan.java b/Mage.Sets/src/mage/cards/v/VonaButcherOfMagan.java
index 6a2cd3c4bf6..d4ceca02044 100644
--- a/Mage.Sets/src/mage/cards/v/VonaButcherOfMagan.java
+++ b/Mage.Sets/src/mage/cards/v/VonaButcherOfMagan.java
@@ -7,6 +7,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.common.PayLifeCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.DestroyTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.LifelinkAbility;
import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl;
@@ -43,6 +44,7 @@ public final class VonaButcherOfMagan extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new TapSourceCost(), MyTurnCondition.instance);
ability.addCost(new PayLifeCost(7));
ability.addTarget(new TargetNonlandPermanent());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/w/WakeTheDead.java b/Mage.Sets/src/mage/cards/w/WakeTheDead.java
index 37e9b737c52..4cd41314906 100644
--- a/Mage.Sets/src/mage/cards/w/WakeTheDead.java
+++ b/Mage.Sets/src/mage/cards/w/WakeTheDead.java
@@ -5,7 +5,7 @@ import mage.abilities.Ability;
import mage.abilities.DelayedTriggeredAbility;
import mage.abilities.common.CastOnlyDuringPhaseStepSourceAbility;
import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility;
-import mage.abilities.condition.common.OpponentsTurnCondition;
+import mage.abilities.condition.common.OnOpponentsTurnCondition;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.SacrificeTargetEffect;
@@ -38,7 +38,7 @@ public final class WakeTheDead extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{B}{B}");
// Cast Wake the Dead only during combat on an opponent's turn.
- this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(TurnPhase.COMBAT, OpponentsTurnCondition.instance));
+ this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(TurnPhase.COMBAT, OnOpponentsTurnCondition.instance));
// Return X target creature cards from your graveyard to the battlefield. Sacrifice those creatures at the beginning of the next end step.
this.getSpellAbility().addEffect(new WakeTheDeadReturnFromGraveyardToBattlefieldTargetEffect());
diff --git a/Mage.Sets/src/mage/cards/w/WalkerOfSecretWays.java b/Mage.Sets/src/mage/cards/w/WalkerOfSecretWays.java
index 4edcf8b92d3..64e85962af2 100644
--- a/Mage.Sets/src/mage/cards/w/WalkerOfSecretWays.java
+++ b/Mage.Sets/src/mage/cards/w/WalkerOfSecretWays.java
@@ -8,6 +8,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.NinjutsuAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -46,6 +47,7 @@ public final class WalkerOfSecretWays extends CardImpl {
// {1}{U}: Return target Ninja you control to its owner's hand. Activate this ability only during your turn.
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl<>("{1}{U}"), MyTurnCondition.instance);
ability.addTarget(new TargetControlledPermanent(filterCreature));
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/w/WandOfIth.java b/Mage.Sets/src/mage/cards/w/WandOfIth.java
index d28ede7fbc3..bba33d38036 100644
--- a/Mage.Sets/src/mage/cards/w/WandOfIth.java
+++ b/Mage.Sets/src/mage/cards/w/WandOfIth.java
@@ -7,6 +7,7 @@ import mage.abilities.costs.common.PayLifeCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.OneShotEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.*;
import mage.constants.CardType;
import mage.constants.Outcome;
@@ -30,6 +31,7 @@ public final class WandOfIth extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new WandOfIthEffect(), new GenericManaCost(3), MyTurnCondition.instance);
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPlayer());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/w/WardenOfTheWall.java b/Mage.Sets/src/mage/cards/w/WardenOfTheWall.java
index 7cce5da4550..80682bee3e0 100644
--- a/Mage.Sets/src/mage/cards/w/WardenOfTheWall.java
+++ b/Mage.Sets/src/mage/cards/w/WardenOfTheWall.java
@@ -6,6 +6,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
+import mage.abilities.hint.common.NotMyTurnHint;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.mana.ColorlessManaAbility;
import mage.cards.CardImpl;
@@ -13,6 +14,7 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
+import mage.constants.Zone;
import mage.game.permanent.token.TokenImpl;
import java.util.UUID;
@@ -35,7 +37,8 @@ public final class WardenOfTheWall extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new BecomesCreatureSourceEffect(new GargoyleToken(), CardType.ARTIFACT, Duration.WhileOnBattlefield),
NotMyTurnCondition.instance,
- "During turns other than yours, Warden of the Wall is a 2/3 Gargoyle artifact creature with flying")));
+ "During turns other than yours, Warden of the Wall is a 2/3 Gargoyle artifact creature with flying"))
+ .addHint(NotMyTurnHint.instance));
}
private WardenOfTheWall(final WardenOfTheWall card) {
diff --git a/Mage.Sets/src/mage/cards/w/WildwoodGeist.java b/Mage.Sets/src/mage/cards/w/WildwoodGeist.java
index bc168a7eb6c..48bac927307 100644
--- a/Mage.Sets/src/mage/cards/w/WildwoodGeist.java
+++ b/Mage.Sets/src/mage/cards/w/WildwoodGeist.java
@@ -5,6 +5,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -29,7 +30,8 @@ public final class WildwoodGeist extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield),
MyTurnCondition.instance,
- "during your turn, {this} gets +2/+2")));
+ "during your turn, {this} gets +2/+2"))
+ .addHint(MyTurnHint.instance));
}
private WildwoodGeist(final WildwoodGeist card) {
diff --git a/Mage.Sets/src/mage/cards/w/WishclawTalisman.java b/Mage.Sets/src/mage/cards/w/WishclawTalisman.java
index 971e2611399..9b714024a9e 100644
--- a/Mage.Sets/src/mage/cards/w/WishclawTalisman.java
+++ b/Mage.Sets/src/mage/cards/w/WishclawTalisman.java
@@ -13,6 +13,7 @@ import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.GainControlTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -49,6 +50,7 @@ public final class WishclawTalisman extends CardImpl {
);
ability.addCost(new TapSourceCost());
ability.addCost(new RemoveCountersSourceCost(CounterType.WISH.createInstance()));
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/w/WolfwillowHaven.java b/Mage.Sets/src/mage/cards/w/WolfwillowHaven.java
index 278f46d4a78..532db353ad8 100644
--- a/Mage.Sets/src/mage/cards/w/WolfwillowHaven.java
+++ b/Mage.Sets/src/mage/cards/w/WolfwillowHaven.java
@@ -9,6 +9,7 @@ import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.AttachEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.mana.AddManaToManaPoolTargetControllerEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.EnchantAbility;
import mage.abilities.mana.EnchantedTappedTriggeredManaAbility;
import mage.cards.CardImpl;
@@ -48,6 +49,7 @@ public final class WolfwillowHaven extends CardImpl {
new ManaCostsImpl<>("{4}{G}"), MyTurnCondition.instance
);
ability.addCost(new SacrificeSourceCost());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/y/YesManPersonalSecuritron.java b/Mage.Sets/src/mage/cards/y/YesManPersonalSecuritron.java
index ee2ed015a6d..0db344a9708 100644
--- a/Mage.Sets/src/mage/cards/y/YesManPersonalSecuritron.java
+++ b/Mage.Sets/src/mage/cards/y/YesManPersonalSecuritron.java
@@ -14,6 +14,7 @@ import mage.abilities.effects.common.CreateTokenTargetEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.TargetPlayerGainControlSourceEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.constants.*;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -42,6 +43,7 @@ public final class YesManPersonalSecuritron extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD,
new YesManPersonalSecuritronControlEffect(), new TapSourceCost(), MyTurnCondition.instance);
ability.addTarget(new TargetOpponent());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
// Wild Card -- When Yes Man leaves the battlefield, its owner creates a tapped 1/1 white Soldier creature token for each quest counter on it.
@@ -112,4 +114,4 @@ class YesManPersonalSecuritronLeavesEffect extends CreateTokenTargetEffect {
this.setTargetPointer(new FixedTarget(yesman.getOwnerId()));
return super.apply(game, source);
}
-}
+}
\ No newline at end of file
diff --git a/Mage.Sets/src/mage/cards/z/ZamrielSeraphOfSteel.java b/Mage.Sets/src/mage/cards/z/ZamrielSeraphOfSteel.java
index c1d81f862fa..74d3ba631d0 100644
--- a/Mage.Sets/src/mage/cards/z/ZamrielSeraphOfSteel.java
+++ b/Mage.Sets/src/mage/cards/z/ZamrielSeraphOfSteel.java
@@ -5,6 +5,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.IndestructibleAbility;
import mage.cards.CardImpl;
@@ -48,7 +49,7 @@ public final class ZamrielSeraphOfSteel extends CardImpl {
Duration.WhileOnBattlefield, filter
), MyTurnCondition.instance, "during your turn, " +
"equipped creatures you control have indestructible"
- )));
+ )).addHint(MyTurnHint.instance));
}
private ZamrielSeraphOfSteel(final ZamrielSeraphOfSteel card) {
diff --git a/Mage.Sets/src/mage/cards/z/ZuranEnchanter.java b/Mage.Sets/src/mage/cards/z/ZuranEnchanter.java
index 81e90423d99..e9dccf2d273 100644
--- a/Mage.Sets/src/mage/cards/z/ZuranEnchanter.java
+++ b/Mage.Sets/src/mage/cards/z/ZuranEnchanter.java
@@ -7,6 +7,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.discard.DiscardTargetEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -31,6 +32,7 @@ public final class ZuranEnchanter extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(1), new ManaCostsImpl<>("{2}{B}"), MyTurnCondition.instance);
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPlayer());
+ ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/z/ZurgoHelmsmasher.java b/Mage.Sets/src/mage/cards/z/ZurgoHelmsmasher.java
index e186a2584ac..1768be75d1c 100644
--- a/Mage.Sets/src/mage/cards/z/ZurgoHelmsmasher.java
+++ b/Mage.Sets/src/mage/cards/z/ZurgoHelmsmasher.java
@@ -8,6 +8,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.HasteAbility;
import mage.abilities.keyword.IndestructibleAbility;
import mage.cards.CardImpl;
@@ -40,7 +41,8 @@ public final class ZurgoHelmsmasher extends CardImpl {
this.addAbility(new SimpleStaticAbility(
new ConditionalContinuousEffect(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance,
- "during your turn, {this} has indestructible")));
+ "during your turn, {this} has indestructible"))
+ .addHint(MyTurnHint.instance));
// Whenever a creature dealt damage by Zurgo Helmsmasher this turn dies, put a +1/+1 counter on Zurgo Helmsmasher.
this.addAbility(new DealtDamageAndDiedTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false));
diff --git a/Mage/src/main/java/mage/abilities/condition/common/OnOpponentsTurnCondition.java b/Mage/src/main/java/mage/abilities/condition/common/OnOpponentsTurnCondition.java
new file mode 100644
index 00000000000..7e1f5a82bea
--- /dev/null
+++ b/Mage/src/main/java/mage/abilities/condition/common/OnOpponentsTurnCondition.java
@@ -0,0 +1,24 @@
+package mage.abilities.condition.common;
+
+import mage.abilities.Ability;
+import mage.abilities.condition.Condition;
+import mage.game.Game;
+
+/**
+ *
+ * @author LevelX2
+ */
+public enum OnOpponentsTurnCondition implements Condition {
+
+ instance;
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ return game.getOpponents(source.getControllerId()).contains(game.getActivePlayerId());
+ }
+
+ @Override
+ public String toString() {
+ return "on an opponent's turn";
+ }
+}
diff --git a/Mage/src/main/java/mage/abilities/hint/common/MyTurnHint.java b/Mage/src/main/java/mage/abilities/hint/common/MyTurnHint.java
new file mode 100644
index 00000000000..0ce99226dc5
--- /dev/null
+++ b/Mage/src/main/java/mage/abilities/hint/common/MyTurnHint.java
@@ -0,0 +1,26 @@
+package mage.abilities.hint.common;
+
+import mage.abilities.Ability;
+import mage.abilities.condition.common.MyTurnCondition;
+import mage.abilities.hint.ConditionHint;
+import mage.abilities.hint.Hint;
+import mage.game.Game;
+
+/**
+ * @author JayDi85
+ */
+public enum MyTurnHint implements Hint {
+
+ instance;
+ private static final ConditionHint hint = new ConditionHint(MyTurnCondition.instance, "It's your turn");
+
+ @Override
+ public String getText(Game game, Ability ability) {
+ return hint.getText(game, ability);
+ }
+
+ @Override
+ public Hint copy() {
+ return instance;
+ }
+}
diff --git a/Mage/src/main/java/mage/abilities/hint/common/NotMyTurnHint.java b/Mage/src/main/java/mage/abilities/hint/common/NotMyTurnHint.java
new file mode 100644
index 00000000000..9b95d0666e1
--- /dev/null
+++ b/Mage/src/main/java/mage/abilities/hint/common/NotMyTurnHint.java
@@ -0,0 +1,26 @@
+package mage.abilities.hint.common;
+
+import mage.abilities.Ability;
+import mage.abilities.condition.common.NotMyTurnCondition;
+import mage.abilities.hint.ConditionHint;
+import mage.abilities.hint.Hint;
+import mage.game.Game;
+
+/**
+ * @author JayDi85
+ */
+public enum NotMyTurnHint implements Hint {
+
+ instance;
+ private static final ConditionHint hint = new ConditionHint(NotMyTurnCondition.instance, "It's not your turn");
+
+ @Override
+ public String getText(Game game, Ability ability) {
+ return hint.getText(game, ability);
+ }
+
+ @Override
+ public Hint copy() {
+ return instance;
+ }
+}
diff --git a/Mage/src/main/java/mage/abilities/hint/common/OpponentsTurnHint.java b/Mage/src/main/java/mage/abilities/hint/common/OpponentsTurnHint.java
new file mode 100644
index 00000000000..45025733975
--- /dev/null
+++ b/Mage/src/main/java/mage/abilities/hint/common/OpponentsTurnHint.java
@@ -0,0 +1,25 @@
+package mage.abilities.hint.common;
+
+import mage.abilities.Ability;
+import mage.abilities.condition.common.OpponentsTurnCondition;
+import mage.abilities.hint.ConditionHint;
+import mage.abilities.hint.Hint;
+import mage.game.Game;
+
+/**
+ * @author TheElk801
+ */
+public enum OpponentsTurnHint implements Hint {
+ instance;
+ private static final ConditionHint hint = new ConditionHint(OpponentsTurnCondition.instance, "It's an opponent's turn");
+
+ @Override
+ public String getText(Game game, Ability ability) {
+ return hint.getText(game, ability);
+ }
+
+ @Override
+ public Hint copy() {
+ return instance;
+ }
+}
diff --git a/Mage/src/main/java/mage/abilities/keyword/LivingMetalAbility.java b/Mage/src/main/java/mage/abilities/keyword/LivingMetalAbility.java
index 967d18876ca..b06e929655c 100644
--- a/Mage/src/main/java/mage/abilities/keyword/LivingMetalAbility.java
+++ b/Mage/src/main/java/mage/abilities/keyword/LivingMetalAbility.java
@@ -4,6 +4,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.AddCardTypeSourceEffect;
+import mage.abilities.hint.common.MyTurnHint;
import mage.constants.CardType;
import mage.constants.Duration;
@@ -16,6 +17,7 @@ public class LivingMetalAbility extends SimpleStaticAbility {
super(new ConditionalContinuousEffect(new AddCardTypeSourceEffect(
Duration.WhileOnBattlefield, CardType.ARTIFACT, CardType.CREATURE
), MyTurnCondition.instance, ""));
+ this.addHint(MyTurnHint.instance);
}
protected LivingMetalAbility(final LivingMetalAbility ability) {