mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
- Added slapshot5's code for City of Brass, Channel the Suns and Wall of Tears.
- Added Borderland Ranger.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1281,7 +1281,9 @@ public class Card extends MyObservable {
|
||||
}
|
||||
|
||||
public void tap() {
|
||||
setTapped(true);
|
||||
if (isUntapped())
|
||||
GameActionUtil.executeTapSideEffects(this);
|
||||
setTapped(true);
|
||||
}
|
||||
|
||||
public void untap() {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user