From c98ad6a097f2613cffd925e8a0dd7ef0dca5806c Mon Sep 17 00:00:00 2001 From: Agetian Date: Thu, 15 Nov 2018 17:16:01 +0300 Subject: [PATCH] - A simpler implementation for Tilonalli, using AITgts. --- .../main/java/forge/ai/ability/AttachAi.java | 26 +++---------------- .../res/cardsfolder/t/tilonallis_crown.txt | 2 +- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java index 47c2c2a9257..d248a4ca60d 100644 --- a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java @@ -905,28 +905,6 @@ public class AttachAi extends SpellAbilityAi { }); } - // Look for triggers that will damage the creature and remove AI-owned creatures that will die - CardCollection toRemove = new CardCollection(); - for (Trigger t : attachSource.getTriggers()) { - if (t.getMode() == TriggerType.ChangesZone) { - final Map params = t.getMapParams(); - if ("Card.Self".equals(params.get("ValidCard")) && "Battlefield".equals(params.get("Destination"))) { - SpellAbility trigSa = AbilityFactory.getAbility(attachSource.getSVar(params.get("Execute")), attachSource); - if (trigSa.getApi() == ApiType.DealDamage && "Enchanted".equals(trigSa.getParam("Defined"))) { - for (Card target : list) { - if (!target.getController().isOpponentOf(ai)) { - int numDmg = AbilityUtils.calculateAmount(target, trigSa.getParam("NumDmg"), trigSa); - if (target.getNetToughness() <= numDmg) { - toRemove.add(target); - } - } - } - } - } - } - } - list.removeAll(toRemove); - if (magnetList != null) { // Look for Heroic triggers @@ -1014,6 +992,10 @@ public class AttachAi extends SpellAbilityAi { } CardCollection prefList = new CardCollection(list); + + // Filter AI-specific targets if provided + prefList = ComputerUtil.filterAITgts(sa, ai, (CardCollection)list, false); + if (totToughness < 0) { // Don't kill my own stuff with Negative toughness Auras final int tgh = totToughness; diff --git a/forge-gui/res/cardsfolder/t/tilonallis_crown.txt b/forge-gui/res/cardsfolder/t/tilonallis_crown.txt index 5e5c6c76579..602db178f0d 100644 --- a/forge-gui/res/cardsfolder/t/tilonallis_crown.txt +++ b/forge-gui/res/cardsfolder/t/tilonallis_crown.txt @@ -2,7 +2,7 @@ Name:Tilonalli's Crown ManaCost:1 R Types:Enchantment Aura K:Enchant creature -A:SP$ Attach | Cost$ 1 R | ValidTgts$ Creature | AILogic$ Pump +A:SP$ Attach | Cost$ 1 R | ValidTgts$ Creature | AILogic$ Pump | AITgts$ Creature.YouCtrl+toughnessGT1 T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ When CARDNAME enters the battlefield, it deals 1 damage to enchanted creature. SVar:TrigDealDamage:DB$ DealDamage | Defined$ Enchanted | NumDmg$ 1 S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 3 | AddKeyword$ Trample | Description$ Enchanted creature gets +3/+0 and has trample.