mirror of
https://github.com/correl/mage.git
synced 2024-12-25 03:00:15 +00:00
added duration to BecomesCreatureSourceEffect + refactored some cards
This commit is contained in:
parent
cc5b68976f
commit
ac5e4c0fec
28 changed files with 124 additions and 328 deletions
|
@ -58,7 +58,7 @@ import mage.abilities.costs.mana.MonoHybridManaCost;
|
||||||
import mage.abilities.costs.mana.VariableManaCost;
|
import mage.abilities.costs.mana.VariableManaCost;
|
||||||
import mage.abilities.effects.Effect;
|
import mage.abilities.effects.Effect;
|
||||||
import mage.abilities.effects.ReplacementEffect;
|
import mage.abilities.effects.ReplacementEffect;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.effects.common.DamageTargetEffect;
|
import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
import mage.abilities.keyword.DoubleStrikeAbility;
|
import mage.abilities.keyword.DoubleStrikeAbility;
|
||||||
import mage.abilities.keyword.EquipAbility;
|
import mage.abilities.keyword.EquipAbility;
|
||||||
|
@ -463,7 +463,7 @@ public class ComputerPlayer<T extends ComputerPlayer<T>> extends PlayerImpl<T> i
|
||||||
if (playableAbilities.size() > 0) {
|
if (playableAbilities.size() > 0) {
|
||||||
for (ActivatedAbility ability: playableAbilities) {
|
for (ActivatedAbility ability: playableAbilities) {
|
||||||
if (ability.canActivate(playerId, game)) {
|
if (ability.canActivate(playerId, game)) {
|
||||||
if (!(ability.getEffects().get(0) instanceof BecomesCreatureSourceEOTEffect)) {
|
if (!(ability.getEffects().get(0) instanceof BecomesCreatureSourceEffect)) {
|
||||||
if (this.activateAbility(ability, game))
|
if (this.activateAbility(ability, game))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,10 +32,11 @@ import java.util.UUID;
|
||||||
|
|
||||||
import mage.Constants;
|
import mage.Constants;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.SpellCastTriggeredAbility;
|
import mage.abilities.common.SpellCastTriggeredAbility;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.filter.Filter;
|
import mage.filter.Filter;
|
||||||
import mage.filter.FilterCard;
|
import mage.filter.FilterCard;
|
||||||
|
@ -57,7 +58,7 @@ public class JadeIdol extends CardImpl<JadeIdol> {
|
||||||
public JadeIdol(UUID ownerId) {
|
public JadeIdol(UUID ownerId) {
|
||||||
super(ownerId, 256, "Jade Idol", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{4}");
|
super(ownerId, 256, "Jade Idol", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||||
this.expansionSetCode = "CHK";
|
this.expansionSetCode = "CHK";
|
||||||
this.addAbility(new SpellCastTriggeredAbility(new BecomesCreatureSourceEOTEffect(new JadeIdolToken(), ""), filter, false));
|
this.addAbility(new SpellCastTriggeredAbility(new BecomesCreatureSourceEffect(new JadeIdolToken(), "", Duration.EndOfTurn), filter, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
public JadeIdol(final JadeIdol card) {
|
public JadeIdol(final JadeIdol card) {
|
||||||
|
|
|
@ -30,18 +30,17 @@ package mage.sets.championsofkamigawa;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import mage.Constants;
|
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SpellCastTriggeredAbility;
|
import mage.abilities.common.SpellCastTriggeredAbility;
|
||||||
import mage.abilities.effects.ContinuousEffectImpl;
|
import mage.abilities.effects.common.continious.BecomesCreatureTargetEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.filter.Filter;
|
import mage.filter.Filter;
|
||||||
import mage.filter.FilterCard;
|
import mage.filter.FilterCard;
|
||||||
import mage.game.Game;
|
import mage.game.permanent.token.Token;
|
||||||
import mage.game.permanent.Permanent;
|
|
||||||
import mage.target.common.TargetLandPermanent;
|
import mage.target.common.TargetLandPermanent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -64,7 +63,7 @@ public class Soilshaper extends CardImpl<Soilshaper> {
|
||||||
this.color.setGreen(true);
|
this.color.setGreen(true);
|
||||||
this.power = new MageInt(1);
|
this.power = new MageInt(1);
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
Ability ability = new SpellCastTriggeredAbility(new SoilshaperEffect(), filter, false);
|
Ability ability = new SpellCastTriggeredAbility(new BecomesCreatureTargetEffect(new SoilshaperToken(), "land", Duration.EndOfTurn), filter, false);
|
||||||
ability.addTarget(new TargetLandPermanent());
|
ability.addTarget(new TargetLandPermanent());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
@ -80,51 +79,13 @@ public class Soilshaper extends CardImpl<Soilshaper> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SoilshaperEffect extends ContinuousEffectImpl<SoilshaperEffect> {
|
class SoilshaperToken extends Token {
|
||||||
|
|
||||||
public SoilshaperEffect() {
|
public SoilshaperToken() {
|
||||||
super(Constants.Duration.EndOfTurn, Constants.Outcome.BecomeCreature);
|
super("", "3/3");
|
||||||
staticText = "target land becomes a 3/3 creature until end of turn. It's still a land";
|
this.cardType.add(CardType.CREATURE);
|
||||||
}
|
|
||||||
|
|
||||||
public SoilshaperEffect(final SoilshaperEffect effect) {
|
this.power = new MageInt(3);
|
||||||
super(effect);
|
this.toughness = new MageInt(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Constants.Layer layer, Constants.SubLayer sublayer, Ability source, Game game) {
|
|
||||||
Permanent permanent = game.getPermanent(source.getFirstTarget());
|
|
||||||
if (permanent != null) {
|
|
||||||
switch (layer) {
|
|
||||||
case TypeChangingEffects_4:
|
|
||||||
if (sublayer == Constants.SubLayer.NA) {
|
|
||||||
permanent.getCardType().add(CardType.CREATURE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PTChangingEffects_7:
|
|
||||||
if (sublayer == Constants.SubLayer.SetPT_7b) {
|
|
||||||
permanent.getPower().setValue(3);
|
|
||||||
permanent.getToughness().setValue(3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public SoilshaperEffect copy() {
|
|
||||||
return new SoilshaperEffect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasLayer(Constants.Layer layer) {
|
|
||||||
return layer == Constants.Layer.PTChangingEffects_7 || layer == Constants.Layer.ColorChangingEffects_5 || layer == layer.TypeChangingEffects_4;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -32,13 +32,14 @@ import java.util.UUID;
|
||||||
|
|
||||||
import mage.Constants;
|
import mage.Constants;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.costs.mana.GenericManaCost;
|
import mage.abilities.costs.mana.GenericManaCost;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.effects.common.continious.BoostTargetEffect;
|
import mage.abilities.effects.common.continious.BoostTargetEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.abilities.mana.ColorlessManaAbility;
|
import mage.abilities.mana.ColorlessManaAbility;
|
||||||
|
@ -64,7 +65,7 @@ public class BlinkmothNexus extends CardImpl<BlinkmothNexus> {
|
||||||
super(ownerId, 163, "Blinkmoth Nexus", Rarity.RARE, new CardType[]{CardType.LAND}, null);
|
super(ownerId, 163, "Blinkmoth Nexus", Rarity.RARE, new CardType[]{CardType.LAND}, null);
|
||||||
this.expansionSetCode = "DST";
|
this.expansionSetCode = "DST";
|
||||||
this.addAbility(new ColorlessManaAbility());
|
this.addAbility(new ColorlessManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new BlinkmothNexusToken(), "land"), new GenericManaCost(1)));
|
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new BlinkmothNexusToken(), "land", Duration.EndOfTurn), new GenericManaCost(1)));
|
||||||
Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BoostTargetEffect(1, 1, Constants.Duration.EndOfTurn), new GenericManaCost(1));
|
Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BoostTargetEffect(1, 1, Constants.Duration.EndOfTurn), new GenericManaCost(1));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addTarget(new TargetPermanent(filter));
|
ability.addTarget(new TargetPermanent(filter));
|
||||||
|
|
|
@ -32,11 +32,12 @@ import java.util.UUID;
|
||||||
|
|
||||||
import mage.Constants;
|
import mage.Constants;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.GenericManaCost;
|
import mage.abilities.costs.mana.GenericManaCost;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.keyword.IndestructibleAbility;
|
import mage.abilities.keyword.IndestructibleAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.game.permanent.token.Token;
|
import mage.game.permanent.token.Token;
|
||||||
|
@ -51,7 +52,7 @@ public class DarksteelBrute extends CardImpl<DarksteelBrute> {
|
||||||
super(ownerId, 108, "Darksteel Brute", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
|
super(ownerId, 108, "Darksteel Brute", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
|
||||||
this.expansionSetCode = "DST";
|
this.expansionSetCode = "DST";
|
||||||
this.addAbility(IndestructibleAbility.getInstance());
|
this.addAbility(IndestructibleAbility.getInstance());
|
||||||
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new DarksteelBruteToken(), ""), new GenericManaCost(3)));
|
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new DarksteelBruteToken(), "", Duration.EndOfTurn), new GenericManaCost(3)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public DarksteelBrute (final DarksteelBrute card) {
|
public DarksteelBrute (final DarksteelBrute card) {
|
||||||
|
|
|
@ -30,12 +30,13 @@ package mage.sets.guildpact;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import mage.Constants;
|
import mage.Constants;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.effects.common.continious.GainAbilityControlledEffect;
|
import mage.abilities.effects.common.continious.GainAbilityControlledEffect;
|
||||||
import mage.abilities.keyword.TrampleAbility;
|
import mage.abilities.keyword.TrampleAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
|
@ -51,7 +52,7 @@ public class GruulWarPlow extends CardImpl<GruulWarPlow> {
|
||||||
super(ownerId, 151, "Gruul War Plow", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{4}");
|
super(ownerId, 151, "Gruul War Plow", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||||
this.expansionSetCode = "GPT";
|
this.expansionSetCode = "GPT";
|
||||||
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new GainAbilityControlledEffect(TrampleAbility.getInstance(), Constants.Duration.WhileOnBattlefield, FilterCreaturePermanent.getDefault())));
|
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new GainAbilityControlledEffect(TrampleAbility.getInstance(), Constants.Duration.WhileOnBattlefield, FilterCreaturePermanent.getDefault())));
|
||||||
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new GruulWarPlowToken(), ""), new ManaCostsImpl("{1}{R}{G}")));
|
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GruulWarPlowToken(), "", Duration.EndOfTurn), new ManaCostsImpl("{1}{R}{G}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public GruulWarPlow(final GruulWarPlow card) {
|
public GruulWarPlow(final GruulWarPlow card) {
|
||||||
|
|
|
@ -31,18 +31,13 @@ package mage.sets.magic2010;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
import mage.Constants.Duration;
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Layer;
|
|
||||||
import mage.Constants.Outcome;
|
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.Constants.SubLayer;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||||
import mage.abilities.effects.ContinuousEffectImpl;
|
import mage.abilities.effects.common.continious.BecomesCreatureTargetEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.filter.common.FilterLandPermanent;
|
import mage.filter.common.FilterLandPermanent;
|
||||||
import mage.game.Game;
|
|
||||||
import mage.game.permanent.Permanent;
|
|
||||||
import mage.game.permanent.token.Token;
|
import mage.game.permanent.token.Token;
|
||||||
import mage.target.common.TargetLandPermanent;
|
import mage.target.common.TargetLandPermanent;
|
||||||
|
|
||||||
|
@ -66,7 +61,7 @@ public class AwakenerDruid extends CardImpl<AwakenerDruid> {
|
||||||
this.subtype.add("Druid");
|
this.subtype.add("Druid");
|
||||||
this.power = new MageInt(1);
|
this.power = new MageInt(1);
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
Ability ability = new EntersBattlefieldTriggeredAbility(new AwakenerDruidEffect(), false);
|
Ability ability = new EntersBattlefieldTriggeredAbility(new BecomesCreatureTargetEffect(new AwakenerDruidToken(), "land", Duration.WhileOnBattlefield), false);
|
||||||
ability.addTarget(new TargetLandPermanent(filter));
|
ability.addTarget(new TargetLandPermanent(filter));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
@ -82,67 +77,6 @@ public class AwakenerDruid extends CardImpl<AwakenerDruid> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class AwakenerDruidEffect extends ContinuousEffectImpl<AwakenerDruidEffect> {
|
|
||||||
|
|
||||||
protected static AwakenerDruidToken token = new AwakenerDruidToken();
|
|
||||||
|
|
||||||
public AwakenerDruidEffect() {
|
|
||||||
super(Duration.WhileOnBattlefield, Outcome.BecomeCreature);
|
|
||||||
staticText = "target Forest becomes a 4/5 green Treefolk creature for as long as {this} is on the battlefield. It's still a land.";
|
|
||||||
}
|
|
||||||
|
|
||||||
public AwakenerDruidEffect(final AwakenerDruidEffect effect) {
|
|
||||||
super(effect);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public AwakenerDruidEffect copy() {
|
|
||||||
return new AwakenerDruidEffect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) {
|
|
||||||
Permanent permanent = game.getPermanent(source.getFirstTarget());
|
|
||||||
if (permanent != null) {
|
|
||||||
switch (layer) {
|
|
||||||
case TypeChangingEffects_4:
|
|
||||||
if (sublayer == SubLayer.NA) {
|
|
||||||
if (token.getCardType().size() > 0)
|
|
||||||
permanent.getCardType().addAll(token.getCardType());
|
|
||||||
if (token.getSubtype().size() > 0)
|
|
||||||
permanent.getSubtype().addAll(token.getSubtype());
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ColorChangingEffects_5:
|
|
||||||
if (sublayer == SubLayer.NA) {
|
|
||||||
if (token.getColor().hasColor())
|
|
||||||
permanent.getColor().setColor(token.getColor());
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PTChangingEffects_7:
|
|
||||||
if (sublayer == SubLayer.SetPT_7b) {
|
|
||||||
if (token.getPower() != MageInt.EmptyMageInt)
|
|
||||||
permanent.getPower().setValue(token.getPower().getValue());
|
|
||||||
if (token.getToughness() != MageInt.EmptyMageInt)
|
|
||||||
permanent.getToughness().setValue(token.getToughness().getValue());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasLayer(Layer layer) {
|
|
||||||
return layer == Layer.PTChangingEffects_7 || layer == Layer.ColorChangingEffects_5 || layer == layer.TypeChangingEffects_4;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
class AwakenerDruidToken extends Token {
|
class AwakenerDruidToken extends Token {
|
||||||
|
|
||||||
public AwakenerDruidToken() {
|
public AwakenerDruidToken() {
|
||||||
|
|
|
@ -29,6 +29,7 @@ package mage.sets.magic2012;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.Constants.Zone;
|
import mage.Constants.Zone;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
|
@ -36,7 +37,7 @@ import mage.abilities.Ability;
|
||||||
import mage.abilities.Mode;
|
import mage.abilities.Mode;
|
||||||
import mage.abilities.common.ActivateOncePerTurnActivatedAbility;
|
import mage.abilities.common.ActivateOncePerTurnActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.abilities.keyword.TrampleAbility;
|
import mage.abilities.keyword.TrampleAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
|
@ -59,15 +60,15 @@ public class Skinshifter extends CardImpl<Skinshifter> {
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
Ability ability = new ActivateOncePerTurnActivatedAbility(Zone.BATTLEFIELD,
|
Ability ability = new ActivateOncePerTurnActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new BecomesCreatureSourceEOTEffect(new RhinoToken(), ""),
|
new BecomesCreatureSourceEffect(new RhinoToken(), "", Duration.EndOfTurn),
|
||||||
new ManaCostsImpl("{G}"));
|
new ManaCostsImpl("{G}"));
|
||||||
|
|
||||||
Mode mode = new Mode();
|
Mode mode = new Mode();
|
||||||
mode.getEffects().add(new BecomesCreatureSourceEOTEffect(new BirdToken(), ""));
|
mode.getEffects().add(new BecomesCreatureSourceEffect(new BirdToken(), "", Duration.EndOfTurn));
|
||||||
ability.addMode(mode);
|
ability.addMode(mode);
|
||||||
|
|
||||||
mode = new Mode();
|
mode = new Mode();
|
||||||
mode.getEffects().add(new BecomesCreatureSourceEOTEffect(new PlantToken(), ""));
|
mode.getEffects().add(new BecomesCreatureSourceEffect(new PlantToken(), "", Duration.EndOfTurn));
|
||||||
ability.addMode(mode);
|
ability.addMode(mode);
|
||||||
|
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -31,17 +31,18 @@ import java.util.UUID;
|
||||||
|
|
||||||
import mage.Constants;
|
import mage.Constants;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||||
import mage.abilities.costs.mana.ColoredManaCost;
|
import mage.abilities.costs.mana.ColoredManaCost;
|
||||||
import mage.abilities.costs.mana.GenericManaCost;
|
import mage.abilities.costs.mana.GenericManaCost;
|
||||||
import mage.abilities.effects.ContinuousEffectImpl;
|
|
||||||
import mage.abilities.effects.common.DrawCardControllerEffect;
|
import mage.abilities.effects.common.DrawCardControllerEffect;
|
||||||
|
import mage.abilities.effects.common.continious.BecomesCreatureTargetEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.game.Game;
|
import mage.game.permanent.token.Token;
|
||||||
import mage.game.permanent.Permanent;
|
|
||||||
import mage.target.common.TargetLandPermanent;
|
import mage.target.common.TargetLandPermanent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -53,7 +54,7 @@ public class LifesparkSpellbomb extends CardImpl<LifesparkSpellbomb> {
|
||||||
public LifesparkSpellbomb(UUID ownerId) {
|
public LifesparkSpellbomb(UUID ownerId) {
|
||||||
super(ownerId, 197, "Lifespark Spellbomb", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{1}");
|
super(ownerId, 197, "Lifespark Spellbomb", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{1}");
|
||||||
this.expansionSetCode = "MRD";
|
this.expansionSetCode = "MRD";
|
||||||
Ability firstAbility = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new LifesparkSpellbombEffect(), new ColoredManaCost(Constants.ColoredManaSymbol.G));
|
Ability firstAbility = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureTargetEffect(new LifesparkSpellbombToken(), "land", Duration.EndOfTurn), new ColoredManaCost(Constants.ColoredManaSymbol.G));
|
||||||
firstAbility.addCost(new SacrificeSourceCost());
|
firstAbility.addCost(new SacrificeSourceCost());
|
||||||
firstAbility.addTarget(new TargetLandPermanent());
|
firstAbility.addTarget(new TargetLandPermanent());
|
||||||
this.addAbility(firstAbility);
|
this.addAbility(firstAbility);
|
||||||
|
@ -71,54 +72,15 @@ public class LifesparkSpellbomb extends CardImpl<LifesparkSpellbomb> {
|
||||||
return new LifesparkSpellbomb(this);
|
return new LifesparkSpellbomb(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class LifesparkSpellbombEffect extends ContinuousEffectImpl<LifesparkSpellbombEffect> {
|
class LifesparkSpellbombToken extends Token {
|
||||||
|
|
||||||
public LifesparkSpellbombEffect() {
|
public LifesparkSpellbombToken() {
|
||||||
super(Constants.Duration.EndOfTurn, Constants.Outcome.BecomeCreature);
|
super("", "3/3");
|
||||||
staticText = "Until end of turn, target land becomes a 3/3 creature that's still a land";
|
this.cardType.add(CardType.CREATURE);
|
||||||
}
|
|
||||||
|
|
||||||
public LifesparkSpellbombEffect(final LifesparkSpellbombEffect effect) {
|
this.power = new MageInt(3);
|
||||||
super(effect);
|
this.toughness = new MageInt(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Constants.Layer layer, Constants.SubLayer sublayer, Ability source, Game game) {
|
|
||||||
Permanent permanent = game.getPermanent(source.getFirstTarget());
|
|
||||||
if (permanent != null) {
|
|
||||||
switch (layer) {
|
|
||||||
case TypeChangingEffects_4:
|
|
||||||
if (sublayer == Constants.SubLayer.NA) {
|
|
||||||
permanent.getCardType().add(CardType.CREATURE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PTChangingEffects_7:
|
|
||||||
if (sublayer == Constants.SubLayer.SetPT_7b) {
|
|
||||||
permanent.getPower().setValue(3);
|
|
||||||
permanent.getToughness().setValue(3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public LifesparkSpellbombEffect copy() {
|
|
||||||
return new LifesparkSpellbombEffect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasLayer(Constants.Layer layer) {
|
|
||||||
return layer == Constants.Layer.PTChangingEffects_7 || layer == layer.TypeChangingEffects_4;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -30,12 +30,13 @@ package mage.sets.mirrodinbesieged;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.Constants.Zone;
|
import mage.Constants.Zone;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.GenericManaCost;
|
import mage.abilities.costs.mana.GenericManaCost;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.abilities.keyword.InfectAbility;
|
import mage.abilities.keyword.InfectAbility;
|
||||||
import mage.abilities.mana.ColorlessManaAbility;
|
import mage.abilities.mana.ColorlessManaAbility;
|
||||||
|
@ -52,7 +53,7 @@ public class InkmothNexus extends CardImpl<InkmothNexus> {
|
||||||
super(ownerId, 145, "Inkmoth Nexus", Rarity.RARE, new CardType[]{CardType.LAND}, null);
|
super(ownerId, 145, "Inkmoth Nexus", Rarity.RARE, new CardType[]{CardType.LAND}, null);
|
||||||
this.expansionSetCode = "MBS";
|
this.expansionSetCode = "MBS";
|
||||||
this.addAbility(new ColorlessManaAbility());
|
this.addAbility(new ColorlessManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new InkmothNexusToken(), "land"), new GenericManaCost(1)));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new InkmothNexusToken(), "land", Duration.EndOfTurn), new GenericManaCost(1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public InkmothNexus (final InkmothNexus card) {
|
public InkmothNexus (final InkmothNexus card) {
|
||||||
|
|
|
@ -38,7 +38,7 @@ import mage.abilities.Ability;
|
||||||
import mage.abilities.LoyaltyAbility;
|
import mage.abilities.LoyaltyAbility;
|
||||||
import mage.abilities.common.EntersBattlefieldAbility;
|
import mage.abilities.common.EntersBattlefieldAbility;
|
||||||
import mage.abilities.effects.RequirementEffect;
|
import mage.abilities.effects.RequirementEffect;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||||
import mage.abilities.effects.common.PreventAllDamageSourceEffect;
|
import mage.abilities.effects.common.PreventAllDamageSourceEffect;
|
||||||
|
@ -79,7 +79,7 @@ public class GideonJura extends CardImpl<GideonJura> {
|
||||||
ability2.addTarget(new TargetCreaturePermanent(filter));
|
ability2.addTarget(new TargetCreaturePermanent(filter));
|
||||||
this.addAbility(ability2);
|
this.addAbility(ability2);
|
||||||
|
|
||||||
LoyaltyAbility ability3 = new LoyaltyAbility(new BecomesCreatureSourceEOTEffect(new GideonJuraToken(), "planeswalker"), 0);
|
LoyaltyAbility ability3 = new LoyaltyAbility(new BecomesCreatureSourceEffect(new GideonJuraToken(), "planeswalker", Duration.EndOfTurn), 0);
|
||||||
ability3.addEffect(new PreventAllDamageSourceEffect(Duration.EndOfTurn));
|
ability3.addEffect(new PreventAllDamageSourceEffect(Duration.EndOfTurn));
|
||||||
this.addAbility(ability3);
|
this.addAbility(ability3);
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ import mage.abilities.dynamicvalue.DynamicValue;
|
||||||
import mage.abilities.dynamicvalue.common.CountersCount;
|
import mage.abilities.dynamicvalue.common.CountersCount;
|
||||||
import mage.abilities.effects.ContinuousEffectImpl;
|
import mage.abilities.effects.ContinuousEffectImpl;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
|
@ -66,7 +66,7 @@ public class ChimericMass extends CardImpl<ChimericMass> {
|
||||||
this.addAbility(new EntersBattlefieldAbility(new ChimericMassEffect(), "{this} enters the battlefield with X charge counters on it"));
|
this.addAbility(new EntersBattlefieldAbility(new ChimericMassEffect(), "{this} enters the battlefield with X charge counters on it"));
|
||||||
Costs costs = new CostsImpl();
|
Costs costs = new CostsImpl();
|
||||||
costs.add(new GenericManaCost(1));
|
costs.add(new GenericManaCost(1));
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new ChimericMassToken(), ""), costs));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new ChimericMassToken(), "", Duration.EndOfTurn), costs));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChimericMass(final ChimericMass card) {
|
public ChimericMass(final ChimericMass card) {
|
||||||
|
|
|
@ -32,13 +32,14 @@ import java.util.UUID;
|
||||||
|
|
||||||
import mage.Constants;
|
import mage.Constants;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Abilities;
|
import mage.abilities.Abilities;
|
||||||
import mage.abilities.TriggeredAbilityImpl;
|
import mage.abilities.TriggeredAbilityImpl;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ColoredManaCost;
|
import mage.abilities.costs.mana.ColoredManaCost;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
|
@ -57,8 +58,7 @@ public class GlintHawkIdol extends CardImpl<GlintHawkIdol> {
|
||||||
super(ownerId, 156, "Glint Hawk Idol", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
|
super(ownerId, 156, "Glint Hawk Idol", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
|
||||||
this.expansionSetCode = "SOM";
|
this.expansionSetCode = "SOM";
|
||||||
this.addAbility(new GlintHawkIdolTriggeredAbility());
|
this.addAbility(new GlintHawkIdolTriggeredAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new GlintHawkIdolToken(), ""), new ColoredManaCost(Constants.ColoredManaSymbol.W)));
|
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GlintHawkIdolToken(), "", Duration.EndOfTurn), new ColoredManaCost(Constants.ColoredManaSymbol.W)));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public GlintHawkIdol (final GlintHawkIdol card) {
|
public GlintHawkIdol (final GlintHawkIdol card) {
|
||||||
|
@ -74,7 +74,7 @@ public class GlintHawkIdol extends CardImpl<GlintHawkIdol> {
|
||||||
|
|
||||||
class GlintHawkIdolTriggeredAbility extends TriggeredAbilityImpl<GlintHawkIdolTriggeredAbility> {
|
class GlintHawkIdolTriggeredAbility extends TriggeredAbilityImpl<GlintHawkIdolTriggeredAbility> {
|
||||||
GlintHawkIdolTriggeredAbility() {
|
GlintHawkIdolTriggeredAbility() {
|
||||||
super(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new GlintHawkIdolToken(), ""), true);
|
super(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GlintHawkIdolToken(), "", Duration.EndOfTurn), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
GlintHawkIdolTriggeredAbility(final GlintHawkIdolTriggeredAbility ability) {
|
GlintHawkIdolTriggeredAbility(final GlintHawkIdolTriggeredAbility ability) {
|
||||||
|
|
|
@ -35,6 +35,7 @@ import mage.Constants.CardType;
|
||||||
import mage.Constants.Duration;
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.Constants.Zone;
|
import mage.Constants.Zone;
|
||||||
|
import mage.MageInt;
|
||||||
import mage.Mana;
|
import mage.Mana;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.LoyaltyAbility;
|
import mage.abilities.LoyaltyAbility;
|
||||||
|
@ -46,12 +47,14 @@ import mage.abilities.effects.ContinuousEffectImpl;
|
||||||
import mage.abilities.effects.common.DamageTargetEffect;
|
import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
import mage.abilities.effects.common.DynamicManaEffect;
|
import mage.abilities.effects.common.DynamicManaEffect;
|
||||||
import mage.abilities.effects.common.UntapTargetEffect;
|
import mage.abilities.effects.common.UntapTargetEffect;
|
||||||
|
import mage.abilities.effects.common.continious.BecomesCreatureTargetEffect;
|
||||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
import mage.filter.common.FilterLandPermanent;
|
import mage.filter.common.FilterLandPermanent;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
|
import mage.game.permanent.token.Token;
|
||||||
import mage.target.common.TargetCreatureOrPlayer;
|
import mage.target.common.TargetCreatureOrPlayer;
|
||||||
import mage.target.common.TargetLandPermanent;
|
import mage.target.common.TargetLandPermanent;
|
||||||
|
|
||||||
|
@ -77,7 +80,7 @@ public class KothOfTheHammer extends CardImpl<KothOfTheHammer> {
|
||||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(3)), ""));
|
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(3)), ""));
|
||||||
|
|
||||||
Ability ability = new LoyaltyAbility(new UntapTargetEffect(), 1);
|
Ability ability = new LoyaltyAbility(new UntapTargetEffect(), 1);
|
||||||
ability.addEffect(new KothOfTheHammerFirstEffect());
|
ability.addEffect(new BecomesCreatureTargetEffect(new KothOfTheHammerToken(), "land", Duration.EndOfTurn));
|
||||||
ability.addTarget(new TargetLandPermanent(filter));
|
ability.addTarget(new TargetLandPermanent(filter));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
this.addAbility(new LoyaltyAbility(new DynamicManaEffect(Mana.RedMana, new PermanentsOnBattlefieldCount(filterCount)), -2));
|
this.addAbility(new LoyaltyAbility(new DynamicManaEffect(Mana.RedMana, new PermanentsOnBattlefieldCount(filterCount)), -2));
|
||||||
|
@ -93,60 +96,17 @@ public class KothOfTheHammer extends CardImpl<KothOfTheHammer> {
|
||||||
return new KothOfTheHammer(this);
|
return new KothOfTheHammer(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
class KothOfTheHammerToken extends Token {
|
||||||
|
|
||||||
class KothOfTheHammerFirstEffect extends ContinuousEffectImpl<KothOfTheHammerFirstEffect> {
|
public KothOfTheHammerToken() {
|
||||||
|
super("Elemental", "4/4 red Elemental");
|
||||||
|
this.cardType.add(CardType.CREATURE);
|
||||||
|
this.subtype.add("Elemental");
|
||||||
|
|
||||||
public KothOfTheHammerFirstEffect() {
|
this.color.setRed(true);
|
||||||
super(Duration.EndOfTurn, Constants.Outcome.BecomeCreature);
|
this.power = new MageInt(4);
|
||||||
staticText = "It becomes a 4/4 red Elemental creature until end of turn. It's still a land";
|
this.toughness = new MageInt(4);
|
||||||
}
|
}
|
||||||
|
|
||||||
public KothOfTheHammerFirstEffect(final KothOfTheHammerFirstEffect effect) {
|
|
||||||
super(effect);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Constants.Layer layer, Constants.SubLayer sublayer, Ability source, Game game) {
|
|
||||||
Permanent permanent = game.getPermanent(source.getFirstTarget());
|
|
||||||
if (permanent != null) {
|
|
||||||
switch (layer) {
|
|
||||||
case TypeChangingEffects_4:
|
|
||||||
if (sublayer == Constants.SubLayer.NA) {
|
|
||||||
permanent.getCardType().add(CardType.CREATURE);
|
|
||||||
permanent.getSubtype().add("Elemental");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ColorChangingEffects_5:
|
|
||||||
if (sublayer == Constants.SubLayer.NA) {
|
|
||||||
permanent.getColor().setRed(true);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PTChangingEffects_7:
|
|
||||||
if (sublayer == Constants.SubLayer.SetPT_7b) {
|
|
||||||
permanent.getPower().setValue(4);
|
|
||||||
permanent.getToughness().setValue(4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public KothOfTheHammerFirstEffect copy() {
|
|
||||||
return new KothOfTheHammerFirstEffect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasLayer(Constants.Layer layer) {
|
|
||||||
return layer == Constants.Layer.PTChangingEffects_7 || layer == Constants.Layer.ColorChangingEffects_5 || layer == layer.TypeChangingEffects_4;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class KothOfTheHammerThirdEffect extends ContinuousEffectImpl<KothOfTheHammerThirdEffect> {
|
class KothOfTheHammerThirdEffect extends ContinuousEffectImpl<KothOfTheHammerThirdEffect> {
|
||||||
|
|
|
@ -32,13 +32,14 @@ import java.util.UUID;
|
||||||
|
|
||||||
import mage.Constants;
|
import mage.Constants;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.Constants.Zone;
|
import mage.Constants.Zone;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.condition.common.Metalcraft;
|
import mage.abilities.condition.common.Metalcraft;
|
||||||
import mage.abilities.decorator.ConditionalContinousEffect;
|
import mage.abilities.decorator.ConditionalContinousEffect;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.game.permanent.token.Token;
|
import mage.game.permanent.token.Token;
|
||||||
|
|
||||||
|
@ -54,7 +55,7 @@ public class RustedRelic extends CardImpl<RustedRelic> {
|
||||||
this.addAbility(
|
this.addAbility(
|
||||||
new SimpleStaticAbility(Zone.BATTLEFIELD,
|
new SimpleStaticAbility(Zone.BATTLEFIELD,
|
||||||
new ConditionalContinousEffect(
|
new ConditionalContinousEffect(
|
||||||
new BecomesCreatureSourceEOTEffect(new RustedRelicToken(), "artifact"),
|
new BecomesCreatureSourceEffect(new RustedRelicToken(), "artifact", Duration.Custom),
|
||||||
Metalcraft.getInstance(),
|
Metalcraft.getInstance(),
|
||||||
"Metalcraft - Rusted Relic is a 5/5 Golem artifact creature as long as you control three or more artifacts")));
|
"Metalcraft - Rusted Relic is a 5/5 Golem artifact creature as long as you control three or more artifacts")));
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,15 +31,15 @@ import java.util.UUID;
|
||||||
|
|
||||||
import mage.Constants;
|
import mage.Constants;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.abilities.Ability;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.GenericManaCost;
|
import mage.abilities.costs.mana.GenericManaCost;
|
||||||
import mage.abilities.effects.ContinuousEffectImpl;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.mana.ColorlessManaAbility;
|
import mage.abilities.mana.ColorlessManaAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.game.Game;
|
import mage.game.permanent.token.Token;
|
||||||
import mage.game.permanent.Permanent;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -51,7 +51,7 @@ public class StalkingStones extends CardImpl<StalkingStones> {
|
||||||
super(ownerId, 333, "Stalking Stones", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, "");
|
super(ownerId, 333, "Stalking Stones", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, "");
|
||||||
this.expansionSetCode = "TMP";
|
this.expansionSetCode = "TMP";
|
||||||
this.addAbility(new ColorlessManaAbility());
|
this.addAbility(new ColorlessManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new StalkingStonesEffect(), new GenericManaCost(6)));
|
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new StalkingStonesToken(), "land", Duration.WhileOnBattlefield), new GenericManaCost(6)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public StalkingStones(final StalkingStones card) {
|
public StalkingStones(final StalkingStones card) {
|
||||||
|
@ -64,52 +64,14 @@ public class StalkingStones extends CardImpl<StalkingStones> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class StalkingStonesEffect extends ContinuousEffectImpl<StalkingStonesEffect> {
|
class StalkingStonesToken extends Token {
|
||||||
|
|
||||||
public StalkingStonesEffect() {
|
public StalkingStonesToken() {
|
||||||
super(Constants.Duration.WhileOnBattlefield, Constants.Outcome.BecomeCreature);
|
super("Elemental", "3/3 Elemental artifact");
|
||||||
staticText = "{this} becomes a 3/3 Elemental artifact creature that's still a land";
|
this.cardType.add(CardType.CREATURE);
|
||||||
}
|
this.cardType.add(CardType.ARTIFACT);
|
||||||
|
|
||||||
public StalkingStonesEffect(final StalkingStonesEffect effect) {
|
this.power = new MageInt(3);
|
||||||
super(effect);
|
this.toughness = new MageInt(3);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Constants.Layer layer, Constants.SubLayer sublayer, Ability source, Game game) {
|
|
||||||
Permanent permanent = game.getPermanent(source.getFirstTarget());
|
|
||||||
if (permanent != null) {
|
|
||||||
switch (layer) {
|
|
||||||
case TypeChangingEffects_4:
|
|
||||||
if (sublayer == Constants.SubLayer.NA) {
|
|
||||||
permanent.getCardType().add(CardType.ARTIFACT);
|
|
||||||
permanent.getCardType().add(CardType.CREATURE);
|
|
||||||
permanent.getSubtype().add("Elemental");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PTChangingEffects_7:
|
|
||||||
if (sublayer == Constants.SubLayer.SetPT_7b) {
|
|
||||||
permanent.getPower().setValue(3);
|
|
||||||
permanent.getToughness().setValue(3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public StalkingStonesEffect copy() {
|
|
||||||
return new StalkingStonesEffect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasLayer(Constants.Layer layer) {
|
|
||||||
return layer == Constants.Layer.PTChangingEffects_7 || layer == layer.TypeChangingEffects_4;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -31,13 +31,14 @@ import java.util.UUID;
|
||||||
|
|
||||||
import mage.Constants;
|
import mage.Constants;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.ObjectColor;
|
import mage.ObjectColor;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.abilities.mana.BlueManaAbility;
|
import mage.abilities.mana.BlueManaAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
|
@ -54,7 +55,7 @@ public class FaerieConclave extends CardImpl<FaerieConclave> {
|
||||||
this.expansionSetCode = "10E";
|
this.expansionSetCode = "10E";
|
||||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||||
this.addAbility(new BlueManaAbility());
|
this.addAbility(new BlueManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new FaerieConclaveToken(), "land"), new ManaCostsImpl("{1}{U}")));
|
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new FaerieConclaveToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{1}{U}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public FaerieConclave(final FaerieConclave card) {
|
public FaerieConclave(final FaerieConclave card) {
|
||||||
|
|
|
@ -31,13 +31,14 @@ import java.util.UUID;
|
||||||
|
|
||||||
import mage.Constants;
|
import mage.Constants;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.ObjectColor;
|
import mage.ObjectColor;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.abilities.mana.BlueManaAbility;
|
import mage.abilities.mana.BlueManaAbility;
|
||||||
import mage.abilities.mana.WhiteManaAbility;
|
import mage.abilities.mana.WhiteManaAbility;
|
||||||
|
@ -55,7 +56,7 @@ public class ForbiddingWatchtower extends CardImpl<ForbiddingWatchtower> {
|
||||||
this.expansionSetCode = "10E";
|
this.expansionSetCode = "10E";
|
||||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||||
this.addAbility(new WhiteManaAbility());
|
this.addAbility(new WhiteManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new ForbiddingWatchtowerToken(), "land"), new ManaCostsImpl("{1}{W}")));
|
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new ForbiddingWatchtowerToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{1}{W}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ForbiddingWatchtower(final ForbiddingWatchtower card) {
|
public ForbiddingWatchtower(final ForbiddingWatchtower card) {
|
||||||
|
|
|
@ -29,13 +29,14 @@ package mage.sets.tenth;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.Constants.Zone;
|
import mage.Constants.Zone;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.keyword.FirstStrikeAbility;
|
import mage.abilities.keyword.FirstStrikeAbility;
|
||||||
import mage.abilities.mana.RedManaAbility;
|
import mage.abilities.mana.RedManaAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
|
@ -54,7 +55,7 @@ public class GhituEncampment extends CardImpl<GhituEncampment> {
|
||||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||||
this.addAbility(new RedManaAbility());
|
this.addAbility(new RedManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new BecomesCreatureSourceEOTEffect(new GhituEncampmentToken(), "land"),
|
new BecomesCreatureSourceEffect(new GhituEncampmentToken(), "land", Duration.EndOfTurn),
|
||||||
new ManaCostsImpl("{1}{R}")));
|
new ManaCostsImpl("{1}{R}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@ import java.util.UUID;
|
||||||
|
|
||||||
import mage.Constants;
|
import mage.Constants;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.ObjectColor;
|
import mage.ObjectColor;
|
||||||
|
@ -39,7 +40,7 @@ import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ColoredManaCost;
|
import mage.abilities.costs.mana.ColoredManaCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.RegenerateSourceEffect;
|
import mage.abilities.effects.common.RegenerateSourceEffect;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.mana.BlackManaAbility;
|
import mage.abilities.mana.BlackManaAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.game.permanent.token.Token;
|
import mage.game.permanent.token.Token;
|
||||||
|
@ -55,7 +56,7 @@ public class SpawningPool extends CardImpl<SpawningPool> {
|
||||||
this.expansionSetCode = "10E";
|
this.expansionSetCode = "10E";
|
||||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||||
this.addAbility(new BlackManaAbility());
|
this.addAbility(new BlackManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new SkeletonToken(), "land"), new ManaCostsImpl("{1}{B}")));
|
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new SkeletonToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{1}{B}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public SpawningPool(final SpawningPool card) {
|
public SpawningPool(final SpawningPool card) {
|
||||||
|
|
|
@ -31,6 +31,7 @@ import java.util.UUID;
|
||||||
|
|
||||||
import mage.Constants;
|
import mage.Constants;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.ObjectColor;
|
import mage.ObjectColor;
|
||||||
|
@ -39,7 +40,7 @@ import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ColoredManaCost;
|
import mage.abilities.costs.mana.ColoredManaCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.RegenerateSourceEffect;
|
import mage.abilities.effects.common.RegenerateSourceEffect;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.keyword.TrampleAbility;
|
import mage.abilities.keyword.TrampleAbility;
|
||||||
import mage.abilities.mana.GreenManaAbility;
|
import mage.abilities.mana.GreenManaAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
|
@ -56,7 +57,7 @@ public class TreetopVillage extends CardImpl<TreetopVillage> {
|
||||||
this.expansionSetCode = "10E";
|
this.expansionSetCode = "10E";
|
||||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||||
this.addAbility(new GreenManaAbility());
|
this.addAbility(new GreenManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new ApeToken(), "land"), new ManaCostsImpl("{1}{G}")));
|
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new ApeToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{1}{G}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public TreetopVillage(final TreetopVillage card) {
|
public TreetopVillage(final TreetopVillage card) {
|
||||||
|
|
|
@ -30,13 +30,14 @@ package mage.sets.worldwake;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.Constants.Zone;
|
import mage.Constants.Zone;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.abilities.keyword.VigilanceAbility;
|
import mage.abilities.keyword.VigilanceAbility;
|
||||||
import mage.abilities.mana.BlueManaAbility;
|
import mage.abilities.mana.BlueManaAbility;
|
||||||
|
@ -56,7 +57,7 @@ public class CelestialColonnade extends CardImpl<CelestialColonnade> {
|
||||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||||
this.addAbility(new BlueManaAbility());
|
this.addAbility(new BlueManaAbility());
|
||||||
this.addAbility(new WhiteManaAbility());
|
this.addAbility(new WhiteManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new CelestialColonnadeToken(), "land"), new ManaCostsImpl("{3}{W}{U}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new CelestialColonnadeToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{3}{W}{U}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public CelestialColonnade(final CelestialColonnade card) {
|
public CelestialColonnade(final CelestialColonnade card) {
|
||||||
|
|
|
@ -30,13 +30,14 @@ package mage.sets.worldwake;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.Constants.Zone;
|
import mage.Constants.Zone;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.keyword.UnblockableAbility;
|
import mage.abilities.keyword.UnblockableAbility;
|
||||||
import mage.abilities.mana.BlackManaAbility;
|
import mage.abilities.mana.BlackManaAbility;
|
||||||
import mage.abilities.mana.BlueManaAbility;
|
import mage.abilities.mana.BlueManaAbility;
|
||||||
|
@ -55,7 +56,7 @@ public class CreepingTarPit extends CardImpl<CreepingTarPit> {
|
||||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||||
this.addAbility(new BlueManaAbility());
|
this.addAbility(new BlueManaAbility());
|
||||||
this.addAbility(new BlackManaAbility());
|
this.addAbility(new BlackManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new CreepingTarPitToken(), "land"), new ManaCostsImpl("{1}{U}{B}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new CreepingTarPitToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{1}{U}{B}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public CreepingTarPit (final CreepingTarPit card) {
|
public CreepingTarPit (final CreepingTarPit card) {
|
||||||
|
|
|
@ -30,12 +30,13 @@ package mage.sets.worldwake;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.Constants.Zone;
|
import mage.Constants.Zone;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.mana.ColorlessManaAbility;
|
import mage.abilities.mana.ColorlessManaAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.game.permanent.token.Token;
|
import mage.game.permanent.token.Token;
|
||||||
|
@ -50,7 +51,7 @@ public class DreadStatuary extends CardImpl<DreadStatuary> {
|
||||||
super(ownerId, 135, "Dread Statuary", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null);
|
super(ownerId, 135, "Dread Statuary", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null);
|
||||||
this.expansionSetCode = "WWK";
|
this.expansionSetCode = "WWK";
|
||||||
this.addAbility(new ColorlessManaAbility());
|
this.addAbility(new ColorlessManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new DreadStatuaryToken(), "land"), new ManaCostsImpl("{4}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new DreadStatuaryToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{4}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public DreadStatuary(final DreadStatuary card) {
|
public DreadStatuary(final DreadStatuary card) {
|
||||||
|
|
|
@ -37,7 +37,7 @@ import mage.MageInt;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.effects.common.continious.BoostPowerXSourceEffect;
|
import mage.abilities.effects.common.continious.BoostPowerXSourceEffect;
|
||||||
import mage.abilities.mana.BlackManaAbility;
|
import mage.abilities.mana.BlackManaAbility;
|
||||||
import mage.abilities.mana.RedManaAbility;
|
import mage.abilities.mana.RedManaAbility;
|
||||||
|
@ -56,7 +56,7 @@ public class LavaclawReaches extends CardImpl<LavaclawReaches> {
|
||||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||||
this.addAbility(new BlackManaAbility());
|
this.addAbility(new BlackManaAbility());
|
||||||
this.addAbility(new RedManaAbility());
|
this.addAbility(new RedManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new LavaclawReachesToken(), "land"), new ManaCostsImpl("{1}{B}{R}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new LavaclawReachesToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{1}{B}{R}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public LavaclawReaches(final LavaclawReaches card) {
|
public LavaclawReaches(final LavaclawReaches card) {
|
||||||
|
|
|
@ -30,6 +30,7 @@ package mage.sets.worldwake;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.Constants.Zone;
|
import mage.Constants.Zone;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
|
@ -37,7 +38,7 @@ import mage.abilities.common.AttacksTriggeredAbility;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||||
import mage.abilities.mana.GreenManaAbility;
|
import mage.abilities.mana.GreenManaAbility;
|
||||||
import mage.abilities.mana.RedManaAbility;
|
import mage.abilities.mana.RedManaAbility;
|
||||||
|
@ -57,7 +58,7 @@ public class RagingRavine extends CardImpl<RagingRavine> {
|
||||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||||
this.addAbility(new GreenManaAbility());
|
this.addAbility(new GreenManaAbility());
|
||||||
this.addAbility(new RedManaAbility());
|
this.addAbility(new RedManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new RagingRavineToken(), "land"), new ManaCostsImpl("{2}{R}{G}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new RagingRavineToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{2}{R}{G}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public RagingRavine(final RagingRavine card) {
|
public RagingRavine(final RagingRavine card) {
|
||||||
|
|
|
@ -30,13 +30,14 @@ package mage.sets.worldwake;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import mage.Constants.CardType;
|
import mage.Constants.CardType;
|
||||||
|
import mage.Constants.Duration;
|
||||||
import mage.Constants.Rarity;
|
import mage.Constants.Rarity;
|
||||||
import mage.Constants.Zone;
|
import mage.Constants.Zone;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
|
import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.keyword.ReachAbility;
|
import mage.abilities.keyword.ReachAbility;
|
||||||
import mage.abilities.mana.GreenManaAbility;
|
import mage.abilities.mana.GreenManaAbility;
|
||||||
import mage.abilities.mana.WhiteManaAbility;
|
import mage.abilities.mana.WhiteManaAbility;
|
||||||
|
@ -55,7 +56,7 @@ public class StirringWildwood extends CardImpl<StirringWildwood> {
|
||||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||||
this.addAbility(new GreenManaAbility());
|
this.addAbility(new GreenManaAbility());
|
||||||
this.addAbility(new WhiteManaAbility());
|
this.addAbility(new WhiteManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new StirringWildwoodToken(), "land"), new ManaCostsImpl("{1}{G}{W}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new StirringWildwoodToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{1}{G}{W}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public StirringWildwood(final StirringWildwood card) {
|
public StirringWildwood(final StirringWildwood card) {
|
||||||
|
|
|
@ -44,27 +44,27 @@ import mage.game.permanent.token.Token;
|
||||||
*
|
*
|
||||||
* @author BetaSteward_at_googlemail.com
|
* @author BetaSteward_at_googlemail.com
|
||||||
*/
|
*/
|
||||||
public class BecomesCreatureSourceEOTEffect extends ContinuousEffectImpl<BecomesCreatureSourceEOTEffect> {
|
public class BecomesCreatureSourceEffect extends ContinuousEffectImpl<BecomesCreatureSourceEffect> {
|
||||||
|
|
||||||
protected Token token;
|
protected Token token;
|
||||||
protected String type;
|
protected String type;
|
||||||
|
|
||||||
public BecomesCreatureSourceEOTEffect(Token token, String type) {
|
public BecomesCreatureSourceEffect(Token token, String type, Duration duration) {
|
||||||
super(Duration.EndOfTurn, Outcome.BecomeCreature);
|
super(duration, Outcome.BecomeCreature);
|
||||||
this.token = token;
|
this.token = token;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
setText();
|
setText();
|
||||||
}
|
}
|
||||||
|
|
||||||
public BecomesCreatureSourceEOTEffect(final BecomesCreatureSourceEOTEffect effect) {
|
public BecomesCreatureSourceEffect(final BecomesCreatureSourceEffect effect) {
|
||||||
super(effect);
|
super(effect);
|
||||||
this.token = effect.token.copy();
|
this.token = effect.token.copy();
|
||||||
this.type = effect.type;
|
this.type = effect.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BecomesCreatureSourceEOTEffect copy() {
|
public BecomesCreatureSourceEffect copy() {
|
||||||
return new BecomesCreatureSourceEOTEffect(this);
|
return new BecomesCreatureSourceEffect(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -118,9 +118,9 @@ public class BecomesCreatureSourceEOTEffect extends ContinuousEffectImpl<Becomes
|
||||||
|
|
||||||
private void setText() {
|
private void setText() {
|
||||||
if (type.length() > 0)
|
if (type.length() > 0)
|
||||||
staticText = "Until end of turn {this} becomes a " + token.getDescription() + " that's still a " + this.type;
|
staticText = duration.toString() + " {this} becomes a " + token.getDescription() + " that's still a " + this.type;
|
||||||
else
|
else
|
||||||
staticText = "Until end of turn {this} becomes a " + token.getDescription();
|
staticText = duration.toString() + " {this} becomes a " + token.getDescription();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
Loading…
Reference in a new issue