- The AI will now predict P/T pumping abilities of blockers (but not multiple activations).

This commit is contained in:
Sloth
2012-09-18 19:15:02 +00:00
parent 6276200cf5
commit 5497720889
35 changed files with 95 additions and 46 deletions

View File

@@ -4,7 +4,6 @@ Types:Creature Human Cleric
Text:no text Text:no text
PT:1/3 PT:1/3
A:AB$ Pump | Cost$ W T | NumDef$ +3 | SpellDescription$ CARDNAME gets +0/+3 until end of turn. A:AB$ Pump | Cost$ W T | NumDef$ +3 | SpellDescription$ CARDNAME gets +0/+3 until end of turn.
SVar:RemAIDeck:True
SVar:Rarity:Common SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/abbey_matron.jpg 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 SetInfo:HML|Common|http://magiccards.info/scans/en/hl/102.jpg|2

View File

@@ -2,7 +2,7 @@ Name:Accelerated Mutation
ManaCost:3 G G ManaCost:3 G G
Types:Instant Types:Instant
Text:no text 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:X:Count$MaxCMCYouCtrl
SVar:Rarity:Common SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/accelerated_mutation.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/accelerated_mutation.jpg

View File

@@ -2,7 +2,7 @@ Name:Aegis of the Meek
ManaCost:3 ManaCost:3
Types:Artifact Types:Artifact
Text:no text 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:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/aegis_of_the_meek.jpg 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 SetInfo:ICE|Rare|http://magiccards.info/scans/en/ia/282.jpg

View File

@@ -4,7 +4,7 @@ Types:Creature Wall
Text:no text Text:no text
PT:0/4 PT:0/4
K:Defender 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. K:CARDNAME can block creatures with shadow as though they didn't have shadow.
SVar:Rarity:Common SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/aetherflame_wall.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/aetherflame_wall.jpg

View File

@@ -3,7 +3,7 @@ ManaCost:1 B
Types:Creature Human Mercenary Types:Creature Human Mercenary
Text:no text Text:no text
PT:1/1 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:RemAIDeck:True
SVar:Rarity:Common SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/agent_of_shauku.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/agent_of_shauku.jpg

View File

@@ -2,7 +2,7 @@ Name:Aggressive Urge
ManaCost:1 G ManaCost:1 G
Types:Instant Types:Instant
Text:no text 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:DBDraw:DB$Draw | NumCards$ 1 | SpellDescription$ Draw a card.
SVar:Rarity:Common SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/aggressive_urge.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/aggressive_urge.jpg

View File

@@ -3,7 +3,7 @@ ManaCost:R
Types:Creature Goblin Warrior Types:Creature Goblin Warrior
Text:no text Text:no text
PT:1/1 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:RemAIDeck:True
SVar:Rarity:Common SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/akki_avalanchers.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/akki_avalanchers.jpg

View File

@@ -7,7 +7,7 @@ K:Flying
K:Trample K:Trample
K:Protection from white K:Protection from white
K:Protection from blue 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:Morph:3 R R R
K:CARDNAME can't be countered. K:CARDNAME can't be countered.
SVar:Rarity:Rare SVar:Rarity:Rare

View File

@@ -3,7 +3,7 @@ ManaCost:2 W
Types:Creature Human Knight Types:Creature Human Knight
Text:no text Text:no text
PT:2/2 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:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/alaborn_veteran.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/alaborn_veteran.jpg
SetInfo:PO2|Rare|http://magiccards.info/scans/en/po2/125.jpg SetInfo:PO2|Rare|http://magiccards.info/scans/en/po2/125.jpg

View File

@@ -2,7 +2,7 @@ Name:Alarum
ManaCost:1 W ManaCost:1 W
Types:Instant Types:Instant
Text:no text 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:DBUntap:DB$Untap | Defined$ Targeted
SVar:Rarity:Common SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/alarum.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/alarum.jpg

View File

@@ -2,7 +2,7 @@ Name:Aliban's Tower
ManaCost:1 R ManaCost:1 R
Types:Instant Types:Instant
Text:no text 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:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/alibans_tower.jpg 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 SetInfo:HML|Common|http://magiccards.info/scans/en/hl/76.jpg|2

View File

@@ -3,8 +3,8 @@ ManaCost:2 G
Types:Enchantment Types:Enchantment
Text:no text 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. 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: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: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:Y:Count$Valid Permanent.Blue+YouCtrl/LimitMax.1
SVar:Z:Count$Valid Permanent.Black+YouCtrl/LimitMax.1 SVar:Z:Count$Valid Permanent.Black+YouCtrl/LimitMax.1
SVar:X:SVar$Y/Plus.Z SVar:X:SVar$Y/Plus.Z

View File

@@ -3,7 +3,7 @@ ManaCost:1 R
Types:Creature Minotaur Spirit Types:Creature Minotaur Spirit
Text:no text Text:no text
PT:1/1 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:RemAIDeck:True
SVar:Rarity:Rare SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/anaba_ancestor.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/anaba_ancestor.jpg

View File

@@ -3,7 +3,7 @@ ManaCost:2 B
Types:Creature Leech Types:Creature Leech
Text:no text Text:no text
PT:2/2 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. 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:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/andradite_leech.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/andradite_leech.jpg

View File

@@ -3,7 +3,7 @@ ManaCost:3 W
Types:Creature Human Soldier Knight Types:Creature Human Soldier Knight
Text:no text Text:no text
PT:2/3 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:Rarity:Common
SVar:Picture:http://resources.wizards.com/magic/cards/ap/en-us/card21253.jpg SVar:Picture:http://resources.wizards.com/magic/cards/ap/en-us/card21253.jpg
SetInfo:APC|Common|http://magiccards.info/scans/en/ap/1.jpg SetInfo:APC|Common|http://magiccards.info/scans/en/ap/1.jpg

View File

@@ -2,7 +2,7 @@ Name:Angelic Blessing
ManaCost:2 W ManaCost:2 W
Types:Sorcery Types:Sorcery
Text:no text 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:Rarity:Common
SVar:Picture:http://resources.wizards.com/magic/cards/po/en-us/card4370.jpg SVar:Picture:http://resources.wizards.com/magic/cards/po/en-us/card4370.jpg
SetInfo:EXO|Common|http://magiccards.info/scans/en/ex/2.jpg SetInfo:EXO|Common|http://magiccards.info/scans/en/ex/2.jpg

View File

@@ -4,7 +4,7 @@ Types:Creature Angel Spirit
Text:no text Text:no text
PT:1/1 PT:1/1
K:Flying 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:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/angelic_page.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/angelic_page.jpg
SetInfo:8ED|Common|http://magiccards.info/scans/en/8e/2.jpg SetInfo:8ED|Common|http://magiccards.info/scans/en/8e/2.jpg

View File

@@ -3,7 +3,7 @@ ManaCost:2 B R R
Types:Enchantment Types:Enchantment
Text:no text 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. 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 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$ 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. 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.

View File

@@ -3,8 +3,8 @@ ManaCost:R
Types:Creature Human Wizard Types:Creature Human Wizard
Text:no text Text:no text
PT:1/1 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$ 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$ G T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDef$ 1 | SpellDescription$ Target creature gets +0/+1 until end of turn.
SVar:Rarity:Common SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/armorer_guildmage.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/armorer_guildmage.jpg
SetInfo:MIR|Common|http://magiccards.info/scans/en/mr/156.jpg SetInfo:MIR|Common|http://magiccards.info/scans/en/mr/156.jpg

View File

@@ -2,7 +2,7 @@ Name:Army of Allah
ManaCost:1 W W ManaCost:1 W W
Types:Instant Types:Instant
Text:no text 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:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/army_of_allah.jpg 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 SetInfo:ARN|Common|http://magiccards.info/scans/en/an/56.jpg|2

View File

@@ -3,7 +3,7 @@ ManaCost:3
Types:Artifact Creature Assembly-Worker Types:Artifact Creature Assembly-Worker
Text:no text Text:no text
PT:2/2 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:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/assembly_worker.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/assembly_worker.jpg
SetInfo:TSP|Uncommon|http://magiccards.info/scans/en/ts/248.jpg SetInfo:TSP|Uncommon|http://magiccards.info/scans/en/ts/248.jpg

View File

@@ -2,7 +2,7 @@ Name:Astral Steel
ManaCost:2 W ManaCost:2 W
Types:Instant Types:Instant
Text:no text 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 K:Storm
SVar:Rarity:Common SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/astral_steel.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/astral_steel.jpg

View File

@@ -3,7 +3,7 @@ ManaCost:1 R
Types:Creature Atog Types:Creature Atog
Text:no text Text:no text
PT:1/2 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:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/atog.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/atog.jpg
SetInfo:MRD|Uncommon|http://magiccards.info/scans/en/mi/86.jpg SetInfo:MRD|Uncommon|http://magiccards.info/scans/en/mi/86.jpg

View File

@@ -3,7 +3,7 @@ ManaCost:1 W
Types:Creature Atog Types:Creature Atog
Text:no text Text:no text
PT:1/2 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:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/auratog.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/auratog.jpg
SetInfo:TMP|Rare|http://magiccards.info/scans/en/tp/218.jpg SetInfo:TMP|Rare|http://magiccards.info/scans/en/tp/218.jpg

View File

@@ -3,7 +3,7 @@ ManaCost:1 W
Types:Creature Human Soldier Types:Creature Human Soldier
Text:no text Text:no text
PT:1/1 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:X:Count$CardPower
SVar:Rarity:Uncommon SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/auriok_bladewarden.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/auriok_bladewarden.jpg

View File

@@ -4,7 +4,7 @@ Types:Creature Beast
Text:no text Text:no text
PT:3/3 PT:3/3
K:Haste 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. 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:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedAvarax | ChangeNum$ 1
SVar:Rarity:Uncommon SVar:Rarity:Uncommon

View File

@@ -4,7 +4,7 @@ Types:Creature Avatar
Text:no text Text:no text
PT:6/6 PT:6/6
K:Flying 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. 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:X:Count$Valid Land.YouDontCtrl
SVar:Rarity:Rare SVar:Rarity:Rare

View File

@@ -4,7 +4,7 @@ Types:Creature Bird Soldier
Text:no text Text:no text
PT:1/1 PT:1/1
K:Flying 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:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/aven_trooper.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/aven_trooper.jpg
SetInfo:TOR|Common|http://magiccards.info/scans/en/tr/2.jpg SetInfo:TOR|Common|http://magiccards.info/scans/en/tr/2.jpg

View File

@@ -4,7 +4,7 @@ Types:Creature Jellyfish
Text:no text Text:no text
PT:2/2 PT:2/2
K:Flying 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:DBSkipTurn:DB$ Pump | Defined$ You | KW$ Skip your next untap step. | Permanent$ True
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Rarity:Rare SVar:Rarity:Rare

View File

@@ -4,7 +4,7 @@ Types:Creature Drake
Text:no text Text:no text
PT:1/3 PT:1/3
K:Flying 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:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/azimaet_drake.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/azimaet_drake.jpg
SetInfo:MIR|Common|http://magiccards.info/scans/en/mr/53.jpg SetInfo:MIR|Common|http://magiccards.info/scans/en/mr/53.jpg

View File

@@ -2,7 +2,7 @@ Name:Balduvian Rage
ManaCost:X R ManaCost:X R
Types:Instant Types:Instant
Text:no text 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:DBDraw:DB$Draw | NumCards$ 1 | NextUpkeep$ True | SpellDescription$ Draw a card at the beginning of the next upkeep.
SVar:X:Count$xPaid SVar:X:Count$xPaid
SVar:Rarity:Uncommon SVar:Rarity:Uncommon

View File

@@ -4,7 +4,6 @@ Types:Creature Snake
Text:no text Text:no text
PT:3/3 PT:3/3
A:AB$ Pump | Cost$ T | NumAtt$ +3 | NumDef$ +3 | SpellDescription$ CARDNAME gets +3/+3 until end of turn. 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:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/boa_constrictor.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/boa_constrictor.jpg
SetInfo:MMQ|Uncommon|http://magiccards.info/scans/en/mm/231.jpg SetInfo:MMQ|Uncommon|http://magiccards.info/scans/en/mm/231.jpg

View File

@@ -4,7 +4,6 @@ Types:Creature Dryad
Text:no text Text:no text
PT:1/1 PT:1/1
A:AB$ Pump | Cost$ T | NumDef$ +4 | SpellDescription$ CARDNAME gets +0/+4 until end of turn. A:AB$ Pump | Cost$ T | NumDef$ +4 | SpellDescription$ CARDNAME gets +0/+4 until end of turn.
SVar:RemAIDeck:True
SVar:Rarity:Common SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/llanowar_vanguard.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/llanowar_vanguard.jpg
SetInfo:INV|Common|http://magiccards.info/scans/en/in/197.jpg SetInfo:INV|Common|http://magiccards.info/scans/en/in/197.jpg

View File

@@ -1582,6 +1582,8 @@ public class AbilityFactory {
if (amount.startsWith("-")) { if (amount.startsWith("-")) {
multiplier = -1; multiplier = -1;
amount = amount.substring(1); amount = amount.substring(1);
} else if (amount.startsWith("+")) {
amount = amount.substring(1);
} }
String svarval; String svarval;

View File

@@ -45,6 +45,8 @@ import forge.card.abilityfactory.AbilityFactory;
import forge.card.abilityfactory.AbilityFactorySacrifice; import forge.card.abilityfactory.AbilityFactorySacrifice;
import forge.card.cardfactory.CardFactoryUtil; import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.Ability; import forge.card.spellability.Ability;
import forge.card.spellability.AbilityActivated;
import forge.card.spellability.SpellAbility;
import forge.card.staticability.StaticAbility; import forge.card.staticability.StaticAbility;
import forge.card.trigger.Trigger; import forge.card.trigger.Trigger;
import forge.card.trigger.TriggerHandler; import forge.card.trigger.TriggerHandler;
@@ -1326,9 +1328,9 @@ public class CombatUtil {
return 0; 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")) { 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 // consider static Damage Prevention
@@ -1567,7 +1569,7 @@ public class CombatUtil {
* a {@link forge.Card} object. * a {@link forge.Card} object.
* @return a int. * @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; int power = 0;
if (attacker.hasKeyword("Flanking") && !defender.hasKeyword("Flanking")) { if (attacker.hasKeyword("Flanking") && !defender.hasKeyword("Flanking")) {
@@ -1662,6 +1664,28 @@ public class CombatUtil {
power += 0; 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<String, String> 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; return power;
} }
@@ -1678,7 +1702,7 @@ public class CombatUtil {
* a {@link forge.Card} object. * a {@link forge.Card} object.
* @return a int. * @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; int toughness = 0;
if (attacker.hasKeyword("Flanking") && !defender.hasKeyword("Flanking")) { if (attacker.hasKeyword("Flanking") && !defender.hasKeyword("Flanking")) {
@@ -1752,7 +1776,29 @@ public class CombatUtil {
toughness += Integer.parseInt(def); toughness += Integer.parseInt(def);
} catch (final NumberFormatException nfe) { } catch (final NumberFormatException nfe) {
// can't parse the number (X for example) // 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<String, String> 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; return toughness;
@@ -2193,11 +2239,13 @@ public class CombatUtil {
return true; return true;
} }
int defenderDamage = defender.getNetAttack() + CombatUtil.predictPowerBonusOfBlocker(attacker, defender); int defenderDamage = defender.getNetAttack()
+ CombatUtil.predictPowerBonusOfBlocker(attacker, defender, withoutAbilities);
int attackerDamage = attacker.getNetAttack() int attackerDamage = attacker.getNetAttack()
+ CombatUtil.predictPowerBonusOfAttacker(attacker, defender, combat); + CombatUtil.predictPowerBonusOfAttacker(attacker, defender, combat);
if (AllZoneUtil.isCardInPlay("Doran, the Siege Tower")) { 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() attackerDamage = attacker.getNetDefense()
+ CombatUtil.predictToughnessBonusOfAttacker(attacker, defender, combat); + CombatUtil.predictToughnessBonusOfAttacker(attacker, defender, combat);
} }
@@ -2214,7 +2262,7 @@ public class CombatUtil {
attackerDamage = defender.predictDamage(attackerDamage, possibleDefenderPrevention, attacker, true); attackerDamage = defender.predictDamage(attackerDamage, possibleDefenderPrevention, attacker, true);
final int defenderLife = defender.getKillDamage() final int defenderLife = defender.getKillDamage()
+ CombatUtil.predictToughnessBonusOfBlocker(attacker, defender); + CombatUtil.predictToughnessBonusOfBlocker(attacker, defender, withoutAbilities);
final int attackerLife = attacker.getKillDamage() final int attackerLife = attacker.getKillDamage()
+ CombatUtil.predictToughnessBonusOfAttacker(attacker, defender, combat); + CombatUtil.predictToughnessBonusOfAttacker(attacker, defender, combat);
@@ -2339,11 +2387,13 @@ public class CombatUtil {
return true; return true;
} }
int defenderDamage = defender.getNetAttack() + CombatUtil.predictPowerBonusOfBlocker(attacker, defender); int defenderDamage = defender.getNetAttack()
+ CombatUtil.predictPowerBonusOfBlocker(attacker, defender, withoutAbilities);
int attackerDamage = attacker.getNetAttack() int attackerDamage = attacker.getNetAttack()
+ CombatUtil.predictPowerBonusOfAttacker(attacker, defender, combat); + CombatUtil.predictPowerBonusOfAttacker(attacker, defender, combat);
if (AllZoneUtil.isCardInPlay("Doran, the Siege Tower")) { 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() attackerDamage = attacker.getNetDefense()
+ CombatUtil.predictToughnessBonusOfAttacker(attacker, defender, combat); + CombatUtil.predictToughnessBonusOfAttacker(attacker, defender, combat);
} }
@@ -2368,7 +2418,7 @@ public class CombatUtil {
} }
final int defenderLife = defender.getKillDamage() final int defenderLife = defender.getKillDamage()
+ CombatUtil.predictToughnessBonusOfBlocker(attacker, defender); + CombatUtil.predictToughnessBonusOfBlocker(attacker, defender, withoutAbilities);
final int attackerLife = attacker.getKillDamage() final int attackerLife = attacker.getKillDamage()
+ CombatUtil.predictToughnessBonusOfAttacker(attacker, defender, combat); + CombatUtil.predictToughnessBonusOfAttacker(attacker, defender, combat);