diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index eb75fc8b9e6..a0b46aebb42 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -26,10 +26,7 @@ import forge.card.CardType; import forge.card.ColorSet; import forge.card.MagicColor; import forge.card.mana.ManaCostShard; -import forge.game.CardTraitPredicates; -import forge.game.Game; -import forge.game.GameObject; -import forge.game.GameType; +import forge.game.*; import forge.game.ability.AbilityFactory; import forge.game.ability.AbilityUtils; import forge.game.ability.ApiType; @@ -1454,6 +1451,9 @@ public class ComputerUtil { if (!ComputerUtilCost.canPayCost(sa, ai)) { continue; } + if (!GameActionUtil.getOptionalCostValues(sa).isEmpty()) { + continue; // we can't rely on the AI being always willing and able to pay the optional cost to deal extra damage + } damage = dmg; } diff --git a/forge-game/src/main/java/forge/game/GameActionUtil.java b/forge-game/src/main/java/forge/game/GameActionUtil.java index 6fa0a5a9667..8c098e516e4 100644 --- a/forge-game/src/main/java/forge/game/GameActionUtil.java +++ b/forge-game/src/main/java/forge/game/GameActionUtil.java @@ -466,6 +466,7 @@ public final class GameActionUtil { newSA.setPayCosts(new Cost(jumpstartCost, false).add(newSA.getPayCosts())); newSA.getRestrictions().setZone(ZoneType.Graveyard); newSA.setDescription(newSA.getDescription() + " (Jump-start)"); + newSA.addOptionalCost(OptionalCost.Jumpstart); if (newSA.canPlay()) { abilities.add(i, newSA); i++;