This commit is contained in:
Evan Kranzler 2018-05-05 13:26:29 -04:00
commit 9db8ea612c
7 changed files with 76 additions and 105 deletions

View file

@ -44,6 +44,7 @@ import mage.constants.Zone;
import mage.filter.common.FilterLandCard;
import mage.game.permanent.token.TokenImpl;
import mage.game.permanent.token.Token;
import mage.game.permanent.token.custom.ElementalCreatureToken;
import mage.target.common.TargetCardInYourGraveyard;
/**
@ -60,7 +61,9 @@ public class HostileDesert extends CardImpl {
// {T}: Add {C}.
addAbility(new ColorlessManaAbility());
// {2}, Exile a land card from your graveyard: Hostile Desert becomes a 3/4 Elemental creature until end of turn. It's still a land.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new HostileDesertToken(), "land", Duration.EndOfTurn), new GenericManaCost(2));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
new ElementalCreatureToken(3, 4, "3/4 Elemental creature"),
"land", Duration.EndOfTurn), new GenericManaCost(2));
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(new FilterLandCard("land card from your graveyard"))));
addAbility(ability);
}
@ -74,21 +77,3 @@ public class HostileDesert extends CardImpl {
return new HostileDesert(this);
}
}
class HostileDesertToken extends TokenImpl {
public HostileDesertToken() {
super("", "3/4 elemental creature");
cardType.add(CardType.CREATURE);
subtype.add(SubType.ELEMENTAL);
power = new MageInt(3);
toughness = new MageInt(4);
}
public HostileDesertToken(final HostileDesertToken token) {
super(token);
}
public HostileDesertToken copy() {
return new HostileDesertToken(this);
}
}

View file

@ -29,6 +29,7 @@ package mage.cards.i;
import java.util.UUID;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.SimpleActivatedAbility;
@ -50,6 +51,7 @@ import mage.filter.predicate.permanent.TappedPredicate;
import mage.game.Game;
import mage.game.permanent.token.TokenImpl;
import mage.game.permanent.token.Token;
import mage.game.permanent.token.custom.ElementalCreatureToken;
import mage.target.common.TargetLandPermanent;
/**
@ -72,7 +74,9 @@ public class IgnitionTeam extends CardImpl {
"with X +1/+1 counters on it, where X is the number of tapped lands on the battlefield."));
// {2}{R}, Remove a +1/+1 counter from Ignition Team: Target land becomes a 4/4 red Elemental creature until end of turn. It's still a land.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureTargetEffect(new IgnitionTeamToken(), false, true, Duration.EndOfTurn), new ManaCostsImpl("{2}{R}"));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureTargetEffect(
new ElementalCreatureToken(4, 4, "4/4 red Elemental creature", new ObjectColor("R")),
false, true, Duration.EndOfTurn), new ManaCostsImpl("{2}{R}"));
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));
ability.addTarget(new TargetLandPermanent());
this.addAbility(ability);
@ -116,23 +120,3 @@ class TappedLandsCount implements DynamicValue {
return "tapped lands on the battlefield";
}
}
class IgnitionTeamToken extends TokenImpl {
public IgnitionTeamToken() {
super("", "4/4 red Elemental creature");
this.cardType.add(CardType.CREATURE);
this.getSubtype(null).add(SubType.ELEMENTAL);
this.color.setRed(true);
this.power = new MageInt(4);
this.toughness = new MageInt(4);
}
public IgnitionTeamToken(final IgnitionTeamToken token) {
super(token);
}
public IgnitionTeamToken copy() {
return new IgnitionTeamToken(this);
}
}

View file

@ -30,6 +30,7 @@ package mage.cards.r;
import java.util.UUID;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTappedAbility;
@ -50,6 +51,7 @@ import mage.constants.Zone;
import mage.counters.CounterType;
import mage.game.permanent.token.TokenImpl;
import mage.game.permanent.token.Token;
import mage.game.permanent.token.custom.ElementalCreatureToken;
/**
*
@ -65,7 +67,9 @@ public class RagingRavine extends CardImpl {
// Tap: Add Red or Green.
this.addAbility(new GreenManaAbility());
this.addAbility(new RedManaAbility());
Effect effect = new BecomesCreatureSourceEffect(new RagingRavineToken(), "land", Duration.EndOfTurn);
Effect effect = new BecomesCreatureSourceEffect(
new ElementalCreatureToken(3, 3, "3/3 red and green Elemental creature", new ObjectColor("RG")),
"land", Duration.EndOfTurn);
effect.setText("Until end of turn, {this} becomes a 3/3 red and green Elemental creature");
// {2}{R}{G}: Until end of turn, Raging Ravine becomes a 3/3 red and green Elemental creature with "Whenever this creature attacks, put a +1/+1 counter on it." It's still a land.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{2}{R}{G}"));
@ -85,23 +89,3 @@ public class RagingRavine extends CardImpl {
}
}
class RagingRavineToken extends TokenImpl {
public RagingRavineToken() {
super("", "3/3 red and green Elemental creature");
cardType.add(CardType.CREATURE);
subtype.add(SubType.ELEMENTAL);
color.setRed(true);
color.setGreen(true);
power = new MageInt(3);
toughness = new MageInt(3);
}
public RagingRavineToken(final RagingRavineToken token) {
super(token);
}
public RagingRavineToken copy() {
return new RagingRavineToken(this);
}
}

View file

@ -45,6 +45,7 @@ import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterControlledLandPermanent;
import mage.game.permanent.token.TokenImpl;
import mage.game.permanent.token.Token;
import mage.game.permanent.token.custom.ElementalCreatureToken;
import mage.target.TargetPermanent;
/**
@ -66,7 +67,9 @@ public class SkarrgGuildmage extends CardImpl {
Zone.BATTLEFIELD, new GainAbilityAllEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent(), "Creatures you control gain trample until end of turn"),
new ManaCostsImpl("{R}{G}")));
// {1}{R}{G}: Target land you control becomes a 4/4 Elemental creature until end of turn. It's still a land.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureTargetEffect(new SkarrgGuildmageToken(), false, true, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}{G}") );
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureTargetEffect(
new ElementalCreatureToken(4, 4, "4/4 Elemental creature"),
false, true, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}{G}") );
ability.addTarget(new TargetPermanent(new FilterControlledLandPermanent()));
this.addAbility(ability);
@ -81,22 +84,3 @@ public class SkarrgGuildmage extends CardImpl {
return new SkarrgGuildmage(this);
}
}
class SkarrgGuildmageToken extends TokenImpl {
public SkarrgGuildmageToken() {
super("", "4/4 Elemental creature");
this.cardType.add(CardType.CREATURE);
this.subtype.add(SubType.ELEMENTAL);
this.power = new MageInt(4);
this.toughness = new MageInt(4);
}
public SkarrgGuildmageToken(final SkarrgGuildmageToken token) {
super(token);
}
public SkarrgGuildmageToken copy() {
return new SkarrgGuildmageToken(this);
}
}

View file

@ -29,6 +29,7 @@ package mage.cards.v;
import java.util.UUID;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.common.DiesAttachedTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
@ -41,6 +42,7 @@ import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.game.permanent.token.TokenImpl;
import mage.game.permanent.token.Token;
import mage.game.permanent.token.custom.ElementalCreatureToken;
import mage.target.TargetPermanent;
import mage.target.common.TargetLandPermanent;
@ -65,7 +67,9 @@ public class VastwoodZendikon extends CardImpl {
Ability ability = new EnchantAbility(auraTarget.getTargetName());
this.addAbility(ability);
Ability ability2 = new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesCreatureAttachedEffect(new VastwoodElementalToken(), "Enchanted land is a 6/4 green Elemental creature. It's still a land", Duration.WhileOnBattlefield ));
Ability ability2 = new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesCreatureAttachedEffect(
new ElementalCreatureToken(6, 4, "6/4 green Elemental creature", new ObjectColor("G")),
"Enchanted land is a 6/4 green Elemental creature. It's still a land", Duration.WhileOnBattlefield ));
this.addAbility(ability2);
Ability ability3 = new DiesAttachedTriggeredAbility(new ReturnToHandAttachedEffect(), "enchanted land", false);
@ -81,21 +85,3 @@ public class VastwoodZendikon extends CardImpl {
return new VastwoodZendikon(this);
}
}
class VastwoodElementalToken extends TokenImpl {
VastwoodElementalToken() {
super("", "6/4 green Elemental creature");
cardType.add(CardType.CREATURE);
color.setGreen(true);
subtype.add(SubType.ELEMENTAL);
power = new MageInt(6);
toughness = new MageInt(4);
}
public VastwoodElementalToken(final VastwoodElementalToken token) {
super(token);
}
public VastwoodElementalToken copy() {
return new VastwoodElementalToken(this);
}
}

View file

@ -0,0 +1,48 @@
package mage.game.permanent.token.custom;
import mage.MageInt;
import mage.ObjectColor;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.game.permanent.token.TokenImpl;
import mage.util.SubTypeList;
/**
*
* @author JayDi85
*/
public class ElementalCreatureToken extends TokenImpl {
public ElementalCreatureToken() {
this(0, 0);
}
public ElementalCreatureToken(int power, int toughness) {
this(power, toughness, String.format("%d/%d Elemental creature", power, toughness));
}
public ElementalCreatureToken(int power, int toughness, String description) {
this(power, toughness, description, (ObjectColor) null);
}
public ElementalCreatureToken(int power, int toughness, String description, ObjectColor color) {
super("", description);
this.cardType.add(CardType.CREATURE);
this.subtype.add(SubType.ELEMENTAL);
this.power = new MageInt(power);
this.toughness = new MageInt(toughness);
if (color != null) {
this.color.addColor(color);
}
}
public ElementalCreatureToken(final ElementalCreatureToken token) {
super(token);
}
public ElementalCreatureToken copy() {
return new ElementalCreatureToken(this);
}
}