Reffactored cards.

Fixed Enchanted condition.
This commit is contained in:
North 2011-08-12 23:05:35 +03:00
parent c065b68ba3
commit 06ed6cbd2a
11 changed files with 70 additions and 101 deletions

View file

@ -33,11 +33,11 @@ import mage.Constants.Duration;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.Enchanted;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.decorator.ConditionalContinousEffect;
import mage.abilities.decorator.ConditionalStaticAbility;
import mage.abilities.effects.common.continious.BoostSourceEffect;
import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
import mage.abilities.keyword.TrampleAbility;
@ -49,6 +49,8 @@ import mage.cards.CardImpl;
*/
public class FlaringFlameKin extends CardImpl<FlaringFlameKin> {
private static final String rule = "As long as {this} is enchanted, it gets +2/+2, has trample, and has \"{R}: {this} gets +1/+0 until end of turn.\"";
public FlaringFlameKin(UUID ownerId) {
super(ownerId, 62, "Flaring Flame-Kin", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{R}");
this.expansionSetCode = "DIS";
@ -59,25 +61,13 @@ public class FlaringFlameKin extends CardImpl<FlaringFlameKin> {
this.power = new MageInt(2);
this.toughness = new MageInt(2);
// As long as Flaring Flame-Kin is enchanted, it gets +2/+2, has trample, and has "{R}: Flaring Flame-Kin gets +1/+0 until end of turn."
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinousEffect(
new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield),
new Enchanted(),
"As long as {this} is enchanted, it gets +2/+2")));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinousEffect(
new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield),
new Enchanted(),
"As long as {this} is enchanted, it has trample")));
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
Ability ability = new ConditionalStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), Enchanted.getInstance(), rule);
ability.addEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance()));
SimpleActivatedAbility grantedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new BoostSourceEffect(1, 0, Duration.EndOfTurn),
new ManaCostsImpl("{R}"));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinousEffect(
new GainAbilitySourceEffect(ability, Duration.WhileOnBattlefield),
new Enchanted(),
"As long as {this} is enchanted, it has \"{tap}: {this} gets +1/+0 until end of turn\"")));
ability.addEffect(new GainAbilitySourceEffect(grantedAbility));
this.addAbility(ability);
}
public FlaringFlameKin(final FlaringFlameKin card) {

View file

@ -78,7 +78,7 @@ public class FreewindEquenaut extends CardImpl<FreewindEquenaut> {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinousEffect(
new GainAbilitySourceEffect(ability, Duration.WhileOnBattlefield),
new Enchanted(),
Enchanted.getInstance(),
"As long as {this} is enchanted, it has \"{tap}: {this} deals 2 damage to target attacking or blocking creature\"")));
}

View file

@ -59,7 +59,7 @@ public class SkyriderTrainee extends CardImpl<SkyriderTrainee> {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinousEffect(
new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield),
new Enchanted(),
Enchanted.getInstance(),
"{this} has flying as long as it's enchanted")));
}

View file

@ -34,9 +34,9 @@ import mage.Constants.Duration;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.Ability;
import mage.abilities.condition.common.ControlsPermanent;
import mage.abilities.decorator.ConditionalContinousEffect;
import mage.abilities.decorator.ConditionalStaticAbility;
import mage.abilities.effects.common.continious.BoostSourceEffect;
import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
import mage.abilities.keyword.FlyingAbility;
@ -51,12 +51,13 @@ import mage.filter.common.FilterCreaturePermanent;
*/
public class GriffinRider extends CardImpl<GriffinRider> {
private static final FilterPermanent filterGriffinCard = new FilterCreaturePermanent();
private static final String rule = "As long as you control a Griffin creature, {this} gets +3/+3 and has flying.";
private static final FilterPermanent filterGriffinCard = new FilterCreaturePermanent();
static {
filterGriffinCard.getSubtype().add("Griffin");
filterGriffinCard.setScopeSubtype(Filter.ComparisonScope.Any);
}
static {
filterGriffinCard.getSubtype().add("Griffin");
filterGriffinCard.setScopeSubtype(Filter.ComparisonScope.Any);
}
public GriffinRider(UUID ownerId) {
super(ownerId, 20, "Griffin Rider", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{W}");
@ -69,16 +70,9 @@ public class GriffinRider extends CardImpl<GriffinRider> {
this.toughness = new MageInt(1);
// As long as you control a Griffin creature, Griffin Rider gets +3/+3 and has flying.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinousEffect(
new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield),
new ControlsPermanent(filterGriffinCard),
"As long as you control a Griffin creature, {this} gets +3/+3")));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinousEffect(
new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield),
new ControlsPermanent(filterGriffinCard),
"As long as you control a Griffin creature, {this} has flying")));
Ability ability = new ConditionalStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), new ControlsPermanent(filterGriffinCard), rule);
ability.addEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()));
this.addAbility(ability);
}
public GriffinRider(final GriffinRider card) {

View file

@ -33,9 +33,9 @@ import mage.Constants.Duration;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.Ability;
import mage.abilities.condition.common.Enchanted;
import mage.abilities.decorator.ConditionalContinousEffect;
import mage.abilities.decorator.ConditionalStaticAbility;
import mage.abilities.effects.common.continious.BoostSourceEffect;
import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
import mage.abilities.keyword.FirstStrikeAbility;
@ -49,6 +49,8 @@ import mage.cards.CardImpl;
*/
public class ThranGolem extends CardImpl<ThranGolem> {
private static final String rule = "As long as {this} is enchanted, it gets +2/+2 and has flying, first strike, and trample.";
public ThranGolem(UUID ownerId) {
super(ownerId, 220, "Thran Golem", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{5}");
this.expansionSetCode = "M12";
@ -57,27 +59,11 @@ public class ThranGolem extends CardImpl<ThranGolem> {
this.power = new MageInt(3);
this.toughness = new MageInt(3);
// As long as Thran Golem is enchanted, it gets +2/+2 and has flying, first strike, and trample.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinousEffect(
new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield),
new Enchanted(),
"As long as {this} is enchanted, it gets +2/+2")));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinousEffect(
new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield),
new Enchanted(),
"As long as {this} is enchanted, it has flying")));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinousEffect(
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield),
new Enchanted(),
"As long as {this} is enchanted, it has first strike")));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinousEffect(
new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield),
new Enchanted(),
"As long as {this} is enchanted, it has trample")));
Ability ability = new ConditionalStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), Enchanted.getInstance(), rule);
ability.addEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()));
ability.addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()));
ability.addEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance()));
this.addAbility(ability);
}
public ThranGolem(final ThranGolem card) {

View file

@ -59,7 +59,7 @@ public class GateHound extends CardImpl<GateHound> {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinousEffect(
new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, new FilterCreaturePermanent()),
new Enchanted(),
Enchanted.getInstance(),
"Creatures you control have vigilance as long as {this} is enchanted")));
}

View file

@ -25,19 +25,17 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.scarsofmirrodin;
import java.util.UUID;
import mage.Constants;
import mage.Constants.CardType;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.Ability;
import mage.abilities.condition.common.Equipped;
import mage.abilities.decorator.ConditionalContinousEffect;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.decorator.ConditionalStaticAbility;
import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.abilities.keyword.LifelinkAbility;
@ -49,26 +47,24 @@ import mage.cards.CardImpl;
*/
public class SunspearShikari extends CardImpl<SunspearShikari> {
private final static String TEXT = "As long as Sunspear Shikari is equipped, it has first strike";
private final static String TEXT2 = "As long as Sunspear Shikari is equipped, it has lifelink";
private final static String rule = "As long as {this} is equipped, it has first strike and lifelink.";
public SunspearShikari (UUID ownerId) {
public SunspearShikari(UUID ownerId) {
super(ownerId, 23, "Sunspear Shikari", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{W}");
this.expansionSetCode = "SOM";
this.subtype.add("Cat");
this.subtype.add("Soldier");
this.color.setWhite(true);
this.color.setWhite(true);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
this.toughness = new MageInt(2);
ContinuousEffect effect = new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Constants.Duration.WhileOnBattlefield);
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new ConditionalContinousEffect(effect, Equipped.getInstance(), TEXT)));
ContinuousEffect effect2 = new GainAbilitySourceEffect(LifelinkAbility.getInstance(), Constants.Duration.WhileOnBattlefield);
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new ConditionalContinousEffect(effect2, Equipped.getInstance(), TEXT2)));
}
Ability ability = new ConditionalStaticAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()), Equipped.getInstance(), rule);
ability.addEffect(new GainAbilitySourceEffect(LifelinkAbility.getInstance()));
this.addAbility(ability);
}
public SunspearShikari (final SunspearShikari card) {
public SunspearShikari(final SunspearShikari card) {
super(card);
}
@ -76,5 +72,4 @@ public class SunspearShikari extends CardImpl<SunspearShikari> {
public SunspearShikari copy() {
return new SunspearShikari(this);
}
}

View file

@ -29,13 +29,14 @@ package mage.sets.worldwake;
import java.util.UUID;
import mage.Constants;
import mage.Constants.CardType;
import mage.Constants.Duration;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.Ability;
import mage.abilities.condition.common.Equipped;
import mage.abilities.decorator.ConditionalContinousEffect;
import mage.abilities.decorator.ConditionalStaticAbility;
import mage.abilities.effects.common.continious.BoostSourceEffect;
import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
import mage.abilities.keyword.FlyingAbility;
@ -47,17 +48,21 @@ import mage.cards.CardImpl;
*/
public class KitesailApprentice extends CardImpl<KitesailApprentice> {
private static final String rule = "As long as {this} is equipped, it gets +1/+1 and has flying.";
public KitesailApprentice(UUID ownerId) {
super(ownerId, 10, "Kitesail Apprentice", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{W}");
this.expansionSetCode = "WWK";
this.subtype.add("Kor");
this.subtype.add("Soldier");
this.color.setWhite(true);
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new ConditionalContinousEffect(new BoostSourceEffect(1, 1, Constants.Duration.WhileOnBattlefield), Equipped.getInstance(), "As long as Kitesail Apprentice is equipped, it gets +1/+1")));
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new ConditionalContinousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Constants.Duration.WhileOnBattlefield), Equipped.getInstance(), "As long as Kitesail Apprentice is equipped, it has flying")));
Ability ability = new ConditionalStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), Equipped.getInstance(), rule);
ability.addEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()));
this.addAbility(ability);
}
public KitesailApprentice(final KitesailApprentice card) {

View file

@ -51,11 +51,11 @@ import mage.filter.common.FilterLandPermanent;
*/
public class SejiriMerfolk extends CardImpl<SejiriMerfolk> {
private static final String rule = "As long as you control a Plains, Sejiri Merfolk has first strike and lifelink.";
private static final FilterLandPermanent filter = new FilterLandPermanent("a Plains");
private static final String rule = "As long as you control a Plains, {this} has first strike and lifelink.";
private static final FilterLandPermanent filter = new FilterLandPermanent("Plains");
static {
filter.getName().add("Plains");
filter.getSubtype().add("Plains");
}
public SejiriMerfolk(UUID ownerId) {
@ -68,9 +68,9 @@ public class SejiriMerfolk extends CardImpl<SejiriMerfolk> {
this.power = new MageInt(2);
this.toughness = new MageInt(1);
Ability ability = new ConditionalStaticAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(LifelinkAbility.getInstance()), new ControlsPermanent(filter), rule);
ability.addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()));
this.addAbility(ability);
Ability ability = new ConditionalStaticAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(LifelinkAbility.getInstance()), new ControlsPermanent(filter), rule);
ability.addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()));
this.addAbility(ability);
}
public SejiriMerfolk(final SejiriMerfolk card) {

View file

@ -33,10 +33,9 @@ import mage.Constants.Duration;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.Ability;
import mage.abilities.condition.common.TenOrLessLife;
import mage.abilities.decorator.ConditionalContinousEffect;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.decorator.ConditionalStaticAbility;
import mage.abilities.effects.common.continious.BoostSourceEffect;
import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
import mage.abilities.keyword.IntimidateAbility;
@ -44,10 +43,12 @@ import mage.cards.CardImpl;
/**
*
* @author North, nantuko
* @author North
*/
public class GuulDrazVampire extends CardImpl<GuulDrazVampire> {
private static final String rule = "As long as an opponent has 10 or less life, {this} gets +2/+1 and has intimidate.";
public GuulDrazVampire(UUID ownerId) {
super(ownerId, 93, "Guul Draz Vampire", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}");
this.expansionSetCode = "ZEN";
@ -58,11 +59,9 @@ public class GuulDrazVampire extends CardImpl<GuulDrazVampire> {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
ContinuousEffect effect = new GainAbilitySourceEffect(IntimidateAbility.getInstance(), Duration.WhileOnBattlefield);
SimpleStaticAbility ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinousEffect(effect, new TenOrLessLife(TenOrLessLife.CheckType.AN_OPPONENT), "As long as an opponent has 10 or less life, Guul Draz Vampire has intimidate"));
ContinuousEffect effect2 = new BoostSourceEffect(2, 1, Duration.WhileOnBattlefield);
ability.addEffect(new ConditionalContinousEffect(effect2, new TenOrLessLife(TenOrLessLife.CheckType.AN_OPPONENT), "As long as an opponent has 10 or less life, Guul Draz Vampire gets +2/+1"));
this.addAbility(ability);
Ability ability = new ConditionalStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 1, Duration.WhileOnBattlefield), new TenOrLessLife(TenOrLessLife.CheckType.AN_OPPONENT), rule);
ability.addEffect(new GainAbilitySourceEffect(IntimidateAbility.getInstance()));
this.addAbility(ability);
}
public GuulDrazVampire(final GuulDrazVampire card) {

View file

@ -40,7 +40,7 @@ import mage.game.permanent.Permanent;
*/
public class Enchanted implements Condition {
private static Equipped fInstance = new Equipped();
private static Enchanted fInstance = new Enchanted();
public static Condition getInstance() {
return fInstance;