Merge pull request #3437 from ingmargoudt/newcards

Newcards
This commit is contained in:
ingmargoudt 2017-05-26 17:00:41 +02:00 committed by GitHub
commit 5e8c03f0d9
48 changed files with 191 additions and 71 deletions

View file

@ -80,7 +80,7 @@ public class AbolisherOfBloodlines extends CardImpl {
class AbolisherOfBloodlinesAbility extends TriggeredAbilityImpl { class AbolisherOfBloodlinesAbility extends TriggeredAbilityImpl {
public static final String RULE_TEXT = "When this creature transforms into Abolisher of Bloodlines, target opponent sacrifices three creatures"; static final String RULE_TEXT = "When this creature transforms into Abolisher of Bloodlines, target opponent sacrifices three creatures";
public AbolisherOfBloodlinesAbility() { public AbolisherOfBloodlinesAbility() {
super(Zone.BATTLEFIELD, new SacrificeEffect(new FilterCreaturePermanent(), 3, "Target opponent"), false); super(Zone.BATTLEFIELD, new SacrificeEffect(new FilterCreaturePermanent(), 3, "Target opponent"), false);

View file

@ -48,7 +48,7 @@ import java.util.UUID;
*/ */
public class Befoul extends CardImpl { public class Befoul extends CardImpl {
public static final FilterPermanent filter = new FilterPermanent("land or nonblack creature"); static final FilterPermanent filter = new FilterPermanent("land or nonblack creature");
static { static {
filter.add(Predicates.or( filter.add(Predicates.or(

View file

@ -43,7 +43,7 @@ import java.util.UUID;
*/ */
public class BelovedChaplain extends CardImpl { public class BelovedChaplain extends CardImpl {
public static final FilterCard filter = new FilterCard("creatures"); static final FilterCard filter = new FilterCard("creatures");
static { static {
filter.add(new CardTypePredicate(CardType.CREATURE)); filter.add(new CardTypePredicate(CardType.CREATURE));

View file

@ -48,7 +48,7 @@ import java.util.UUID;
*/ */
public class BraidsCabalMinion extends CardImpl { public class BraidsCabalMinion extends CardImpl {
public static final FilterPermanent filter = new FilterPermanent("artifact, creature, or land"); static final FilterPermanent filter = new FilterPermanent("artifact, creature, or land");
static { static {
filter.add(Predicates.or(new CardTypePredicate(CardType.ARTIFACT), filter.add(Predicates.or(new CardTypePredicate(CardType.ARTIFACT),

View file

@ -49,7 +49,7 @@ import java.util.UUID;
*/ */
public class Cantivore extends CardImpl { public class Cantivore extends CardImpl {
public static final FilterCard filter = new FilterCard("enchantment cards"); static final FilterCard filter = new FilterCard("enchantment cards");
static { static {
filter.add(new CardTypePredicate(CardType.ENCHANTMENT)); filter.add(new CardTypePredicate(CardType.ENCHANTMENT));

View file

@ -45,21 +45,20 @@ import mage.game.Game;
import java.util.UUID; import java.util.UUID;
/** /**
*
* @author fireshoes * @author fireshoes
*/ */
public class CoalitionVictory extends CardImpl { public class CoalitionVictory extends CardImpl {
public static final FilterControlledLandPermanent filterPlains = new FilterControlledLandPermanent(); static final FilterControlledLandPermanent filterPlains = new FilterControlledLandPermanent();
public static final FilterControlledLandPermanent filterIsland = new FilterControlledLandPermanent(); static final FilterControlledLandPermanent filterIsland = new FilterControlledLandPermanent();
public static final FilterControlledLandPermanent filterSwamp = new FilterControlledLandPermanent(); static final FilterControlledLandPermanent filterSwamp = new FilterControlledLandPermanent();
public static final FilterControlledLandPermanent filterMountain = new FilterControlledLandPermanent(); static final FilterControlledLandPermanent filterMountain = new FilterControlledLandPermanent();
public static final FilterControlledLandPermanent filterForest = new FilterControlledLandPermanent(); static final FilterControlledLandPermanent filterForest = new FilterControlledLandPermanent();
public static final FilterControlledCreaturePermanent filterWhite = new FilterControlledCreaturePermanent(); static final FilterControlledCreaturePermanent filterWhite = new FilterControlledCreaturePermanent();
public static final FilterControlledCreaturePermanent filterBlue = new FilterControlledCreaturePermanent(); static final FilterControlledCreaturePermanent filterBlue = new FilterControlledCreaturePermanent();
public static final FilterControlledCreaturePermanent filterBlack = new FilterControlledCreaturePermanent(); static final FilterControlledCreaturePermanent filterBlack = new FilterControlledCreaturePermanent();
public static final FilterControlledCreaturePermanent filterRed = new FilterControlledCreaturePermanent(); static final FilterControlledCreaturePermanent filterRed = new FilterControlledCreaturePermanent();
public static final FilterControlledCreaturePermanent filterGreen = new FilterControlledCreaturePermanent(); static final FilterControlledCreaturePermanent filterGreen = new FilterControlledCreaturePermanent();
static { static {
filterPlains.add(new SubtypePredicate(SubType.PLAINS)); filterPlains.add(new SubtypePredicate(SubType.PLAINS));
@ -75,7 +74,7 @@ public class CoalitionVictory extends CardImpl {
} }
public CoalitionVictory(UUID ownerId, CardSetInfo setInfo) { public CoalitionVictory(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{W}{U}{B}{R}{G}"); super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{W}{U}{B}{R}{G}");
// You win the game if you control a land of each basic land type and a creature of each color. // You win the game if you control a land of each basic land type and a creature of each color.
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new WinGameSourceControllerEffect(), this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new WinGameSourceControllerEffect(),

View file

@ -44,19 +44,18 @@ import mage.filter.predicate.mageobject.CardTypePredicate;
import java.util.UUID; import java.util.UUID;
/** /**
*
* @author cbt33 * @author cbt33
*/ */
public class Cognivore extends CardImpl { public class Cognivore extends CardImpl {
public static final FilterCard filter = new FilterCard("instant cards"); static final FilterCard filter = new FilterCard("instant cards");
static { static {
filter.add(new CardTypePredicate(CardType.INSTANT)); filter.add(new CardTypePredicate(CardType.INSTANT));
} }
public Cognivore(UUID ownerId, CardSetInfo setInfo) { public Cognivore(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{U}{U}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{6}{U}{U}");
this.subtype.add("Lhurgoyf"); this.subtype.add("Lhurgoyf");
this.power = new MageInt(0); this.power = new MageInt(0);

View file

@ -45,7 +45,7 @@ import java.util.UUID;
*/ */
public class CommanderEesha extends CardImpl { public class CommanderEesha extends CardImpl {
public static final FilterCard filter = new FilterCard("creatures"); static final FilterCard filter = new FilterCard("creatures");
static { static {
filter.add(new CardTypePredicate(CardType.CREATURE)); filter.add(new CardTypePredicate(CardType.CREATURE));

View file

@ -50,7 +50,7 @@ import java.util.UUID;
*/ */
public class ConsumeSpirit extends CardImpl { public class ConsumeSpirit extends CardImpl {
public static final FilterMana filterBlack = new FilterMana(); static final FilterMana filterBlack = new FilterMana();
static { static {
filterBlack.setBlack(true); filterBlack.setBlack(true);

View file

@ -49,7 +49,7 @@ import java.util.UUID;
*/ */
public class Crypsis extends CardImpl { public class Crypsis extends CardImpl {
public static final FilterCard filter = new FilterCard("creatures your opponents control"); static final FilterCard filter = new FilterCard("creatures your opponents control");
static { static {
filter.add(new CardTypePredicate(CardType.CREATURE)); filter.add(new CardTypePredicate(CardType.CREATURE));

View file

@ -51,7 +51,7 @@ import java.util.UUID;
*/ */
public class CryptRats extends CardImpl { public class CryptRats extends CardImpl {
public static final FilterMana filterBlack = new FilterMana(); static final FilterMana filterBlack = new FilterMana();
static { static {
filterBlack.setBlack(true); filterBlack.setBlack(true);

View file

@ -43,7 +43,7 @@ import java.util.UUID;
*/ */
public class DejaVu extends CardImpl { public class DejaVu extends CardImpl {
public static final FilterCard filter = new FilterCard("sorcery card from your graveyard"); static final FilterCard filter = new FilterCard("sorcery card from your graveyard");
static { static {
filter.add(new CardTypePredicate(CardType.SORCERY)); filter.add(new CardTypePredicate(CardType.SORCERY));

View file

@ -107,7 +107,7 @@ class DracoCostReductionEffect extends CostModificationEffectImpl {
class DracoSacrificeUnlessPaysEffect extends OneShotEffect { class DracoSacrificeUnlessPaysEffect extends OneShotEffect {
public static final int MAX_DOMAIN_VALUE = 10; static final int MAX_DOMAIN_VALUE = 10;
public DracoSacrificeUnlessPaysEffect () { public DracoSacrificeUnlessPaysEffect () {
super(Outcome.Sacrifice); super(Outcome.Sacrifice);

View file

@ -50,7 +50,7 @@ import java.util.UUID;
*/ */
public class DrainLife extends CardImpl { public class DrainLife extends CardImpl {
public static final FilterMana filterBlack = new FilterMana(); static final FilterMana filterBlack = new FilterMana();
static { static {
filterBlack.setBlack(true); filterBlack.setBlack(true);

View file

@ -56,7 +56,7 @@ import java.util.UUID;
*/ */
public class DropOfHoney extends CardImpl { public class DropOfHoney extends CardImpl {
public static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static final FilterCreaturePermanent filter = new FilterCreaturePermanent();
public DropOfHoney(UUID ownerId, CardSetInfo setInfo) { public DropOfHoney(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{G}"); super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{G}");

View file

@ -48,7 +48,7 @@ import java.util.UUID;
*/ */
public class ElvishHarbinger extends CardImpl { public class ElvishHarbinger extends CardImpl {
public static final FilterCard filter = new FilterCard("Elf card"); static final FilterCard filter = new FilterCard("Elf card");
static { static {
filter.add(new SubtypePredicate(SubType.ELEMENTAL)); filter.add(new SubtypePredicate(SubType.ELEMENTAL));
} }

View file

@ -43,18 +43,18 @@ import mage.target.common.TargetCardInLibrary;
import java.util.UUID; import java.util.UUID;
/** /**
*
* @author fireshoes * @author fireshoes
*/ */
public class FaerieHarbinger extends CardImpl { public class FaerieHarbinger extends CardImpl {
public static final FilterCard filter = new FilterCard("Faerie card"); static final FilterCard filter = new FilterCard("Faerie card");
static { static {
filter.add(new SubtypePredicate(SubType.FAERIE)); filter.add(new SubtypePredicate(SubType.FAERIE));
} }
public FaerieHarbinger(UUID ownerId, CardSetInfo setInfo) { public FaerieHarbinger(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}");
this.subtype.add("Faerie"); this.subtype.add("Faerie");
this.subtype.add("Wizard"); this.subtype.add("Wizard");
this.power = new MageInt(2); this.power = new MageInt(2);

View file

@ -46,7 +46,7 @@ import java.util.UUID;
*/ */
public class GiantHarbinger extends CardImpl { public class GiantHarbinger extends CardImpl {
public static final FilterCard filter = new FilterCard("Giant card"); static final FilterCard filter = new FilterCard("Giant card");
static { static {
filter.add(new SubtypePredicate(SubType.GIANT)); filter.add(new SubtypePredicate(SubType.GIANT));
} }

View file

@ -32,7 +32,7 @@ import java.util.UUID;
*/ */
public class GreaterHarvester extends CardImpl { public class GreaterHarvester extends CardImpl {
public static final FilterPermanent filter = new FilterPermanent("a permanent"); static final FilterPermanent filter = new FilterPermanent("a permanent");
static { static {
filter.add(Predicates.or(new CardTypePredicate(CardType.ARTIFACT), filter.add(Predicates.or(new CardTypePredicate(CardType.ARTIFACT),

View file

@ -0,0 +1,70 @@
package mage.cards.h;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.permanent.Permanent;
import mage.target.targetpointer.FixedTarget;
import java.util.UUID;
public class HeatOfBattle extends CardImpl {
public HeatOfBattle(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}");
// Whenever a creature blocks, Heat of Battle deals 1 damage to that creature's controller.
this.addAbility(new HeatOfBattleTriggeredAbility());
}
public HeatOfBattle(final HeatOfBattle card) {
super(card);
}
public HeatOfBattle copy() {
return new HeatOfBattle(this);
}
}
class HeatOfBattleTriggeredAbility extends TriggeredAbilityImpl {
public HeatOfBattleTriggeredAbility() {
super(Zone.BATTLEFIELD, new DamageTargetEffect(1));
}
public HeatOfBattleTriggeredAbility(HeatOfBattleTriggeredAbility ability) {
super(ability);
}
@Override
public HeatOfBattleTriggeredAbility copy() {
return new HeatOfBattleTriggeredAbility(this);
}
@Override
public boolean checkEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.BLOCKER_DECLARED;
}
@Override
public boolean checkTrigger(GameEvent event, Game game) {
Permanent blocker = game.getPermanent(event.getSourceId());
if (blocker != null) {
getEffects().get(0).setTargetPointer(new FixedTarget(blocker.getControllerId()));
return true;
}
return false;
}
@Override
public String getRule() {
return "Whenever a creature blocks, {this} deals 1 damage to that creature's controller.";
}
}

View file

@ -57,9 +57,9 @@ import mage.game.permanent.token.KaldraToken;
*/ */
public class HelmOfKaldra extends CardImpl { public class HelmOfKaldra extends CardImpl {
public static final FilterControlledArtifactPermanent filterHelm = new FilterControlledArtifactPermanent(); static final FilterControlledArtifactPermanent filterHelm = new FilterControlledArtifactPermanent();
public static final FilterControlledArtifactPermanent filterShield = new FilterControlledArtifactPermanent(); static final FilterControlledArtifactPermanent filterShield = new FilterControlledArtifactPermanent();
public static final FilterControlledArtifactPermanent filterSword = new FilterControlledArtifactPermanent(); static final FilterControlledArtifactPermanent filterSword = new FilterControlledArtifactPermanent();
static { static {
filterHelm.add(new NamePredicate("Helm of Kaldra")); filterHelm.add(new NamePredicate("Helm of Kaldra"));

View file

@ -45,7 +45,7 @@ import mage.target.common.TargetCardInLibrary;
*/ */
public class KithkinHarbinger extends CardImpl { public class KithkinHarbinger extends CardImpl {
public static final FilterCard filter = new FilterCard("Kithkin card"); static final FilterCard filter = new FilterCard("Kithkin card");
static { static {
filter.add(new SubtypePredicate(SubType.KITHKIN)); filter.add(new SubtypePredicate(SubType.KITHKIN));

View file

@ -60,7 +60,7 @@ import java.util.UUID;
*/ */
public class MagneticMountain extends CardImpl { public class MagneticMountain extends CardImpl {
public static final FilterCreaturePermanent filter = new FilterCreaturePermanent("blue creatures"); static final FilterCreaturePermanent filter = new FilterCreaturePermanent("blue creatures");
static { static {
filter.add(new ColorPredicate(ObjectColor.BLUE)); filter.add(new ColorPredicate(ObjectColor.BLUE));

View file

@ -58,7 +58,7 @@ import mage.target.common.TargetControlledPermanent;
*/ */
public class ManaVortex extends CardImpl { public class ManaVortex extends CardImpl {
public static final FilterLandPermanent filter = new FilterLandPermanent(); static final FilterLandPermanent filter = new FilterLandPermanent();
public ManaVortex(UUID ownerId, CardSetInfo setInfo) { public ManaVortex(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}{U}"); super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}{U}");

View file

@ -52,7 +52,7 @@ import mage.target.common.TargetCreatureOrPlayer;
*/ */
public class MasterApothecary extends CardImpl { public class MasterApothecary extends CardImpl {
public static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("an untapped Cleric you control"); static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("an untapped Cleric you control");
static { static {
filter.add(new SubtypePredicate(SubType.CLERIC)); filter.add(new SubtypePredicate(SubType.CLERIC));

View file

@ -138,7 +138,7 @@ class MerchantsDockhandEffect extends OneShotEffect {
class TapXTargetCost extends VariableCostImpl { class TapXTargetCost extends VariableCostImpl {
public final static FilterControlledArtifactPermanent filter = new FilterControlledArtifactPermanent("untapped artifacts you control"); final static FilterControlledArtifactPermanent filter = new FilterControlledArtifactPermanent("untapped artifacts you control");
static { static {
filter.add(Predicates.not(new TappedPredicate())); filter.add(Predicates.not(new TappedPredicate()));

View file

@ -47,7 +47,7 @@ import mage.target.common.TargetCardInLibrary;
*/ */
public class MerrowHarbinger extends CardImpl { public class MerrowHarbinger extends CardImpl {
public static final FilterCard filter = new FilterCard("Merfolk card"); static final FilterCard filter = new FilterCard("Merfolk card");
static { static {
filter.add(new SubtypePredicate(SubType.MERFOLK )); filter.add(new SubtypePredicate(SubType.MERFOLK ));

View file

@ -57,8 +57,8 @@ import mage.players.PlayerList;
*/ */
public class MysticBarrier extends CardImpl { public class MysticBarrier extends CardImpl {
public static final String ALLOW_ATTACKING_LEFT = "Allow attacking left"; static final String ALLOW_ATTACKING_LEFT = "Allow attacking left";
public static final String ALLOW_ATTACKING_RIGHT = "Allow attacking right"; static final String ALLOW_ATTACKING_RIGHT = "Allow attacking right";
public MysticBarrier(UUID ownerId, CardSetInfo setInfo) { public MysticBarrier(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{W}"); super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{W}");
@ -117,8 +117,8 @@ class MysticBarrierTriggeredAbility extends TriggeredAbilityImpl {
class MysticBarrierChooseEffect extends OneShotEffect { class MysticBarrierChooseEffect extends OneShotEffect {
public static final String[] SET_VALUES = new String[] { MysticBarrier.ALLOW_ATTACKING_LEFT, MysticBarrier.ALLOW_ATTACKING_RIGHT }; static final String[] SET_VALUES = new String[] { MysticBarrier.ALLOW_ATTACKING_LEFT, MysticBarrier.ALLOW_ATTACKING_RIGHT };
public static final Set<String> CHOICES = new HashSet<>(Arrays.asList(SET_VALUES)); static final Set<String> CHOICES = new HashSet<>(Arrays.asList(SET_VALUES));
final static Choice DIRECTION_CHOICE = new ChoiceImpl(true); final static Choice DIRECTION_CHOICE = new ChoiceImpl(true);
static { static {
DIRECTION_CHOICE.setChoices(CHOICES); DIRECTION_CHOICE.setChoices(CHOICES);

View file

@ -127,8 +127,6 @@ class NayaSoulbeastCastEffect extends OneShotEffect {
class NayaSoulbeastReplacementEffect extends ReplacementEffectImpl { class NayaSoulbeastReplacementEffect extends ReplacementEffectImpl {
public static final String SOURCE_CAST_SPELL_ABILITY = "sourceCastSpellAbility";
public NayaSoulbeastReplacementEffect() { public NayaSoulbeastReplacementEffect() {
super(Duration.OneUse, Outcome.BoostCreature); super(Duration.OneUse, Outcome.BoostCreature);
staticText = "{this} enters the battlefield with X +1/+1 counters on it, where X is the total converted mana cost of all cards revealed this way"; staticText = "{this} enters the battlefield with X +1/+1 counters on it, where X is the total converted mana cost of all cards revealed this way";

View file

@ -43,7 +43,7 @@ import mage.filter.common.FilterBlockingCreature;
*/ */
public class Piety extends CardImpl { public class Piety extends CardImpl {
public static final FilterBlockingCreature filter = new FilterBlockingCreature(); static final FilterBlockingCreature filter = new FilterBlockingCreature();
public Piety(UUID ownerId, CardSetInfo setInfo) { public Piety(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{W}"); super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{W}");

View file

@ -56,7 +56,7 @@ import java.util.UUID;
*/ */
public class PorphyryNodes extends CardImpl { public class PorphyryNodes extends CardImpl {
public static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static final FilterCreaturePermanent filter = new FilterCreaturePermanent();
public PorphyryNodes(UUID ownerId, CardSetInfo setInfo) { public PorphyryNodes(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{W}"); super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{W}");

View file

@ -61,7 +61,7 @@ public class RavenousWampa extends CardImpl {
filter.add(new AnotherPredicate()); filter.add(new AnotherPredicate());
} }
public static final String RAVENOUS_WAMPA_STATE_VALUE_KEY_PREFIX = "TOU_SAC_CRE"; static final String RAVENOUS_WAMPA_STATE_VALUE_KEY_PREFIX = "TOU_SAC_CRE";
public RavenousWampa(UUID ownerId, CardSetInfo setInfo) { public RavenousWampa(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R/W}{R/W}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R/W}{R/W}");

View file

@ -43,7 +43,7 @@ import mage.target.common.TargetCardInYourGraveyard;
*/ */
public class Relearn extends CardImpl { public class Relearn extends CardImpl {
public static final FilterCard filter = new FilterCard("instant or sorcery card from your graveyard"); static final FilterCard filter = new FilterCard("instant or sorcery card from your graveyard");
static { static {
filter.add(Predicates.or( filter.add(Predicates.or(

View file

@ -42,7 +42,7 @@ import mage.target.common.TargetCardInYourGraveyard;
*/ */
public class SagesKnowledge extends CardImpl { public class SagesKnowledge extends CardImpl {
public static final FilterCard filter = new FilterCard("sorcery card from your graveyard"); static final FilterCard filter = new FilterCard("sorcery card from your graveyard");
static { static {
filter.add(new CardTypePredicate(CardType.SORCERY)); filter.add(new CardTypePredicate(CardType.SORCERY));

View file

@ -47,7 +47,7 @@ import mage.target.common.TargetCreaturePermanent;
*/ */
public class SerpentAssassin extends CardImpl { public class SerpentAssassin extends CardImpl {
public static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nonblack creature"); static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nonblack creature");
static { static {
filter.add(Predicates.not(new ColorPredicate(ObjectColor.BLACK))); filter.add(Predicates.not(new ColorPredicate(ObjectColor.BLACK)));

View file

@ -48,7 +48,7 @@ import mage.target.common.TargetCreatureOrPlayer;
*/ */
public class SoulBurn extends CardImpl { public class SoulBurn extends CardImpl {
public static final FilterMana filterBlackOrRed = new FilterMana(); static final FilterMana filterBlackOrRed = new FilterMana();
static { static {
filterBlackOrRed.setBlack(true); filterBlackOrRed.setBlack(true);

View file

@ -45,7 +45,7 @@ import mage.target.common.TargetCreaturePermanent;
*/ */
public class SoulShred extends CardImpl { public class SoulShred extends CardImpl {
public static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nonblack creature"); static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nonblack creature");
static { static {
filter.add(Predicates.not(new ColorPredicate(ObjectColor.BLACK))); filter.add(Predicates.not(new ColorPredicate(ObjectColor.BLACK)));

View file

@ -54,7 +54,7 @@ import java.util.UUID;
*/ */
public class SpellstutterSprite extends CardImpl { public class SpellstutterSprite extends CardImpl {
public static final FilterPermanent filter = new FilterPermanent("number of Faeries you control"); static final FilterPermanent filter = new FilterPermanent("number of Faeries you control");
static { static {
filter.add(new ControllerPredicate(TargetController.YOU)); filter.add(new ControllerPredicate(TargetController.YOU));
filter.add(new SubtypePredicate(SubType.FAERIE)); filter.add(new SubtypePredicate(SubType.FAERIE));

View file

@ -45,7 +45,7 @@ import mage.target.TargetPermanent;
*/ */
public class StreamOfAcid extends CardImpl { public class StreamOfAcid extends CardImpl {
public static final FilterPermanent filter = new FilterPermanent("land or nonblack creature"); static final FilterPermanent filter = new FilterPermanent("land or nonblack creature");
static { static {
filter.add(Predicates.or( filter.add(Predicates.or(

View file

@ -0,0 +1,53 @@
package mage.cards.s;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.CantBeTargetedSourceEffect;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.filter.FilterObject;
import mage.filter.FilterStackObject;
import mage.filter.predicate.mageobject.ColorPredicate;
import mage.target.common.TargetCreatureOrPlayer;
import java.util.UUID;
public class SuqAtaFirewalker extends CardImpl {
private static final FilterObject filterRed = new FilterStackObject("red spells or abilities from red sources");
static {
filterRed.add(new ColorPredicate(ObjectColor.RED));
}
public SuqAtaFirewalker(UUID cardId, CardSetInfo cardSetInfo){
super(cardId, cardSetInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{U}");
subtype.add("Human");
subtype.add("Wizard");
power = new MageInt(0);
toughness = new MageInt(1);
color.setBlue(true);
// Suq'Ata Firewalker can't be the target of black spells or abilities from black sources.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBeTargetedSourceEffect(filterRed, Duration.WhileOnBattlefield)));
//{T}: Suq'Ata Firewalker deals 1 damage to target creature or player.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost());
ability.addTarget(new TargetCreatureOrPlayer());
this.addAbility(ability);
}
public SuqAtaFirewalker(SuqAtaFirewalker other){
super(other);
}
public SuqAtaFirewalker copy(){
return new SuqAtaFirewalker(this);
}
}

View file

@ -112,7 +112,7 @@ class CombatDamageToCreatureWatcher extends Watcher {
// which objects dealt combat damage to creature during the turn // which objects dealt combat damage to creature during the turn
public final Set<MageObjectReference> dealtCombatDamageToCreature; public final Set<MageObjectReference> dealtCombatDamageToCreature;
public final static String BASIC_KEY = "CombatDamageToCreatureWatcher"; final static String BASIC_KEY = "CombatDamageToCreatureWatcher";
public CombatDamageToCreatureWatcher() { public CombatDamageToCreatureWatcher() {
super(BASIC_KEY, WatcherScope.GAME); super(BASIC_KEY, WatcherScope.GAME);

View file

@ -52,7 +52,7 @@ import mage.util.functions.EmptyApplyToPermanent;
*/ */
public class UnstableShapeshifter extends CardImpl { public class UnstableShapeshifter extends CardImpl {
public final static FilterCreaturePermanent filterAnotherCreature = new FilterCreaturePermanent("another creature"); final static FilterCreaturePermanent filterAnotherCreature = new FilterCreaturePermanent("another creature");
static { static {
filterAnotherCreature.add(new AnotherPredicate()); filterAnotherCreature.add(new AnotherPredicate());

View file

@ -91,7 +91,7 @@ public class VedalkenShackles extends CardImpl {
class PowerIslandPredicate implements ObjectPlayerPredicate<ObjectPlayer<Permanent>> { class PowerIslandPredicate implements ObjectPlayerPredicate<ObjectPlayer<Permanent>> {
public static final FilterLandPermanent filter = new FilterLandPermanent("Island"); static final FilterLandPermanent filter = new FilterLandPermanent("Island");
static { static {
filter.add(new SubtypePredicate(SubType.ISLAND)); filter.add(new SubtypePredicate(SubType.ISLAND));
} }

View file

@ -63,7 +63,7 @@ import static mage.cards.v.VolrathsCurse.keyString;
*/ */
public class VolrathsCurse extends CardImpl { public class VolrathsCurse extends CardImpl {
public static final String keyString = "_ignoreEffectForTurn"; static final String keyString = "_ignoreEffectForTurn";
public VolrathsCurse(UUID ownerId, CardSetInfo setInfo) { public VolrathsCurse(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}"); super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}");

View file

@ -89,7 +89,7 @@ public class WerewolfRansacker extends CardImpl {
class WerewolfRansackerAbility extends TriggeredAbilityImpl { class WerewolfRansackerAbility extends TriggeredAbilityImpl {
public static final String RULE_TEXT = "Whenever this creature transforms into Werewolf Ransacker, you may destroy target artifact. If that artifact is put into a graveyard this way, Werewolf Ransacker deals 3 damage to that artifact's controller"; static final String RULE_TEXT = "Whenever this creature transforms into Werewolf Ransacker, you may destroy target artifact. If that artifact is put into a graveyard this way, Werewolf Ransacker deals 3 damage to that artifact's controller";
public WerewolfRansackerAbility() { public WerewolfRansackerAbility() {
super(Zone.BATTLEFIELD, new WerewolfRansackerEffect(), true); super(Zone.BATTLEFIELD, new WerewolfRansackerEffect(), true);

View file

@ -48,7 +48,7 @@ import mage.filter.predicate.mageobject.ColorPredicate;
*/ */
public class WrathOfMaritLage extends CardImpl { public class WrathOfMaritLage extends CardImpl {
public static final FilterCreaturePermanent filter = new FilterCreaturePermanent("red creatures"); static final FilterCreaturePermanent filter = new FilterCreaturePermanent("red creatures");
static { static {
filter.add(new ColorPredicate(ObjectColor.RED)); filter.add(new ColorPredicate(ObjectColor.RED));

View file

@ -32,7 +32,6 @@ import mage.constants.Rarity;
import mage.constants.SetType; import mage.constants.SetType;
/** /**
*
* @author North * @author North
*/ */
public class Stronghold extends ExpansionSet { public class Stronghold extends ExpansionSet {
@ -99,6 +98,7 @@ public class Stronghold extends ExpansionSet {
cards.add(new SetCardInfo("Grave Pact", 10, Rarity.RARE, mage.cards.g.GravePact.class)); cards.add(new SetCardInfo("Grave Pact", 10, Rarity.RARE, mage.cards.g.GravePact.class));
cards.add(new SetCardInfo("Hammerhead Shark", 32, Rarity.COMMON, mage.cards.h.HammerheadShark.class)); cards.add(new SetCardInfo("Hammerhead Shark", 32, Rarity.COMMON, mage.cards.h.HammerheadShark.class));
cards.add(new SetCardInfo("Heartstone", 128, Rarity.UNCOMMON, mage.cards.h.Heartstone.class)); cards.add(new SetCardInfo("Heartstone", 128, Rarity.UNCOMMON, mage.cards.h.Heartstone.class));
cards.add(new SetCardInfo("Heat of Battle", 88, Rarity.UNCOMMON, mage.cards.h.HeatOfBattle.class));
cards.add(new SetCardInfo("Hermit Druid", 58, Rarity.RARE, mage.cards.h.HermitDruid.class)); cards.add(new SetCardInfo("Hermit Druid", 58, Rarity.RARE, mage.cards.h.HermitDruid.class));
cards.add(new SetCardInfo("Hesitation", 33, Rarity.UNCOMMON, mage.cards.h.Hesitation.class)); cards.add(new SetCardInfo("Hesitation", 33, Rarity.UNCOMMON, mage.cards.h.Hesitation.class));
cards.add(new SetCardInfo("Hibernation Sliver", 140, Rarity.UNCOMMON, mage.cards.h.HibernationSliver.class)); cards.add(new SetCardInfo("Hibernation Sliver", 140, Rarity.UNCOMMON, mage.cards.h.HibernationSliver.class));

View file

@ -152,6 +152,7 @@ public class Visions extends ExpansionSet {
cards.add(new SetCardInfo("Sun Clasp", 121, Rarity.COMMON, mage.cards.s.SunClasp.class)); cards.add(new SetCardInfo("Sun Clasp", 121, Rarity.COMMON, mage.cards.s.SunClasp.class));
cards.add(new SetCardInfo("Suq'Ata Assassin", 19, Rarity.UNCOMMON, mage.cards.s.SuqAtaAssassin.class)); cards.add(new SetCardInfo("Suq'Ata Assassin", 19, Rarity.UNCOMMON, mage.cards.s.SuqAtaAssassin.class));
cards.add(new SetCardInfo("Suq'Ata Lancer", 96, Rarity.COMMON, mage.cards.s.SuqAtaLancer.class)); cards.add(new SetCardInfo("Suq'Ata Lancer", 96, Rarity.COMMON, mage.cards.s.SuqAtaLancer.class));
cards.add(new SetCardInfo("Suq'Ata Firewalker", 94, Rarity.UNCOMMON, mage.cards.s.SuqAtaFirewalker.class));
cards.add(new SetCardInfo("Talruum Champion", 97, Rarity.COMMON, mage.cards.t.TalruumChampion.class)); cards.add(new SetCardInfo("Talruum Champion", 97, Rarity.COMMON, mage.cards.t.TalruumChampion.class));
cards.add(new SetCardInfo("Talruum Piper", 98, Rarity.UNCOMMON, mage.cards.t.TalruumPiper.class)); cards.add(new SetCardInfo("Talruum Piper", 98, Rarity.UNCOMMON, mage.cards.t.TalruumPiper.class));
cards.add(new SetCardInfo("Tar Pit Warrior", 20, Rarity.COMMON, mage.cards.t.TarPitWarrior.class)); cards.add(new SetCardInfo("Tar Pit Warrior", 20, Rarity.COMMON, mage.cards.t.TarPitWarrior.class));