Radiate fix (#1688)

This commit is contained in:
tool4ever
2022-10-14 10:23:26 +02:00
committed by GitHub
parent 1cf60a1749
commit acea8aa75d
7 changed files with 16 additions and 18 deletions

View File

@@ -1275,17 +1275,15 @@ public class ChangeZoneAi extends SpellAbilityAi {
// TODO: ideally the AI should consider at this point which targets exactly to pick (e.g. one card in the first player's graveyard
// vs. two cards in the second player's graveyard, which cards are more relevant to be targeted, etc.). Consider improving.
if (sa.getTargetRestrictions().isSingleZone()) {
Card firstTgt = sa.getTargets().getFirstTargetedCard();
Card firstTgt = sa.getTargetCard();
CardCollection toRemove = new CardCollection();
if (firstTgt != null) {
for (Card t : sa.getTargets().getTargetCards()) {
if (!t.getController().equals(firstTgt.getController())) {
toRemove.add(t);
}
}
for (Card dontTarget : toRemove) {
sa.getTargets().remove(dontTarget);
if (!t.getController().equals(firstTgt.getController())) {
toRemove.add(t);
}
}
sa.getTargets().removeAll(toRemove);
}
}

View File

@@ -158,7 +158,7 @@ public class CloneAi extends SpellAbilityAi {
if (sa.hasParam("AILogic") && (!sa.usesTargeting() || sa.isTargetNumberValid())) {
// Had a special logic for it and managed to target, so confirm if viable
if ("CloneBestCreature".equals(sa.getParam("AILogic"))) {
return ComputerUtilCard.evaluateCreature(sa.getTargets().getFirstTargetedCard()) > ComputerUtilCard.evaluateCreature(sa.getHostCard());
return ComputerUtilCard.evaluateCreature(sa.getTargetCard()) > ComputerUtilCard.evaluateCreature(sa.getHostCard());
} else if ("IfDefinedCreatureIsBetter".equals(sa.getParam("AILogic"))) {
List<Card> defined = AbilityUtils.getDefinedCards(sa.getHostCard(), sa.getParam("Defined"), sa);
Card bestDefined = ComputerUtilCard.getBestCreatureAI(defined);
@@ -229,7 +229,7 @@ public class CloneAi extends SpellAbilityAi {
tgtCard = cloneTargets.get(0);
}
} else if (sa.hasParam("Choices") && sa.usesTargeting()) {
tgtCard = sa.getTargets().getFirstTargetedCard();
tgtCard = sa.getTargetCard();
}
return tgtCard;

View File

@@ -460,12 +460,12 @@ public class CountersPutAi extends CountersAi {
// only evaluates case where all tokens are placed on a single target
if (sa.usesTargeting() && sa.getMinTargets() < 2) {
if (ComputerUtilCard.canPumpAgainstRemoval(ai, sa)) {
Card c = sa.getTargets().getFirstTargetedCard();
Card c = sa.getTargetCard();
if (sa.getTargets().size() > 1) {
sa.resetTargets();
sa.getTargets().add(c);
}
sa.addDividedAllocation(sa.getTargetCard(), amount);
sa.addDividedAllocation(c, amount);
return true;
} else {
return false;

View File

@@ -210,7 +210,7 @@ public class DamageDealAi extends DamageAiBase {
if (ai.getGame().getPhaseHandler().is(PhaseType.END_OF_TURN)) {
boolean doTarget = damageTargetAI(ai, sa, dmg, true);
if (doTarget) {
Card tgt = sa.getTargets().getFirstTargetedCard();
Card tgt = sa.getTargetCard();
if (tgt != null) {
return ai.getGame().getPhaseHandler().getPlayerTurn() == tgt.getController();
}