mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
- Simplify canPlayAI implementation.
This commit is contained in:
@@ -1,33 +1,26 @@
|
|||||||
package forge.ai.ability;
|
package forge.ai.ability;
|
||||||
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import forge.ai.ComputerUtil;
|
import forge.ai.ComputerUtil;
|
||||||
import forge.ai.SpellAbilityAi;
|
import forge.ai.SpellAbilityAi;
|
||||||
import forge.game.card.Card;
|
import forge.game.card.*;
|
||||||
import forge.game.card.CounterEnumType;
|
|
||||||
import forge.game.card.CounterType;
|
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.game.player.PlayerActionConfirmMode;
|
import forge.game.player.PlayerActionConfirmMode;
|
||||||
import forge.game.player.PlayerController;
|
import forge.game.player.PlayerController;
|
||||||
import forge.game.spellability.SpellAbility;
|
import forge.game.spellability.SpellAbility;
|
||||||
import forge.game.zone.ZoneType;
|
import forge.game.zone.ZoneType;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class TimeTravelAi extends SpellAbilityAi {
|
public class TimeTravelAi extends SpellAbilityAi {
|
||||||
@Override
|
@Override
|
||||||
protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) {
|
protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) {
|
||||||
boolean hasRelevantCards = false;
|
boolean hasSuspendedCards = !CardLists.filter(aiPlayer.getCardsIn(ZoneType.Exile), CardPredicates.hasSuspend()).isEmpty();
|
||||||
|
boolean hasRelevantCardsOTB = !CardLists.filter(aiPlayer.getCardsIn(ZoneType.Battlefield), CardPredicates.hasCounter(CounterEnumType.TIME)).isEmpty();
|
||||||
for (Card c : aiPlayer.getCardsIn(new ZoneType[] {ZoneType.Battlefield, ZoneType.Exile})) {
|
|
||||||
if (c.hasSuspend() || (c.isInPlay() && c.getCounters(CounterEnumType.TIME) >= 1)) {
|
|
||||||
hasRelevantCards = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: add more logic for cards which may need it
|
// TODO: add more logic for cards which may need it
|
||||||
return hasRelevantCards;
|
return hasSuspendedCards || hasRelevantCardsOTB;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user