From f2f1c8997eed048162b845644a288e50f9b38df6 Mon Sep 17 00:00:00 2001 From: Agetian Date: Thu, 23 May 2019 06:27:30 +0300 Subject: [PATCH] - Improve AI targeting logic for Transmogrifying Wand. --- .../src/main/java/forge/ai/ComputerUtil.java | 21 +++++++++++++------ .../cardsfolder/t/transmogrifying_wand.txt | 2 +- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index 006ddc17b7e..635ea2340bb 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -2989,14 +2989,23 @@ public class ComputerUtil { if (sa.hasParam("AITgts")) { CardCollection list; - if (sa.getParam("AITgts").equals("BetterThanSource")) { - int value = ComputerUtilCard.evaluateCreature(source); - if (source.isEnchanted()) { - for (Card enc : source.getEnchantedBy()) { - if (enc.getController().equals(ai)) { - value += 100; // is 100 per AI's own aura enough? + String aiTgts = sa.getParam("AITgts"); + if (aiTgts.startsWith("BetterThan")) { + int value = 0; + if (aiTgts.endsWith("Source")) { + value = ComputerUtilCard.evaluateCreature(source); + if (source.isEnchanted()) { + for (Card enc : source.getEnchantedBy()) { + if (enc.getController().equals(ai)) { + value += 100; // is 100 per AI's own aura enough? + } } } + } else if (aiTgts.contains("EvalRating.")) { + value = AbilityUtils.calculateAmount(source, aiTgts.substring(aiTgts.indexOf(".") + 1), sa); + } else { + System.err.println("Warning: Unspecified AI target evaluation rating for SA " + sa); + value = ComputerUtilCard.evaluateCreature(source); } final int totalValue = value; list = CardLists.filter(srcList, new Predicate() { diff --git a/forge-gui/res/cardsfolder/t/transmogrifying_wand.txt b/forge-gui/res/cardsfolder/t/transmogrifying_wand.txt index 8a0858de993..320b8968851 100644 --- a/forge-gui/res/cardsfolder/t/transmogrifying_wand.txt +++ b/forge-gui/res/cardsfolder/t/transmogrifying_wand.txt @@ -2,7 +2,7 @@ Name:Transmogrifying Wand ManaCost:3 Types:Artifact K:etbCounter:CHARGE:3 -A:AB$ Destroy | Cost$ 1 T SubCounter<1/CHARGE> | ValidTgts$ Creature | TgtPrompt$ Select target creature | SorcerySpeed$ True | SubAbility$ OxToken | SpellDescription$ Destroy target creature. +A:AB$ Destroy | Cost$ 1 T SubCounter<1/CHARGE> | ValidTgts$ Creature | AITgts$ BetterThanEvalRating.130 | TgtPrompt$ Select target creature | SorcerySpeed$ True | SubAbility$ OxToken | SpellDescription$ Destroy target creature. SVar:OxToken:DB$Token | TokenAmount$ 1 | TokenScript$ w_2_4_ox | TokenOwner$ TargetedController | LegacyImage$ w 2 4 ox | SpellDescription$ Its controller creates a 2/4 white Ox creature token. Activate this ability only any time you could cast a sorcery. SVar:Picture:http://www.wizards.com/global/images/magic/general/transmogrifying_wand.jpg Oracle:Transmogrifying Wand enters the battlefield with three charge counters on it.\n{1}, {T}, Remove a charge counter from Transmogrifying Wand: Destroy target creature. Its controller creates a 2/4 white Ox creature token. Activate this ability only any time you could cast a sorcery.