diff --git a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java index 1f4e66b3198..8737419409d 100644 --- a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java +++ b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java @@ -183,7 +183,7 @@ public class PlayerControllerAi extends PlayerController { @Override public List chooseSpellAbilitiesForEffect(List spells, SpellAbility sa, String title, - int num, Map params) { + int num, Map params, boolean generic) { List remaining = Lists.newArrayList(spells); List selecteds = Lists.newArrayList(); SpellAbility selected; diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChooseGenericEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChooseGenericEffect.java index f5f59dfb4e5..48538869aae 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChooseGenericEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChooseGenericEffect.java @@ -68,7 +68,7 @@ public class ChooseGenericEffect extends SpellAbilityEffect { if (sa.hasParam("AtRandom")) { Aggregates.random(abilities, amount, chosenSAs); } else { - chosenSAs = p.getController().chooseSpellAbilitiesForEffect(abilities, sa, "Choose", amount, ImmutableMap.of()); + chosenSAs = p.getController().chooseSpellAbilitiesForEffect(abilities, sa, "Choose", amount, ImmutableMap.of(), true); } if (!chosenSAs.isEmpty()) { diff --git a/forge-game/src/main/java/forge/game/player/PlayerController.java b/forge-game/src/main/java/forge/game/player/PlayerController.java index 2fb8eaf7d5f..6c3e345a52e 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerController.java +++ b/forge-game/src/main/java/forge/game/player/PlayerController.java @@ -123,7 +123,7 @@ public abstract class PlayerController { public final T chooseSingleEntityForEffect(FCollectionView optionList, SpellAbility sa, String title, boolean isOptional, Map params) { return chooseSingleEntityForEffect(optionList, null, sa, title, isOptional, null, params); } public abstract T chooseSingleEntityForEffect(FCollectionView optionList, DelayedReveal delayedReveal, SpellAbility sa, String title, boolean isOptional, Player relatedPlayer, Map params); - public abstract List chooseSpellAbilitiesForEffect(List spells, SpellAbility sa, String title, int num, Map params); + public abstract List chooseSpellAbilitiesForEffect(List spells, SpellAbility sa, String title, int num, Map params, boolean generic); public abstract SpellAbility chooseSingleSpellForEffect(List spells, SpellAbility sa, String title, Map params); diff --git a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java index b4d0ef9dc7f..3b6b6860b1d 100644 --- a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java +++ b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java @@ -705,7 +705,7 @@ public class PlayerControllerForTests extends PlayerController { @Override public List chooseSpellAbilitiesForEffect(List spells, SpellAbility sa, String title, - int num, Map params) { + int num, Map params, boolean generic) { // TODO Auto-generated method stub return null; } diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index 784840224a1..2ae685e6b9b 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -619,12 +619,14 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont } @Override - public List chooseSpellAbilitiesForEffect(List spells, SpellAbility sa, String title, int num, Map params) { + public List chooseSpellAbilitiesForEffect(List spells, SpellAbility sa, String title, int num, Map params, boolean generic) { List result = Lists.newArrayList(); // create a mapping between a spell's view and the spell itself Map spellViewCache = SpellAbilityView.getMap(spells); - List chosen = getGui().many(title, "", num, Lists.newArrayList(spellViewCache.keySet()), sa.getHostCard().getView()); + //override generic + List chosen = generic ? getGui().getChoices(title, num, num, Lists.newArrayList(spellViewCache.keySet())) + : getGui().many(title, "", num, Lists.newArrayList(spellViewCache.keySet()), sa.getHostCard().getView()); for(SpellAbilityView view : chosen) { if (spellViewCache.containsKey(view)) {