* Raid abilities - added card hints about raid condition, fixed missing ability words;

This commit is contained in:
Oleg Agafonov 2020-07-28 04:25:43 +04:00
parent 3810a6230d
commit fdc32f891e
33 changed files with 266 additions and 151 deletions

View file

@ -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,
"<br/><br/><i>Raid</i> &mdash; 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,
"<br/><br/><i>Raid</i> &mdash; 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) {

View file

@ -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,
"<br/><br/><i>Raid</i> &mdash; 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) {

View file

@ -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),
"<i>Raid</i> &mdash; 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),
"<i>Raid</i> &mdash; 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) {

View file

@ -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,
"<i>Raid</i> &mdash; {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());
}

View file

@ -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) {

View file

@ -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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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.<br><i>Raid</i> &mdash; {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) {

View file

@ -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,
"<br/><br/><i>Raid</i> &mdash; 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) {

View file

@ -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);
// <i>Raid</i> &mdash; 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, "<br><br><i>Raid</i> &mdash; 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,
"<br><br><i>Raid</i> &mdash; 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;
}

View file

@ -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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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);
// <i>Raid</i> &mdash; 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,
"<i>Raid</i> &mdash; 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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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);
// <em>Raid</em> - 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,
"<i>Raid</i> &mdash; 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,
"<i>Raid</i> &mdash; When {this} enters the battlefield, if you attacked this turn, add {R}{W}{B}.")
.setAbilityWord(AbilityWord.RAID)
.addHint(RaidHint.instance),
new PlayerAttackedWatcher());
}

View file

@ -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, "<i>Raid</i> &mdash; 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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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) {

View file

@ -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 {
// <i>Raid</i> &mdash; 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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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());
}

View file

@ -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,
"<i>Raid</i> &mdash; {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,
"<i>Raid</i> &mdash; {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());
}

View file

@ -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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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 {
// <i>Raid</i> 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) {

View file

@ -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,
"<i>Raid</i> &mdash; {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,
"<i>Raid</i> &mdash; {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());
}

View file

@ -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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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 {
// <i>Raid</i> &mdash; 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,
"<i>Raid</i> &mdash; {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,
"<i>Raid</i> &mdash; {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) {

View file

@ -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,
"<i>Raid</i> &mdash; 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());
}

View file

@ -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 {
// <i>Raid</i> &mdash; 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,
"<i>Raid</i> &mdash; {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,
"<i>Raid</i> &mdash; {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.

View file

@ -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());
// <em>Raid</em> - When Wingmate Roc enters the battlefield, if you attacked this turn, create a 3/4 white Bird creature token with flying.
// <i>Raid</i> &mdash; 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,
"<i>Raid</i> &mdash; When {this} enters the battlefield, if you attacked this turn, create a 3/4 white Bird creature token with flying."),
"<i>Raid</i> &mdash; 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.

View file

@ -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;
}
}