From 47168e1de7533da3f7923a2fb59d5f1c19e0b93e Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Thu, 5 May 2022 04:42:24 +0800 Subject: [PATCH] Update PeekAndRevealAi.java --- .../forge/ai/ability/PeekAndRevealAi.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/forge-ai/src/main/java/forge/ai/ability/PeekAndRevealAi.java b/forge-ai/src/main/java/forge/ai/ability/PeekAndRevealAi.java index 331ee87051c..5be39eff89c 100644 --- a/forge-ai/src/main/java/forge/ai/ability/PeekAndRevealAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/PeekAndRevealAi.java @@ -1,7 +1,9 @@ package forge.ai.ability; +import forge.ai.AiAttackController; import forge.ai.SpellAbilityAi; import forge.ai.SpellApiToAi; +import forge.game.card.Card; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; import forge.game.player.Player; @@ -9,6 +11,7 @@ import forge.game.player.PlayerActionConfirmMode; import forge.game.spellability.AbilityStatic; import forge.game.spellability.AbilitySub; import forge.game.spellability.SpellAbility; +import forge.game.zone.ZoneType; /** * TODO: Write javadoc for this type. @@ -38,6 +41,28 @@ public class PeekAndRevealAi extends SpellAbilityAi { } // So far this only appears on Triggers, but will expand // once things get converted from Dig + NoMove + Player opp = AiAttackController.choosePreferredDefenderPlayer(aiPlayer); + final Card host = sa.getHostCard(); + Player libraryOwner = aiPlayer; + + if (!willPayCosts(aiPlayer, sa, sa.getPayCosts(), host)) { + return false; + } + + if (sa.usesTargeting()) { + sa.resetTargets(); + //todo: evaluate valid targets + if (!sa.canTarget(opp)) { + return false; + } + sa.getTargets().add(opp); + libraryOwner = opp; + } + + if (libraryOwner.getCardsIn(ZoneType.Library).isEmpty()) { + return false; + } + return true; }