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.filter.common.FilterLandCard;
|
||||||
import mage.game.permanent.token.TokenImpl;
|
import mage.game.permanent.token.TokenImpl;
|
||||||
import mage.game.permanent.token.Token;
|
import mage.game.permanent.token.Token;
|
||||||
|
import mage.game.permanent.token.custom.ElementalCreatureToken;
|
||||||
import mage.target.common.TargetCardInYourGraveyard;
|
import mage.target.common.TargetCardInYourGraveyard;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -60,7 +61,9 @@ public class HostileDesert extends CardImpl {
|
||||||
// {T}: Add {C}.
|
// {T}: Add {C}.
|
||||||
addAbility(new ColorlessManaAbility());
|
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.
|
// {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"))));
|
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(new FilterLandCard("land card from your graveyard"))));
|
||||||
addAbility(ability);
|
addAbility(ability);
|
||||||
}
|
}
|
||||||
|
@ -73,22 +76,4 @@ public class HostileDesert extends CardImpl {
|
||||||
public HostileDesert copy() {
|
public HostileDesert copy() {
|
||||||
return new HostileDesert(this);
|
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 java.util.UUID;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
|
import mage.ObjectColor;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldAbility;
|
import mage.abilities.common.EntersBattlefieldAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
@ -50,6 +51,7 @@ import mage.filter.predicate.permanent.TappedPredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.token.TokenImpl;
|
import mage.game.permanent.token.TokenImpl;
|
||||||
import mage.game.permanent.token.Token;
|
import mage.game.permanent.token.Token;
|
||||||
|
import mage.game.permanent.token.custom.ElementalCreatureToken;
|
||||||
import mage.target.common.TargetLandPermanent;
|
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."));
|
"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.
|
// {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.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));
|
||||||
ability.addTarget(new TargetLandPermanent());
|
ability.addTarget(new TargetLandPermanent());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
@ -115,24 +119,4 @@ class TappedLandsCount implements DynamicValue {
|
||||||
public String getMessage() {
|
public String getMessage() {
|
||||||
return "tapped lands on the battlefield";
|
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 java.util.UUID;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
|
import mage.ObjectColor;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.AttacksTriggeredAbility;
|
import mage.abilities.common.AttacksTriggeredAbility;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||||
|
@ -50,6 +51,7 @@ import mage.constants.Zone;
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
import mage.game.permanent.token.TokenImpl;
|
import mage.game.permanent.token.TokenImpl;
|
||||||
import mage.game.permanent.token.Token;
|
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.
|
// Tap: Add Red or Green.
|
||||||
this.addAbility(new GreenManaAbility());
|
this.addAbility(new GreenManaAbility());
|
||||||
this.addAbility(new RedManaAbility());
|
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");
|
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.
|
// {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}"));
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{2}{R}{G}"));
|
||||||
|
@ -84,24 +88,4 @@ public class RagingRavine extends CardImpl {
|
||||||
return new RagingRavine(this);
|
return new RagingRavine(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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.filter.common.FilterControlledLandPermanent;
|
||||||
import mage.game.permanent.token.TokenImpl;
|
import mage.game.permanent.token.TokenImpl;
|
||||||
import mage.game.permanent.token.Token;
|
import mage.game.permanent.token.Token;
|
||||||
|
import mage.game.permanent.token.custom.ElementalCreatureToken;
|
||||||
import mage.target.TargetPermanent;
|
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"),
|
Zone.BATTLEFIELD, new GainAbilityAllEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent(), "Creatures you control gain trample until end of turn"),
|
||||||
new ManaCostsImpl("{R}{G}")));
|
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.
|
// {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()));
|
ability.addTarget(new TargetPermanent(new FilterControlledLandPermanent()));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
|
@ -80,23 +83,4 @@ public class SkarrgGuildmage extends CardImpl {
|
||||||
public SkarrgGuildmage copy() {
|
public SkarrgGuildmage copy() {
|
||||||
return new SkarrgGuildmage(this);
|
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 java.util.UUID;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
|
import mage.ObjectColor;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.DiesAttachedTriggeredAbility;
|
import mage.abilities.common.DiesAttachedTriggeredAbility;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
@ -41,6 +42,7 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.*;
|
||||||
import mage.game.permanent.token.TokenImpl;
|
import mage.game.permanent.token.TokenImpl;
|
||||||
import mage.game.permanent.token.Token;
|
import mage.game.permanent.token.Token;
|
||||||
|
import mage.game.permanent.token.custom.ElementalCreatureToken;
|
||||||
import mage.target.TargetPermanent;
|
import mage.target.TargetPermanent;
|
||||||
import mage.target.common.TargetLandPermanent;
|
import mage.target.common.TargetLandPermanent;
|
||||||
|
|
||||||
|
@ -65,7 +67,9 @@ public class VastwoodZendikon extends CardImpl {
|
||||||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
||||||
this.addAbility(ability);
|
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);
|
this.addAbility(ability2);
|
||||||
|
|
||||||
Ability ability3 = new DiesAttachedTriggeredAbility(new ReturnToHandAttachedEffect(), "enchanted land", false);
|
Ability ability3 = new DiesAttachedTriggeredAbility(new ReturnToHandAttachedEffect(), "enchanted land", false);
|
||||||
|
@ -80,22 +84,4 @@ public class VastwoodZendikon extends CardImpl {
|
||||||
public VastwoodZendikon copy() {
|
public VastwoodZendikon copy() {
|
||||||
return new VastwoodZendikon(this);
|
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);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -10,7 +10,7 @@ import mage.util.SubTypeList;
|
||||||
*
|
*
|
||||||
* @author JayDi85
|
* @author JayDi85
|
||||||
*/
|
*/
|
||||||
public class CreatureToken extends TokenImpl {
|
public class CreatureToken extends TokenImpl {
|
||||||
|
|
||||||
public CreatureToken() {
|
public CreatureToken() {
|
||||||
this(0, 0);
|
this(0, 0);
|
||||||
|
|
|
@ -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