- Added slapshot5's code for City of Brass, Channel the Suns and Wall of Tears.

- Added Borderland Ranger.
This commit is contained in:
jendave
2011-08-06 03:52:35 +00:00
parent e4b28ffc04
commit 924ec55ee4
7 changed files with 136 additions and 2 deletions

View File

@@ -38,6 +38,8 @@ 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_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
channel_the_suns.jpg http://www.wizards.com/global/images/magic/general/channel_the_suns.jpg
wall_of_tears.jpg http://www.wizards.com/global/images/magic/general/wall_of_tears.jpg
goblin_assault.jpg http://www.wizards.com/global/images/magic/general/goblin_assault.jpg
cagemail.jpg http://www.wizards.com/global/images/magic/general/cagemail.jpg
cursed_flesh.jpg http://www.wizards.com/global/images/magic/general/cursed_flesh.jpg

View File

@@ -1,3 +1,31 @@
Borderland Ranger
2 G
Creature Human Scout
When Borderland Ranger enters the battlefield, you may search your library for a basic land card, reveal it, and put it into your hand. If you do, shuffle your library.
2/2
City of Brass
no cost
Land
Whenever City of Brass becomes tapped, it deals 1 damage to you.
tap: add W
tap: add B
tap: add U
tap: add R
tap: add G
Channel the Suns
3 G
Sorcery
Add W U B R G to your mana pool.
Wall of Tears
1 U
Creature Wall
Whenever Wall of Tears blocks a creature, return that creature to its owner's hand at end of combat.
0/4
Defender
Goblin Assault
2 R
Enchantment

View File

@@ -1281,7 +1281,9 @@ public class Card extends MyObservable {
}
public void tap() {
setTapped(true);
if (isUntapped())
GameActionUtil.executeTapSideEffects(this);
setTapped(true);
}
public void untap() {

View File

@@ -17330,6 +17330,36 @@ public class CardFactory implements NewConstants {
}//*************** END ************ END **************************
//*************** START *********** START **************************
else if(cardName.equals("Channel the Suns")) {
final SpellAbility spell = new Spell(card) {
private static final long serialVersionUID = -8509187529151755266L;
@Override
public void resolve() {
Card mp = AllZone.ManaPool;
mp.addExtrinsicKeyword("ManaPool:W");
mp.addExtrinsicKeyword("ManaPool:U");
mp.addExtrinsicKeyword("ManaPool:B");
mp.addExtrinsicKeyword("ManaPool:R");
mp.addExtrinsicKeyword("ManaPool:G");
}
@Override
public boolean canPlayAI() {
return false;
}
};
spell.setStackDescription(cardName + " adds W U B R G to your mana pool");
card.clearSpellAbility();
card.addSpellAbility(spell);
return card;
}//*************** END ************ END **************************
// Cards with Cycling abilities
// -1 means keyword "Cycling" not found
if(hasKeyword(card, "Cycling") != -1) {

View File

@@ -16966,6 +16966,57 @@ public class CardFactory_Creatures {
}
//**************END****************END***********************
//*************** START *********** START **************************
else if(cardName.equals("Borderland Ranger")) {
final Ability ability = new Ability(card, "0") {
@Override
public void resolve() {
PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card.getController());
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, card.getController());
CardList basic = new CardList(lib.getCards());
basic = basic.getType("Basic");
if(card.getController().equals(Constant.Player.Computer)) {
if(basic.size() > 0) {
Card c = basic.get(0);
lib.remove(c);
hand.add(c);
}
} else // human
{
if(basic.size() > 0) {
Object o = AllZone.Display.getChoiceOptional(
"Select Basic Land card to put into your hand: ", basic.toArray());
if(o != null) {
Card c = (Card) o;
lib.remove(c);
hand.add(c);
}
}
}
AllZone.GameAction.shuffle(card.getController());
}//resolve()
};//Ability
Command fetchBasicLand = new Command() {
private static final long serialVersionUID = 7042012311958529153L;
public void execute() {
ability.setStackDescription(card.getName()
+ " - search library for a basic land card and put it into your hand.");
AllZone.Stack.add(ability);
}
};
card.addComesIntoPlayCommand(fetchBasicLand);
}//*************** END ************ END **************************
// Cards with Cycling abilities
// -1 means keyword "Cycling" not found
if(shouldCycle(card) != -1) {

View File

@@ -1727,7 +1727,7 @@ public class CombatUtil {
AllZone.EndOfCombat.addAt(atEOC);
}
else if(b.getName().equals("AEther Membrane") || b.getName().equals("Aether Membrane")) {
else if(b.getName().equals("AEther Membrane") || b.getName().equals("Aether Membrane") || b.getName().equals("Wall of Tears")) {
final Card attacker = a;
final Ability ability = new Ability(b, "0") {
@Override

View File

@@ -102,6 +102,27 @@ public class GameActionUtil {
// creats in play when aluren is there
}
public static void executeTapSideEffects(Card c) {
/* cards with Tap side effects can be listed here, just like in
* the CardFactory classes
*/
if(c.getName().equals("City of Brass")) {
final String player = c.getController();
final Card crd = c;
Ability ability = new Ability(c, "0") {
@Override
public void resolve() {
AllZone.GameAction.addDamage(player, 1, crd);
}
};// Ability
ability.setStackDescription("City of Brass deals 1 damage to " + player);
AllZone.Stack.add(ability);
}//end City of Brass
}
public static void executePlayCardEffects(SpellAbility sa) {
// experimental:
// this method check for cards that have triggered abilities whenever a