diff --git a/forge-ai/src/main/java/forge/ai/ability/DamageDealAi.java b/forge-ai/src/main/java/forge/ai/ability/DamageDealAi.java index 1e78c806dda..92f40adaad3 100644 --- a/forge-ai/src/main/java/forge/ai/ability/DamageDealAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/DamageDealAi.java @@ -491,6 +491,10 @@ public class DamageDealAi extends DamageAiBase { sa.getTargets().add(enemy); } return true; + } else if ("PingAfterCombat".equals(sa.getParam("AILogic"))) { + if (this.shouldTgtP(ai, sa, dmg, noPrevention)) { + + } } if (tgt.getMaxTargets(source, sa) <= 0) { @@ -657,7 +661,7 @@ public class DamageDealAi extends DamageAiBase { } } - } else if (tgt.canTgtCreature() || tgt.canTgtPlaneswalker()) { + } else if (tgt.canTgtCreature()) { final Card c = this.dealDamageChooseTgtC(ai, sa, dmg, noPrevention, enemy, mandatory); if (c != null) { //option to hold removal instead only applies for single targeted removal @@ -693,6 +697,7 @@ public class DamageDealAi extends DamageAiBase { else if (sa.canTarget(enemy)) { if (((phase.is(PhaseType.END_OF_TURN) && phase.getNextTurn().equals(ai)) || (SpellAbilityAi.isSorcerySpeed(sa) && phase.is(PhaseType.MAIN2)) + || ("PingAfterAttack".equals(sa.getParam("AILogic")) && phase.getPhase().isAfter(PhaseType.COMBAT_DECLARE_ATTACKERS)) || sa.getPayCosts() == null || immediately || this.shouldTgtP(ai, sa, dmg, noPrevention)) && (!avoidTargetP(ai, sa))) { diff --git a/forge-gui/res/cardsfolder/c/chandra_fire_of_kaladesh.txt b/forge-gui/res/cardsfolder/c/chandra_fire_of_kaladesh.txt index 8833de984e7..4fcad74d274 100644 --- a/forge-gui/res/cardsfolder/c/chandra_fire_of_kaladesh.txt +++ b/forge-gui/res/cardsfolder/c/chandra_fire_of_kaladesh.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Human Shaman PT:2/2 T:Mode$ SpellCast | ValidCard$ Card.Red | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigUntap | TriggerDescription$ Whenever you cast a red spell, untap CARDNAME. SVar:TrigUntap:DB$ Untap | Defined$ Self -A:AB$ DealDamage | Cost$ T | ValidTgts$ Player,Planeswalker | TgtPrompt$ Select target player or planeswalker | NumDmg$ 1 | References$ X | SubAbility$ DBTransform | SpellDescription$ CARDNAME deals 1 damage to target player or planeswalker. If CARDNAME has dealt 3 or more damage this turn, exile her, then return her to the battlefield transformed under her owner's control. +A:AB$ DealDamage | Cost$ T | ValidTgts$ Player,Planeswalker | TgtPrompt$ Select target player or planeswalker | NumDmg$ 1 | References$ X | SubAbility$ DBTransform | AILogic$ PingAfterAttack | SpellDescription$ CARDNAME deals 1 damage to target player or planeswalker. If CARDNAME has dealt 3 or more damage this turn, exile her, then return her to the battlefield transformed under her owner's control. SVar:DBTransform:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DBReturn | ConditionCheckSVar$ X | ConditionSVarCompare$ GE3 | References$ X | StackDescription$ If CARDNAME has dealt 3 or more damage this turn, exile her, then return her to the battlefield transformed under her owner's control. SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | Transformed$ True | WithCounters$ LOYALTY_4 | SubAbility$ DBCleanup | StackDescription$ SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True