mirror of
https://github.com/correl/mage.git
synced 2024-12-25 11:11:16 +00:00
Merge branch 'master' of https://github.com/magefree/mage
This commit is contained in:
commit
9db8ea612c
7 changed files with 76 additions and 105 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue