diff --git a/src/main/java/forge/card/ability/ai/CharmAi.java b/src/main/java/forge/card/ability/ai/CharmAi.java index 257124b2966..e920792b512 100644 --- a/src/main/java/forge/card/ability/ai/CharmAi.java +++ b/src/main/java/forge/card/ability/ai/CharmAi.java @@ -22,8 +22,8 @@ public class CharmAi extends SpellAbilityAi { final int min = sa.hasParam("MinCharmNum") ? Integer.parseInt(sa.getParam("MinCharmNum")) : num; boolean timingRight = sa.isTrigger(); //is there a reason to play the charm now? - List chooseFrom = CharmEffect.makePossibleOptions(sa); - List chosenList = chooseOptionsAi(ai, timingRight, chooseFrom, num, min, false); + + List chosenList = chooseOptionsAi(sa, ai, timingRight, num, min, false); if (chosenList.isEmpty()) { return false; @@ -33,7 +33,8 @@ public class CharmAi extends SpellAbilityAi { return r.nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); } - public static List chooseOptionsAi(final Player ai, boolean playNow, List choices, int num, int min, boolean opponentChoser) { + public static List chooseOptionsAi(SpellAbility sa, final Player ai, boolean playNow, int num, int min, boolean opponentChoser) { + List choices = CharmEffect.makePossibleOptions(sa); List chosenList = new ArrayList(); if (opponentChoser) { diff --git a/src/main/java/forge/card/ability/effects/CharmEffect.java b/src/main/java/forge/card/ability/effects/CharmEffect.java index 3e872c800b9..9266bdba8b0 100644 --- a/src/main/java/forge/card/ability/effects/CharmEffect.java +++ b/src/main/java/forge/card/ability/effects/CharmEffect.java @@ -35,10 +35,7 @@ public class CharmEffect extends SpellAbilityEffect { @Override protected String getStackDescription(SpellAbility sa) { - final StringBuilder sb = new StringBuilder(); - // nothing stack specific for Charm - - return sb.toString(); + return ""; } public static void makeChoices(SpellAbility sa) { @@ -47,7 +44,6 @@ public class CharmEffect extends SpellAbilityEffect { final int num = Integer.parseInt(sa.hasParam("CharmNum") ? sa.getParam("CharmNum") : "1"); final int min = sa.hasParam("MinCharmNum") ? Integer.parseInt(sa.getParam("MinCharmNum")) : num; - final List choices = makePossibleOptions(sa); Card source = sa.getSourceCard(); Player activator = sa.getActivatingPlayer(); @@ -63,7 +59,7 @@ public class CharmEffect extends SpellAbilityEffect { source.setChosenPlayer(chooser); } - List chosen = chooser.getController().chooseModeForAbility(sa, choices, min, num); + List chosen = chooser.getController().chooseModeForAbility(sa, min, num); chainAbilities(sa, chosen); } diff --git a/src/main/java/forge/game/player/PlayerController.java b/src/main/java/forge/game/player/PlayerController.java index 53524f7b505..281096d928a 100644 --- a/src/main/java/forge/game/player/PlayerController.java +++ b/src/main/java/forge/game/player/PlayerController.java @@ -161,6 +161,6 @@ public abstract class PlayerController { public abstract boolean chooseFilpResult(SpellAbility sa, Player flipper, boolean[] results, boolean call); public abstract Card chooseProtectionShield(GameEntity entityBeingDamaged, List options, Map choiceMap); - public abstract List chooseModeForAbility(SpellAbility sa, List choices, int min, int num); + public abstract List chooseModeForAbility(SpellAbility sa, int min, int num); } diff --git a/src/main/java/forge/game/player/PlayerControllerAi.java b/src/main/java/forge/game/player/PlayerControllerAi.java index 7a0b9a56028..d905e4bc251 100644 --- a/src/main/java/forge/game/player/PlayerControllerAi.java +++ b/src/main/java/forge/game/player/PlayerControllerAi.java @@ -430,7 +430,7 @@ public class PlayerControllerAi extends PlayerController { * @see forge.game.player.PlayerController#chooseModeForAbility(forge.card.spellability.SpellAbility, java.util.List, int, int) */ @Override - public List chooseModeForAbility(SpellAbility sa, List choices, int min, int num) { - return CharmAi.chooseOptionsAi(player, sa.isTrigger(), choices, num, min, !player.equals(sa.getActivatingPlayer())); + public List chooseModeForAbility(SpellAbility sa, int min, int num) { + return CharmAi.chooseOptionsAi(sa, player, sa.isTrigger(), num, min, !player.equals(sa.getActivatingPlayer())); } } diff --git a/src/main/java/forge/game/player/PlayerControllerHuman.java b/src/main/java/forge/game/player/PlayerControllerHuman.java index f14c8dc535f..591cc7d6c3e 100644 --- a/src/main/java/forge/game/player/PlayerControllerHuman.java +++ b/src/main/java/forge/game/player/PlayerControllerHuman.java @@ -21,6 +21,7 @@ import forge.Card; import forge.GameEntity; import forge.ITargetable; import forge.Singletons; +import forge.card.ability.effects.CharmEffect; import forge.card.cost.Cost; import forge.card.mana.Mana; import forge.card.replacement.ReplacementEffect; @@ -710,7 +711,8 @@ public class PlayerControllerHuman extends PlayerController { * @see forge.game.player.PlayerController#chooseModeForAbility(forge.card.spellability.SpellAbility, java.util.List, int, int) */ @Override - public List chooseModeForAbility(SpellAbility sa, List choices, int min, int num) { + public List chooseModeForAbility(SpellAbility sa, int min, int num) { + List choices = CharmEffect.makePossibleOptions(sa); String modeTitle = String.format("%s activated %s - Choose a mode", sa.getActivatingPlayer(), sa.getSourceCard()); List chosen = new ArrayList(); for (int i = 0; i < num; i++) {