From ce4cfd11bb33bd3e80491b6edf13bc6ac95f8102 Mon Sep 17 00:00:00 2001 From: Agetian Date: Tue, 20 Jun 2017 12:53:37 +0000 Subject: [PATCH] - Added AILogic$ ConsiderSac to Heart-Piercer Manticore, updated the logic not to sacrifice creatures with power 0 to it or valuable creatures unless lethal damage can be dealt to player (is CreatureEvalThreshold too permissive/restrictive? could stand to be improved, most likely). --- forge-ai/src/main/java/forge/ai/ComputerUtil.java | 8 ++++++++ forge-gui/res/cardsfolder/h/heart_piercer_manticore.txt | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index 1958d3e7a60..e382c443a25 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -731,6 +731,14 @@ public class ComputerUtil { public boolean apply(final Card c) { int sacThreshold = 190; + if ("HeartPiercer".equals(source.getParam("SacrificeParam"))) { + if (c.getCurrentPower() == 0) { + return false; + } else if (c.getCurrentPower() >= ai.getOpponentsSmallestLifeTotal()) { + return true; + } + } + if ("DesecrationDemon".equals(source.getParam("AILogic"))) { sacThreshold = SpecialCardAi.DesecrationDemon.getSacThreshold(); } else if (considerSacLogic && considerSacThreshold != -1) { diff --git a/forge-gui/res/cardsfolder/h/heart_piercer_manticore.txt b/forge-gui/res/cardsfolder/h/heart_piercer_manticore.txt index c72c49a7828..d727c3d2c5f 100644 --- a/forge-gui/res/cardsfolder/h/heart_piercer_manticore.txt +++ b/forge-gui/res/cardsfolder/h/heart_piercer_manticore.txt @@ -4,7 +4,7 @@ Types:Creature Manticore PT:4/3 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigSacrifice | TriggerDescription$ When CARDNAME enters the battlefield, you may sacrifice another creature. When you do, CARDNAME deals damage equal to that creature's power to target creature or player. -SVar:TrigSacrifice:DB$ Sacrifice | Optional$ True | SacrificeParam$ HeartPiercer | SacValid$ Creature.Other | SacMessage$ another Creature | Amount$ 1 +SVar:TrigSacrifice:DB$ Sacrifice | Optional$ True | SacrificeParam$ HeartPiercer | SacValid$ Creature.Other | SacMessage$ another Creature | Amount$ 1 | AILogic$ ConsiderSac T:Mode$ Sacrificed | ValidPlayer$ You | ValidCard$ Creature.Other | CauseParam$ HeartPiercer | Execute$ TrigDamage | Secondary$ True | TriggerDescription$ CARDNAME deals damage equal to that creature's power to target creature or player. @@ -12,6 +12,7 @@ SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature,Player | TgtPrompt$ Select K:Embalm:5 R SVar:XPower:TriggeredCard$CardPower +SVar:AIPreferenceParams:CreatureEvalThreshold$ 200 SVar:Picture:http://www.wizards.com/global/images/magic/general/heart_piercer_manticore.jpg Oracle:When Heart-Piercer Manticore enters the battlefield, you may sacrifice another creature. When you do, Heart-Piercer Manticore deals damage equal to that creature's power to target creature or player.\nEmbalm {5} {R} ({5} {R}, Exile this card from your graveyard: Create a token that's a copy of it, except it's a white Zombie Manticore with no mana cost. Embalm only as a sorcery.)