From daad7c254a913e726b3363897d9d85a8ee86f477 Mon Sep 17 00:00:00 2001 From: Agetian Date: Thu, 29 Nov 2018 11:11:39 +0300 Subject: [PATCH] - Improved CopySpellAbilityAI on spells affecting multiple cards (e.g. mass removal). --- .../src/main/java/forge/ai/ability/CopySpellAbilityAi.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/forge-ai/src/main/java/forge/ai/ability/CopySpellAbilityAi.java b/forge-ai/src/main/java/forge/ai/ability/CopySpellAbilityAi.java index dab2a41052a..85ccadaec65 100644 --- a/forge-ai/src/main/java/forge/ai/ability/CopySpellAbilityAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/CopySpellAbilityAi.java @@ -69,6 +69,12 @@ public class CopySpellAbilityAi extends SpellAbilityAi { } else if (top.getApi() == ApiType.CopySpellAbility) { // Don't try to copy a copy ability, too complex for the AI to handle return false; + } else if (top.getApi() == ApiType.DestroyAll || top.getApi() == ApiType.SacrificeAll || top.getApi() == ApiType.ChangeZoneAll || top.getApi() == ApiType.TapAll || top.getApi() == ApiType.UnattachAll) { + if (!top.usesTargeting() || top.getActivatingPlayer().equals(aiPlayer)) { + // If we activated a mass removal / mass tap / mass bounce / etc. spell, or if the opponent activated it but + // it can't be retargeted, no reason to copy this spell since it'll probably do the same thing and is useless as a copy + return false; + } } else if (top.hasParam("ConditionManaSpent")) { // Mana spent is not copied, so these spells generally do nothing when copied. return false;