Fix treating Battle as PW

This commit is contained in:
tool4EvEr
2023-04-26 20:03:12 +02:00
parent e907d2e17b
commit 49bf19948e
6 changed files with 31 additions and 13 deletions

View File

@@ -722,6 +722,11 @@ public class AiAttackController {
return pwNearUlti != null ? pwNearUlti : ComputerUtilCard.getBestPlaneswalkerAI(pwDefending);
}
List<Card> battleDefending = c.getDefendingBattles();
if (!battleDefending.isEmpty()) {
// TODO filter for team ones
}
return prefDefender;
}

View File

@@ -1,14 +1,18 @@
package forge.ai.ability;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import forge.ai.AiAttackController;
import forge.ai.ComputerUtil;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.player.PlayerCollection;
import forge.game.player.PlayerPredicates;
import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType;
@@ -31,7 +35,10 @@ public class ChoosePlayerAi extends SpellAbilityAi {
@Override
public Player chooseSinglePlayer(Player ai, SpellAbility sa, Iterable<Player> choices, Map<String, Object> params) {
Player chosen = null;
if ("Curse".equals(sa.getParam("AILogic"))) {
if (sa.hasParam("Protect")) {
chosen = new PlayerCollection(choices).min(PlayerPredicates.compareByLife());
}
else if ("Curse".equals(sa.getParam("AILogic"))) {
for (Player pc : choices) {
if (pc.isOpponentOf(ai)) {
chosen = pc;