diff --git a/Mage.Sets/src/mage/cards/a/AdmiralsOrder.java b/Mage.Sets/src/mage/cards/a/AdmiralsOrder.java index c152c78694b..d43cbaf41a0 100644 --- a/Mage.Sets/src/mage/cards/a/AdmiralsOrder.java +++ b/Mage.Sets/src/mage/cards/a/AdmiralsOrder.java @@ -1,32 +1,36 @@ - package mage.cards.a; -import java.util.UUID; import mage.abilities.condition.common.RaidCondition; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CounterTargetEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.target.TargetSpell; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author L_J */ -public final class AdmiralsOrder extends CardImpl { +public final class AdmiralsOrder extends CardImpl { public AdmiralsOrder(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}{U}"); // Raid - If you attacked with a creature this turn, you may pay {U} rather than pay this spell's mana cost. - this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl("{U}"), RaidCondition.instance, - "

Raid — If you attacked with a creature this turn, you may pay {U} rather than pay this spell's mana cost"), new PlayerAttackedWatcher()); + this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl("{U}"), RaidCondition.instance, + "

Raid — If you attacked with a creature this turn, you may pay {U} rather than pay this spell's mana cost"), + new PlayerAttackedWatcher()); // Counter target spell. this.getSpellAbility().addEffect(new CounterTargetEffect()); this.getSpellAbility().addTarget(new TargetSpell()); + this.getSpellAbility().setAbilityWord(AbilityWord.RAID); + this.getSpellAbility().addHint(RaidHint.instance); } public AdmiralsOrder(final AdmiralsOrder card) { diff --git a/Mage.Sets/src/mage/cards/a/ArrowStorm.java b/Mage.Sets/src/mage/cards/a/ArrowStorm.java index f8508be32d2..66efca84860 100644 --- a/Mage.Sets/src/mage/cards/a/ArrowStorm.java +++ b/Mage.Sets/src/mage/cards/a/ArrowStorm.java @@ -1,19 +1,20 @@ - package mage.cards.a; -import java.util.UUID; import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.target.common.TargetAnyTarget; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class ArrowStorm extends CardImpl { @@ -33,6 +34,8 @@ public final class ArrowStorm extends CardImpl { RaidCondition.instance, "

Raid — If you attacked with a creature this turn, instead {this} deals 5 damage to that permanent or player and the damage can't be prevented")); this.getSpellAbility().addWatcher(new PlayerAttackedWatcher()); + this.getSpellAbility().setAbilityWord(AbilityWord.RAID); + this.getSpellAbility().addHint(RaidHint.instance); } public ArrowStorm(final ArrowStorm card) { diff --git a/Mage.Sets/src/mage/cards/b/BellowingSaddlebrute.java b/Mage.Sets/src/mage/cards/b/BellowingSaddlebrute.java index 10b298ca19a..6859e2e29ea 100644 --- a/Mage.Sets/src/mage/cards/b/BellowingSaddlebrute.java +++ b/Mage.Sets/src/mage/cards/b/BellowingSaddlebrute.java @@ -1,4 +1,3 @@ - package mage.cards.b; import mage.MageInt; @@ -7,8 +6,10 @@ import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.watchers.common.PlayerAttackedWatcher; @@ -16,13 +17,12 @@ import mage.watchers.common.PlayerAttackedWatcher; import java.util.UUID; /** - * * @author LevelX2 */ public final class BellowingSaddlebrute extends CardImpl { public BellowingSaddlebrute(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); this.subtype.add(SubType.ORC, SubType.WARRIOR); this.power = new MageInt(4); @@ -30,10 +30,12 @@ public final class BellowingSaddlebrute extends CardImpl { // Raid - When Bellowing Saddlebrute enters the battlefield, you lose 4 life unless you attacked with a creature this turn this.addAbility(new ConditionalInterveningIfTriggeredAbility( - new EntersBattlefieldTriggeredAbility(new LoseLifeSourceControllerEffect(4)), - new InvertCondition(RaidCondition.instance), - "Raid — When {this} enters the battlefield, you lose 4 life unless you attacked with a creature this turn" - ), new PlayerAttackedWatcher()); + new EntersBattlefieldTriggeredAbility(new LoseLifeSourceControllerEffect(4)), + new InvertCondition(RaidCondition.instance), + "Raid — When {this} enters the battlefield, you lose 4 life unless you attacked with a creature this turn") + .setAbilityWord(AbilityWord.RAID) + .addHint(RaidHint.instance), + new PlayerAttackedWatcher()); } public BellowingSaddlebrute(final BellowingSaddlebrute card) { diff --git a/Mage.Sets/src/mage/cards/b/BloodsoakedChampion.java b/Mage.Sets/src/mage/cards/b/BloodsoakedChampion.java index b1f95878923..a930f902be5 100644 --- a/Mage.Sets/src/mage/cards/b/BloodsoakedChampion.java +++ b/Mage.Sets/src/mage/cards/b/BloodsoakedChampion.java @@ -1,7 +1,5 @@ - package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CantBlockAbility; @@ -9,15 +7,18 @@ import mage.abilities.condition.common.RaidCondition; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalActivatedAbility; import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Zone; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author emerald000 */ public final class BloodsoakedChampion extends CardImpl { @@ -39,6 +40,8 @@ public final class BloodsoakedChampion extends CardImpl { new ManaCostsImpl<>("{1}{B}"), RaidCondition.instance, "Raid — {1}{B}: Return {this} from your graveyard to the battlefield. Activate this ability only if you attacked this turn"); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/c/ChartACourse.java b/Mage.Sets/src/mage/cards/c/ChartACourse.java index 8f2d39d08ba..a111a9d465b 100644 --- a/Mage.Sets/src/mage/cards/c/ChartACourse.java +++ b/Mage.Sets/src/mage/cards/c/ChartACourse.java @@ -4,6 +4,7 @@ import mage.abilities.Ability; import mage.abilities.condition.common.RaidCondition; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -26,6 +27,8 @@ public final class ChartACourse extends CardImpl { this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2)); this.getSpellAbility().addEffect(new ChartACourseEffect()); this.getSpellAbility().addWatcher(new PlayerAttackedWatcher()); + // this.getSpellAbility().setAbilityWord(AbilityWord.RAID); // no raid ability, only same conditional + this.getSpellAbility().addHint(RaidHint.instance); } private ChartACourse(final ChartACourse card) { diff --git a/Mage.Sets/src/mage/cards/d/DeadeyeRigHauler.java b/Mage.Sets/src/mage/cards/d/DeadeyeRigHauler.java index 6db9b629c51..568a9f911e1 100644 --- a/Mage.Sets/src/mage/cards/d/DeadeyeRigHauler.java +++ b/Mage.Sets/src/mage/cards/d/DeadeyeRigHauler.java @@ -1,22 +1,23 @@ - package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.target.common.TargetCreaturePermanent; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class DeadeyeRigHauler extends CardImpl { @@ -33,6 +34,8 @@ public final class DeadeyeRigHauler extends CardImpl { Ability ability = new ConditionalInterveningIfTriggeredAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true), RaidCondition.instance, "Raid — When {this} enters the battlefield, if you attacked this turn, you may return target creature to its owner's hand."); ability.addTarget(new TargetCreaturePermanent()); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/d/DeadeyeTormentor.java b/Mage.Sets/src/mage/cards/d/DeadeyeTormentor.java index becab534009..3a68af76ed1 100644 --- a/Mage.Sets/src/mage/cards/d/DeadeyeTormentor.java +++ b/Mage.Sets/src/mage/cards/d/DeadeyeTormentor.java @@ -1,29 +1,30 @@ - package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.discard.DiscardTargetEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.target.common.TargetOpponent; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author TheElk801 */ public final class DeadeyeTormentor extends CardImpl { public DeadeyeTormentor(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); - + this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.PIRATE); this.power = new MageInt(2); @@ -33,6 +34,8 @@ public final class DeadeyeTormentor extends CardImpl { Ability ability = new ConditionalInterveningIfTriggeredAbility(new EntersBattlefieldTriggeredAbility(new DiscardTargetEffect(1)), RaidCondition.instance, "Raid — When {this} enters the battlefield, if you attacked this turn, target opponent discards a card."); ability.addTarget(new TargetOpponent()); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/f/FirecannonBlast.java b/Mage.Sets/src/mage/cards/f/FirecannonBlast.java index 0cc5613abaa..6e7a4d2affd 100644 --- a/Mage.Sets/src/mage/cards/f/FirecannonBlast.java +++ b/Mage.Sets/src/mage/cards/f/FirecannonBlast.java @@ -1,12 +1,12 @@ - package mage.cards.f; -import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; import mage.watchers.common.PlayerAttackedWatcher; @@ -30,6 +30,8 @@ public final class FirecannonBlast extends CardImpl { "{this} deals 3 damage to target creature.
Raid — {this} deals 6 damage instead if you attacked this turn")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addWatcher(new PlayerAttackedWatcher()); + this.getSpellAbility().setAbilityWord(AbilityWord.RAID); + this.getSpellAbility().addHint(RaidHint.instance); } public FirecannonBlast(final FirecannonBlast card) { diff --git a/Mage.Sets/src/mage/cards/h/HeartlessPillage.java b/Mage.Sets/src/mage/cards/h/HeartlessPillage.java index 07cab44e50c..a960175713b 100644 --- a/Mage.Sets/src/mage/cards/h/HeartlessPillage.java +++ b/Mage.Sets/src/mage/cards/h/HeartlessPillage.java @@ -1,20 +1,21 @@ - package mage.cards.h; -import java.util.UUID; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.discard.DiscardTargetEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.game.permanent.token.TreasureToken; import mage.target.common.TargetOpponent; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class HeartlessPillage extends CardImpl { @@ -32,6 +33,8 @@ public final class HeartlessPillage extends CardImpl { RaidCondition.instance, "

Raid — If you attacked with a creature this turn, create a colorless Treasure artifact token with \"{T}, Sacrifice this artifact: Add one mana of any color.\"")); this.getSpellAbility().addWatcher(new PlayerAttackedWatcher()); + this.getSpellAbility().setAbilityWord(AbilityWord.RAID); + this.getSpellAbility().addHint(RaidHint.instance); } public HeartlessPillage(final HeartlessPillage card) { diff --git a/Mage.Sets/src/mage/cards/h/HowlOfTheHorde.java b/Mage.Sets/src/mage/cards/h/HowlOfTheHorde.java index 4349c1f79c8..a7f4d7ed633 100644 --- a/Mage.Sets/src/mage/cards/h/HowlOfTheHorde.java +++ b/Mage.Sets/src/mage/cards/h/HowlOfTheHorde.java @@ -1,15 +1,15 @@ - package mage.cards.h; -import java.util.UUID; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CopyTargetSpellEffect; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.Duration; import mage.game.Game; @@ -18,24 +18,31 @@ import mage.game.stack.Spell; import mage.target.targetpointer.FixedTarget; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author emerald000 */ public final class HowlOfTheHorde extends CardImpl { public HowlOfTheHorde(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}"); // When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy. Effect effect = new CreateDelayedTriggeredAbilityEffect(new HowlOfTheHordeDelayedTriggeredAbility()); effect.setText("When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy."); this.getSpellAbility().addEffect(effect); - + // Raid — If you attacked with a creature this turn, when you cast your next instant or sorcery spell this turn, copy that spell an additional time. You may choose new targets for the copy. - this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new CreateDelayedTriggeredAbilityEffect(new HowlOfTheHordeDelayedTriggeredAbility()), RaidCondition.instance, "

Raid — If you attacked with a creature this turn, when you cast your next instant or sorcery spell this turn, copy that spell an additional time. You may choose new targets for the copy.")); + this.getSpellAbility().addEffect(new ConditionalOneShotEffect( + new CreateDelayedTriggeredAbilityEffect(new HowlOfTheHordeDelayedTriggeredAbility()), + RaidCondition.instance, + "

Raid — If you attacked with a creature this turn, when you cast your next instant or sorcery spell this turn, copy that spell an additional time. You may choose new targets for the copy.") + ); this.getSpellAbility().addWatcher(new PlayerAttackedWatcher()); + this.getSpellAbility().setAbilityWord(AbilityWord.RAID); + this.getSpellAbility().addHint(RaidHint.instance); } public HowlOfTheHorde(final HowlOfTheHorde card) { @@ -49,7 +56,7 @@ public final class HowlOfTheHorde extends CardImpl { } class HowlOfTheHordeDelayedTriggeredAbility extends DelayedTriggeredAbility { - + HowlOfTheHordeDelayedTriggeredAbility() { super(new CopyTargetSpellEffect(true), Duration.EndOfTurn); } @@ -70,11 +77,11 @@ class HowlOfTheHordeDelayedTriggeredAbility extends DelayedTriggeredAbility { @Override public boolean checkTrigger(GameEvent event, Game game) { - if (event.getPlayerId().equals(this.getControllerId())) { + if (event.getPlayerId().equals(this.getControllerId())) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && (spell.isInstant() || spell.isSorcery())) { for (Effect effect : this.getEffects()) { - effect.setTargetPointer(new FixedTarget(event.getTargetId())); + effect.setTargetPointer(new FixedTarget(event.getTargetId())); } return true; } diff --git a/Mage.Sets/src/mage/cards/m/MaraudingLooter.java b/Mage.Sets/src/mage/cards/m/MaraudingLooter.java index 61d6bafce63..e0e52993ca3 100644 --- a/Mage.Sets/src/mage/cards/m/MaraudingLooter.java +++ b/Mage.Sets/src/mage/cards/m/MaraudingLooter.java @@ -1,22 +1,23 @@ - package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.DrawDiscardControllerEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.TargetController; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author TheElk801 */ public final class MaraudingLooter extends CardImpl { @@ -34,8 +35,10 @@ public final class MaraudingLooter extends CardImpl { new BeginningOfEndStepTriggeredAbility(new DrawDiscardControllerEffect(1, 1, true), TargetController.YOU, false), RaidCondition.instance, "Raid — At the beginning of your end step, " - + "if you attacked this turn, " - + "you may draw a card. If you do, discard a card."); + + "if you attacked this turn, " + + "you may draw a card. If you do, discard a card."); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/m/MarduHeartPiercer.java b/Mage.Sets/src/mage/cards/m/MarduHeartPiercer.java index 1c7a68b9f2f..d33732125da 100644 --- a/Mage.Sets/src/mage/cards/m/MarduHeartPiercer.java +++ b/Mage.Sets/src/mage/cards/m/MarduHeartPiercer.java @@ -1,28 +1,29 @@ - package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.target.common.TargetAnyTarget; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class MarduHeartPiercer extends CardImpl { public MarduHeartPiercer(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.ARCHER); @@ -33,6 +34,8 @@ public final class MarduHeartPiercer extends CardImpl { Ability ability = new ConditionalInterveningIfTriggeredAbility(new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2)), RaidCondition.instance, "Raid — When {this} enters the battlefield, if you attacked this turn, {this} deals 2 damage to any target."); ability.addTarget(new TargetAnyTarget()); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/m/MarduHordechief.java b/Mage.Sets/src/mage/cards/m/MarduHordechief.java index 3aba8225636..891f06fe6df 100644 --- a/Mage.Sets/src/mage/cards/m/MarduHordechief.java +++ b/Mage.Sets/src/mage/cards/m/MarduHordechief.java @@ -1,21 +1,22 @@ - package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.game.permanent.token.WarriorToken; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author emerald000 */ public final class MarduHordechief extends CardImpl { @@ -29,8 +30,12 @@ public final class MarduHordechief extends CardImpl { this.toughness = new MageInt(3); // Raid — When Mardu Hordechief enters the battlefield, if you attacked this turn, create a 1/1 white Warrior creature token - this.addAbility(new ConditionalInterveningIfTriggeredAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WarriorToken())), RaidCondition.instance, - "Raid — When {this} enters the battlefield, if you attacked this turn, create a 1/1 white Warrior creature token."), + this.addAbility(new ConditionalInterveningIfTriggeredAbility(new EntersBattlefieldTriggeredAbility( + new CreateTokenEffect(new WarriorToken())), + RaidCondition.instance, + "Raid — When {this} enters the battlefield, if you attacked this turn, create a 1/1 white Warrior creature token.") + .setAbilityWord(AbilityWord.RAID) + .addHint(RaidHint.instance), new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/m/MarduSkullhunter.java b/Mage.Sets/src/mage/cards/m/MarduSkullhunter.java index a5b80760826..032141f31d7 100644 --- a/Mage.Sets/src/mage/cards/m/MarduSkullhunter.java +++ b/Mage.Sets/src/mage/cards/m/MarduSkullhunter.java @@ -1,7 +1,5 @@ - package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; @@ -9,21 +7,24 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.discard.DiscardTargetEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.target.common.TargetOpponent; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class MarduSkullhunter extends CardImpl { public MarduSkullhunter(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.WARRIOR); @@ -37,6 +38,8 @@ public final class MarduSkullhunter extends CardImpl { Ability ability = new ConditionalInterveningIfTriggeredAbility(new EntersBattlefieldTriggeredAbility(new DiscardTargetEffect(1)), RaidCondition.instance, "Raid — When {this} enters the battlefield, if you attacked this turn, target opponent discards a card."); ability.addTarget(new TargetOpponent()); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/m/MarduWarshrieker.java b/Mage.Sets/src/mage/cards/m/MarduWarshrieker.java index e9b550f83c5..7f05f3fa649 100644 --- a/Mage.Sets/src/mage/cards/m/MarduWarshrieker.java +++ b/Mage.Sets/src/mage/cards/m/MarduWarshrieker.java @@ -1,21 +1,22 @@ - package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.mana.AddManaToManaPoolSourceControllerEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class MarduWarshrieker extends CardImpl { @@ -29,8 +30,12 @@ public final class MarduWarshrieker extends CardImpl { this.toughness = new MageInt(3); // Raid - When Mardu Warshrieker enters the battlefield, if you attacked this turn, add {R}{W}{B}. - this.addAbility(new ConditionalInterveningIfTriggeredAbility(new EntersBattlefieldTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(new Mana(1, 0, 0, 1, 1, 0, 0, 0))), RaidCondition.instance, - "Raid — When {this} enters the battlefield, if you attacked this turn, add {R}{W}{B}."), + this.addAbility(new ConditionalInterveningIfTriggeredAbility(new EntersBattlefieldTriggeredAbility( + new AddManaToManaPoolSourceControllerEffect(new Mana(1, 0, 0, 1, 1, 0, 0, 0))), + RaidCondition.instance, + "Raid — When {this} enters the battlefield, if you attacked this turn, add {R}{W}{B}.") + .setAbilityWord(AbilityWord.RAID) + .addHint(RaidHint.instance), new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/n/NavigatorsRuin.java b/Mage.Sets/src/mage/cards/n/NavigatorsRuin.java index d9fe043d271..225e1238808 100644 --- a/Mage.Sets/src/mage/cards/n/NavigatorsRuin.java +++ b/Mage.Sets/src/mage/cards/n/NavigatorsRuin.java @@ -5,8 +5,10 @@ import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.TargetController; import mage.target.common.TargetOpponent; @@ -23,13 +25,15 @@ public final class NavigatorsRuin extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{U}"); // Raid - At the beginning of your end step, if you attacked with a creature this turm, target opponent puts the top four cards of their library into their graveyard. - Ability ability = new ConditionalInterveningIfTriggeredAbility( - new BeginningOfEndStepTriggeredAbility( - new PutLibraryIntoGraveTargetEffect(4), TargetController.YOU, false - ), RaidCondition.instance, "Raid — At the beginning of your end step, " + - "if you attacked this turn, target opponent mills four cards." + Ability ability = new ConditionalInterveningIfTriggeredAbility(new BeginningOfEndStepTriggeredAbility( + new PutLibraryIntoGraveTargetEffect(4), TargetController.YOU, false), + RaidCondition.instance, + "Raid — At the beginning of your end step, " + + "if you attacked this turn, target opponent mills four cards." ); ability.addTarget(new TargetOpponent()); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/n/NightsquadCommando.java b/Mage.Sets/src/mage/cards/n/NightsquadCommando.java index 15e60891de5..8ae8c016bc7 100644 --- a/Mage.Sets/src/mage/cards/n/NightsquadCommando.java +++ b/Mage.Sets/src/mage/cards/n/NightsquadCommando.java @@ -5,8 +5,10 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.game.permanent.token.HumanSoldierToken; @@ -29,10 +31,12 @@ public final class NightsquadCommando extends CardImpl { // When Nightsquad Commando enters the battlefield, if you attacked this turn, create a 1/1 white Human Soldier creature token. this.addAbility(new ConditionalInterveningIfTriggeredAbility( - new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new HumanSoldierToken())), - RaidCondition.instance, "When {this} enters the battlefield, " + - "if you attacked this turn, create a 1/1 white Human Soldier creature token." - ), new PlayerAttackedWatcher()); + new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new HumanSoldierToken())), + RaidCondition.instance, "When {this} enters the battlefield, " + + "if you attacked this turn, create a 1/1 white Human Soldier creature token.") + .setAbilityWord(AbilityWord.RAID) + .addHint(RaidHint.instance), + new PlayerAttackedWatcher()); } private NightsquadCommando(final NightsquadCommando card) { diff --git a/Mage.Sets/src/mage/cards/p/ProteanRaider.java b/Mage.Sets/src/mage/cards/p/ProteanRaider.java index e1aee66bd8b..0e5ee02b6bd 100644 --- a/Mage.Sets/src/mage/cards/p/ProteanRaider.java +++ b/Mage.Sets/src/mage/cards/p/ProteanRaider.java @@ -1,18 +1,20 @@ - package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.effects.common.CopyPermanentEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** * @author JayDi85 */ @@ -29,6 +31,8 @@ public final class ProteanRaider extends CardImpl { // Raid — If you attacked with a creature this turn, you may have Protean Raider enter the battlefield as a copy of any creature on the battlefield. Ability ability = new EntersBattlefieldAbility(new CopyPermanentEffect(), true, RaidCondition.instance, "Raid — If you attacked with a creature this turn, you may have {this} enter the battlefield as a copy of any creature on the battlefield.", ""); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/r/RaidersWake.java b/Mage.Sets/src/mage/cards/r/RaidersWake.java index 36fad0226c5..e99f74624df 100644 --- a/Mage.Sets/src/mage/cards/r/RaidersWake.java +++ b/Mage.Sets/src/mage/cards/r/RaidersWake.java @@ -1,7 +1,5 @@ - package mage.cards.r; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.DiscardsACardOpponentTriggeredAbility; @@ -9,16 +7,19 @@ import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.effects.common.discard.DiscardTargetEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SetTargetPointer; import mage.constants.TargetController; import mage.target.common.TargetOpponent; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author TheElk801 */ public final class RaidersWake extends CardImpl { @@ -34,6 +35,8 @@ public final class RaidersWake extends CardImpl { new BeginningOfEndStepTriggeredAbility(new DiscardTargetEffect(1), TargetController.YOU, false), RaidCondition.instance, "Raid — At the beginning of your end step, if you attacked this turn, target opponent discards a card."); ability.addTarget(new TargetOpponent()); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/r/RepeatingBarrage.java b/Mage.Sets/src/mage/cards/r/RepeatingBarrage.java index e0c8ba253da..530ea6ec3d0 100644 --- a/Mage.Sets/src/mage/cards/r/RepeatingBarrage.java +++ b/Mage.Sets/src/mage/cards/r/RepeatingBarrage.java @@ -1,13 +1,12 @@ - package mage.cards.r; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.RaidCondition; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalActivatedAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AbilityWord; @@ -16,8 +15,9 @@ import mage.constants.Zone; import mage.target.common.TargetAnyTarget; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author TheElk801 */ public final class RepeatingBarrage extends CardImpl { @@ -35,6 +35,7 @@ public final class RepeatingBarrage extends CardImpl { new ManaCostsImpl("{3}{R}{R}"), RaidCondition.instance); ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/r/RiggingRunner.java b/Mage.Sets/src/mage/cards/r/RiggingRunner.java index 2e753acd2b1..5cd6688ab42 100644 --- a/Mage.Sets/src/mage/cards/r/RiggingRunner.java +++ b/Mage.Sets/src/mage/cards/r/RiggingRunner.java @@ -1,21 +1,22 @@ - package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.hint.common.RaidHint; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.counters.CounterType; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class RiggingRunner extends CardImpl { @@ -33,9 +34,11 @@ public final class RiggingRunner extends CardImpl { // Raid — Rigging Runner enters the battlefield with a +1/+1 counter on it if you attacked this turn. this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1), false), - RaidCondition.instance, - "Raid — {this} enters the battlefield with a +1/+1 counter on it if you attacked this turn.", - "{this} enters the battlefield with a +1/+1 counter"), + RaidCondition.instance, + "Raid — {this} enters the battlefield with a +1/+1 counter on it if you attacked this turn.", + "{this} enters the battlefield with a +1/+1 counter") + .setAbilityWord(AbilityWord.RAID) + .addHint(RaidHint.instance), new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/r/RuinRaider.java b/Mage.Sets/src/mage/cards/r/RuinRaider.java index 6b1f4e6896e..b91f50cd77c 100644 --- a/Mage.Sets/src/mage/cards/r/RuinRaider.java +++ b/Mage.Sets/src/mage/cards/r/RuinRaider.java @@ -1,29 +1,21 @@ - package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.SubType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.abilities.hint.common.RaidHint; +import mage.cards.*; +import mage.constants.*; import mage.game.Game; import mage.players.Player; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author TheElk801 */ public final class RuinRaider extends CardImpl { @@ -41,8 +33,10 @@ public final class RuinRaider extends CardImpl { new BeginningOfEndStepTriggeredAbility(new RuinRaiderEffect(), TargetController.YOU, false), RaidCondition.instance, "Raid — At the beginning of your end step, if you attacked this turn, " - + "reveal the top card of your library and put that card into your hand. " - + "You lose life equal to the card's converted mana cost."); + + "reveal the top card of your library and put that card into your hand. " + + "You lose life equal to the card's converted mana cost."); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/s/ShipwreckLooter.java b/Mage.Sets/src/mage/cards/s/ShipwreckLooter.java index f78eb33da0f..202318de1e2 100644 --- a/Mage.Sets/src/mage/cards/s/ShipwreckLooter.java +++ b/Mage.Sets/src/mage/cards/s/ShipwreckLooter.java @@ -1,21 +1,22 @@ - package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.DrawDiscardControllerEffect; -import mage.constants.SubType; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; +import mage.constants.SubType; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author TheElk801 */ public final class ShipwreckLooter extends CardImpl { @@ -33,6 +34,8 @@ public final class ShipwreckLooter extends CardImpl { new EntersBattlefieldTriggeredAbility(new DrawDiscardControllerEffect(1, 1, true)), RaidCondition.instance, "Raid — When {this} enters the battlefield, if you attacked this turn, you may draw a card. If you do, discard a card."); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/s/SirenReaver.java b/Mage.Sets/src/mage/cards/s/SirenReaver.java index edce1c538f8..713816d357a 100644 --- a/Mage.Sets/src/mage/cards/s/SirenReaver.java +++ b/Mage.Sets/src/mage/cards/s/SirenReaver.java @@ -1,11 +1,11 @@ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect; +import mage.abilities.hint.common.RaidHint; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -15,8 +15,9 @@ import mage.constants.SubType; import mage.constants.Zone; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class SirenReaver extends CardImpl { @@ -31,13 +32,13 @@ public final class SirenReaver extends CardImpl { // Raid — Siren Reaver costs {1} less to cast if you attacked this turn. Ability ability = new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(1, RaidCondition.instance)); - ability.setAbilityWord(AbilityWord.RAID); ability.setRuleAtTheTop(true); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); // Flying this.addAbility(FlyingAbility.getInstance()); - } public SirenReaver(final SirenReaver card) { diff --git a/Mage.Sets/src/mage/cards/s/StormFleetAerialist.java b/Mage.Sets/src/mage/cards/s/StormFleetAerialist.java index 842d33e58c6..2ce64f21feb 100644 --- a/Mage.Sets/src/mage/cards/s/StormFleetAerialist.java +++ b/Mage.Sets/src/mage/cards/s/StormFleetAerialist.java @@ -1,21 +1,22 @@ - package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.hint.common.RaidHint; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.counters.CounterType; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author TheElk801 */ public final class StormFleetAerialist extends CardImpl { @@ -33,9 +34,11 @@ public final class StormFleetAerialist extends CardImpl { // Raid - Storm Fleet Aerialist enters the battlefield with a +1/+1 counter on it if you attacked this turn. this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1), false), - RaidCondition.instance, - "Raid — {this} enters the battlefield with a +1/+1 counter on it if you attacked this turn.", - "{this} enters the battlefield with a +1/+1 counter"), + RaidCondition.instance, + "Raid — {this} enters the battlefield with a +1/+1 counter on it if you attacked this turn.", + "{this} enters the battlefield with a +1/+1 counter") + .setAbilityWord(AbilityWord.RAID) + .addHint(RaidHint.instance), new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/s/StormFleetArsonist.java b/Mage.Sets/src/mage/cards/s/StormFleetArsonist.java index f11256b5d05..cad88cdba21 100644 --- a/Mage.Sets/src/mage/cards/s/StormFleetArsonist.java +++ b/Mage.Sets/src/mage/cards/s/StormFleetArsonist.java @@ -1,23 +1,24 @@ - package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.SacrificeEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.filter.FilterPermanent; import mage.target.common.TargetOpponent; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author TheElk801 */ public final class StormFleetArsonist extends CardImpl { @@ -36,6 +37,8 @@ public final class StormFleetArsonist extends CardImpl { RaidCondition.instance, "Raid — When {this} enters the battlefield, if you attacked this turn, target opponent sacrifices a permanent."); ability.addTarget(new TargetOpponent()); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/s/StormFleetPyromancer.java b/Mage.Sets/src/mage/cards/s/StormFleetPyromancer.java index 89c606b7bcd..444490c8542 100644 --- a/Mage.Sets/src/mage/cards/s/StormFleetPyromancer.java +++ b/Mage.Sets/src/mage/cards/s/StormFleetPyromancer.java @@ -1,22 +1,23 @@ - package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.target.common.TargetAnyTarget; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class StormFleetPyromancer extends CardImpl { @@ -36,6 +37,8 @@ public final class StormFleetPyromancer extends CardImpl { RaidCondition.instance, "Raid — When {this} enters the battlefield, if you attacked this turn, {this} deals 2 damage to any target."); ability.addTarget(new TargetAnyTarget()); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/s/StormFleetSpy.java b/Mage.Sets/src/mage/cards/s/StormFleetSpy.java index e5d919829c1..f69fca61a7b 100644 --- a/Mage.Sets/src/mage/cards/s/StormFleetSpy.java +++ b/Mage.Sets/src/mage/cards/s/StormFleetSpy.java @@ -1,21 +1,22 @@ - package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class StormFleetSpy extends CardImpl { @@ -33,6 +34,8 @@ public final class StormFleetSpy extends CardImpl { new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1)), RaidCondition.instance, "Raid — When {this} enters the battlefield, if you attacked this turn, draw a card."); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/s/SwaggeringCorsair.java b/Mage.Sets/src/mage/cards/s/SwaggeringCorsair.java index 01ab2ba6a7a..eadcb1db166 100644 --- a/Mage.Sets/src/mage/cards/s/SwaggeringCorsair.java +++ b/Mage.Sets/src/mage/cards/s/SwaggeringCorsair.java @@ -1,19 +1,20 @@ - package mage.cards.s; -import java.util.UUID; - import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.counters.CounterType; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** * @author JayDi85 */ @@ -29,10 +30,12 @@ public final class SwaggeringCorsair extends CardImpl { // Raid — Swaggering Corsair enters the battlefield with a +1/+1 counter on it if you attacked this turn. this.addAbility(new EntersBattlefieldAbility( - new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), - RaidCondition.instance, - "Raid — {this} enters the battlefield with a +1/+1 counter on it if you attacked this turn.", "" - ), new PlayerAttackedWatcher()); + new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), + RaidCondition.instance, + "Raid — {this} enters the battlefield with a +1/+1 counter on it if you attacked this turn.", "") + .setAbilityWord(AbilityWord.RAID) + .addHint(RaidHint.instance), + new PlayerAttackedWatcher()); } public SwaggeringCorsair(final SwaggeringCorsair card) { diff --git a/Mage.Sets/src/mage/cards/t/TimelyHordemate.java b/Mage.Sets/src/mage/cards/t/TimelyHordemate.java index 6fede85dbe9..9598467d86b 100644 --- a/Mage.Sets/src/mage/cards/t/TimelyHordemate.java +++ b/Mage.Sets/src/mage/cards/t/TimelyHordemate.java @@ -1,25 +1,26 @@ - package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.ComparisonType; +import mage.constants.SubType; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInYourGraveyard; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class TimelyHordemate extends CardImpl { @@ -42,6 +43,8 @@ public final class TimelyHordemate extends CardImpl { Ability ability = new ConditionalInterveningIfTriggeredAbility(new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect()), RaidCondition.instance, "Raid — When {this} enters the battlefield, if you attacked this turn, return target creature card with converted mana cost 2 or less from your graveyard to the battlefield."); ability.addTarget(new TargetCardInYourGraveyard(filter)); + ability.setAbilityWord(AbilityWord.RAID); + ability.addHint(RaidHint.instance); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/w/WarNameAspirant.java b/Mage.Sets/src/mage/cards/w/WarNameAspirant.java index 1c541c03797..2ab466222d9 100644 --- a/Mage.Sets/src/mage/cards/w/WarNameAspirant.java +++ b/Mage.Sets/src/mage/cards/w/WarNameAspirant.java @@ -1,26 +1,23 @@ - package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.SubType; -import mage.constants.ComparisonType; -import mage.constants.Duration; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author emerald000 */ public final class WarNameAspirant extends CardImpl { @@ -41,9 +38,11 @@ public final class WarNameAspirant extends CardImpl { // Raid — War-Name Aspirant enters the battlefield with a +1/+1 counter on it if you attacked this turn. this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1), false), - RaidCondition.instance, - "Raid — {this} enters the battlefield with a +1/+1 counter on it if you attacked this turn", - "{this} enters the battlefield with a +1/+1 counter"), + RaidCondition.instance, + "Raid — {this} enters the battlefield with a +1/+1 counter on it if you attacked this turn", + "{this} enters the battlefield with a +1/+1 counter") + .setAbilityWord(AbilityWord.RAID) + .addHint(RaidHint.instance), new PlayerAttackedWatcher()); // War-Name Aspirant can't be blocked by creatures with power 1 or less. diff --git a/Mage.Sets/src/mage/cards/w/WingmateRoc.java b/Mage.Sets/src/mage/cards/w/WingmateRoc.java index 9d2e4b27e23..a2a9ff5c915 100644 --- a/Mage.Sets/src/mage/cards/w/WingmateRoc.java +++ b/Mage.Sets/src/mage/cards/w/WingmateRoc.java @@ -1,7 +1,5 @@ - package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -11,16 +9,19 @@ import mage.abilities.dynamicvalue.common.AttackingCreatureCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.hint.common.RaidHint; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.SubType; import mage.game.permanent.token.WingmateRocToken; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** - * * @author emerald000 */ public final class WingmateRoc extends CardImpl { @@ -35,9 +36,11 @@ public final class WingmateRoc extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); - // Raid - When Wingmate Roc enters the battlefield, if you attacked this turn, create a 3/4 white Bird creature token with flying. + // Raid — When Wingmate Roc enters the battlefield, if you attacked this turn, create a 3/4 white Bird creature token with flying. this.addAbility(new ConditionalInterveningIfTriggeredAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WingmateRocToken())), RaidCondition.instance, - "Raid — When {this} enters the battlefield, if you attacked this turn, create a 3/4 white Bird creature token with flying."), + "Raid — When {this} enters the battlefield, if you attacked this turn, create a 3/4 white Bird creature token with flying.") + .setAbilityWord(AbilityWord.RAID) + .addHint(RaidHint.instance), new PlayerAttackedWatcher()); // Whenever Wingmate Roc attacks, you gain 1 life for each attacking creature. diff --git a/Mage/src/main/java/mage/abilities/hint/common/RaidHint.java b/Mage/src/main/java/mage/abilities/hint/common/RaidHint.java new file mode 100644 index 00000000000..c941746a2b3 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/hint/common/RaidHint.java @@ -0,0 +1,26 @@ +package mage.abilities.hint.common; + +import mage.abilities.Ability; +import mage.abilities.condition.common.RaidCondition; +import mage.abilities.hint.ConditionHint; +import mage.abilities.hint.Hint; +import mage.game.Game; + +/** + * @author JayDi85 + */ +public enum RaidHint implements Hint { + + instance; + private static final ConditionHint hint = new ConditionHint(RaidCondition.instance, "You attacked this turn"); + + @Override + public String getText(Game game, Ability ability) { + return hint.getText(game, ability); + } + + @Override + public Hint copy() { + return instance; + } +}