diff --git a/.gitattributes b/.gitattributes index 7bff9cd5a2b..2863faf8333 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5915,6 +5915,7 @@ res/cardsfolder/p/pardic_lancer.txt svneol=native#text/plain res/cardsfolder/p/pardic_swordsmith.txt svneol=native#text/plain res/cardsfolder/p/part_the_veil.txt svneol=native#text/plain res/cardsfolder/p/part_water.txt svneol=native#text/plain +res/cardsfolder/p/past_in_flames.txt -text res/cardsfolder/p/patagia_golem.txt svneol=native#text/plain res/cardsfolder/p/patagia_viper.txt -text res/cardsfolder/p/patchwork_gnomes.txt -text diff --git a/res/cardsfolder/p/past_in_flames.txt b/res/cardsfolder/p/past_in_flames.txt new file mode 100644 index 00000000000..2ed4ee23360 --- /dev/null +++ b/res/cardsfolder/p/past_in_flames.txt @@ -0,0 +1,11 @@ +Name:Past in Flames +ManaCost:3 R +Types:Sorcery +Text:no text +A:SP$PumpAll | Cost$ 3 R | ValidCards$ Instant.YouCtrl,Sorcery.YouCtrl | KW$ Flashback | PumpZone$ Graveyard | SpellDescription$ Each instant and sorcery card in your graveyard gains flashback until end of turn. The flashback cost is equal to its mana cost. +A:SP$PumpAll | Cost$ 4 R | Flashback$ True | ValidCards$ Instant.YouCtrl,Sorcery.YouCtrl | KW$ Flashback | PumpZone$ Graveyard | SpellDescription$ (You may cast this card from your graveyard for its flashback cost. Then exile it.) +SVar:Rarity:Mythic +SVar:Picture:http://www.wizards.com/global/images/magic/general/past_in_flames.jpg +SetInfo:ISD|Mythic|http://magiccards.info/scans/en/isd/155.jpg +Oracle:Each instant and sorcery card in your graveyard gains flashback until end of turn. The flashback cost is equal to its mana cost.\nFlashback {4}{R} (You may cast this card from your graveyard for its flashback cost. Then exile it.) +End \ No newline at end of file diff --git a/res/cardsfolder/r/recoup.txt b/res/cardsfolder/r/recoup.txt index 779654c2dfd..5418de63524 100644 --- a/res/cardsfolder/r/recoup.txt +++ b/res/cardsfolder/r/recoup.txt @@ -3,7 +3,7 @@ ManaCost:1 R Types:Sorcery Text:no text A:SP$ Pump | Cost$ 1 R | ValidTgts$ Sorcery.YouCtrl | TgtZone$ Graveyard | TgtPrompt$ Select target instant or sorcery card | KW$ Flashback | PumpZone$ Graveyard | SpellDescription$ Target sorcery card in your graveyard gains flashback until end of turn. The flashback cost is equal to its mana cost. (Mana cost includes color.) -A:SP$ Pump | Cost$ 3 R | Flashback$ True | ValidTgts$ Sorcery.YouCtrl | TgtZone$ Graveyard | TgtPrompt$ Select target instant or sorcery card | KW$ Flashback | PumpZone$ Graveyard | CostDesc$ Flashback - 3 R | SpellDescription$ (You may cast this card from your graveyard for its flashback cost. Then exile it.) +A:SP$ Pump | Cost$ 3 R | Flashback$ True | ValidTgts$ Sorcery.YouCtrl | TgtZone$ Graveyard | TgtPrompt$ Select target instant or sorcery card | KW$ Flashback | PumpZone$ Graveyard | PreCostDesc$ Flashback - | SpellDescription$ (You may cast this card from your graveyard for its flashback cost. Then exile it.) SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/recoup.jpg SetInfo:ODY|Uncommon|http://magiccards.info/scans/en/od/216.jpg diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryPump.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryPump.java index b90436323ea..d141bf1abf2 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryPump.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryPump.java @@ -1156,6 +1156,7 @@ public class AbilityFactoryPump { final AbilityFactory af = sa.getAbilityFactory(); CardList list; ArrayList tgtPlayers = null; + final ArrayList affectedZones = new ArrayList(); final Target tgt = af.getAbTgt(); if (tgt != null) { @@ -1164,12 +1165,29 @@ public class AbilityFactoryPump { // use it tgtPlayers = AbilityFactory.getDefinedPlayers(sa.getSourceCard(), this.params.get("Defined"), sa); } - - if ((tgtPlayers == null) || tgtPlayers.isEmpty()) { - list = AllZoneUtil.getCardsIn(Zone.Battlefield); - } else { - list = tgtPlayers.get(0).getCardsIn(Zone.Battlefield); + + if(this.params.containsKey("PumpZone")) { + for(String zone : this.params.get("PumpZone").split(",")) { + affectedZones.add(Zone.valueOf(zone)); + } } + else { + affectedZones.add(Zone.Battlefield); + } + + list = new CardList(); + if ((tgtPlayers == null) || tgtPlayers.isEmpty()) { + for(Zone zone : affectedZones) { + list.addAll(AllZoneUtil.getCardsIn(zone)); + } + + } else { + for(Zone zone : affectedZones) { + list.addAll(tgtPlayers.get(0).getCardsIn(zone)); + } + } + + String valid = ""; if (this.params.containsKey("ValidCards")) { @@ -1184,8 +1202,15 @@ public class AbilityFactoryPump { for (final Card c : list) { final Card tgtC = c; - // only pump things in play - if (!AllZoneUtil.isCardInPlay(tgtC)) { + // only pump things in the affected zones. + boolean found = false; + for(Zone z : affectedZones) { + if(c.isInZone(z)) { + found = true; + break; + } + } + if (!found) { continue; }