From a4af5501f91de2989b70bcfd1aa967e6a77bd60e Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Mon, 17 Aug 2020 04:03:54 +0400 Subject: [PATCH] * If you control a commander - added card hints; --- Mage.Sets/src/mage/cards/d/DeadlyRollick.java | 5 +++- .../src/mage/cards/d/DeflectingSwat.java | 5 +++- .../src/mage/cards/f/FierceGuardianship.java | 5 +++- .../src/mage/cards/f/FlawlessManeuver.java | 5 +++- Mage.Sets/src/mage/cards/o/ObscuringHaze.java | 5 +++- .../hint/common/ControlACommanderHint.java | 26 +++++++++++++++++++ 6 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 Mage/src/main/java/mage/abilities/hint/common/ControlACommanderHint.java diff --git a/Mage.Sets/src/mage/cards/d/DeadlyRollick.java b/Mage.Sets/src/mage/cards/d/DeadlyRollick.java index 1d259b9544b..9a9f8ce366a 100644 --- a/Mage.Sets/src/mage/cards/d/DeadlyRollick.java +++ b/Mage.Sets/src/mage/cards/d/DeadlyRollick.java @@ -3,6 +3,7 @@ package mage.cards.d; import mage.abilities.condition.common.ControlACommanderCondition; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.effects.common.ExileTargetEffect; +import mage.abilities.hint.common.ControlACommanderHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -19,7 +20,9 @@ public final class DeadlyRollick extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{B}"); // If you control a commander, you may cast this card without paying its mana cost - this.addAbility(new AlternativeCostSourceAbility(null, ControlACommanderCondition.instance)); + this.addAbility(new AlternativeCostSourceAbility(null, ControlACommanderCondition.instance) + .addHint(ControlACommanderHint.instance) + ); // Exile target creature. this.getSpellAbility().addEffect(new ExileTargetEffect()); diff --git a/Mage.Sets/src/mage/cards/d/DeflectingSwat.java b/Mage.Sets/src/mage/cards/d/DeflectingSwat.java index 616b942e7ed..74141e51cc0 100644 --- a/Mage.Sets/src/mage/cards/d/DeflectingSwat.java +++ b/Mage.Sets/src/mage/cards/d/DeflectingSwat.java @@ -3,6 +3,7 @@ package mage.cards.d; import mage.abilities.condition.common.ControlACommanderCondition; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.effects.common.ChooseNewTargetsTargetEffect; +import mage.abilities.hint.common.ControlACommanderHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -19,7 +20,9 @@ public final class DeflectingSwat extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{R}"); // If you control a commander, you may cast this spell without paying its mana cost. - this.addAbility(new AlternativeCostSourceAbility(null, ControlACommanderCondition.instance)); + this.addAbility(new AlternativeCostSourceAbility(null, ControlACommanderCondition.instance) + .addHint(ControlACommanderHint.instance) + ); // You may chose new targets for target spell or ability. this.getSpellAbility().addTarget(new TargetStackObject()); diff --git a/Mage.Sets/src/mage/cards/f/FierceGuardianship.java b/Mage.Sets/src/mage/cards/f/FierceGuardianship.java index 4e96a94fe8e..b56dd12381a 100644 --- a/Mage.Sets/src/mage/cards/f/FierceGuardianship.java +++ b/Mage.Sets/src/mage/cards/f/FierceGuardianship.java @@ -3,6 +3,7 @@ package mage.cards.f; import mage.abilities.condition.common.ControlACommanderCondition; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.effects.common.CounterTargetEffect; +import mage.abilities.hint.common.ControlACommanderHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -20,7 +21,9 @@ public final class FierceGuardianship extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}"); // If you control a commander, you may cast this spell without paying its mana cost. - this.addAbility(new AlternativeCostSourceAbility(null, ControlACommanderCondition.instance)); + this.addAbility(new AlternativeCostSourceAbility(null, ControlACommanderCondition.instance) + .addHint(ControlACommanderHint.instance) + ); // Counter target noncreature spell. this.getSpellAbility().addEffect(new CounterTargetEffect()); diff --git a/Mage.Sets/src/mage/cards/f/FlawlessManeuver.java b/Mage.Sets/src/mage/cards/f/FlawlessManeuver.java index 511d2639f9d..b4f0e2c4b68 100644 --- a/Mage.Sets/src/mage/cards/f/FlawlessManeuver.java +++ b/Mage.Sets/src/mage/cards/f/FlawlessManeuver.java @@ -3,6 +3,7 @@ package mage.cards.f; import mage.abilities.condition.common.ControlACommanderCondition; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.hint.common.ControlACommanderHint; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -21,7 +22,9 @@ public final class FlawlessManeuver extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{W}"); // If you control a commander, you may cast this spell without paying its mana cost. - this.addAbility(new AlternativeCostSourceAbility(null, ControlACommanderCondition.instance)); + this.addAbility(new AlternativeCostSourceAbility(null, ControlACommanderCondition.instance) + .addHint(ControlACommanderHint.instance) + ); // Creatures you control gain indestructible until end of turn. this.getSpellAbility().addEffect(new GainAbilityControlledEffect( diff --git a/Mage.Sets/src/mage/cards/o/ObscuringHaze.java b/Mage.Sets/src/mage/cards/o/ObscuringHaze.java index 7d6c23596d1..62c5b0699a1 100644 --- a/Mage.Sets/src/mage/cards/o/ObscuringHaze.java +++ b/Mage.Sets/src/mage/cards/o/ObscuringHaze.java @@ -3,6 +3,7 @@ package mage.cards.o; import mage.abilities.condition.common.ControlACommanderCondition; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.effects.common.PreventAllDamageByAllObjectsEffect; +import mage.abilities.hint.common.ControlACommanderHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -24,7 +25,9 @@ public final class ObscuringHaze extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{G}"); // If you control a commander, you may cast this spell without paying its mana cost. - this.addAbility(new AlternativeCostSourceAbility(null, ControlACommanderCondition.instance)); + this.addAbility(new AlternativeCostSourceAbility(null, ControlACommanderCondition.instance) + .addHint(ControlACommanderHint.instance) + ); // Prevent all damage that would be dealt this turn by creatures your opponents control. this.getSpellAbility().addEffect(new PreventAllDamageByAllObjectsEffect( diff --git a/Mage/src/main/java/mage/abilities/hint/common/ControlACommanderHint.java b/Mage/src/main/java/mage/abilities/hint/common/ControlACommanderHint.java new file mode 100644 index 00000000000..cada9250263 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/hint/common/ControlACommanderHint.java @@ -0,0 +1,26 @@ +package mage.abilities.hint.common; + +import mage.abilities.Ability; +import mage.abilities.condition.common.ControlACommanderCondition; +import mage.abilities.hint.ConditionHint; +import mage.abilities.hint.Hint; +import mage.game.Game; + +/** + * @author JayDi85 + */ +public enum ControlACommanderHint implements Hint { + + instance; + private static final ConditionHint hint = new ConditionHint(ControlACommanderCondition.instance, "You control a commander"); + + @Override + public String getText(Game game, Ability ability) { + return hint.getText(game, ability); + } + + @Override + public Hint copy() { + return instance; + } +}