diff --git a/res/card-pictures.txt b/res/card-pictures.txt index 99fe771dfd2..c43672dcec3 100644 --- a/res/card-pictures.txt +++ b/res/card-pictures.txt @@ -38,6 +38,11 @@ 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 +sylvok_explorer.jpg http://www.wizards.com/global/images/magic/general/sylvok_explorer.jpg +quirion_explorer.jpg http://www.wizards.com/global/images/magic/general/quirion_explorer.jpg +harvester_druid.jpg http://www.wizards.com/global/images/magic/general/harvester_druid.jpg +fellwar_stone.jpg http://www.wizards.com/global/images/magic/general/fellwar_stone.jpg +tendo_ice_bridge.jpg http://www.wizards.com/global/images/magic/general/tendo_ice_bridge.jpg soltari_trooper.jpg http://www.wizards.com/global/images/magic/general/soltari_trooper.jpg seasoned_marshal.jpg http://www.wizards.com/global/images/magic/general/seasoned_marshal.jpg order_of_the_golden_cricket.jpg http://www.wizards.com/global/images/magic/general/order_of_the_golden_cricket.jpg diff --git a/res/cards.txt b/res/cards.txt index 9c291c4e281..21ef59f2d6d 100644 --- a/res/cards.txt +++ b/res/cards.txt @@ -1,3 +1,36 @@ +Sylvok Explorer +1 G +Creature Human Druid +no text +1/1 +abAddReflectedMana:Color:Opp + +Quirion Explorer +1 G +Creature Elf Druid Scout +no text +1/1 +abAddReflectedMana:Color:Opp + +Harvester Druid +1 G +Creature Human Druid +no text +1/1 +abAddReflectedMana:Color:You + +Fellwar Stone +2 +Artifact +no text +abAddReflectedMana:Color:Opp + +Tendo Ice Bridge +no cost +Land +CARDNAME enters the battlefield with one charge counter on it. +tap: add 1 + Soltari Trooper 1 W Creature Soltari Soldier diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index df4f1dbc874..d266e9dcd9a 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -1418,6 +1418,21 @@ public class CardFactory implements NewConstants { } }//Spore Saproling + if (hasKeyword(card, "abAddReflectedMana") != -1) { + int n = hasKeyword(card,"abAddReflectedMana"); + + String parse = card.getKeyword().get(n).toString(); + card.removeIntrinsicKeyword(parse); + String[] k = parse.split(":"); + + // Reflecting Pool, Exotic Orchard, Fellwar Stone + card.setReflectedLand(true); + // + final Ability_Mana reflectedManaAbility = CardFactoryUtil.getReflectedManaAbility(card, k[1], k[2]); + + card.addSpellAbility(reflectedManaAbility); + } // ReflectingPool + if(hasKeyword(card, "spDamageTgt") != -1) { int n = hasKeyword(card, "spDamageTgt"); if(n != -1) { diff --git a/src/forge/CardFactory_Lands.java b/src/forge/CardFactory_Lands.java index ae40239debc..fdc7f7c106a 100644 --- a/src/forge/CardFactory_Lands.java +++ b/src/forge/CardFactory_Lands.java @@ -64,26 +64,9 @@ class CardFactory_Lands { ability.setStackDescription("Put a +1/+1 counter on each green creature that entered the battlefield this turn."); card.addSpellAbility(ability); } - //*************** END ************ END ************************** + //*************** END ************ END ************************** - //*************** START *********** START ************************** - if (hasKeyword(card, "abAddReflectedMana") != -1) { - int n = hasKeyword(card,"abAddReflectedMana"); - - String parse = card.getKeyword().get(n).toString(); - card.removeIntrinsicKeyword(parse); - String[] k = parse.split(":"); - - // Reflecting Pool, Exotic Orchard - card.setReflectedLand(true); - // - final Ability_Mana reflectedManaAbility = CardFactoryUtil.getReflectedManaAbility(card, k[1], k[2]); - card.addSpellAbility(reflectedManaAbility); - } // ReflectingPool - //*************** END ************ END ************************** - - //*************** START *********** START ************************** //Ravinca Dual Lands if(cardName.equals("Blood Crypt") || cardName.equals("Breeding Pool") || cardName.equals("Godless Shrine") @@ -433,6 +416,67 @@ class CardFactory_Lands { card.addComesIntoPlayCommand(intoPlay); }//*************** END ************ END ************************** + //*************** START *********** START ************************** + else if(cardName.equals("Tendo Ice Bridge")){ + final Ability_Mana tendo = new Ability_Mana(card, "tap, Remove a charge counter from CARDNAME: Add one mana of any color to your mana pool.") { + private static final long serialVersionUID = -785117149012567841L; + + @Override + public void undo() { + card.untap(); + card.addCounter(Counters.CHARGE, 1); + } + + //@Override + public String mana() { + return this.choices_made[0].toString(); + } + + @Override + public boolean canPlay() { + if(choices_made[0] == null) choices_made[0] = "1"; + return super.canPlay() && card.getCounters(Counters.CHARGE) > 0; + } + + @Override + public void resolve() { + card.subtractCounter(Counters.CHARGE, 1); + card.tap(); + super.resolve(); + } + }; + + tendo.choices_made = new String[1]; + tendo.setBeforePayMana(new Input() { + + private static final long serialVersionUID = 376497609786542558L; + + @Override + public void showMessage() { + tendo.choices_made[0] = Input_PayManaCostUtil.getShortColorString(AllZone.Display.getChoiceOptional( + "Select a Color", Constant.Color.onlyColors)); + if (tendo.choices_made[0] != null){ + AllZone.Stack.add(tendo); + } + stop(); + } + }); + + card.setReflectableMana("WUBRG"); + card.addSpellAbility(tendo); + tendo.setDescription("CARDNAME - tap, remove a charge counter: Add one mana of any color to your mana pool"); + tendo.setStackDescription("CARDNAME - tap, remove a charge counter: Add one mana of any color to your mana pool"); + + Command intoPlay = new Command() { + private static final long serialVersionUID = -2231880032957304542L; + + public void execute() { + card.addCounter(Counters.CHARGE, 1); + } + }; + card.addComesIntoPlayCommand(intoPlay); + }//*************** END ************ END ************************** + //*************** START *********** START ************************** else if(cardName.equals("Graypelt Refuge") || cardName.equals("Sejiri Refuge") || cardName.equals("Jwar Isle Refuge") || cardName.equals("Akoum Refuge")