From e2cbbd75757c13d14209f29a84e46f4d4c3e972f Mon Sep 17 00:00:00 2001 From: Hanmac Date: Sat, 24 Dec 2016 11:01:48 +0000 Subject: [PATCH] ComputerUtil & HumanPlay: fixed Splice onto Arcane only for Spells --- forge-ai/src/main/java/forge/ai/ComputerUtil.java | 8 ++++---- .../src/main/java/forge/player/HumanPlay.java | 14 ++++++++------ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index db8268bbc82..c59b633bb13 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -93,16 +93,16 @@ public class ComputerUtil { sa.setLastStateBattlefield(game.getLastStateBattlefield()); sa.setLastStateGraveyard(game.getLastStateGraveyard()); sa.setHostCard(game.getAction().moveToStack(source)); + + if (source.getType().hasStringType("Arcane")) { + sa = AbilityUtils.addSpliceEffects(sa); + } } if (sa.getApi() == ApiType.Charm && !sa.isWrapper()) { CharmEffect.makeChoices(sa); } - if (source.getType().hasStringType("Arcane") && !source.isCopiedSpell()) { - sa = AbilityUtils.addSpliceEffects(sa); - } - if (sa.hasParam("Bestow")) { sa.getHostCard().animateBestow(); } diff --git a/forge-gui/src/main/java/forge/player/HumanPlay.java b/forge-gui/src/main/java/forge/player/HumanPlay.java index 6598d9d493e..588300c220b 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlay.java +++ b/forge-gui/src/main/java/forge/player/HumanPlay.java @@ -87,7 +87,7 @@ public class HumanPlay { CharmEffect.makeChoices(sa); } - if (source.getType().hasStringType("Arcane")) { + if (sa.isSpell() && source.getType().hasStringType("Arcane")) { sa = AbilityUtils.addSpliceEffects(sa); } @@ -184,11 +184,13 @@ public class HumanPlay { source.setSplitStateToPlayAbility(sa); if (sa.getPayCosts() != null) { - if (sa.getApi() == ApiType.Charm && !sa.isWrapper() && !sa.isCopied()) { - CharmEffect.makeChoices(sa); - } - if (source.getType().hasStringType("Arcane") && !sa.isCopied()) { - sa = AbilityUtils.addSpliceEffects(sa); + if (!sa.isCopied()) { + if (sa.getApi() == ApiType.Charm && !sa.isWrapper()) { + CharmEffect.makeChoices(sa); + } + if (sa.isSpell() && source.getType().hasStringType("Arcane")) { + sa = AbilityUtils.addSpliceEffects(sa); + } } final CostPayment payment = new CostPayment(sa.getPayCosts(), sa);