diff --git a/res/cardsfolder/a/abbey_matron.txt b/res/cardsfolder/a/abbey_matron.txt index 4d098176eeb..3e4c4a182f9 100644 --- a/res/cardsfolder/a/abbey_matron.txt +++ b/res/cardsfolder/a/abbey_matron.txt @@ -4,7 +4,6 @@ Types:Creature Human Cleric Text:no text PT:1/3 A:AB$ Pump | Cost$ W T | NumDef$ +3 | SpellDescription$ CARDNAME gets +0/+3 until end of turn. -SVar:RemAIDeck:True SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/abbey_matron.jpg SetInfo:HML|Common|http://magiccards.info/scans/en/hl/102.jpg|2 diff --git a/res/cardsfolder/a/accelerated_mutation.txt b/res/cardsfolder/a/accelerated_mutation.txt index e7a7ef0696d..588d714b119 100644 --- a/res/cardsfolder/a/accelerated_mutation.txt +++ b/res/cardsfolder/a/accelerated_mutation.txt @@ -2,7 +2,7 @@ Name:Accelerated Mutation ManaCost:3 G G Types:Instant Text:no text -A:SP$ Pump | Cost$ 3 G G | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +X | NumDef$ +X | References$ X | SpellDescription$ Target creature gets +X/+X until end of turn, where X is the highest converted mana cost among permanents you control. +A:SP$ Pump | Cost$ 3 G G | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ X | NumDef$ X | References$ X | SpellDescription$ Target creature gets +X/+X until end of turn, where X is the highest converted mana cost among permanents you control. SVar:X:Count$MaxCMCYouCtrl SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/accelerated_mutation.jpg diff --git a/res/cardsfolder/a/aegis_of_the_meek.txt b/res/cardsfolder/a/aegis_of_the_meek.txt index b24ce65d550..276f666c55d 100644 --- a/res/cardsfolder/a/aegis_of_the_meek.txt +++ b/res/cardsfolder/a/aegis_of_the_meek.txt @@ -2,7 +2,7 @@ Name:Aegis of the Meek ManaCost:3 Types:Artifact Text:no text -A:AB$ Pump | Cost$ 1 T | NumAtt$ +1 | NumDef$ +2 | ValidTgts$ Creature.powerEQ1+toughnessEQ1 | TgtPrompt$ Select target 1/1 Creature | SpellDescription$ Target 1/1 creature gets +1/+2 until end of turn. +A:AB$ Pump | Cost$ 1 T | NumAtt$ 1 | NumDef$ 2 | ValidTgts$ Creature.powerEQ1+toughnessEQ1 | TgtPrompt$ Select target 1/1 Creature | SpellDescription$ Target 1/1 creature gets +1/+2 until end of turn. SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/aegis_of_the_meek.jpg SetInfo:ICE|Rare|http://magiccards.info/scans/en/ia/282.jpg diff --git a/res/cardsfolder/a/aetherflame_wall.txt b/res/cardsfolder/a/aetherflame_wall.txt index 4f52c68debf..a02d99474d1 100644 --- a/res/cardsfolder/a/aetherflame_wall.txt +++ b/res/cardsfolder/a/aetherflame_wall.txt @@ -4,7 +4,7 @@ Types:Creature Wall Text:no text PT:0/4 K:Defender -A:AB$ Pump | Cost$ R | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. +A:AB$ Pump | Cost$ R | NumAtt$ 1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. K:CARDNAME can block creatures with shadow as though they didn't have shadow. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/aetherflame_wall.jpg diff --git a/res/cardsfolder/a/agent_of_shauku.txt b/res/cardsfolder/a/agent_of_shauku.txt index 44798763bd7..2e5af7da04b 100644 --- a/res/cardsfolder/a/agent_of_shauku.txt +++ b/res/cardsfolder/a/agent_of_shauku.txt @@ -3,7 +3,7 @@ ManaCost:1 B Types:Creature Human Mercenary Text:no text PT:1/1 -A:AB$ Pump | Cost$ 1 B Sac<1/Land> | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +2 | SpellDescription$ Target creature gets +2/+0 until end of turn. +A:AB$ Pump | Cost$ 1 B Sac<1/Land> | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 2 | SpellDescription$ Target creature gets +2/+0 until end of turn. SVar:RemAIDeck:True SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/agent_of_shauku.jpg diff --git a/res/cardsfolder/a/aggressive_urge.txt b/res/cardsfolder/a/aggressive_urge.txt index 5dbad4938c5..0d3ff10131a 100644 --- a/res/cardsfolder/a/aggressive_urge.txt +++ b/res/cardsfolder/a/aggressive_urge.txt @@ -2,7 +2,7 @@ Name:Aggressive Urge ManaCost:1 G Types:Instant Text:no text -A:SP$ Pump | Cost$ 1 G | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +1 | NumDef$ +1 | SpellDescription$ Target creature gets +1/+1 until end of turn. | SubAbility$ DBDraw +A:SP$ Pump | Cost$ 1 G | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 1 | NumDef$ 1 | SpellDescription$ Target creature gets +1/+1 until end of turn. | SubAbility$ DBDraw SVar:DBDraw:DB$Draw | NumCards$ 1 | SpellDescription$ Draw a card. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/aggressive_urge.jpg diff --git a/res/cardsfolder/a/akki_avalanchers.txt b/res/cardsfolder/a/akki_avalanchers.txt index 52cdd53ed55..1ac351d6fe3 100644 --- a/res/cardsfolder/a/akki_avalanchers.txt +++ b/res/cardsfolder/a/akki_avalanchers.txt @@ -3,7 +3,7 @@ ManaCost:R Types:Creature Goblin Warrior Text:no text PT:1/1 -A:AB$ Pump | Cost$ Sac<1/Land> | NumAtt$ +2 | ActivationLimit$ 1 | SpellDescription$ CARDNAME gets +2/+0 until end of turn. Activate this ability only once each turn. +A:AB$ Pump | Cost$ Sac<1/Land> | NumAtt$ 2 | ActivationLimit$ 1 | SpellDescription$ CARDNAME gets +2/+0 until end of turn. Activate this ability only once each turn. SVar:RemAIDeck:True SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/akki_avalanchers.jpg diff --git a/res/cardsfolder/a/akroma_angel_of_fury.txt b/res/cardsfolder/a/akroma_angel_of_fury.txt index a22ead336f6..9e9822d9642 100644 --- a/res/cardsfolder/a/akroma_angel_of_fury.txt +++ b/res/cardsfolder/a/akroma_angel_of_fury.txt @@ -7,7 +7,7 @@ K:Flying K:Trample K:Protection from white K:Protection from blue -A:AB$ Pump | Cost$ R | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. +A:AB$ Pump | Cost$ R | NumAtt$ 1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. K:Morph:3 R R R K:CARDNAME can't be countered. SVar:Rarity:Rare diff --git a/res/cardsfolder/a/alaborn_veteran.txt b/res/cardsfolder/a/alaborn_veteran.txt index a2d99730cf6..f4b0c0c8d4a 100644 --- a/res/cardsfolder/a/alaborn_veteran.txt +++ b/res/cardsfolder/a/alaborn_veteran.txt @@ -3,7 +3,7 @@ ManaCost:2 W Types:Creature Human Knight Text:no text PT:2/2 -A:AB$ Pump | Cost$ T | NumAtt$ +2 | NumDef$ +2 | ValidTgts$ Creature | TgtPrompt$ Select target creature | PlayerTurn$ True | ActivationPhases$ Upkeep,Draw,Main1,BeginCombat | SpellDescription$ Target creature gets +2/+2 until end of turn. Activate this ability only during your turn, before attackers are declared. +A:AB$ Pump | Cost$ T | NumAtt$ 2 | NumDef$ 2 | ValidTgts$ Creature | TgtPrompt$ Select target creature | PlayerTurn$ True | ActivationPhases$ Upkeep,Draw,Main1,BeginCombat | SpellDescription$ Target creature gets +2/+2 until end of turn. Activate this ability only during your turn, before attackers are declared. SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/alaborn_veteran.jpg SetInfo:PO2|Rare|http://magiccards.info/scans/en/po2/125.jpg diff --git a/res/cardsfolder/a/alarum.txt b/res/cardsfolder/a/alarum.txt index 4fa0a4e31a3..d11d0a2df05 100644 --- a/res/cardsfolder/a/alarum.txt +++ b/res/cardsfolder/a/alarum.txt @@ -2,7 +2,7 @@ Name:Alarum ManaCost:1 W Types:Instant Text:no text -A:SP$ Pump | Cost$ 1 W | ValidTgts$ Creature.notattacking | TgtPrompt$ Select target nonattacking creature | NumAtt$ +1 | NumDef$ +3 | SubAbility$ DBUntap | SpellDescription$ Untap target nonattacking creature. It gets +1/+3 until end of turn. +A:SP$ Pump | Cost$ 1 W | ValidTgts$ Creature.notattacking | TgtPrompt$ Select target nonattacking creature | NumAtt$ 1 | NumDef$ 3 | SubAbility$ DBUntap | SpellDescription$ Untap target nonattacking creature. It gets +1/+3 until end of turn. SVar:DBUntap:DB$Untap | Defined$ Targeted SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/alarum.jpg diff --git a/res/cardsfolder/a/alibans_tower.txt b/res/cardsfolder/a/alibans_tower.txt index 0c8ed129d6c..147b1015faa 100644 --- a/res/cardsfolder/a/alibans_tower.txt +++ b/res/cardsfolder/a/alibans_tower.txt @@ -2,7 +2,7 @@ Name:Aliban's Tower ManaCost:1 R Types:Instant Text:no text -A:SP$ Pump | Cost$ 1 R | ValidTgts$ Creature.blocking | TgtPrompt$ Select target blocking creature | NumAtt$ +3 | NumDef$ +1 | SpellDescription$ Target blocking creature gets +3/+1 until end of turn. +A:SP$ Pump | Cost$ 1 R | ValidTgts$ Creature.blocking | TgtPrompt$ Select target blocking creature | NumAtt$ 3 | NumDef$ 1 | SpellDescription$ Target blocking creature gets +3/+1 until end of turn. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/alibans_tower.jpg SetInfo:HML|Common|http://magiccards.info/scans/en/hl/76.jpg|2 diff --git a/res/cardsfolder/a/ana_sanctuary.txt b/res/cardsfolder/a/ana_sanctuary.txt index eb9fe71bc60..67b868f8139 100644 --- a/res/cardsfolder/a/ana_sanctuary.txt +++ b/res/cardsfolder/a/ana_sanctuary.txt @@ -3,8 +3,8 @@ ManaCost:2 G Types:Enchantment Text:no text T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ GE1 | Execute$ TrigPump | TriggerDescription$ At the beginning of your upkeep, if you control a blue or black permanent, target creature gets +1/+1 until end of turn. If you control a blue permanent and a black permanent, that creature gets +5/+5 until end of turn instead. -SVar:TrigPump:DB$Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature to pump | NumAtt$ +1 | NumDef$ +1 | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ1 | SubAbility$ DBPump | References$ X,Y,Z -SVar:DBPump:DB$Pump | Defined$ Targeted | NumAtt$ +5 | NumDef$ +5 | ConditionCheckSVar$ X | ConditionSVarCompare$ GE2 | References$ X,Y,Z +SVar:TrigPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature to pump | NumAtt$ 1 | NumDef$ 1 | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ1 | SubAbility$ DBPump | References$ X,Y,Z +SVar:DBPump:DB$ Pump | Defined$ Targeted | NumAtt$ 5 | NumDef$ 5 | ConditionCheckSVar$ X | ConditionSVarCompare$ GE2 | References$ X,Y,Z SVar:Y:Count$Valid Permanent.Blue+YouCtrl/LimitMax.1 SVar:Z:Count$Valid Permanent.Black+YouCtrl/LimitMax.1 SVar:X:SVar$Y/Plus.Z diff --git a/res/cardsfolder/a/anaba_ancestor.txt b/res/cardsfolder/a/anaba_ancestor.txt index 328ad356db8..a33c7caf870 100644 --- a/res/cardsfolder/a/anaba_ancestor.txt +++ b/res/cardsfolder/a/anaba_ancestor.txt @@ -3,7 +3,7 @@ ManaCost:1 R Types:Creature Minotaur Spirit Text:no text PT:1/1 -A:AB$ Pump | Cost$ T | NumAtt$ +1 | NumDef$ +1 | ValidTgts$ Creature.Minotaur+Other | TgtPrompt$ Select another target Minotaur creature | SpellDescription$ Another target Minotaur creature gets +1/+1 until end of turn. +A:AB$ Pump | Cost$ T | NumAtt$ 1 | NumDef$ 1 | ValidTgts$ Creature.Minotaur+Other | TgtPrompt$ Select another target Minotaur creature | SpellDescription$ Another target Minotaur creature gets +1/+1 until end of turn. SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/anaba_ancestor.jpg diff --git a/res/cardsfolder/a/andradite_leech.txt b/res/cardsfolder/a/andradite_leech.txt index bc016212961..872679fe69f 100644 --- a/res/cardsfolder/a/andradite_leech.txt +++ b/res/cardsfolder/a/andradite_leech.txt @@ -3,7 +3,7 @@ ManaCost:2 B Types:Creature Leech Text:no text PT:2/2 -A:AB$ Pump | Cost$ B | NumAtt$ +1 | NumDef$ +1 | SpellDescription$ CARDNAME gets +1/+1 until end of turn. +A:AB$ Pump | Cost$ B | NumAtt$ 1 | NumDef$ 1 | SpellDescription$ CARDNAME gets +1/+1 until end of turn. S:Mode$ RaiseCost | ValidCard$ Card.Black | Activator$ You | Type$ Spell | Color$ B | Amount$ 1 | Description$ Black spells you cast cost B more to cast. SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/andradite_leech.jpg diff --git a/res/cardsfolder/a/angelfire_crusader.txt b/res/cardsfolder/a/angelfire_crusader.txt index db1ba3fb40b..055fb15ba9e 100644 --- a/res/cardsfolder/a/angelfire_crusader.txt +++ b/res/cardsfolder/a/angelfire_crusader.txt @@ -3,7 +3,7 @@ ManaCost:3 W Types:Creature Human Soldier Knight Text:no text PT:2/3 -A:AB$ Pump | Cost$ R | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. +A:AB$ Pump | Cost$ R | NumAtt$ 1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. SVar:Rarity:Common SVar:Picture:http://resources.wizards.com/magic/cards/ap/en-us/card21253.jpg SetInfo:APC|Common|http://magiccards.info/scans/en/ap/1.jpg diff --git a/res/cardsfolder/a/angelic_blessing.txt b/res/cardsfolder/a/angelic_blessing.txt index ff0aa60b61b..c94261a4a98 100644 --- a/res/cardsfolder/a/angelic_blessing.txt +++ b/res/cardsfolder/a/angelic_blessing.txt @@ -2,7 +2,7 @@ Name:Angelic Blessing ManaCost:2 W Types:Sorcery Text:no text -A:SP$ Pump | Cost$ 2 W | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +3 | NumDef$ +3 | KW$ Flying | SpellDescription$ Target creature gets +3/+3 and gains flying until end of turn. +A:SP$ Pump | Cost$ 2 W | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 3 | NumDef$ 3 | KW$ Flying | SpellDescription$ Target creature gets +3/+3 and gains flying until end of turn. SVar:Rarity:Common SVar:Picture:http://resources.wizards.com/magic/cards/po/en-us/card4370.jpg SetInfo:EXO|Common|http://magiccards.info/scans/en/ex/2.jpg diff --git a/res/cardsfolder/a/angelic_page.txt b/res/cardsfolder/a/angelic_page.txt index f62bbc68f05..ca6660731d3 100644 --- a/res/cardsfolder/a/angelic_page.txt +++ b/res/cardsfolder/a/angelic_page.txt @@ -4,7 +4,7 @@ Types:Creature Angel Spirit Text:no text PT:1/1 K:Flying -A:AB$ Pump | Cost$ T | NumAtt$ +1 | NumDef$ +1 | ValidTgts$ Creature.attacking,Creature.blocking | TgtPrompt$ Select target attacking or blocking creature | SpellDescription$ Target attacking or blocking creature gets +1/+1 until end of turn. +A:AB$ Pump | Cost$ T | NumAtt$ 1 | NumDef$ 1 | ValidTgts$ Creature.attacking,Creature.blocking | TgtPrompt$ Select target attacking or blocking creature | SpellDescription$ Target attacking or blocking creature gets +1/+1 until end of turn. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/angelic_page.jpg SetInfo:8ED|Common|http://magiccards.info/scans/en/8e/2.jpg diff --git a/res/cardsfolder/a/anthem_of_rakdos.txt b/res/cardsfolder/a/anthem_of_rakdos.txt index f608247a4c4..d31651a39a3 100644 --- a/res/cardsfolder/a/anthem_of_rakdos.txt +++ b/res/cardsfolder/a/anthem_of_rakdos.txt @@ -3,7 +3,7 @@ ManaCost:2 B R R Types:Enchantment Text:no text T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ AnthemPump | TriggerDescription$ Whenever a creature you control attacks, it gets +2/+0 until end of turn and CARDNAME deals 1 damage to you. -SVar:AnthemPump:AB$Pump | Cost$ 0 | Defined$ TriggeredAttacker | NumAtt$ +2 | SubAbility$ RakdosBurn +SVar:AnthemPump:AB$Pump | Cost$ 0 | Defined$ TriggeredAttacker | NumAtt$ 2 | SubAbility$ RakdosBurn SVar:RakdosBurn:DB$ DealDamage | Defined$ You | NumDmg$ 1 R:Event$ DamageDone | ActiveZones$ Battlefield | ValidSource$ Card.YouCtrl | ValidTarget$ Creature,Player | Hellbent$ True | ReplaceWith$ DmgTwice | IsCombat$ False | Description$ Hellbent - As long as you have no cards in hand, if a source you control would deal damage to a creature or player, it deals double that damage to that creature or player instead. R:Event$ DamageDone | ActiveZones$ Battlefield | ValidSource$ Card.YouCtrl | ValidTarget$ Creature,Player | Hellbent$ True | ReplaceWith$ DmgTwiceCombat | IsCombat$ True | Secondary$ True | Description$ Hellbent - As long as you have no cards in hand, if a source you control would deal damage to a creature or player, it deals double that damage to that creature or player instead. diff --git a/res/cardsfolder/a/armorer_guildmage.txt b/res/cardsfolder/a/armorer_guildmage.txt index 59fd2e1897d..fae0388cb6e 100644 --- a/res/cardsfolder/a/armorer_guildmage.txt +++ b/res/cardsfolder/a/armorer_guildmage.txt @@ -3,8 +3,8 @@ ManaCost:R Types:Creature Human Wizard Text:no text PT:1/1 -A:AB$ Pump | Cost$ B T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +1 | SpellDescription$ Target creature gets +1/+0 until end of turn. -A:AB$ Pump | Cost$ G T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDef$ +1 | SpellDescription$ Target creature gets +0/+1 until end of turn. +A:AB$ Pump | Cost$ B T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 1 | SpellDescription$ Target creature gets +1/+0 until end of turn. +A:AB$ Pump | Cost$ G T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDef$ 1 | SpellDescription$ Target creature gets +0/+1 until end of turn. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/armorer_guildmage.jpg SetInfo:MIR|Common|http://magiccards.info/scans/en/mr/156.jpg diff --git a/res/cardsfolder/a/army_of_allah.txt b/res/cardsfolder/a/army_of_allah.txt index 743089f07af..5d3cb067854 100644 --- a/res/cardsfolder/a/army_of_allah.txt +++ b/res/cardsfolder/a/army_of_allah.txt @@ -2,7 +2,7 @@ Name:Army of Allah ManaCost:1 W W Types:Instant Text:no text -A:SP$ PumpAll | Cost$ 1 W W | ValidCards$ Creature.attacking | NumAtt$ +2 | SpellDescription$ Attacking creatures get +2/+0 until end of turn. +A:SP$ PumpAll | Cost$ 1 W W | ValidCards$ Creature.attacking | NumAtt$ 2 | SpellDescription$ Attacking creatures get +2/+0 until end of turn. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/army_of_allah.jpg SetInfo:ARN|Common|http://magiccards.info/scans/en/an/56.jpg|2 diff --git a/res/cardsfolder/a/assembly_worker.txt b/res/cardsfolder/a/assembly_worker.txt index c9c2746954f..16e16cfce2b 100644 --- a/res/cardsfolder/a/assembly_worker.txt +++ b/res/cardsfolder/a/assembly_worker.txt @@ -3,7 +3,7 @@ ManaCost:3 Types:Artifact Creature Assembly-Worker Text:no text PT:2/2 -A:AB$ Pump | Cost$ T | ValidTgts$ Creature.Assembly-Worker | TgtPrompt$ Select target Assembly-Worker creature | NumAtt$ +1 | NumDef$ +1 | SpellDescription$ Target Assembly-Worker creature gets +1/+1 until end of turn. +A:AB$ Pump | Cost$ T | ValidTgts$ Creature.Assembly-Worker | TgtPrompt$ Select target Assembly-Worker creature | NumAtt$ 1 | NumDef$ 1 | SpellDescription$ Target Assembly-Worker creature gets +1/+1 until end of turn. SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/assembly_worker.jpg SetInfo:TSP|Uncommon|http://magiccards.info/scans/en/ts/248.jpg diff --git a/res/cardsfolder/a/astral_steel.txt b/res/cardsfolder/a/astral_steel.txt index 6468911c650..ac8c1a32f17 100644 --- a/res/cardsfolder/a/astral_steel.txt +++ b/res/cardsfolder/a/astral_steel.txt @@ -2,7 +2,7 @@ Name:Astral Steel ManaCost:2 W Types:Instant Text:no text -A:SP$ Pump | Cost$ 2 W | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +1 | NumDef$ +2 | SpellDescription$ Target creature gets +1/+2 until end of turn. +A:SP$ Pump | Cost$ 2 W | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 1 | NumDef$ 2 | SpellDescription$ Target creature gets +1/+2 until end of turn. K:Storm SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/astral_steel.jpg diff --git a/res/cardsfolder/a/atog.txt b/res/cardsfolder/a/atog.txt index fa860405164..b346fb0a902 100644 --- a/res/cardsfolder/a/atog.txt +++ b/res/cardsfolder/a/atog.txt @@ -3,7 +3,7 @@ ManaCost:1 R Types:Creature Atog Text:no text PT:1/2 -A:AB$ Pump | Cost$ Sac<1/Artifact> | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ CARDNAME gets +2/+2 until end of turn. +A:AB$ Pump | Cost$ Sac<1/Artifact> | NumAtt$ 2 | NumDef$ 2 | SpellDescription$ CARDNAME gets +2/+2 until end of turn. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/atog.jpg SetInfo:MRD|Uncommon|http://magiccards.info/scans/en/mi/86.jpg diff --git a/res/cardsfolder/a/auratog.txt b/res/cardsfolder/a/auratog.txt index b3669f35e92..bcf161b81cc 100644 --- a/res/cardsfolder/a/auratog.txt +++ b/res/cardsfolder/a/auratog.txt @@ -3,7 +3,7 @@ ManaCost:1 W Types:Creature Atog Text:no text PT:1/2 -A:AB$ Pump | Cost$ Sac<1/Enchantment> | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ CARDNAME gets +2/+2 until end of turn. +A:AB$ Pump | Cost$ Sac<1/Enchantment> | NumAtt$ 2 | NumDef$ 2 | SpellDescription$ CARDNAME gets +2/+2 until end of turn. SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/auratog.jpg SetInfo:TMP|Rare|http://magiccards.info/scans/en/tp/218.jpg diff --git a/res/cardsfolder/a/auriok_bladewarden.txt b/res/cardsfolder/a/auriok_bladewarden.txt index 9d799f5ab4b..61073a6934c 100644 --- a/res/cardsfolder/a/auriok_bladewarden.txt +++ b/res/cardsfolder/a/auriok_bladewarden.txt @@ -3,7 +3,7 @@ ManaCost:1 W Types:Creature Human Soldier Text:no text PT:1/1 -A:AB$ Pump | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +X | NumDef$ +X | References$ X | SpellDescription$ Target creature gets +X/+X until end of turn, where X is CARDNAME's power. +A:AB$ Pump | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ X | NumDef$ X | References$ X | SpellDescription$ Target creature gets +X/+X until end of turn, where X is CARDNAME's power. SVar:X:Count$CardPower SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/auriok_bladewarden.jpg diff --git a/res/cardsfolder/a/avarax.txt b/res/cardsfolder/a/avarax.txt index bde614fe56f..14ccece9fbd 100644 --- a/res/cardsfolder/a/avarax.txt +++ b/res/cardsfolder/a/avarax.txt @@ -4,7 +4,7 @@ Types:Creature Beast Text:no text PT:3/3 K:Haste -A:AB$ Pump | Cost$ 1 R | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. +A:AB$ Pump | Cost$ 1 R | NumAtt$ 1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a card named Avarax, reveal it, and put it into your hand. If you do, shuffle your library. SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedAvarax | ChangeNum$ 1 SVar:Rarity:Uncommon diff --git a/res/cardsfolder/a/avatar_of_fury.txt b/res/cardsfolder/a/avatar_of_fury.txt index 04e292db8cd..8dae0799616 100644 --- a/res/cardsfolder/a/avatar_of_fury.txt +++ b/res/cardsfolder/a/avatar_of_fury.txt @@ -4,7 +4,7 @@ Types:Creature Avatar Text:no text PT:6/6 K:Flying -A:AB$ Pump | Cost$ R | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. +A:AB$ Pump | Cost$ R | NumAtt$ 1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. S:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 6 | EffectZone$ All | CheckSVar$ X | SVarCompare$ GE7 | Description$ If an opponent controls seven or more lands, CARDNAME costs 6 less to cast. SVar:X:Count$Valid Land.YouDontCtrl SVar:Rarity:Rare diff --git a/res/cardsfolder/a/aven_trooper.txt b/res/cardsfolder/a/aven_trooper.txt index d3265eb3360..9608848c080 100644 --- a/res/cardsfolder/a/aven_trooper.txt +++ b/res/cardsfolder/a/aven_trooper.txt @@ -4,7 +4,7 @@ Types:Creature Bird Soldier Text:no text PT:1/1 K:Flying -A:AB$ Pump | Cost$ 2 W Discard<1/Card> | NumAtt$ +1 | NumDef$ +2 | SpellDescription$ CARDNAME gets +1/+2 until end of turn. +A:AB$ Pump | Cost$ 2 W Discard<1/Card> | NumAtt$ 1 | NumDef$ 2 | SpellDescription$ CARDNAME gets +1/+2 until end of turn. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/aven_trooper.jpg SetInfo:TOR|Common|http://magiccards.info/scans/en/tr/2.jpg diff --git a/res/cardsfolder/a/avizoa.txt b/res/cardsfolder/a/avizoa.txt index 800eb90053f..f69c3cdb516 100644 --- a/res/cardsfolder/a/avizoa.txt +++ b/res/cardsfolder/a/avizoa.txt @@ -4,7 +4,7 @@ Types:Creature Jellyfish Text:no text PT:2/2 K:Flying -A:AB$ Pump | Cost$ 0 | NumAtt$ +2 | NumDef$ +2 | ActivationLimit$ 1 | SubAbility$ DBSkipTurn | SpellDescription$ CARDNAME gets +2/+2 until end of turn. You skip your next untap step. Activate this ability only once each turn. +A:AB$ Pump | Cost$ 0 | NumAtt$ 2 | NumDef$ 2 | ActivationLimit$ 1 | SubAbility$ DBSkipTurn | SpellDescription$ CARDNAME gets +2/+2 until end of turn. You skip your next untap step. Activate this ability only once each turn. SVar:DBSkipTurn:DB$ Pump | Defined$ You | KW$ Skip your next untap step. | Permanent$ True SVar:RemAIDeck:True SVar:Rarity:Rare diff --git a/res/cardsfolder/a/azimaet_drake.txt b/res/cardsfolder/a/azimaet_drake.txt index 995c0ac1142..b627d81909c 100644 --- a/res/cardsfolder/a/azimaet_drake.txt +++ b/res/cardsfolder/a/azimaet_drake.txt @@ -4,7 +4,7 @@ Types:Creature Drake Text:no text PT:1/3 K:Flying -A:AB$ Pump | Cost$ U | NumAtt$ +1 | ActivationLimit$ 1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. Activate this ability only once each turn. +A:AB$ Pump | Cost$ U | NumAtt$ 1 | ActivationLimit$ 1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. Activate this ability only once each turn. SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/azimaet_drake.jpg SetInfo:MIR|Common|http://magiccards.info/scans/en/mr/53.jpg diff --git a/res/cardsfolder/b/balduvian_rage.txt b/res/cardsfolder/b/balduvian_rage.txt index 5ca4b0e68f2..74ed3c963b4 100644 --- a/res/cardsfolder/b/balduvian_rage.txt +++ b/res/cardsfolder/b/balduvian_rage.txt @@ -2,7 +2,7 @@ Name:Balduvian Rage ManaCost:X R Types:Instant Text:no text -A:SP$ Pump | Cost$ X R | ValidTgts$ Creature.attacking | TgtPrompt$ Select target attacking creature | NumAtt$ +X | References$ X | SpellDescription$ Target attacking creature gets +X/+0 until end of turn. | SubAbility$ DBDraw +A:SP$ Pump | Cost$ X R | ValidTgts$ Creature.attacking | TgtPrompt$ Select target attacking creature | NumAtt$ X | References$ X | SpellDescription$ Target attacking creature gets +X/+0 until end of turn. | SubAbility$ DBDraw SVar:DBDraw:DB$Draw | NumCards$ 1 | NextUpkeep$ True | SpellDescription$ Draw a card at the beginning of the next upkeep. SVar:X:Count$xPaid SVar:Rarity:Uncommon diff --git a/res/cardsfolder/b/boa_constrictor.txt b/res/cardsfolder/b/boa_constrictor.txt index 6d34d564e1a..5d82405603e 100644 --- a/res/cardsfolder/b/boa_constrictor.txt +++ b/res/cardsfolder/b/boa_constrictor.txt @@ -4,7 +4,6 @@ Types:Creature Snake Text:no text PT:3/3 A:AB$ Pump | Cost$ T | NumAtt$ +3 | NumDef$ +3 | SpellDescription$ CARDNAME gets +3/+3 until end of turn. -SVar:RemAIDeck:True SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/boa_constrictor.jpg SetInfo:MMQ|Uncommon|http://magiccards.info/scans/en/mm/231.jpg diff --git a/res/cardsfolder/l/llanowar_vanguard.txt b/res/cardsfolder/l/llanowar_vanguard.txt index 663c580ccc6..1a27d0343da 100644 --- a/res/cardsfolder/l/llanowar_vanguard.txt +++ b/res/cardsfolder/l/llanowar_vanguard.txt @@ -4,7 +4,6 @@ Types:Creature Dryad Text:no text PT:1/1 A:AB$ Pump | Cost$ T | NumDef$ +4 | SpellDescription$ CARDNAME gets +0/+4 until end of turn. -SVar:RemAIDeck:True SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/llanowar_vanguard.jpg SetInfo:INV|Common|http://magiccards.info/scans/en/in/197.jpg diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactory.java b/src/main/java/forge/card/abilityfactory/AbilityFactory.java index 9961380a0e4..8e329decdfa 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactory.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactory.java @@ -1582,6 +1582,8 @@ public class AbilityFactory { if (amount.startsWith("-")) { multiplier = -1; amount = amount.substring(1); + } else if (amount.startsWith("+")) { + amount = amount.substring(1); } String svarval; diff --git a/src/main/java/forge/game/phase/CombatUtil.java b/src/main/java/forge/game/phase/CombatUtil.java index 71025927c70..6757e889689 100644 --- a/src/main/java/forge/game/phase/CombatUtil.java +++ b/src/main/java/forge/game/phase/CombatUtil.java @@ -45,6 +45,8 @@ import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.AbilityFactorySacrifice; import forge.card.cardfactory.CardFactoryUtil; import forge.card.spellability.Ability; +import forge.card.spellability.AbilityActivated; +import forge.card.spellability.SpellAbility; import forge.card.staticability.StaticAbility; import forge.card.trigger.Trigger; import forge.card.trigger.TriggerHandler; @@ -1326,9 +1328,9 @@ public class CombatUtil { return 0; } - int defenderDamage = defender.getNetAttack() + CombatUtil.predictPowerBonusOfBlocker(attacker, defender); + int defenderDamage = defender.getNetAttack() + CombatUtil.predictPowerBonusOfBlocker(attacker, defender, true); if (AllZoneUtil.isCardInPlay("Doran, the Siege Tower")) { - defenderDamage = defender.getNetDefense() + CombatUtil.predictToughnessBonusOfBlocker(attacker, defender); + defenderDamage = defender.getNetDefense() + CombatUtil.predictToughnessBonusOfBlocker(attacker, defender, true); } // consider static Damage Prevention @@ -1567,7 +1569,7 @@ public class CombatUtil { * a {@link forge.Card} object. * @return a int. */ - public static int predictPowerBonusOfBlocker(final Card attacker, final Card defender) { + public static int predictPowerBonusOfBlocker(final Card attacker, final Card defender, boolean withoutAbilities) { int power = 0; if (attacker.hasKeyword("Flanking") && !defender.hasKeyword("Flanking")) { @@ -1662,6 +1664,28 @@ public class CombatUtil { power += 0; } } + if (withoutAbilities) { + return power; + } + for (SpellAbility ability : defender.getAllSpellAbilities()) { + if (!(ability instanceof AbilityActivated) || ability.getAbilityFactory() == null + || ability.getPayCosts() == null) { + continue; + } + AbilityFactory af = ability.getAbilityFactory(); + + if (!af.getAPI().equals("Pump")) { + continue; + } + HashMap params = af.getMapParams(); + if (!params.containsKey("NumAtt")) { + continue; + } + + if (ComputerUtil.canPayCost(ability, defender.getController())) { + power += AbilityFactory.calculateAmount(ability.getSourceCard(), params.get("NumAtt"), ability); + } + } return power; } @@ -1678,7 +1702,7 @@ public class CombatUtil { * a {@link forge.Card} object. * @return a int. */ - public static int predictToughnessBonusOfBlocker(final Card attacker, final Card defender) { + public static int predictToughnessBonusOfBlocker(final Card attacker, final Card defender, boolean withoutAbilities) { int toughness = 0; if (attacker.hasKeyword("Flanking") && !defender.hasKeyword("Flanking")) { @@ -1752,7 +1776,29 @@ public class CombatUtil { toughness += Integer.parseInt(def); } catch (final NumberFormatException nfe) { // can't parse the number (X for example) - toughness += 0; + + } + } + if (withoutAbilities) { + return toughness; + } + for (SpellAbility ability : defender.getAllSpellAbilities()) { + if (!(ability instanceof AbilityActivated) || ability.getAbilityFactory() == null + || ability.getPayCosts() == null) { + continue; + } + AbilityFactory af = ability.getAbilityFactory(); + + if (!af.getAPI().equals("Pump")) { + continue; + } + HashMap params = af.getMapParams(); + if (!params.containsKey("NumDef")) { + continue; + } + + if (ComputerUtil.canPayCost(ability, defender.getController())) { + toughness += AbilityFactory.calculateAmount(ability.getSourceCard(), params.get("NumDef"), ability); } } return toughness; @@ -2193,11 +2239,13 @@ public class CombatUtil { return true; } - int defenderDamage = defender.getNetAttack() + CombatUtil.predictPowerBonusOfBlocker(attacker, defender); + int defenderDamage = defender.getNetAttack() + + CombatUtil.predictPowerBonusOfBlocker(attacker, defender, withoutAbilities); int attackerDamage = attacker.getNetAttack() + CombatUtil.predictPowerBonusOfAttacker(attacker, defender, combat); if (AllZoneUtil.isCardInPlay("Doran, the Siege Tower")) { - defenderDamage = defender.getNetDefense() + CombatUtil.predictToughnessBonusOfBlocker(attacker, defender); + defenderDamage = defender.getNetDefense() + + CombatUtil.predictToughnessBonusOfBlocker(attacker, defender, withoutAbilities); attackerDamage = attacker.getNetDefense() + CombatUtil.predictToughnessBonusOfAttacker(attacker, defender, combat); } @@ -2214,7 +2262,7 @@ public class CombatUtil { attackerDamage = defender.predictDamage(attackerDamage, possibleDefenderPrevention, attacker, true); final int defenderLife = defender.getKillDamage() - + CombatUtil.predictToughnessBonusOfBlocker(attacker, defender); + + CombatUtil.predictToughnessBonusOfBlocker(attacker, defender, withoutAbilities); final int attackerLife = attacker.getKillDamage() + CombatUtil.predictToughnessBonusOfAttacker(attacker, defender, combat); @@ -2339,11 +2387,13 @@ public class CombatUtil { return true; } - int defenderDamage = defender.getNetAttack() + CombatUtil.predictPowerBonusOfBlocker(attacker, defender); + int defenderDamage = defender.getNetAttack() + + CombatUtil.predictPowerBonusOfBlocker(attacker, defender, withoutAbilities); int attackerDamage = attacker.getNetAttack() + CombatUtil.predictPowerBonusOfAttacker(attacker, defender, combat); if (AllZoneUtil.isCardInPlay("Doran, the Siege Tower")) { - defenderDamage = defender.getNetDefense() + CombatUtil.predictToughnessBonusOfBlocker(attacker, defender); + defenderDamage = defender.getNetDefense() + + CombatUtil.predictToughnessBonusOfBlocker(attacker, defender, withoutAbilities); attackerDamage = attacker.getNetDefense() + CombatUtil.predictToughnessBonusOfAttacker(attacker, defender, combat); } @@ -2368,7 +2418,7 @@ public class CombatUtil { } final int defenderLife = defender.getKillDamage() - + CombatUtil.predictToughnessBonusOfBlocker(attacker, defender); + + CombatUtil.predictToughnessBonusOfBlocker(attacker, defender, withoutAbilities); final int attackerLife = attacker.getKillDamage() + CombatUtil.predictToughnessBonusOfAttacker(attacker, defender, combat);