Added Roiling Terrain, Tectonic Edge and Evolving Wilds

This commit is contained in:
jendave
2011-08-06 04:53:08 +00:00
parent c2349b2475
commit 80c192289f
4 changed files with 96 additions and 10 deletions

View File

@@ -38,6 +38,9 @@ snow_covered_mountain.jpg http://www.wizards.com/global/images/magic/gene
snow_covered_mountain1.jpg http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg snow_covered_mountain1.jpg http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg
snow_covered_mountain2.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg snow_covered_mountain2.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg
snow_covered_mountain3.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg snow_covered_mountain3.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg
roiling_terrain.jpg http://www.wizards.com/global/images/magic/general/roiling_terrain.jpg
tectonic_edge.jpg http://www.wizards.com/global/images/magic/general/tectonic_edge.jpg
evolving_wilds.jpg http://www.wizards.com/global/images/magic/general/evolving_wilds.jpg
lorthos_the_tidemaker.jpg http://www.wizards.com/global/images/magic/general/lorthos_the_tidemaker.jpg lorthos_the_tidemaker.jpg http://www.wizards.com/global/images/magic/general/lorthos_the_tidemaker.jpg
adarkar_wastes.jpg http://www.wizards.com/global/images/magic/general/adarkar_wastes.jpg adarkar_wastes.jpg http://www.wizards.com/global/images/magic/general/adarkar_wastes.jpg
brushland.jpg http://www.wizards.com/global/images/magic/general/brushland.jpg brushland.jpg http://www.wizards.com/global/images/magic/general/brushland.jpg

View File

@@ -1,3 +1,19 @@
Roiling Terrain
2 R R
Sorcery
Destroy target land, then Roiling Terrain deals damage to that land's controller equal to the number of land cards in that player's graveyard.
Tectonic Edge
no cost
Land
no text
tap: add 1
Evolving Wilds
no cost
Land
no text
Lorthos, the Tidemaker Lorthos, the Tidemaker
5 U U U 5 U U U
Legendary Creature Octopus Legendary Creature Octopus

View File

@@ -7818,6 +7818,66 @@ public class CardFactory implements NewConstants {
card.clearSpellAbility(); card.clearSpellAbility();
card.addSpellAbility(spell); card.addSpellAbility(spell);
}//*************** END ************ END ************************** }//*************** END ************ END **************************
//*************** START *********** START **************************
else if(cardName.equals("Roiling Terrain")) {
SpellAbility spell = new Spell(card) {
private static final long serialVersionUID = -65124658746L;
@Override
public void resolve() {
if(AllZone.GameAction.isCardInPlay(getTargetCard())
&& CardFactoryUtil.canTarget(card, getTargetCard())) {
AllZone.GameAction.destroy(getTargetCard());
CardList Grave = new CardList(AllZone.getZone(Constant.Zone.Graveyard, getTargetCard().getController()).getCards());
int Damage = (Grave.getType("Land")).size();
AllZone.GameAction.getPlayerLife(getTargetCard().getController()).subtractLife(Damage);
}
}
@Override
public void chooseTargetAI() {
//target basic land that Human only has 1 or 2 in play
CardList land = new CardList(AllZone.Human_Play.getCards());
land = land.getType("Land");
Card target = null;
String[] name = {"Forest", "Swamp", "Plains", "Mountain", "Island"};
for(int i = 0; i < name.length; i++)
if(land.getName(name[i]).size() == 1) {
target = land.getName(name[i]).get(0);
break;
}
//see if there are only 2 lands of the same type
if(target == null) {
for(int i = 0; i < name.length; i++)
if(land.getName(name[i]).size() == 2) {
target = land.getName(name[i]).get(0);
break;
}
}//if
if(target == null) {
land.shuffle();
target = land.get(0);
}
setTargetCard(target);
}//chooseTargetAI()
@Override
public boolean canPlayAI() {
CardList land = new CardList(AllZone.Human_Play.getCards());
land = land.getType("Land");
return land.size() != 0;
}
};//SpellAbility
spell.setBeforePayMana(CardFactoryUtil.input_targetType(spell, "Land"));
card.clearSpellAbility();
card.addSpellAbility(spell);
}//*************** END ************ END **************************
//*************** START *********** START ************************** //*************** START *********** START **************************
else if(cardName.equals("Volcanic Awakening")) { else if(cardName.equals("Volcanic Awakening")) {
SpellAbility spell = new Spell(card) { SpellAbility spell = new Spell(card) {

View File

@@ -824,7 +824,7 @@ class CardFactory_Lands {
}//*************** END ************ END ************************** }//*************** END ************ END **************************
//*************** START *********** START ************************** //*************** START *********** START **************************
else if(cardName.equals("Terramorphic Expanse")) { else if(cardName.equals("Terramorphic Expanse") || cardName.equals("Evolving Wilds")) {
//tap sacrifice //tap sacrifice
final Ability_Tap ability = new Ability_Tap(card, "0") { final Ability_Tap ability = new Ability_Tap(card, "0") {
private static final long serialVersionUID = 5441740362881917927L; private static final long serialVersionUID = 5441740362881917927L;
@@ -931,21 +931,23 @@ class CardFactory_Lands {
}//showMessage() }//showMessage()
}; };
card.addSpellAbility(ability); card.addSpellAbility(ability);
ability.setDescription("tap, Sacrifice Terramorphic Expanse: Search your library for a basic land card and put it into play tapped. Then shuffle your library."); ability.setDescription("tap, Sacrifice " + card.getName() + ": Search your library for a basic land card and put it into play tapped. Then shuffle your library.");
ability.setBeforePayMana(runtime); ability.setBeforePayMana(runtime);
}//*************** END ************ END ************************** }//*************** END ************ END **************************
//*************** START *********** START ************************** //*************** START *********** START **************************
else if(cardName.equals("Wasteland") || cardName.equals("Strip Mine")) { else if(cardName.equals("Wasteland") || cardName.equals("Strip Mine") || cardName.equals("Tectonic Edge")) {
final CardListFilter landFilter = new CardListFilter() { final CardListFilter landFilter = new CardListFilter() {
public boolean addCard(Card c) { public boolean addCard(Card c) {
if(card.getName().equals("Wasteland")) return !c.getType().contains("Basic"); if(card.getName().equals("Wasteland") || card.getName().equals("Tectonic Edge")) return !c.getType().contains("Basic");
else return true; else return true;
} }
}; };
//tap sacrifice //tap sacrifice
final Ability_Tap ability = new Ability_Tap(card, "0") { String cost = "0";
if(cardName.equals("Tectonic Edge")) cost = "1";
final Ability_Tap ability = new Ability_Tap(card, cost) {
private static final long serialVersionUID = 6865042319287843154L; private static final long serialVersionUID = 6865042319287843154L;
@Override @Override
@@ -957,6 +959,8 @@ class CardFactory_Lands {
public boolean canPlay() { public boolean canPlay() {
CardList list = AllZoneUtil.getTypeInPlay("Land"); CardList list = AllZoneUtil.getTypeInPlay("Land");
list = list.filter(landFilter); list = list.filter(landFilter);
CardList Tectonic_EdgeList = AllZoneUtil.getPlayerLandsInPlay(AllZone.GameAction.getOpponent(card.getController()));
if(card.getName().equals("Tectonic Edge") && Tectonic_EdgeList.size() < 4) return false;
if(super.canPlay() && list.size() > 0 && AllZone.GameAction.isCardInPlay(card)) return true; if(super.canPlay() && list.size() > 0 && AllZone.GameAction.isCardInPlay(card)) return true;
else return false; else return false;
}//canPlay() }//canPlay()
@@ -981,7 +985,7 @@ class CardFactory_Lands {
public void selectCard(Card c, PlayerZone zone) { public void selectCard(Card c, PlayerZone zone) {
if(zone.is(Constant.Zone.Play)) { if(zone.is(Constant.Zone.Play)) {
if((c.isLand() && card.getName().equals("Strip Mine")) || if((c.isLand() && card.getName().equals("Strip Mine")) ||
(!c.isBasicLand() && card.getName().equals("Wasteland"))) { (!c.isBasicLand() && (card.getName().equals("Wasteland") || card.getName().equals("Tectonic Edge")))) {
card.tap(); //tapping Strip Mine card.tap(); //tapping Strip Mine
ability.setTargetCard(c); ability.setTargetCard(c);
AllZone.Stack.add(ability); AllZone.Stack.add(ability);
@@ -992,9 +996,12 @@ class CardFactory_Lands {
}; };
card.addSpellAbility(ability); card.addSpellAbility(ability);
ability.setDescription("Tap, Sacrifice " + card.getName() + ": Destroy target " ability.setDescription((card.getName().equals("Tectonic Edge")? "1, ":"")
+ (card.getName().equals("Wasteland")? "nonbasic":"") + " land."); + "Tap, Sacrifice " + card.getName() + ": Destroy target "
ability.setBeforePayMana(runtime); + ((card.getName().equals("Wasteland") || (card.getName().equals("Tectonic Edge")))? "nonbasic":"") + " land."
+ (card.getName().equals("Tectonic Edge")? " Activate this ability only if an opponent controls four or more lands.":""));
if(cardName.equals("Tectonic Edge")) ability.setAfterPayMana(runtime);
else ability.setBeforePayMana(runtime);
}//*************** END ************ END ************************** }//*************** END ************ END **************************
//*************** START *********** START ************************** //*************** START *********** START **************************