*Added AbilityFactory_Token.

*Converted Acorn Harvest,Beast Attack,Call of the Herd,Carrion Call,Chatter of the Squirrel,Crush of Wurms,Dragon Fodder,Elephant Ambush,Empty the Warrens,Feral Lightning,Goblin Offensive,Goblin Scouts,Howl of the Night Pack,Hunting Pack,Icatian Town,Join the Ranks,Ordered Migration,Raise the Alarm,Reach of Branches,Roar of the Wurm,Skittering Invasion,Sosuke's Summons,Sound the Call,Spectral Procession,Spontaneous Generation,Spore Burst,Sprout,Storm Herd,Tidal Wave and Waylay.
This commit is contained in:
jendave
2011-08-06 10:36:34 +00:00
parent 4ef25a34d3
commit c9ceff16cd
33 changed files with 303 additions and 30 deletions

1
.gitattributes vendored
View File

@@ -5626,6 +5626,7 @@ src/forge/AbilityFactory_Fetch.java -text svneol=native#text/plain
src/forge/AbilityFactory_PermanentState.java -text svneol=native#text/plain
src/forge/AbilityFactory_Pump.java -text svneol=native#text/plain
src/forge/AbilityFactory_Regenerate.java -text svneol=native#text/plain
src/forge/AbilityFactory_Token.java -text svneol=native#text/plain
src/forge/AbilityFactory_ZoneAffecting.java -text svneol=native#text/plain
src/forge/Ability_Activated.java svneol=native#text/plain
src/forge/Ability_Cost.java -text svneol=native#text/plain

View File

@@ -2,7 +2,8 @@ Name:Acorn Harvest
ManaCost:3 G
Types:Sorcery
Text:Put two 1/1 green Squirrel creature tokens onto the battlefield.
K:spMakeToken<>2<>Squirrel<>G 1 1 Squirrel<>Controller<>G<>Creature;Squirrel<>1<>1<>None
#K:spMakeToken<>2<>Squirrel<>G 1 1 Squirrel<>Controller<>G<>Creature;Squirrel<>1<>1<>None
A:SP$Token|Cost$3 G|TokenAmount$2|TokenName$Squirrel|TokenTypes$Creature,Squirrel|TokenOwner$Controller|TokenColors$Green|TokenPower$1|TokenToughness$1
K:Flashback:1 G,3
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/acorn_harvest.jpg

View File

@@ -2,7 +2,8 @@ Name:Beast Attack
ManaCost:2 G G G
Types:Instant
Text:Put a 4/4 green Beast creature token onto the battlefield.
K:spMakeToken<>1<>Beast<>G 4 4 Beast<>Controller<>G<>Creature;Beast<>4<>4<>None
#K:spMakeToken<>1<>Beast<>G 4 4 Beast<>Controller<>G<>Creature;Beast<>4<>4<>None
A:SP$Token|Cost$2 G G G|TokenAmount$1|TokenName$Beast|TokenTypes$Creature,Beast|TokenColors$Green|TokenOwner$Controller|TokenPower$4|TokenToughness$4
K:Flashback:2 G G G
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/beast_attack.jpg

View File

@@ -2,7 +2,8 @@ Name:Call of the Herd
ManaCost:2 G
Types:Sorcery
Text:Put a 3/3 green Elephant creature token onto the battlefield.
K:spMakeToken<>1<>Elephant<>G 3 3 Elephant<>Controller<>G<>Creature;Elephant<>3<>3<>None
#K:spMakeToken<>1<>Elephant<>G 3 3 Elephant<>Controller<>G<>Creature;Elephant<>3<>3<>None
A:SP$Token|Cost$2 G|TokenAmount$1|TokenName$Elephant|TokenTypes$Creature,Elephant|TokenColors$Green|TokenPower$3|TokenToughness$3|TokenOwner$Controller
K:Flashback:3 G
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/call_of_the_herd.jpg

View File

@@ -2,7 +2,8 @@ Name:Carrion Call
ManaCost:3 G
Types:Instant
Text:Put two 1/1 green Insect creature tokens with infect onto the battlefield.
K:spMakeToken<>2<>Insect<>G 1 1 Insect<>Controller<>G<>Creature;Insect<>1<>1<>Infect
#K:spMakeToken<>2<>Insect<>G 1 1 Insect<>Controller<>G<>Creature;Insect<>1<>1<>Infect
A:SP$Token|Cost$3 G|TokenAmount$2|TokenName$Insect|TokenTypes$Creature,Insect|TokenOwner$Controller|TokenColors$Green|TokenPower$1|TokenToughness$1|TokenKeywords$Infect
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/carrion_call.jpg
End

View File

@@ -2,7 +2,8 @@ Name:Chatter of the Squirrel
ManaCost:G
Types:Sorcery
Text:Put a 1/1 green Squirrel creature token onto the battlefield.
K:spMakeToken<>1<>Squirrel<>G 1 1 Squirrel<>Controller<>G<>Creature;Squirrel<>1<>1<>None
#K:spMakeToken<>1<>Squirrel<>G 1 1 Squirrel<>Controller<>G<>Creature;Squirrel<>1<>1<>None
A:SP$Token|Cost$G|TokenAmount$1|TokenName$Squirrel|TokenColors$Green|TokenTypes$Creature,Squirrel|TokenOwner$Controller|TokenPower$1|TokenToughness$1
K:Flashback:1 G
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/chatter_of_the_squirrel.jpg

View File

@@ -2,7 +2,8 @@ Name:Crush of Wurms
ManaCost:6 G G G
Types:Sorcery
Text:Put three 6/6 green Wurm creature tokens onto the battlefield.
K:spMakeToken<>3<>Wurm<>G 6 6 Wurm<>Controller<>G<>Creature;Wurm<>6<>6<>None
#K:spMakeToken<>3<>Wurm<>G 6 6 Wurm<>Controller<>G<>Creature;Wurm<>6<>6<>None
A:SP$Token|Cost$6 G G G|TokenAmount$3|TokenName$Wurm|TokenColors$Green|TokenTypes$Creature,Wurm|TokenOwner$Controller|TokenPower$6|TokenToughness$6
K:Flashback:9 G G G
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/crush_of_wurms.jpg

View File

@@ -2,7 +2,8 @@ Name:Dragon Fodder
ManaCost:1 R
Types:Sorcery
Text:Put two 1/1 red Goblin creature tokens onto the battlefield.
K:spMakeToken<>2<>Goblin<>R 1 1 Goblin<>Controller<>R<>Creature;Goblin<>1<>1<>None
#K:spMakeToken<>2<>Goblin<>R 1 1 Goblin<>Controller<>R<>Creature;Goblin<>1<>1<>None
A:SP$Token|Cost$1 R|TokenAmount$2|TokenName$Goblin|TokenTypes$Creature,Goblin|TokenOwner$Controller|TokenColors$Red|TokenPower$1|TokenToughness$1
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/dragon_fodder.jpg
End

View File

@@ -2,7 +2,8 @@ Name:Elephant Ambush
ManaCost:2 G G
Types:Instant
Text:Put a 3/3 green Elephant creature token onto the battlefield.
K:spMakeToken<>1<>Elephant<>G 3 3 Elephant<>Controller<>G<>Creature;Elephant<>3<>3<>None
#K:spMakeToken<>1<>Elephant<>G 3 3 Elephant<>Controller<>G<>Creature;Elephant<>3<>3<>None
A:SP$Token|Cost$2 G G|TokenAmount$1|TokenName$Elephant|TokenTypes$Creature,Elephant|TokenOwner$Controller|TokenColors$Green|TokenPower$3|TokenToughness$3
K:Flashback:6 G G
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/elephant_ambush.jpg

View File

@@ -2,7 +2,8 @@ Name:Empty the Warrens
ManaCost:3 R
Types:Sorcery
Text:Put two 1/1 red Goblin creature tokens into play.
K:spMakeToken<>2<>Goblin<>R 1 1 Goblin<>Controller<>R<>Creature;Goblin<>1<>1<>None
#K:spMakeToken<>2<>Goblin<>R 1 1 Goblin<>Controller<>R<>Creature;Goblin<>1<>1<>None
A:SP$Token|Cost$3 R|TokenAmount$2|TokenName$Goblin|TokenTypes$Creature,Goblin|TokenOwner$Controller|TokenColors$Red|TokenPower$1|TokenToughness$1
K:Storm
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/empty_the_warrens.jpg

View File

@@ -2,7 +2,8 @@ Name:Feral Lightning
ManaCost:3 R R R
Types:Sorcery
Text:Put three 3/1 red Elemental creature tokens with haste into play. Remove them from the game at end of turn.
K:spMakeToken<>3<>Elemental<>R 3 1 Elemental<>Controller<>R<>Creature;Elemental<>3<>1<>Haste;At the beginning of the end step, exile CARDNAME.
#K:spMakeToken<>3<>Elemental<>R 3 1 Elemental<>Controller<>R<>Creature;Elemental<>3<>1<>Haste;At the beginning of the end step, exile CARDNAME.
A:SP$Token|Cost$3 R R R|TokenAmount$3|TokenName$Elemental|TokenTypes$Creature,Elemental|TokenOwner$Controller|TokenColors$Red|TokenPower$3|TokenToughness$1|TokenKeywords$Haste<>At the beginning of the end step, exile CARDNAME.
SVar:PlayMain1:TRUE
SVar:Rarity:Uncommon
SVar:Picture:http://resources.wizards.com/magic/cards/sok/en-us/card84373.jpg

View File

@@ -2,7 +2,8 @@ Name:Goblin Offensive
ManaCost:X 1 R R
Types:Sorcery
Text:Put X 1/1 red Goblin creature tokens onto the battlefield.
K:spMakeToken<>X<>Goblin<>R 1 1 Goblin<>Controller<>R<>Creature;Goblin<>1<>1<>None
#K:spMakeToken<>X<>Goblin<>R 1 1 Goblin<>Controller<>R<>Creature;Goblin<>1<>1<>None
A:SP$Token|Cost$X 1 R R|TokenAmount$X|TokenName$Goblin|TokenTypes$Creature,Goblin|TokenOwner$Controller|TokenColors$Red|TokenPower$1|TokenToughness$1
SVar:X:Count$xPaid
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/goblin_offensive.jpg

View File

@@ -2,7 +2,8 @@ Name:Goblin Scouts
ManaCost:3 R R
Types:Sorcery
Text:Put three 1/1 red Goblin Scout creature tokens with mountainwalk onto the battlefield.
K:spMakeToken<>3<>Goblin Scout<>R 1 1 Goblin Scout<>Controller<>R<>Creature;Goblin;Scout<>1<>1<>Mountainwalk
#K:spMakeToken<>3<>Goblin Scout<>R 1 1 Goblin Scout<>Controller<>R<>Creature;Goblin;Scout<>1<>1<>Mountainwalk
A:SP$Token|Cost$3 R R|TokenAmount$3|TokenName$Goblin Scout|TokenTypes$Creature,Goblin,Scout|TokenOwner$Controller|TokenColors$Green|TokenPower$1|TokenToughness$1|TokenKeywords$Mountainwalk
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/goblin_scouts.jpg
End

View File

@@ -2,7 +2,8 @@ Name:Howl of the Night Pack
ManaCost:6 G
Types:Sorcery
Text:Put a 2/2 green Wolf creature token onto the battlefield for each Forest you control.
K:spMakeToken<>X<>Wolf<>G 2 2 Wolf<>Controller<>G<>Creature;Wolf<>2<>2<>None
#K:spMakeToken<>X<>Wolf<>G 2 2 Wolf<>Controller<>G<>Creature;Wolf<>2<>2<>None
A:SP$Token|Cost$6 G|TokenAmount$X|TokenName$Wolf|TokenTypes$Creature,Wolf|TokenOwner$Controller|TokenColors$Green|TokenPower$2|TokenToughness$2
SVar:X:Count$TypeYouCtrl.Forest
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/howl_of_the_night_pack.jpg

View File

@@ -2,7 +2,8 @@ Name:Hunting Pack
ManaCost:5 G G
Types:Instant
Text:Put a 4/4 green Beast creature token onto the battlefield.
K:spMakeToken<>1<>Beast<>G 4 4 Beast<>Controller<>G<>Creature;Beast<>4<>4<>None
#K:spMakeToken<>1<>Beast<>G 4 4 Beast<>Controller<>G<>Creature;Beast<>4<>4<>None
A:SP$Token|Cost$3 G|TokenAmount$1|TokenName$Beast|TokenTypes$Creature,Beast|TokenOwner$Controller|TokenColors$Green|TokenPower$4|TokenToughness$4
K:Storm
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/hunting_pack.jpg

View File

@@ -2,7 +2,8 @@ Name:Icatian Town
ManaCost:5 W
Types:Sorcery
Text:Put four 1/1 white Citizen creature tokens onto the battlefield.
K:spMakeToken<>4<>Citizen<>W 1 1 Citizen<>Controller<>W<>Creature;Citizen<>1<>1<>None
#K:spMakeToken<>4<>Citizen<>W 1 1 Citizen<>Controller<>W<>Creature;Citizen<>1<>1<>None
A:SP$Token|Cost$5 W|TokenAmount$4|TokenName$Citizen|TokenTypes$Creature,Citizen|TokenOwner$Controller|TokenColors$White|TokenPower$1|TokenToughness$1
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/icatian_town.jpg
End

View File

@@ -2,7 +2,8 @@ Name:Join the Ranks
ManaCost:3 W
Types:Instant
Text:Put two 1/1 white Soldier Ally creature tokens onto the battlefield.
K:spMakeToken<>2<>Soldier Ally<>W 1 1 Soldier Ally<>Controller<>W<>Creature;Soldier;Ally<>1<>1<>None
#K:spMakeToken<>2<>Soldier Ally<>W 1 1 Soldier Ally<>Controller<>W<>Creature;Soldier;Ally<>1<>1<>None
A:SP$Token|Cost$3 W|TokenAmount$2|TokenName$Soldier Ally|TokenTypes$Creature,Soldier,Ally|TokenOwner$Controller|TokenColors$White|TokenPower$1|TokenToughness$1
SVar:PlayMain1:TRUE
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/join_the_ranks.jpg

View File

@@ -2,7 +2,8 @@ Name:Ordered Migration
ManaCost:3 W U
Types:Sorcery
Text:Domain <20> Put a 1/1 blue Bird creature token with flying onto the battlefield for each basic land type among lands you control.
K:spMakeToken<>X<>Bird<>U 1 1 Bird<>Controller<>U<>Creature;Bird<>1<>1<>Flying
#K:spMakeToken<>X<>Bird<>U 1 1 Bird<>Controller<>U<>Creature;Bird<>1<>1<>Flying
A:SP$Token|Cost$3 W U|TokenAmount$X|TokenName$Bird|TokenTypes$Creature,Bird|TokenOwner$Controller|TokenColors$Blue|TokenPower$1|TokenToughness$1|TokenKeywords$Flying
SVar:X:Count$Domain
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/ordered_migration.jpg

View File

@@ -2,7 +2,8 @@ Name:Raise the Alarm
ManaCost:1 W
Types:Instant
Text:Put two 1/1 white Soldier creature tokens into play.
K:spMakeToken<>2<>Soldier<>W 1 1 Soldier<>Controller<>W<>Creature;Soldier<>1<>1<>None
#K:spMakeToken<>2<>Soldier<>W 1 1 Soldier<>Controller<>W<>Creature;Soldier<>1<>1<>None
A:SP$Token|Cost$1 W|TokenAmount$2|TokenName$Soldier|TokenTypes$Creature,Soldier|TokenOwner$Controller|TokenColors$White|TokenPower$1|TokenToughness$1
SVar:Rarity:Common
SVar:Picture:http://resources.wizards.com/magic/cards/mrd/en-us/card48103.jpg
End

View File

@@ -2,7 +2,8 @@ Name:Reach of Branches
ManaCost:4 G
Types:Tribal Instant Treefolk
Text:Put a 2/5 green Treefolk Shaman creature token into play.
K:spMakeToken<>1<>Treefolk Shaman<>G 2 5 Treefolk Shaman<>Controller<>G<>Creature;Treefolk;Shaman<>2<>5<>None
#K:spMakeToken<>1<>Treefolk Shaman<>G 2 5 Treefolk Shaman<>Controller<>G<>Creature;Treefolk;Shaman<>2<>5<>None
A:SP$Token|Cost$4 G|TokenAmount$1|TokenName$Treefolk Shaman|TokenTypes$Creature,Treefolk,Shaman|TokenOwner$Controller|TokenColors$Green|TokenPower$2|TokenToughness$5
K:WheneverKeyword:EntersBattleField:Type/Forest:Graveyard:MoveFrom-Graveyard-Hand:Self:ASAP:Yes_No:Initiator - OwnedByController:Whenever a Forest enters the battlefield under your control, you may return Reach of Branches from your graveyard to your hand.
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/reach_of_branches.jpg

View File

@@ -2,7 +2,8 @@ Name:Roar of the Wurm
ManaCost:6 G
Types:Sorcery
Text:Put a 6/6 green Wurm creature token onto the battlefield.
K:spMakeToken<>1<>Wurm<>G 6 6 Wurm<>Controller<>G<>Creature;Wurm<>6<>6<>None
#K:spMakeToken<>1<>Wurm<>G 6 6 Wurm<>Controller<>G<>Creature;Wurm<>6<>6<>None
A:SP$Token|Cost$6 G|TokenAmount$1|TokenName$Wurm|TokenTypes$Creature,Wurm|TokenOwner$Controller|TokenColors$Green|TokenPower$6|TokenToughness$6
K:Flashback:3 G
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/roar_of_the_wurm.jpg

View File

@@ -2,7 +2,8 @@ Name:Skittering Invasion
ManaCost:7
Types:Tribal Sorcery Eldrazi
Text:Put five 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add 1 to your mana pool."
K:spMakeToken<>5<>Eldrazi Spawn<>C 0 1 Eldrazi Spawn<>Controller<>""<>Creature;Eldrazi;Spawn<>0<>1<>Sacrifice CARDNAME: Add 1 to your mana pool.
#K:spMakeToken<>5<>Eldrazi Spawn<>C 0 1 Eldrazi Spawn<>Controller<>""<>Creature;Eldrazi;Spawn<>0<>1<>Sacrifice CARDNAME: Add 1 to your mana pool.
A:SP$Token|Cost$7|TokenAmount$5|TokenName$Eldrazi Spawn|TokenTypes$Creature,Eldrazi,Spawn|TokenOwner$Controller|TokenColors$Green|TokenPower$0|TokenToughness$1|TokenKeywords$Sacrifice CARDNAME: Add 1 to your mana pool.
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/skittering_invasion.jpg
End

View File

@@ -2,7 +2,8 @@ Name:Sosuke's Summons
ManaCost:2 G
Types:Sorcery
Text:Put two 1/1 green Snake creature tokens onto the battlefield.\r\nWhenever a nontoken Snake enters the battlefield under your control, you may return Sosuke's Summons from your graveyard to your hand.
K:spMakeToken<>2<>Snake<>G 1 1 Snake<>Controller<>G<>Creature;Snake<>1<>1<>None
#K:spMakeToken<>2<>Snake<>G 1 1 Snake<>Controller<>G<>Creature;Snake<>1<>1<>None
A:SP$Token|Cost$2 G|TokenAmount$2|TokenName$Snake|TokenTypes$Creature,Snake|TokenOwner$Controller|TokenColors$Green|TokenPower$1|TokenToughness$1
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/sosukes_summons.jpg
End

View File

@@ -2,7 +2,8 @@ Name:Sound the Call
ManaCost:2 G
Types:Sorcery
Text:Put a 1/1 green Wolf creature token onto the battlefield. It has "This creature gets +1/+1 for each card named Sound the Call in each graveyard."
K:spMakeToken<>1<>Wolf<>G 1 1 Wolf<>Controller<>G<>Creature;Wolf<>1<>1<>This creature gets +1/+1 for each card named Sound the Call in each graveyard.
#K:spMakeToken<>1<>Wolf<>G 1 1 Wolf<>Controller<>G<>Creature;Wolf<>1<>1<>This creature gets +1/+1 for each card named Sound the Call in each graveyard.
A:SP$Token|Cost$2 G|TokenAmount$1|TokenName$Wolf|TokenTypes$Creature,Wolf|TokenOwner$Controller|TokenColors$Green|TokenPower$1|TokenToughness$1|TokenKeywords$This creature gets +1/+1 for each card named Sound the Call in each graveyard.
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/sound_the_call.jpg
End

View File

@@ -2,7 +2,8 @@ Name:Spectral Procession
ManaCost:2/W 2/W 2/W
Types:Sorcery
Text:Put three 1/1 white Spirit creature tokens with flying into play.
K:spMakeToken<>3<>Spirit<>W 1 1 Spirit<>Controller<>W<>Creature;Spirit<>1<>1<>Flying
#K:spMakeToken<>3<>Spirit<>W 1 1 Spirit<>Controller<>W<>Creature;Spirit<>1<>1<>Flying
A:SP$Token|Cost$2/W 2/W 2/W|TokenAmount$3|TokenName$Spirit|TokenTypes$Creature,Spirit|TokenOwner$Controller|TokenColors$White|TokenPower$1|TokenToughness$1|TokenKeywords$Flying
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/spectral_procession.jpg
End

View File

@@ -2,7 +2,8 @@ Name:Spontaneous Generation
ManaCost:3 G
Types:Sorcery
Text:Put a 1/1 green Saproling creature token onto the battlefield for each card in your hand.
K:spMakeToken<>X<>Saproling<>G 1 1 Saproling<>Controller<>G<>Creature;Saproling<>1<>1<>None
#K:spMakeToken<>X<>Saproling<>G 1 1 Saproling<>Controller<>G<>Creature;Saproling<>1<>1<>None
A:SP$Token|Cost$3 G|TokenAmount$X|TokenName$Saproling|TokenTypes$Creature,Saproling|TokenOwner$Controller|TokenColors$Green|TokenPower$1|TokenToughness$1
SVar:X:Count$InYourHand
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/spontaneous_generation.jpg

View File

@@ -2,7 +2,8 @@ Name:Spore Burst
ManaCost:3 G
Types:Sorcery
Text:Domain <20> Put a 1/1 green Saproling creature token onto the battlefield for each basic land type among lands you control.
K:spMakeToken<>X<>Saproling<>G 1 1 Saproling<>Controller<>G<>Creature;Saproling<>1<>1<>None
#K:spMakeToken<>X<>Saproling<>G 1 1 Saproling<>Controller<>G<>Creature;Saproling<>1<>1<>None
A:SP$Token|Cost$3 G|TokenAmount$X|TokenName$Saproling|TokenTypes$Creature,Saproling|TokenOwner$Controller|TokenColors$Green|TokenPower$1|TokenToughness$1
SVar:X:Count$Domain
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/spore_burst.jpg

View File

@@ -2,7 +2,8 @@ Name:Sprout
ManaCost:G
Types:Instant
Text:Put a 1/1 green Saproling creature token onto the battlefield.
K:spMakeToken<>1<>Saproling<>G 1 1 Saproling<>Controller<>G<>Creature;Saproling<>1<>1<>None
#K:spMakeToken<>1<>Saproling<>G 1 1 Saproling<>Controller<>G<>Creature;Saproling<>1<>1<>None
A:SP$Token|Cost$2 G|TokenAmount$1|TokenName$Saproling|TokenTypes$Creature,Saproling|TokenOwner$Controller|TokenColors$Green|TokenPower$1|TokenToughness$1
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/sprout.jpg
End

View File

@@ -2,7 +2,8 @@ Name:Storm Herd
ManaCost:8 W W
Types:Sorcery
Text:Put X 1/1 white Pegasus creature tokens with flying into play, where X is your life total.
K:spMakeToken<>X<>Pegasus<>W 1 1 Pegasus<>Controller<>W<>Creature;Pegasus<>1<>1<>None
#K:spMakeToken<>X<>Pegasus<>W 1 1 Pegasus<>Controller<>W<>Creature;Pegasus<>1<>1<>None
A:SP$Token|Cost$8 W W|TokenAmount$X|TokenName$Pegasus|TokenTypes$Creature,Pegasus|TokenOwner$Controller|TokenColors$White|TokenPower$1|TokenToughness$1
SVar:X:Count$YourLifeTotal
SVar:Rarity:Rare
SVar:Picture:http://resources.wizards.com/magic/cards/gpt/en-us/card96968.jpg

View File

@@ -2,7 +2,8 @@ Name:Tidal Wave
ManaCost:2 U
Types:Instant
Text:Put a 5/5 blue Wall creature token with defender onto the battlefield. Sacrifice it at the beginning of the next end step.
K:spMakeToken<>1<>Wall<>U 5 5 Wall<>Controller<>U<>Creature;Wall<>3<>1<>Defender;At the beginning of the end step, sacrifice CARDNAME.
#K:spMakeToken<>1<>Wall<>U 5 5 Wall<>Controller<>U<>Creature;Wall<>3<>1<>Defender;At the beginning of the end step, sacrifice CARDNAME.
A:SP$Token|Cost$2 U|TokenAmount$1|TokenName$Wall|TokenTypes$Creature,Wall|TokenOwner$Controller|TokenColors$Green|TokenPower$5|TokenToughness$5|TokenKeywords$Defender<>At the beginning of the end step, sacrifice CARDNAME.
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/tidal_wave.jpg

View File

@@ -2,7 +2,8 @@ Name:Waylay
ManaCost:2 W
Types:Instant
Text:Put three 2/2 white Knight creature tokens onto the battlefield. Exile them at the beginning of the next cleanup step.
K:spMakeToken<>3<>Knight<>W 2 2 Knight<>Controller<>W<>Creature;Knight<>2<>2<>At the beginning of the end step, exile CARDNAME.
#K:spMakeToken<>3<>Knight<>W 2 2 Knight<>Controller<>W<>Creature;Knight<>2<>2<>At the beginning of the end step, exile CARDNAME.
A:SP$Token|Cost$2 W|TokenAmount$3|TokenName$Knight|TokenTypes$Creature,Knight|TokenOwner$Controller|TokenColors$White|TokenPower$2|TokenToughness$2|TokenKeywords$At the beginning of the end step, exile CARDNAME.
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/waylay.jpg

View File

@@ -296,6 +296,40 @@ public class AbilityFactory {
}
}
if(API.equals("Token")){
AbilityFactory_Token AFT = new AbilityFactory_Token();
String numTokens,numPower,numToughness;
String[] keywords;
if(!mapParams.get("TokenAmount").matches("[0-9][0-9]?")) //It's an X-value.
numTokens = getHostCard().getSVar(mapParams.get("TokenAmount"));
else
numTokens = mapParams.get("TokenAmount");
if(!mapParams.get("TokenPower").matches("[0-9][0-9]?"))
numPower = getHostCard().getSVar(mapParams.get("TokenPower"));
else
numPower = mapParams.get("TokenPower");
if(!mapParams.get("TokenToughness").matches("[0-9][0-9]?"))
numToughness = getHostCard().getSVar(mapParams.get("TokenToughness"));
else
numToughness = mapParams.get("TokenToughness");
if(mapParams.containsKey("TokenKeywords")) {
keywords = mapParams.get("TokenKeywords").split("<>");
}
else {
keywords = new String[0];
}
if(isAb)
SA = AFT.getAbility(this, numTokens, mapParams.get("TokenName"), mapParams.get("TokenTypes").split(","), mapParams.get("TokenOwner"), mapParams.get("TokenColors").split(","), numPower, numToughness, keywords );
if(isSp)
SA = AFT.getSpell(this, numTokens, mapParams.get("TokenName"), mapParams.get("TokenTypes").split(","), mapParams.get("TokenOwner"), mapParams.get("TokenColors").split(","), numPower, numToughness, keywords);
}
// *********************************************
// set universal properties of the SpellAbility
if (hasSpDesc)

View File

@@ -0,0 +1,208 @@
package forge;
public class AbilityFactory_Token extends AbilityFactory {
private AbilityFactory AF = null;
private String tokenAmount;
private String tokenName;
private String[] tokenTypes;
private String tokenOwner;
private String[] tokenColors;
private String[] tokenKeywords;
private String tokenPower;
private String tokenToughness;
public SpellAbility getAbility(final AbilityFactory af,final String numTokens,final String name,final String[] types,final String owner,final String[] colors,final String power,final String toughness,final String[] keywords)
{
AF = af;
tokenAmount = numTokens;
tokenName = name;
tokenTypes = types;
tokenOwner = owner;
tokenColors = colors;
tokenPower = power;
tokenToughness = toughness;
tokenKeywords = keywords;
final SpellAbility abToken = new Ability_Activated(AF.getHostCard(),AF.getAbCost(),AF.getAbTgt())
{
private static final long serialVersionUID = 8460074843405764620L;
@Override
public boolean canPlay() {
return super.canPlay();
}
@Override
public boolean canPlayAI() {
return true;
}
@Override
public void resolve() {
doResolve(this);
AF.getHostCard().setAbilityUsed(AF.getHostCard().getAbilityUsed() + 1);
}
@Override
public String getStackDescription() {
return doStackDescription();
}
};
return abToken;
}
public SpellAbility getSpell(final AbilityFactory af,final String numTokens,final String name,final String[] types,final String owner,final String[] colors,final String power,final String toughness,final String[] keywords)
{
AF = af;
tokenAmount = numTokens;
tokenName = name;
tokenTypes = types;
tokenOwner = owner;
tokenColors = colors;
tokenPower = power;
tokenToughness = toughness;
tokenKeywords = keywords;
final SpellAbility spToken = new Spell(AF.getHostCard(),AF.getAbCost(),AF.getAbTgt())
{
private static final long serialVersionUID = -8041427947613029670L;
@Override
public boolean canPlay() {
return super.canPlay();
}
@Override
public boolean canPlayAI() {
return true;
}
@Override
public void resolve() {
doResolve(this);
}
@Override
public String getStackDescription() {
return doStackDescription();
}
};
return spToken;
}
private String doStackDescription() {
int finalPower,finalToughness,finalAmount;
if(tokenPower.matches("[0-9][0-9]?")) {
finalPower = Integer.parseInt(tokenPower);
}
else {
finalPower = CardFactoryUtil.xCount(AF.getHostCard(), tokenPower);
}
if(tokenToughness.matches("[0-9][0-9]?")) {
finalToughness = Integer.parseInt(tokenToughness);
}
else {
finalToughness = CardFactoryUtil.xCount(AF.getHostCard(), tokenToughness);
}
if(tokenAmount.matches("[0-9][0-9]?")) {
finalAmount = Integer.parseInt(tokenAmount);
}
else {
finalAmount = CardFactoryUtil.xCount(AF.getHostCard(),tokenAmount);
}
StringBuilder sb = new StringBuilder();
sb.append(AF.getHostCard().getName());
sb.append(" - Put ").append(finalAmount).append(" ").append(finalPower).append("/").append(finalToughness).append(" ").append(tokenName).append(" tokens onto the battlefield");
if(tokenOwner.equals("Opponent")) {
sb.append(" under your opponent's control.");
}
else {
sb.append(".");
}
return sb.toString();
}
private void doResolve(SpellAbility sa) {
String imageName = "";
Player controller;
String cost = "";
//Construct colors
String colorDesc = "";
for(String col : tokenColors) {
if(col.equals("White")) {
colorDesc += "W";
}
else if(col.equals("Blue")) {
colorDesc += "U";
}
else if(col.equals("Black")) {
colorDesc += "B";
}
else if(col.equals("Red")) {
colorDesc += "R";
}
else if(col.equals("Green")) {
colorDesc += "G";
}
else if(col.equals("Colorless")) {
colorDesc = "C";
}
}
imageName += colorDesc + " " + tokenPower + " " + tokenToughness + " " + tokenName;
System.out.println("AF_Token imageName = " + imageName);
for(char c : colorDesc.toCharArray()) {
cost += c + ' ';
}
cost = colorDesc.replace('C', '1').trim();
if(tokenOwner.equals("Controller")) {
controller = AF.getHostCard().getController();
}
else {
controller = AF.getHostCard().getController().getOpponent();
}
int finalPower = 0;
int finalToughness = 0;
int finalAmount = 0;
if(tokenPower.matches("[0-9][0-9]?")) {
finalPower = Integer.parseInt(tokenPower);
}
else {
finalPower = CardFactoryUtil.xCount(AF.getHostCard(), tokenPower);
}
if(tokenToughness.matches("[0-9][0-9]?")) {
finalToughness = Integer.parseInt(tokenToughness);
}
else {
finalToughness = CardFactoryUtil.xCount(AF.getHostCard(), tokenToughness);
}
if(tokenAmount.matches("[0-9][0-9]?")) {
finalAmount = Integer.parseInt(tokenAmount);
}
else {
finalAmount = CardFactoryUtil.xCount(AF.getHostCard(),tokenAmount);
}
for(int i=0;i<finalAmount;i++) {
CardFactoryUtil.makeToken(tokenName, imageName, controller, cost, tokenTypes, finalPower, finalToughness, tokenKeywords);
}
}
}