diff --git a/forge-ai/src/main/java/forge/ai/ability/CountersProliferateAi.java b/forge-ai/src/main/java/forge/ai/ability/CountersProliferateAi.java index 7dd9618dafe..e95b3282b4d 100644 --- a/forge-ai/src/main/java/forge/ai/ability/CountersProliferateAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/CountersProliferateAi.java @@ -8,8 +8,10 @@ import com.google.common.base.Predicate; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; +import forge.ai.AiProps; import forge.ai.ComputerUtil; import forge.ai.ComputerUtilCard; +import forge.ai.PlayerControllerAi; import forge.ai.SpellAbilityAi; import forge.game.GameEntity; import forge.game.card.Card; @@ -121,6 +123,7 @@ public class CountersProliferateAi extends SpellAbilityAi { final CounterType poison = CounterType.get(CounterEnumType.POISON); + boolean aggroAI = (((PlayerControllerAi) ai.getController()).getAi()).getBooleanProperty(AiProps.PLAY_AGGRO); // because countertype can't be chosen anymore, only look for posion counters for (final Player p : Iterables.filter(options, Player.class)) { if (p.isOpponentOf(ai)) { @@ -128,7 +131,8 @@ public class CountersProliferateAi extends SpellAbilityAi { return (T)p; } } else { - if (p.getCounters(poison) <= 5 || p.canReceiveCounters(poison)) { + // poison is risky, should not proliferate them in most cases + if ((p.getCounters(poison) <= 5 && aggroAI && p.getCounters(CounterEnumType.EXPERIENCE) + p.getCounters(CounterEnumType.ENERGY) >= 1) || !p.canReceiveCounters(poison)) { return (T)p; } }