diff --git a/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java b/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java index 0f47ca9e9e0..171d3431506 100644 --- a/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java @@ -125,7 +125,7 @@ public class CountersPutAi extends SpellAbilityAi { CardCollection list; Card choice = null; final String type = sa.getParam("CounterType"); - final String amountStr = sa.getParam("CounterNum"); + final String amountStr = sa.getParamOrDefault("CounterNum", "1"); final boolean divided = sa.hasParam("DividedAsYouChoose"); final String logic = sa.getParamOrDefault("AILogic", ""); PhaseHandler ph = ai.getGame().getPhaseHandler(); @@ -580,7 +580,7 @@ public class CountersPutAi extends SpellAbilityAi { final String type = sa.getParam("CounterType"); final String logic = sa.getParamOrDefault("AILogic", ""); - final String amountStr = sa.getParam("CounterNum"); + final String amountStr = sa.getParamOrDefault("CounterNum", "1"); final boolean divided = sa.hasParam("DividedAsYouChoose"); final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), amountStr, sa); @@ -660,7 +660,7 @@ public class CountersPutAi extends SpellAbilityAi { boolean preferred = true; CardCollection list; final String type = sa.getParam("CounterType"); - final String amountStr = sa.getParam("CounterNum"); + final String amountStr = sa.getParamOrDefault("CounterNum", "1"); final boolean divided = sa.hasParam("DividedAsYouChoose"); final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), amountStr, sa); int left = amount; @@ -803,7 +803,8 @@ public class CountersPutAi extends SpellAbilityAi { if (mode == PlayerActionConfirmMode.Tribute) { // add counter if that opponent has a giant creature final List creats = player.getCreaturesInPlay(); - final int tributeAmount = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("CounterNum"), sa); + final String amountStr = sa.getParamOrDefault("CounterNum", "1"); + final int tributeAmount = AbilityUtils.calculateAmount(sa.getHostCard(), amountStr, sa); final boolean isHaste = source.hasKeyword(Keyword.HASTE); List threatening = CardLists.filter(creats, new Predicate() { @@ -862,7 +863,7 @@ public class CountersPutAi extends SpellAbilityAi { } final CounterType type = CounterType.valueOf(sa.getParam("CounterType")); - final String amountStr = sa.getParam("CounterNum"); + final String amountStr = sa.getParamOrDefault("CounterNum", "1"); final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), amountStr, sa); final boolean isCurse = sa.isCurse(); diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java index 5d73ca81e51..6c05b77a7a5 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java @@ -37,7 +37,7 @@ public class CountersPutEffect extends SpellAbilityEffect { final boolean dividedAsYouChoose = sa.hasParam("DividedAsYouChoose"); - final int amount = AbilityUtils.calculateAmount(card, sa.getParam("CounterNum"), sa); + final int amount = AbilityUtils.calculateAmount(card, sa.getParamOrDefault("CounterNum", "1"), sa); if (sa.hasParam("Bolster")) { sb.append("Bolster ").append(amount); return sb.toString(); diff --git a/forge-game/src/main/java/forge/game/card/CardFactory.java b/forge-game/src/main/java/forge/game/card/CardFactory.java index 5c086c9ba59..d039b1c1d8a 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactory.java +++ b/forge-game/src/main/java/forge/game/card/CardFactory.java @@ -162,7 +162,7 @@ public class CardFactory { public final static SpellAbility copySpellAbilityAndSrcCard(final Card source, final Card original, final SpellAbility sa, final boolean bCopyDetails) { //Player originalController = original.getController(); Player controller = sa.getActivatingPlayer(); - final Card c = copyCard(original, true); + final Card c = (sa.isSpell() ? copyCard(original, true) : original); //copy spells, but not abilities // change the color of the copy (eg: Fork) final SpellAbility sourceSA = source.getFirstSpellAbility(); @@ -182,8 +182,6 @@ public class CardFactory { c.clearControllers(); c.setOwner(controller); c.setCopiedSpell(true); - // set counters (e.g. Yisan, the Wanderer Bard) - c.setCounters(original.getCounters()); final SpellAbility copySA; if (sa.isTrigger()) { diff --git a/forge-gui/res/cardsfolder/b/brawl-bash_ogre.txt b/forge-gui/res/cardsfolder/b/brawl_bash_ogre.txt similarity index 100% rename from forge-gui/res/cardsfolder/b/brawl-bash_ogre.txt rename to forge-gui/res/cardsfolder/b/brawl_bash_ogre.txt diff --git a/forge-gui/res/formats/Sanctioned/Modern.txt b/forge-gui/res/formats/Sanctioned/Modern.txt index 2c45138ec37..738145f390b 100644 --- a/forge-gui/res/formats/Sanctioned/Modern.txt +++ b/forge-gui/res/formats/Sanctioned/Modern.txt @@ -3,5 +3,5 @@ Name:Modern Order:102 Subtype:Modern Type:Sanctioned -Sets:8ED, MRD, DST, 5DN, CHK, BOK, SOK, 9ED, RAV, GPT, DIS, CSP, TSP, TSB, PLC, FUT, 10E, LRW, EVE, SHM, MOR, ALA, CFX, ARB, M10, ZEN, WWK, ROE, M11, SOM, MBS, NPH, M12, ISD, DKA, AVR, M13, RTR, GTC, DGM, M14, THS, BNG, JOU, M15, KTK, FRF, DTK, MM2, ORI, BFZ, OGW, SOI, EMN, KLD, AER, AKH, W17, HOU, XLN, RIX, DOM +Sets:8ED, MRD, DST, 5DN, CHK, BOK, SOK, 9ED, RAV, GPT, DIS, CSP, TSP, TSB, PLC, FUT, 10E, LRW, EVE, SHM, MOR, ALA, CFX, ARB, M10, ZEN, WWK, ROE, M11, SOM, MBS, NPH, M12, ISD, DKA, AVR, M13, RTR, GTC, DGM, M14, THS, BNG, JOU, M15, KTK, FRF, DTK, MM2, ORI, BFZ, OGW, SOI, EMN, KLD, AER, AKH, W17, HOU, XLN, RIX, DOM, M19 Banned:Ancient Den; Birthing Pod; Blazing Shoal; Chrome Mox; Cloudpost; Dark Depths; Deathrite Shaman; Dig Through Time; Dread Return; Eye of Ugin; Gitaxian Probe; Glimpse of Nature; Golgari Grave-Troll; Great Furnace; Green Sun's Zenith; Hypergenesis; Mental Misstep; Ponder; Preordain; Punishing Fire; Rite of Flame; Seat of the Synod; Second Sunrise; Seething Song; Sensei's Divining Top; Skullclamp; Splinter Twin; Stoneforge Mystic; Summer Bloom; Treasure Cruise; Tree of Tales; Umezawa's Jitte; Vault of Whispers diff --git a/forge-gui/res/formats/Sanctioned/Standard.txt b/forge-gui/res/formats/Sanctioned/Standard.txt index ddbd395bda1..6d8133d15d9 100644 --- a/forge-gui/res/formats/Sanctioned/Standard.txt +++ b/forge-gui/res/formats/Sanctioned/Standard.txt @@ -3,5 +3,5 @@ Name:Standard Order:101 Subtype:Standard Type:Sanctioned -Sets:KLD, AER, AKH, W17, HOU, XLN, RIX, DOM +Sets:KLD, AER, AKH, W17, HOU, XLN, RIX, DOM, M19 Banned: Attune with Aether; Rogue Refiner; Rampaging Ferocidon; Ramunap Ruins; Smuggler's Copter; Aetherworks Marvel; Felidar Guardian