diff --git a/forge-ai/src/main/java/forge/ai/ability/AmassAi.java b/forge-ai/src/main/java/forge/ai/ability/AmassAi.java index 94340df7b36..c69ab0841a9 100644 --- a/forge-ai/src/main/java/forge/ai/ability/AmassAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/AmassAi.java @@ -32,9 +32,11 @@ public class AmassAi extends SpellAbilityAi { if (!aiArmies.isEmpty()) { return Iterables.any(aiArmies, CardPredicates.canReceiveCounters(CounterEnumType.P1P1)); } - final String tokenScript = "b_0_0_army"; - final int amount = AbilityUtils.calculateAmount(host, sa.getParamOrDefault("Num", "1"), sa); final String type = sa.getParam("Type"); + StringBuilder sb = new StringBuilder("b_0_0_"); + sb.append(type.toLowerCase()).append("_army"); + final String tokenScript = sb.toString(); + final int amount = AbilityUtils.calculateAmount(host, sa.getParamOrDefault("Num", "1"), sa); Card token = TokenInfo.getProtoType(tokenScript, sa, ai, false); diff --git a/forge-game/src/main/java/forge/game/ability/effects/AmassEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AmassEffect.java index 7bdffdf86ba..b3044562f03 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AmassEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AmassEffect.java @@ -62,7 +62,10 @@ public class AmassEffect extends TokenEffectBase { CardZoneTable triggerList = new CardZoneTable(); MutableBoolean combatChanged = new MutableBoolean(false); - final Card result = TokenInfo.getProtoType("b_0_0_army", sa, activator, false); + StringBuilder sb = new StringBuilder("b_0_0_"); + sb.append(type.toLowerCase()).append("_army"); + + final Card result = TokenInfo.getProtoType(sb.toString(), sa, activator, false); // need to alter the token to add the Type from the Parameter result.setCreatureTypes(Lists.newArrayList(type, "Army")); result.setName(type + " Army Token"); diff --git a/forge-gui/res/editions/Commander Masters.txt b/forge-gui/res/editions/Commander Masters.txt index 2e5f9c7225a..39679178a63 100644 --- a/forge-gui/res/editions/Commander Masters.txt +++ b/forge-gui/res/editions/Commander Masters.txt @@ -1077,8 +1077,8 @@ ScryfallCode=CMM [tokens] avacyn b_0_0_phyrexian_germ -b_0_0_army -b_0_0_army +b_0_0_zombie_army +b_0_0_zombie_army b_1_1_assassin_deathtouch_haste b_1_1_rat b_1_1_thrull diff --git a/forge-gui/res/editions/Innistrad Midnight Hunt Commander.txt b/forge-gui/res/editions/Innistrad Midnight Hunt Commander.txt index dfad818925c..66c584a004d 100644 --- a/forge-gui/res/editions/Innistrad Midnight Hunt Commander.txt +++ b/forge-gui/res/editions/Innistrad Midnight Hunt Commander.txt @@ -195,7 +195,7 @@ ScryfallCode=MIC 187 U Unclaimed Territory @Dimitar Marinski [tokens] -b_0_0_army +b_0_0_zombie_army b_2_2_zombie b_2_2_zombie_decayed c_0_1_eldrazi_spawn_sac diff --git a/forge-gui/res/editions/Modern Horizons 2.txt b/forge-gui/res/editions/Modern Horizons 2.txt index 4b4de5b227e..05b16e16ce3 100644 --- a/forge-gui/res/editions/Modern Horizons 2.txt +++ b/forge-gui/res/editions/Modern Horizons 2.txt @@ -592,7 +592,7 @@ ScryfallCode=MH2 [tokens] b_0_0_phyrexian_germ -b_0_0_army +b_0_0_zombie_army b_2_2_zombie bg_1_1_insect c_0_0_a_construct_total_artifacts diff --git a/forge-gui/res/editions/Starter Commander Decks.txt b/forge-gui/res/editions/Starter Commander Decks.txt index cee11784f2c..04bf1740365 100644 --- a/forge-gui/res/editions/Starter Commander Decks.txt +++ b/forge-gui/res/editions/Starter Commander Decks.txt @@ -360,7 +360,7 @@ ScryfallCode=SCD 352 L Forest @Titus Lunter [tokens] -b_0_0_army +b_0_0_zombie_army b_2_2_zombie b_2_2_zombie_knight_menace b_x_x_demon_flying diff --git a/forge-gui/res/editions/The Lord of the Rings Tales of Middle-earth.txt b/forge-gui/res/editions/The Lord of the Rings Tales of Middle-earth.txt index 801e055d3a7..b5cdf2c7d14 100644 --- a/forge-gui/res/editions/The Lord of the Rings Tales of Middle-earth.txt +++ b/forge-gui/res/editions/The Lord of the Rings Tales of Middle-earth.txt @@ -866,8 +866,8 @@ A103 R A-Orcish Bowmasters @Maxim Kostin A246 M A-The One Ring @Veli Nyström [tokens] -b_0_0_army -b_0_0_army +b_0_0_orc_army +b_0_0_orc_army ballistic_boulder c_a_food_sac c_a_food_sac diff --git a/forge-gui/res/editions/War of the Spark.txt b/forge-gui/res/editions/War of the Spark.txt index 6b92d46759f..1b869a3e2d4 100644 --- a/forge-gui/res/editions/War of the Spark.txt +++ b/forge-gui/res/editions/War of the Spark.txt @@ -330,9 +330,9 @@ A221 R A-Teferi, Time Raveler @Chris Rallis [tokens] all_2_2_citizen -b_0_0_army -b_0_0_army -b_0_0_army +b_0_0_zombie_army +b_0_0_zombie_army +b_0_0_zombie_army b_1_1_assassin_deathtouch_pwdestroy b_2_2_zombie b_4_4_zombie_warrior_vigilance diff --git a/forge-gui/res/puzzle/PS_LTR2.pzl b/forge-gui/res/puzzle/PS_LTR2.pzl index d503cfd0c4a..626a4883738 100644 --- a/forge-gui/res/puzzle/PS_LTR2.pzl +++ b/forge-gui/res/puzzle/PS_LTR2.pzl @@ -15,4 +15,4 @@ p0hand=The Battle of Bywater|Set:LTR|Art:2;Ranger's Firebrand|Set:LTR|Art:1;Glam p0battlefield=Riders of Rohan|Set:LTC|Art:2;T:r_2_2_human_knight_trample_haste;T:r_2_2_human_knight_trample_haste;Forge Anew|Set:LTR|Art:3;Plains|Set:LTR|Art:2;Plains|Set:LTR|Art:2;Plains|Set:LTR|Art:2;Mountain|Set:LTR|Art:2;Mountain|Set:LTR|Art:2;Mountain|Set:LTR|Art:2 p1life=16 p1numringtemptedyou=0 -p1battlefield=Saruman of Many Colors|Set:LTR|Art:4;t:Orc Army Token,P:0,T:0,Cost:no cost,Color:B,Types:Creature-Orc-Army,Keywords:,Image:b_0_0_army_ltr|Counters:P1P1=2 +p1battlefield=Saruman of Many Colors|Set:LTR|Art:4;t:Orc Army Token,P:0,T:0,Cost:no cost,Color:B,Types:Creature-Orc-Army,Keywords:,Image:b_0_0_orc_army_ltr|Counters:P1P1=2 diff --git a/forge-gui/res/puzzle/PS_M204.pzl b/forge-gui/res/puzzle/PS_M204.pzl index a1317b879cc..3a4fc7dbc6b 100644 --- a/forge-gui/res/puzzle/PS_M204.pzl +++ b/forge-gui/res/puzzle/PS_M204.pzl @@ -13,6 +13,6 @@ activeplayer=human activephase=MAIN1 humanhand=Bleeding Edge;Maximize Altitude;Price of Betrayal;Enter the God-Eternals humanlibrary=Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt -humanbattlefield=Tetsuko Umezawa, Fugitive;Teferi, Time Raveler|Counters:LOYALTY=3;Yarok's Fenlurker;Watery Grave|NoETBTrigs;Watery Grave|NoETBTrigs;Watery Grave|NoETBTrigs;Hallowed Fountain|NoETBTrigs;Hallowed Fountain|NoETBTrigs;Hallowed Fountain|NoETBTrigs;t:Zombie Army,P:0,T:0,Cost:no cost,Color:B,Types:Creature-Zombie-Army,Keywords:Trample,Image:b_0_0_army3_war|Counters:P1P1=2 +humanbattlefield=Tetsuko Umezawa, Fugitive;Teferi, Time Raveler|Counters:LOYALTY=3;Yarok's Fenlurker;Watery Grave|NoETBTrigs;Watery Grave|NoETBTrigs;Watery Grave|NoETBTrigs;Hallowed Fountain|NoETBTrigs;Hallowed Fountain|NoETBTrigs;Hallowed Fountain|NoETBTrigs;t:Zombie Army,P:0,T:0,Cost:no cost,Color:B,Types:Creature-Zombie-Army,Keywords:Trample,Image:b_0_0_zombie_army3_war|Counters:P1P1=2 aibattlefield=Shifting Ceratops;Apostle of Purifying Light;Hungering Hydra|Counters:P1P1=4;Ashes of the Abhorrent aipersistentmana=C C G diff --git a/forge-gui/res/puzzle/PS_WAR0.pzl b/forge-gui/res/puzzle/PS_WAR0.pzl index 34afd82aa5b..b3055d90e96 100644 --- a/forge-gui/res/puzzle/PS_WAR0.pzl +++ b/forge-gui/res/puzzle/PS_WAR0.pzl @@ -14,7 +14,7 @@ activeplayer=human activephase=MAIN1 humanhand=Eternal Skylord;Clifftop Retreat;Maximize Velocity;Deputy of Detention;Act of Treason humanlibrary=Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate -humanbattlefield=Eternal Skylord;t:Zombie Army,P:0,T:0,Cost:no cost,Color:B,Types:Creature-Zombie-Army,Keywords:Flying,Image:b_0_0_army|Counters:P1P1=4;Benalish Marshal;Mentor of the Meek;Azorius Guildgate;Azorius Guildgate;Azorius Guildgate;Azorius Guildgate;Mountain;Mountain;Mountain;Mountain;Mountain;Mountain;Mountain +humanbattlefield=Eternal Skylord;t:Zombie Army,P:0,T:0,Cost:no cost,Color:B,Types:Creature-Zombie-Army,Keywords:Flying,Image:b_0_0_zombie_army|Counters:P1P1=4;Benalish Marshal;Mentor of the Meek;Azorius Guildgate;Azorius Guildgate;Azorius Guildgate;Azorius Guildgate;Mountain;Mountain;Mountain;Mountain;Mountain;Mountain;Mountain aihand=Boros Guildgate;Boros Guildgate;Boros Guildgate;Boros Guildgate aibattlefield=Chamber Sentry|Counters:P1P1=5;Cold-Water Snapper;Cold-Water Snapper;Scuttlegator;Kumena's Speaker;Tishana, Voice of Thunder aipersistentmana=C C C C C diff --git a/forge-gui/res/puzzle/PS_WAR1.pzl b/forge-gui/res/puzzle/PS_WAR1.pzl index 2724efabbe0..191159c4349 100644 --- a/forge-gui/res/puzzle/PS_WAR1.pzl +++ b/forge-gui/res/puzzle/PS_WAR1.pzl @@ -12,5 +12,5 @@ turn=1 activeplayer=human activephase=MAIN1 humanhand=Martyr for the Cause;Spark Harvest;Dreadhorde Twins;Resolute Watchdog -humanbattlefield=Dreadhorde Twins;t:Zombie Army,P:0,T:0,Cost:no cost,Color:B,Types:Creature-Zombie-Army,Image:b_0_0_army3_war,Keywords:|Id:7|Counters:P1P1=2;Dreadhorde Twins;Clifftop Retreat|NoETBTrigs;Plains;Swamp;Swamp;Forebear's Blade|AttachedTo:7 +humanbattlefield=Dreadhorde Twins;t:Zombie Army,P:0,T:0,Cost:no cost,Color:B,Types:Creature-Zombie-Army,Image:b_0_0_zombie_army3_war,Keywords:|Id:7|Counters:P1P1=2;Dreadhorde Twins;Clifftop Retreat|NoETBTrigs;Plains;Swamp;Swamp;Forebear's Blade|AttachedTo:7 aibattlefield=Domri, Anarch of Bolas|Counters:LOYALTY=2;Dire Fleet Daredevil;Dire Fleet Daredevil;Dire Fleet Daredevil;Evolution Sage diff --git a/forge-gui/res/tokenscripts/b_0_0_orc_army.txt b/forge-gui/res/tokenscripts/b_0_0_orc_army.txt new file mode 100644 index 00000000000..12d0ff10a03 --- /dev/null +++ b/forge-gui/res/tokenscripts/b_0_0_orc_army.txt @@ -0,0 +1,6 @@ +Name:Orc Army Token +ManaCost:no cost +Types:Creature Orc Army +Colors:black +PT:0/0 +Oracle: diff --git a/forge-gui/res/tokenscripts/b_0_0_zombie_army.txt b/forge-gui/res/tokenscripts/b_0_0_zombie_army.txt new file mode 100644 index 00000000000..c696ec74ab8 --- /dev/null +++ b/forge-gui/res/tokenscripts/b_0_0_zombie_army.txt @@ -0,0 +1,6 @@ +Name:Zombie Army Token +ManaCost:no cost +Types:Creature Zombie Army +Colors:black +PT:0/0 +Oracle: