* Auriok Champion and Mystic Crusader - Fixed protection ability not working correctly.

This commit is contained in:
LevelX2 2014-04-17 00:39:40 +02:00
parent 9c8d36ee8a
commit e389645927
5 changed files with 20 additions and 23 deletions

View file

@ -49,8 +49,7 @@ public class AuriokChampion extends CardImpl<AuriokChampion> {
static final FilterCard filter = new FilterCard("black and from red");
static {
filter.add(Predicates.and(new ColorPredicate(ObjectColor.BLACK),
new ColorPredicate(ObjectColor.RED)));
filter.add(Predicates.or(new ColorPredicate(ObjectColor.BLACK),new ColorPredicate(ObjectColor.RED)));
}
public AuriokChampion(UUID ownerId) {

View file

@ -39,6 +39,7 @@ import mage.abilities.keyword.ProtectionAbility;
import mage.cards.CardImpl;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.SubtypePredicate;
/**
@ -46,12 +47,11 @@ import mage.filter.predicate.mageobject.SubtypePredicate;
* @author BetaSteward_at_googlemail.com
*/
public class BaneslayerAngel extends CardImpl<BaneslayerAngel> {
private static final FilterPermanent filter1 = new FilterCreaturePermanent("Demons");
private static final FilterPermanent filter2 = new FilterCreaturePermanent("Dragons");
private static final FilterPermanent filter = new FilterCreaturePermanent("Demons and from Dragons");
static {
filter1.add(new SubtypePredicate("Demon"));
filter2.add(new SubtypePredicate("Dragon"));
filter.add(Predicates.or(new SubtypePredicate("Demon"), new SubtypePredicate("Dragon")));
}
public BaneslayerAngel(UUID ownerId) {
@ -62,11 +62,11 @@ public class BaneslayerAngel extends CardImpl<BaneslayerAngel> {
this.power = new MageInt(5);
this.toughness = new MageInt(5);
// Flying, first strike, lifelink, protection from Demons and from Dragons
this.addAbility(FlyingAbility.getInstance());
this.addAbility(FirstStrikeAbility.getInstance());
this.addAbility(LifelinkAbility.getInstance());
this.addAbility(new ProtectionAbility(filter1));
this.addAbility(new ProtectionAbility(filter2));
this.addAbility(new ProtectionAbility(filter));
}
public BaneslayerAngel(final BaneslayerAngel card) {

View file

@ -42,19 +42,20 @@ import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.predicate.mageobject.ColorPredicate;
import java.util.UUID;
import mage.filter.predicate.Predicates;
/**
* @author Loki, noxx
*/
public class AkromasMemorial extends CardImpl<AkromasMemorial> {
private static final FilterCard filterBlack = new FilterCard("Black");
private static final FilterCard filterRed = new FilterCard("Red");
private static final FilterCard protectionFilter = new FilterCard("black and from red");
static {
filterBlack.add(new ColorPredicate(ObjectColor.BLACK));
filterRed.add(new ColorPredicate(ObjectColor.RED));
protectionFilter.add(Predicates.or(new ColorPredicate(ObjectColor.BLACK),new ColorPredicate(ObjectColor.RED)));
}
public AkromasMemorial(UUID ownerId) {
super(ownerId, 200, "Akroma's Memorial", Rarity.MYTHIC, new CardType[]{CardType.ARTIFACT}, "{7}");
this.expansionSetCode = "M13";
@ -64,7 +65,7 @@ public class AkromasMemorial extends CardImpl<AkromasMemorial> {
@Override
public void build() {
// Creatures you control have flying, first strike, vigilance, trample, haste, and protection from black and from red.
CompoundAbility compoundAbilities = new CompoundAbility(FlyingAbility.getInstance(), FirstStrikeAbility.getInstance(), VigilanceAbility.getInstance(), TrampleAbility.getInstance(), HasteAbility.getInstance(), new ProtectionAbility(filterBlack), new ProtectionAbility(filterRed));
CompoundAbility compoundAbilities = new CompoundAbility(FlyingAbility.getInstance(), FirstStrikeAbility.getInstance(), VigilanceAbility.getInstance(), TrampleAbility.getInstance(), HasteAbility.getInstance(), new ProtectionAbility(protectionFilter));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(compoundAbilities, Duration.WhileOnBattlefield, new FilterControlledCreaturePermanent("Creatures"))));
}

View file

@ -54,10 +54,9 @@ import mage.filter.predicate.mageobject.ColorPredicate;
public class MysticCrusader extends CardImpl<MysticCrusader> {
static final FilterCard filter = new FilterCard("black and from red");
static {
filter.add(Predicates.and(new ColorPredicate(ObjectColor.BLACK),
new ColorPredicate(ObjectColor.RED)));
filter.add(Predicates.or(new ColorPredicate(ObjectColor.BLACK),new ColorPredicate(ObjectColor.RED)));
}
public MysticCrusader(UUID ownerId) {

View file

@ -35,6 +35,7 @@ import mage.ObjectColor;
import mage.abilities.keyword.*;
import mage.cards.CardImpl;
import mage.filter.FilterCard;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.ColorPredicate;
/**
@ -42,13 +43,11 @@ import mage.filter.predicate.mageobject.ColorPredicate;
* @author Loki
*/
public class AkromaAngelOfWrath extends CardImpl<AkromaAngelOfWrath> {
private static final FilterCard filter = new FilterCard("Black");
private static final FilterCard filter2 = new FilterCard("Red");
private static final FilterCard protectionFilter = new FilterCard("black and from red");
static {
filter.add(new ColorPredicate(ObjectColor.BLACK));
filter2.add(new ColorPredicate(ObjectColor.RED));
protectionFilter.add(Predicates.or(new ColorPredicate(ObjectColor.BLACK),new ColorPredicate(ObjectColor.RED)));
}
public AkromaAngelOfWrath(UUID ownerId) {
@ -67,8 +66,7 @@ public class AkromaAngelOfWrath extends CardImpl<AkromaAngelOfWrath> {
this.addAbility(TrampleAbility.getInstance());
this.addAbility(HasteAbility.getInstance());
// protection from black and from red
this.addAbility(new ProtectionAbility(filter));
this.addAbility(new ProtectionAbility(filter2));
this.addAbility(new ProtectionAbility(protectionFilter));
}
public AkromaAngelOfWrath(final AkromaAngelOfWrath card) {