From 495cd2289709b27babcc2d405a1d3e1f30ecb806 Mon Sep 17 00:00:00 2001 From: TRT <> Date: Fri, 8 Jul 2022 17:45:33 +0200 Subject: [PATCH] Clean up --- forge-ai/src/main/java/forge/ai/ComputerUtil.java | 4 ++-- .../src/main/java/forge/ai/PlayerControllerAi.java | 5 ++--- .../java/forge/game/ability/effects/CharmEffect.java | 5 +++++ .../src/main/java/forge/game/card/CardProperty.java | 2 +- .../java/forge/game/spellability/AbilityManaPart.java | 4 ++-- .../src/main/java/forge/game/trigger/TriggerScry.java | 3 +-- .../src/main/java/forge/game/zone/MagicStack.java | 11 ++++------- forge-gui/res/cardsfolder/m/maze_of_ith.txt | 1 + forge-gui/src/main/java/forge/player/HumanPlay.java | 11 ++++++----- 9 files changed, 24 insertions(+), 22 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index 5aeb2b21e7c..675bf34f629 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -131,7 +131,7 @@ public class ComputerUtil { sa = GameActionUtil.addExtraKeywordCost(sa); - if (sa.getApi() == ApiType.Charm && !sa.isCopied() && !CharmEffect.makeChoices(sa)) { + if (sa.getApi() == ApiType.Charm && !CharmEffect.makeChoices(sa)) { // 603.3c If no mode is chosen, the ability is removed from the stack. return false; } @@ -294,7 +294,7 @@ public class ComputerUtil { if (newSA.isSpell() && !source.isCopiedSpell()) { newSA.setHostCard(game.getAction().moveToStack(source, newSA)); - if (newSA.getApi() == ApiType.Charm && !sa.isCopied() && !CharmEffect.makeChoices(newSA)) { + if (newSA.getApi() == ApiType.Charm && !CharmEffect.makeChoices(newSA)) { // 603.3c If no mode is chosen, the ability is removed from the stack. return false; } diff --git a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java index 826710bf432..05d1f0a0a87 100644 --- a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java +++ b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java @@ -1065,9 +1065,8 @@ public class PlayerControllerAi extends PlayerController { } private boolean prepareSingleSa(final Card host, final SpellAbility sa, boolean isMandatory) { - if (sa.getApi() == ApiType.Charm && !sa.isCopied() && !CharmEffect.makeChoices(sa)) { - // 603.3c If no mode is chosen, the ability is removed from the stack. - return false; + if (sa.getApi() == ApiType.Charm) { + return CharmEffect.makeChoices(sa); } if (sa.hasParam("TargetingPlayer")) { Player targetingPlayer = AbilityUtils.getDefinedPlayers(host, sa.getParam("TargetingPlayer"), sa).get(0); diff --git a/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java index 6e484d4a1a7..1f5902bc90a 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java @@ -156,6 +156,11 @@ public class CharmEffect extends SpellAbilityEffect { } public static boolean makeChoices(SpellAbility sa) { + // CR 700.2g + if (sa.isCopied()) { + return true; + } + //this resets all previous choices sa.setSubAbility(null); diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index cc63af4777c..0777d3772f5 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -607,7 +607,7 @@ public class CardProperty { return false; } } else if (property.startsWith("Cloned")) { - if ((card.getCloneOrigin() == null) || !card.getCloneOrigin().equals(source)) { + if (card.getCloneOrigin() == null || !card.getCloneOrigin().equals(source)) { return false; } } else if (property.startsWith("SharesCMCWith")) { diff --git a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java index c1f5dc6e9d7..abb22e116ea 100644 --- a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java +++ b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java @@ -179,7 +179,7 @@ public class AbilityManaPart implements java.io.Serializable { if (source.isLand() && root.isManaAbility() && root.getPayCosts() != null && root.getPayCosts().hasTapCost()) { player.setTappedLandForManaThisTurn(true); } - } // end produceMana(String) + } /** *

@@ -348,7 +348,7 @@ public class AbilityManaPart implements java.io.Serializable { // "can't" zone restriction – shouldn't be mixed with other restrictions if (restriction.startsWith("CantCastSpellFrom")) { - if (!sa.isSpell()) { // + if (!sa.isSpell()) { return true; } final ZoneType badZone = ZoneType.smartValueOf(restriction.substring(17)); diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerScry.java b/forge-game/src/main/java/forge/game/trigger/TriggerScry.java index 5512ddbc89a..05a90284011 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerScry.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerScry.java @@ -64,8 +64,7 @@ public class TriggerScry extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa, Map runParams) { - sa.setTriggeringObjectsFrom(runParams, AbilityKey.Player); - sa.setTriggeringObjectsFrom(runParams, AbilityKey.ScryNum); + sa.setTriggeringObjectsFrom(runParams, AbilityKey.Player, AbilityKey.ScryNum); } @Override diff --git a/forge-game/src/main/java/forge/game/zone/MagicStack.java b/forge-game/src/main/java/forge/game/zone/MagicStack.java index f81487fd80c..4fc81955212 100644 --- a/forge-game/src/main/java/forge/game/zone/MagicStack.java +++ b/forge-game/src/main/java/forge/game/zone/MagicStack.java @@ -830,13 +830,10 @@ public class MagicStack /* extends MyObservable */ implements Iterable