From fffdc4acc60f4be1f64cbb1f5816d5c01ab50bc6 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Tue, 5 Feb 2013 06:25:01 +0000 Subject: [PATCH] calls to AI-related methods require the player parameter to have AIPlayer type to enable calls to ai-specific methods (like acquiring aicontroller by aiplayer.getcontroller().getai() and performing something from it) without need to cast types) --- .../forge/card/abilityfactory/CommonAbility.java | 5 +++-- .../forge/card/abilityfactory/CommonDrawback.java | 7 ++++--- .../forge/card/abilityfactory/CommonSpell.java | 7 ++++--- .../forge/card/abilityfactory/SpellAiLogic.java | 14 +++++++------- .../forge/card/abilityfactory/ai/AddPhaseAi.java | 4 ++-- .../forge/card/abilityfactory/ai/AddTurnAi.java | 5 +++-- .../forge/card/abilityfactory/ai/AlwaysPlayAi.java | 4 ++-- .../forge/card/abilityfactory/ai/AnimateAi.java | 7 ++++--- .../forge/card/abilityfactory/ai/AnimateAllAi.java | 6 +++--- .../forge/card/abilityfactory/ai/AttachAi.java | 5 +++-- .../java/forge/card/abilityfactory/ai/BondAi.java | 4 ++-- .../abilityfactory/ai/CanPlayAsDrawbackAi.java | 6 +++--- .../forge/card/abilityfactory/ai/CannotPlayAi.java | 6 +++--- .../forge/card/abilityfactory/ai/ChangeZoneAi.java | 7 ++++--- .../card/abilityfactory/ai/ChangeZoneAllAi.java | 7 ++++--- .../java/forge/card/abilityfactory/ai/CharmAi.java | 3 ++- .../forge/card/abilityfactory/ai/ChooseCardAi.java | 6 +++--- .../card/abilityfactory/ai/ChooseCardNameAi.java | 6 +++--- .../card/abilityfactory/ai/ChooseColorAi.java | 6 +++--- .../card/abilityfactory/ai/ChoosePlayerAi.java | 8 ++++---- .../card/abilityfactory/ai/ChooseSourceAi.java | 4 ++-- .../forge/card/abilityfactory/ai/ChooseTypeAi.java | 5 +++-- .../java/forge/card/abilityfactory/ai/ClashAi.java | 5 +++-- .../java/forge/card/abilityfactory/ai/CloneAi.java | 8 ++++---- .../card/abilityfactory/ai/ControlExchangeAi.java | 6 +++--- .../card/abilityfactory/ai/ControlGainAi.java | 7 ++++--- .../card/abilityfactory/ai/CopyPermanentAi.java | 6 +++--- .../forge/card/abilityfactory/ai/CounterAi.java | 8 ++++---- .../card/abilityfactory/ai/CountersMoveAi.java | 5 +++-- .../abilityfactory/ai/CountersProliferateAi.java | 8 ++++---- .../card/abilityfactory/ai/CountersPutAi.java | 7 ++++--- .../card/abilityfactory/ai/CountersPutAllAi.java | 5 +++-- .../card/abilityfactory/ai/CountersRemoveAi.java | 6 +++--- .../forge/card/abilityfactory/ai/DamageAllAi.java | 7 ++++--- .../forge/card/abilityfactory/ai/DamageDealAi.java | 7 ++++--- .../forge/card/abilityfactory/ai/DamageEachAi.java | 8 ++++---- .../card/abilityfactory/ai/DamagePreventAi.java | 5 +++-- .../card/abilityfactory/ai/DamagePreventAllAi.java | 6 +++--- .../forge/card/abilityfactory/ai/DebuffAi.java | 7 ++++--- .../forge/card/abilityfactory/ai/DebuffAllAi.java | 5 +++-- .../card/abilityfactory/ai/DelayedTriggerAi.java | 8 ++++---- .../forge/card/abilityfactory/ai/DestroyAi.java | 7 ++++--- .../forge/card/abilityfactory/ai/DestroyAllAi.java | 8 ++++---- .../java/forge/card/abilityfactory/ai/DigAi.java | 5 +++-- .../forge/card/abilityfactory/ai/DigUntilAi.java | 5 +++-- .../forge/card/abilityfactory/ai/DiscardAi.java | 7 ++++--- .../forge/card/abilityfactory/ai/DrainManaAi.java | 7 ++++--- .../java/forge/card/abilityfactory/ai/DrawAi.java | 6 +++--- .../forge/card/abilityfactory/ai/EffectAi.java | 5 +++-- .../forge/card/abilityfactory/ai/EndTurnAi.java | 8 ++++---- .../java/forge/card/abilityfactory/ai/FightAi.java | 6 +++--- .../java/forge/card/abilityfactory/ai/FogAi.java | 8 ++++---- .../forge/card/abilityfactory/ai/GameLossAi.java | 5 +++-- .../forge/card/abilityfactory/ai/GameWinAi.java | 6 +++--- .../card/abilityfactory/ai/LifeExchangeAi.java | 3 ++- .../forge/card/abilityfactory/ai/LifeGainAi.java | 6 +++--- .../forge/card/abilityfactory/ai/LifeLoseAi.java | 7 ++++--- .../forge/card/abilityfactory/ai/LifeSetAi.java | 5 +++-- .../java/forge/card/abilityfactory/ai/MillAi.java | 7 ++++--- .../forge/card/abilityfactory/ai/MustAttackAi.java | 8 ++++---- .../forge/card/abilityfactory/ai/MustBlockAi.java | 8 ++++---- .../card/abilityfactory/ai/PeekAndRevealAi.java | 4 ++-- .../abilityfactory/ai/PermanentCreatureAi.java | 4 ++-- .../abilityfactory/ai/PermanentNoncreatureAi.java | 4 ++-- .../forge/card/abilityfactory/ai/PhasesAi.java | 8 ++++---- .../java/forge/card/abilityfactory/ai/PlayAi.java | 4 ++-- .../forge/card/abilityfactory/ai/PoisonAi.java | 5 +++-- .../forge/card/abilityfactory/ai/ProtectAi.java | 7 ++++--- .../forge/card/abilityfactory/ai/ProtectAllAi.java | 6 +++--- .../java/forge/card/abilityfactory/ai/PumpAi.java | 7 ++++--- .../forge/card/abilityfactory/ai/PumpAllAi.java | 7 ++++--- .../abilityfactory/ai/RearrangeTopOfLibraryAi.java | 5 +++-- .../forge/card/abilityfactory/ai/RegenerateAi.java | 5 +++-- .../card/abilityfactory/ai/RegenerateAllAi.java | 6 +++--- .../card/abilityfactory/ai/RemoveFromCombatAi.java | 8 ++++---- .../forge/card/abilityfactory/ai/RepeatAi.java | 3 ++- .../forge/card/abilityfactory/ai/RepeatEachAi.java | 3 ++- .../card/abilityfactory/ai/RestartGameAi.java | 6 +++--- .../forge/card/abilityfactory/ai/RevealAi.java | 6 +++--- .../forge/card/abilityfactory/ai/RevealAiBase.java | 3 ++- .../forge/card/abilityfactory/ai/RevealHandAi.java | 6 +++--- .../forge/card/abilityfactory/ai/SacrificeAi.java | 7 ++++--- .../card/abilityfactory/ai/SacrificeAllAi.java | 6 +++--- .../java/forge/card/abilityfactory/ai/ScryAi.java | 8 ++++---- .../forge/card/abilityfactory/ai/SetStateAi.java | 8 ++++---- .../card/abilityfactory/ai/SetStateAllAi.java | 8 ++++---- .../forge/card/abilityfactory/ai/ShuffleAi.java | 8 ++++---- .../forge/card/abilityfactory/ai/StoreSVarAi.java | 6 +++--- .../java/forge/card/abilityfactory/ai/TapAi.java | 7 ++++--- .../forge/card/abilityfactory/ai/TapAllAi.java | 5 +++-- .../forge/card/abilityfactory/ai/TapOrUntapAi.java | 8 ++++---- .../card/abilityfactory/ai/TapOrUntapAllAi.java | 4 ++-- .../java/forge/card/abilityfactory/ai/TokenAi.java | 5 +++-- .../forge/card/abilityfactory/ai/TwoPilesAi.java | 5 +++-- .../card/abilityfactory/ai/UnattachAllAi.java | 7 ++++--- .../java/forge/card/abilityfactory/ai/UntapAi.java | 7 ++++--- .../forge/card/abilityfactory/ai/UntapAllAi.java | 6 +++--- 97 files changed, 321 insertions(+), 274 deletions(-) diff --git a/src/main/java/forge/card/abilityfactory/CommonAbility.java b/src/main/java/forge/card/abilityfactory/CommonAbility.java index 35fb12b2767..a3c4a121601 100644 --- a/src/main/java/forge/card/abilityfactory/CommonAbility.java +++ b/src/main/java/forge/card/abilityfactory/CommonAbility.java @@ -12,6 +12,7 @@ import forge.card.cost.Cost; import forge.card.spellability.AbilityActivated; import forge.card.spellability.AbilityManaPart; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; public class CommonAbility extends AbilityActivated { private final SpellEffect effect; @@ -63,11 +64,11 @@ public class CommonAbility extends AbilityActivated { @Override public boolean canPlayAI() { - return ai.canPlayAIWithSubs(getActivatingPlayer(), this); + return ai.canPlayAIWithSubs((AIPlayer)getActivatingPlayer(), this); } @Override public boolean doTrigger(final boolean mandatory) { - return ai.doTriggerAI(this.getActivatingPlayer(), this, mandatory); + return ai.doTriggerAI((AIPlayer)this.getActivatingPlayer(), this, mandatory); } } diff --git a/src/main/java/forge/card/abilityfactory/CommonDrawback.java b/src/main/java/forge/card/abilityfactory/CommonDrawback.java index b572a07d73d..4195754fc3d 100644 --- a/src/main/java/forge/card/abilityfactory/CommonDrawback.java +++ b/src/main/java/forge/card/abilityfactory/CommonDrawback.java @@ -28,6 +28,7 @@ import forge.card.cardfactory.CardFactoryUtil; import forge.card.spellability.AbilityManaPart; import forge.card.spellability.AbilitySub; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; public class CommonDrawback extends AbilitySub { private final SpellEffect effect; @@ -64,7 +65,7 @@ public class CommonDrawback extends AbilitySub { @Override public boolean canPlayAI() { - return ai.canPlayAIWithSubs(getActivatingPlayer(), this); + return ai.canPlayAIWithSubs((AIPlayer)getActivatingPlayer(), this); } @Override @@ -74,7 +75,7 @@ public class CommonDrawback extends AbilitySub { @Override public boolean chkAIDrawback() { - if (!ai.chkAIDrawback(this, getActivatingPlayer())) { + if (!ai.chkAIDrawback(this, (AIPlayer)getActivatingPlayer())) { return false; } final AbilitySub subAb = getSubAbility(); @@ -86,7 +87,7 @@ public class CommonDrawback extends AbilitySub { @Override public boolean doTrigger(final boolean mandatory) { - return ai.doTriggerAI(getActivatingPlayer(), this, mandatory); + return ai.doTriggerAI((AIPlayer)getActivatingPlayer(), this, mandatory); } } diff --git a/src/main/java/forge/card/abilityfactory/CommonSpell.java b/src/main/java/forge/card/abilityfactory/CommonSpell.java index 566b036fe23..a7279277b27 100644 --- a/src/main/java/forge/card/abilityfactory/CommonSpell.java +++ b/src/main/java/forge/card/abilityfactory/CommonSpell.java @@ -11,6 +11,7 @@ import forge.card.cost.Cost; import forge.card.spellability.AbilityManaPart; import forge.card.spellability.Spell; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; public class CommonSpell extends Spell { private static final long serialVersionUID = -6741797239508483250L; @@ -44,7 +45,7 @@ public class CommonSpell extends Spell { @Override public boolean canPlayAI() { - return ai.canPlayAIWithSubs(getActivatingPlayer(), this) && super.canPlayAI(); + return ai.canPlayAIWithSubs((AIPlayer) getActivatingPlayer(), this) && super.canPlayAI(); } @Override @@ -56,9 +57,9 @@ public class CommonSpell extends Spell { public boolean canPlayFromEffectAI(final boolean mandatory, final boolean withOutManaCost) { boolean chance = false; if (withOutManaCost) { - chance = ai.doTriggerNoCostWithSubs(this.getActivatingPlayer(), this, mandatory); + chance = ai.doTriggerNoCostWithSubs((AIPlayer)this.getActivatingPlayer(), this, mandatory); } - chance = ai.doTriggerAI(this.getActivatingPlayer(), this, mandatory); + chance = ai.doTriggerAI((AIPlayer)this.getActivatingPlayer(), this, mandatory); return chance; } } diff --git a/src/main/java/forge/card/abilityfactory/SpellAiLogic.java b/src/main/java/forge/card/abilityfactory/SpellAiLogic.java index e4632db68e4..28ee850a4a2 100644 --- a/src/main/java/forge/card/abilityfactory/SpellAiLogic.java +++ b/src/main/java/forge/card/abilityfactory/SpellAiLogic.java @@ -4,11 +4,11 @@ package forge.card.abilityfactory; import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtilCost; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public abstract class SpellAiLogic { - public final boolean canPlayAIWithSubs(final Player aiPlayer, final SpellAbility sa) { + public final boolean canPlayAIWithSubs(final AIPlayer aiPlayer, final SpellAbility sa) { final AbilitySub subAb = sa.getSubAbility(); if (subAb != null && !subAb.chkAIDrawback()) { return false; @@ -16,9 +16,9 @@ public abstract class SpellAiLogic { return canPlayAI(aiPlayer, sa); } - protected abstract boolean canPlayAI(final Player aiPlayer, final SpellAbility sa); + protected abstract boolean canPlayAI(final AIPlayer aiPlayer, final SpellAbility sa); - public final boolean doTriggerAI(final Player aiPlayer, final SpellAbility sa, final boolean mandatory) { + public final boolean doTriggerAI(final AIPlayer aiPlayer, final SpellAbility sa, final boolean mandatory) { if (!ComputerUtilCost.canPayCost(sa, aiPlayer) && !mandatory) { return false; } @@ -26,7 +26,7 @@ public abstract class SpellAiLogic { return doTriggerNoCostWithSubs(aiPlayer, sa, mandatory); } - public final boolean doTriggerNoCostWithSubs(final Player aiPlayer, final SpellAbility sa, final boolean mandatory) + public final boolean doTriggerNoCostWithSubs(final AIPlayer aiPlayer, final SpellAbility sa, final boolean mandatory) { if (!doTriggerAINoCost(aiPlayer, sa, mandatory)) { return false; @@ -38,11 +38,11 @@ public abstract class SpellAiLogic { return true; } - protected boolean doTriggerAINoCost(final Player aiPlayer, final SpellAbility sa, final boolean mandatory) { + protected boolean doTriggerAINoCost(final AIPlayer aiPlayer, final SpellAbility sa, final boolean mandatory) { return canPlayAI(aiPlayer, sa) || mandatory; } - public boolean chkAIDrawback(final SpellAbility sa, final Player aiPlayer) { + public boolean chkAIDrawback(final SpellAbility sa, final AIPlayer aiPlayer) { return true; } } diff --git a/src/main/java/forge/card/abilityfactory/ai/AddPhaseAi.java b/src/main/java/forge/card/abilityfactory/ai/AddPhaseAi.java index f9b7ac135c4..04c8a8dd915 100644 --- a/src/main/java/forge/card/abilityfactory/ai/AddPhaseAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/AddPhaseAi.java @@ -2,7 +2,7 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; /** * TODO: Write javadoc for this type. @@ -11,7 +11,7 @@ import forge.game.player.Player; public class AddPhaseAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { return false; } diff --git a/src/main/java/forge/card/abilityfactory/ai/AddTurnAi.java b/src/main/java/forge/card/abilityfactory/ai/AddTurnAi.java index ce55ed1de0e..85420abcfd0 100644 --- a/src/main/java/forge/card/abilityfactory/ai/AddTurnAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/AddTurnAi.java @@ -23,6 +23,7 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.SpellAiLogic; +import forge.game.player.AIPlayer; import forge.game.player.Player; /** @@ -37,7 +38,7 @@ public class AddTurnAi extends SpellAiLogic { @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Player opp = ai.getWeakestOpponent(); final Target tgt = sa.getTarget(); @@ -75,7 +76,7 @@ public class AddTurnAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { return doTriggerAINoCost(aiPlayer, sa, false); } diff --git a/src/main/java/forge/card/abilityfactory/ai/AlwaysPlayAi.java b/src/main/java/forge/card/abilityfactory/ai/AlwaysPlayAi.java index 9284364faa7..daf7cee7865 100644 --- a/src/main/java/forge/card/abilityfactory/ai/AlwaysPlayAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/AlwaysPlayAi.java @@ -3,14 +3,14 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class AlwaysPlayAi extends SpellAiLogic { /* (non-Javadoc) * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { return true; } } diff --git a/src/main/java/forge/card/abilityfactory/ai/AnimateAi.java b/src/main/java/forge/card/abilityfactory/ai/AnimateAi.java index 0a17f763c56..11c7011ffbf 100644 --- a/src/main/java/forge/card/abilityfactory/ai/AnimateAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/AnimateAi.java @@ -12,6 +12,7 @@ import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -30,7 +31,7 @@ public class AnimateAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); @@ -113,7 +114,7 @@ public class AnimateAi extends SpellAiLogic { // end animateCanPlayAI() @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { if (sa.getTarget() != null) { sa.getTarget().resetTargets(); if (!animateTgtAI(sa)) { @@ -138,7 +139,7 @@ public class AnimateAi extends SpellAiLogic { * @return a boolean. */ @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { if (sa.getTarget() != null && !animateTgtAI(sa) && !mandatory) { return false; diff --git a/src/main/java/forge/card/abilityfactory/ai/AnimateAllAi.java b/src/main/java/forge/card/abilityfactory/ai/AnimateAllAi.java index 71acff30376..136599c1016 100644 --- a/src/main/java/forge/card/abilityfactory/ai/AnimateAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/AnimateAllAi.java @@ -2,17 +2,17 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class AnimateAllAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { return false; } // end animateAllCanPlayAI() @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return false; } diff --git a/src/main/java/forge/card/abilityfactory/ai/AttachAi.java b/src/main/java/forge/card/abilityfactory/ai/AttachAi.java index 35999f81d38..dc33b1c94c8 100644 --- a/src/main/java/forge/card/abilityfactory/ai/AttachAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/AttachAi.java @@ -28,6 +28,7 @@ import forge.game.ai.ComputerUtilMana; import forge.game.phase.CombatUtil; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -38,7 +39,7 @@ public class AttachAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Random r = MyRandom.getRandom(); final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -580,7 +581,7 @@ public class AttachAi extends SpellAiLogic { * @return true, if successful */ @Override - protected boolean doTriggerAINoCost(final Player ai, final SpellAbility sa, final boolean mandatory) { + protected boolean doTriggerAINoCost(final AIPlayer ai, final SpellAbility sa, final boolean mandatory) { final Card card = sa.getSourceCard(); // Check if there are any valid targets ArrayList targets = new ArrayList(); diff --git a/src/main/java/forge/card/abilityfactory/ai/BondAi.java b/src/main/java/forge/card/abilityfactory/ai/BondAi.java index 5bef581496e..eebafaa74e0 100644 --- a/src/main/java/forge/card/abilityfactory/ai/BondAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/BondAi.java @@ -19,7 +19,7 @@ package forge.card.abilityfactory.ai; import forge.card.spellability.SpellAbility; import forge.card.abilityfactory.SpellAiLogic; -import forge.game.player.Player; +import forge.game.player.AIPlayer; /** *

@@ -42,7 +42,7 @@ public final class BondAi extends SpellAiLogic { * @return a boolean. */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { return true; } // end bondCanPlayAI() } diff --git a/src/main/java/forge/card/abilityfactory/ai/CanPlayAsDrawbackAi.java b/src/main/java/forge/card/abilityfactory/ai/CanPlayAsDrawbackAi.java index e6ed39beed0..5ba38cac4ae 100644 --- a/src/main/java/forge/card/abilityfactory/ai/CanPlayAsDrawbackAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/CanPlayAsDrawbackAi.java @@ -3,7 +3,7 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class CanPlayAsDrawbackAi extends SpellAiLogic { @@ -11,7 +11,7 @@ public class CanPlayAsDrawbackAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { return false; } @@ -29,7 +29,7 @@ public class CanPlayAsDrawbackAi extends SpellAiLogic { * @return a boolean. */ @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return false; } diff --git a/src/main/java/forge/card/abilityfactory/ai/CannotPlayAi.java b/src/main/java/forge/card/abilityfactory/ai/CannotPlayAi.java index e6a03db4384..e9f03b9dc17 100644 --- a/src/main/java/forge/card/abilityfactory/ai/CannotPlayAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/CannotPlayAi.java @@ -3,14 +3,14 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class CannotPlayAi extends SpellAiLogic { /* (non-Javadoc) * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { return false; } @@ -18,7 +18,7 @@ public class CannotPlayAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player) */ @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { return canPlayAI(aiPlayer, sa); } } diff --git a/src/main/java/forge/card/abilityfactory/ai/ChangeZoneAi.java b/src/main/java/forge/card/abilityfactory/ai/ChangeZoneAi.java index ee22bb1512d..4aa0766c717 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ChangeZoneAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ChangeZoneAi.java @@ -37,6 +37,7 @@ import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; import forge.game.phase.Combat; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.gui.GuiChoose; @@ -56,7 +57,7 @@ public class ChangeZoneAi extends SpellAiLogic { * @return a boolean. */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { String origin = ""; if (sa.hasParam("Origin")) { origin = sa.getParam("Origin"); @@ -89,7 +90,7 @@ public class ChangeZoneAi extends SpellAiLogic { * @return a boolean. */ @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { String origin = ""; if (sa.hasParam("Origin")) { origin = sa.getParam("Origin"); @@ -120,7 +121,7 @@ public class ChangeZoneAi extends SpellAiLogic { * @return a boolean. */ @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { String origin = ""; if (sa.hasParam("Origin")) { origin = sa.getParam("Origin"); diff --git a/src/main/java/forge/card/abilityfactory/ai/ChangeZoneAllAi.java b/src/main/java/forge/card/abilityfactory/ai/ChangeZoneAllAi.java index d65a8ace069..ea9e5a5b956 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ChangeZoneAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ChangeZoneAllAi.java @@ -14,6 +14,7 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCost; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -24,7 +25,7 @@ public class ChangeZoneAllAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { // Change Zone All, can be any type moving from one zone to another final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -167,7 +168,7 @@ public class ChangeZoneAllAi extends SpellAiLogic { * @return a boolean. */ @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { // if putting cards from hand to library and parent is drawing cards // make sure this will actually do something: @@ -176,7 +177,7 @@ public class ChangeZoneAllAi extends SpellAiLogic { @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { // Change Zone All, can be any type moving from one zone to another final ZoneType destination = ZoneType.smartValueOf(sa.getParam("Destination")); diff --git a/src/main/java/forge/card/abilityfactory/ai/CharmAi.java b/src/main/java/forge/card/abilityfactory/ai/CharmAi.java index 9b208aa4fbf..16e88a88153 100644 --- a/src/main/java/forge/card/abilityfactory/ai/CharmAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/CharmAi.java @@ -8,13 +8,14 @@ import forge.card.abilityfactory.SpellAiLogic; import forge.card.abilityfactory.effects.CharmEffect; import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.util.MyRandom; public class CharmAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Random r = MyRandom.getRandom(); final int num = Integer.parseInt(sa.hasParam("CharmNum") ? sa.getParam("CharmNum") : "1"); diff --git a/src/main/java/forge/card/abilityfactory/ai/ChooseCardAi.java b/src/main/java/forge/card/abilityfactory/ai/ChooseCardAi.java index 7f45a7c8077..af078c923f2 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ChooseCardAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ChooseCardAi.java @@ -8,7 +8,7 @@ import forge.Singletons; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.game.zone.ZoneType; public class ChooseCardAi extends SpellAiLogic { @@ -17,7 +17,7 @@ public class ChooseCardAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Card host = sa.getSourceCard(); final Target tgt = sa.getTarget(); @@ -61,7 +61,7 @@ public class ChooseCardAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { return canPlayAI(ai, sa); } } diff --git a/src/main/java/forge/card/abilityfactory/ai/ChooseCardNameAi.java b/src/main/java/forge/card/abilityfactory/ai/ChooseCardNameAi.java index 72e7d5c8b74..45f94efc0c0 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ChooseCardNameAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ChooseCardNameAi.java @@ -4,12 +4,12 @@ import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtil; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class ChooseCardNameAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { if (sa.hasParam("AILogic")) { // Don't tap creatures that may be able to block @@ -32,7 +32,7 @@ public class ChooseCardNameAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { // TODO - there is no AILogic implemented yet return false; } diff --git a/src/main/java/forge/card/abilityfactory/ai/ChooseColorAi.java b/src/main/java/forge/card/abilityfactory/ai/ChooseColorAi.java index a556b6c15db..e8c00cb1d10 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ChooseColorAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ChooseColorAi.java @@ -2,13 +2,13 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.util.MyRandom; public class ChooseColorAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { if (!sa.hasParam("AILogic")) { return false; } @@ -17,7 +17,7 @@ public class ChooseColorAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { return mandatory || canPlayAI(ai, sa); } diff --git a/src/main/java/forge/card/abilityfactory/ai/ChoosePlayerAi.java b/src/main/java/forge/card/abilityfactory/ai/ChoosePlayerAi.java index 66836c5adc7..0124cb9daa0 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ChoosePlayerAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ChoosePlayerAi.java @@ -2,7 +2,7 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class ChoosePlayerAi extends SpellAiLogic { @@ -10,17 +10,17 @@ public class ChoosePlayerAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { return true; } @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { return canPlayAI(ai, sa); } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { return canPlayAI(ai, sa); } diff --git a/src/main/java/forge/card/abilityfactory/ai/ChooseSourceAi.java b/src/main/java/forge/card/abilityfactory/ai/ChooseSourceAi.java index b9f13137113..ef08ff0f720 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ChooseSourceAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ChooseSourceAi.java @@ -17,7 +17,7 @@ import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCombat; import forge.game.ai.ComputerUtilCost; import forge.game.phase.PhaseType; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.game.zone.ZoneType; public class ChooseSourceAi extends SpellAiLogic { @@ -26,7 +26,7 @@ public class ChooseSourceAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(final Player ai, SpellAbility sa) { + protected boolean canPlayAI(final AIPlayer ai, SpellAbility sa) { // TODO: AI Support! Currently this is copied from AF ChooseCard. // When implementing AI, I believe AI also needs to be made aware of the damage sources chosen // to be prevented (e.g. so the AI doesn't attack with a creature that will not deal any damage diff --git a/src/main/java/forge/card/abilityfactory/ai/ChooseTypeAi.java b/src/main/java/forge/card/abilityfactory/ai/ChooseTypeAi.java index f67fa76f2b1..61158e1050d 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ChooseTypeAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ChooseTypeAi.java @@ -4,11 +4,12 @@ import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; import forge.game.player.Player; public class ChooseTypeAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { if (!sa.hasParam("AILogic")) { return false; } @@ -17,7 +18,7 @@ public class ChooseTypeAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (sa.getTarget() != null) { diff --git a/src/main/java/forge/card/abilityfactory/ai/ClashAi.java b/src/main/java/forge/card/abilityfactory/ai/ClashAi.java index 6887d2cf5a3..23983046223 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ClashAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ClashAi.java @@ -4,6 +4,7 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; import forge.game.player.Player; public class ClashAi extends SpellAiLogic { @@ -12,7 +13,7 @@ public class ClashAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return true; } @@ -20,7 +21,7 @@ public class ClashAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Player opp = ai.getOpponent(); if (tgt != null) { diff --git a/src/main/java/forge/card/abilityfactory/ai/CloneAi.java b/src/main/java/forge/card/abilityfactory/ai/CloneAi.java index f86ffa3cc1f..f959b877cdb 100644 --- a/src/main/java/forge/card/abilityfactory/ai/CloneAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/CloneAi.java @@ -10,12 +10,12 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class CloneAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); @@ -92,7 +92,7 @@ public class CloneAi extends SpellAiLogic { } // end cloneCanPlayAI() @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { // AI should only activate this during Human's turn boolean chance = true; @@ -105,7 +105,7 @@ public class CloneAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { boolean chance = true; diff --git a/src/main/java/forge/card/abilityfactory/ai/ControlExchangeAi.java b/src/main/java/forge/card/abilityfactory/ai/ControlExchangeAi.java index cac01721d7f..220faca62d2 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ControlExchangeAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ControlExchangeAi.java @@ -12,7 +12,7 @@ import forge.card.abilityfactory.SpellAiLogic; import forge.card.cardfactory.CardFactoryUtil; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -22,7 +22,7 @@ public class ControlExchangeAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, final SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, final SpellAbility sa) { Card object1 = null; Card object2 = null; final Target tgt = sa.getTarget(); @@ -62,7 +62,7 @@ public class ControlExchangeAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return false; } } diff --git a/src/main/java/forge/card/abilityfactory/ai/ControlGainAi.java b/src/main/java/forge/card/abilityfactory/ai/ControlGainAi.java index 83509fa5b03..bc5ef6bd326 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ControlGainAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ControlGainAi.java @@ -33,6 +33,7 @@ import forge.card.cardfactory.CardFactoryUtil; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -62,7 +63,7 @@ import forge.game.zone.ZoneType; */ public class ControlGainAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, final SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, final SpellAbility sa) { boolean hasCreature = false; boolean hasArtifact = false; boolean hasEnchantment = false; @@ -163,7 +164,7 @@ public class ControlGainAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { if (sa.getTarget() == null) { if (mandatory) { return true; @@ -176,7 +177,7 @@ public class ControlGainAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, final Player ai) { + public boolean chkAIDrawback(SpellAbility sa, final AIPlayer ai) { if ((sa.getTarget() == null) || !sa.getTarget().doesTarget()) { if (sa.hasParam("AllValid")) { List tgtCards = CardLists.filterControlledBy(Singletons.getModel().getGame().getCardsIn(ZoneType.Battlefield), ai.getOpponent()); diff --git a/src/main/java/forge/card/abilityfactory/ai/CopyPermanentAi.java b/src/main/java/forge/card/abilityfactory/ai/CopyPermanentAi.java index b9db2ee4c87..6c95bc620bd 100644 --- a/src/main/java/forge/card/abilityfactory/ai/CopyPermanentAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/CopyPermanentAi.java @@ -16,7 +16,7 @@ import forge.card.cardfactory.CardFactoryUtil; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.phase.PhaseType; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -26,7 +26,7 @@ public class CopyPermanentAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { // Card source = sa.getSourceCard(); // TODO - I'm sure someone can do this AI better @@ -48,7 +48,7 @@ public class CopyPermanentAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { final Card source = sa.getSourceCard(); // //// diff --git a/src/main/java/forge/card/abilityfactory/ai/CounterAi.java b/src/main/java/forge/card/abilityfactory/ai/CounterAi.java index c1ab8e3019e..6012feca796 100644 --- a/src/main/java/forge/card/abilityfactory/ai/CounterAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/CounterAi.java @@ -11,13 +11,13 @@ import forge.card.spellability.Target; import forge.card.spellability.TargetSelection; import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.util.MyRandom; public class CounterAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { boolean toReturn = true; final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -100,12 +100,12 @@ public class CounterAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { return doTriggerAINoCost(aiPlayer, sa, true); } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt != null) { diff --git a/src/main/java/forge/card/abilityfactory/ai/CountersMoveAi.java b/src/main/java/forge/card/abilityfactory/ai/CountersMoveAi.java index d38b2079c8f..f5929c2329d 100644 --- a/src/main/java/forge/card/abilityfactory/ai/CountersMoveAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/CountersMoveAi.java @@ -11,13 +11,14 @@ import forge.card.abilityfactory.SpellAiLogic; import forge.card.cardfactory.CardFactoryUtil; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; public class CountersMoveAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { // AI needs to be expanded, since this function can be pretty complex // based on what // the expected targets could be @@ -43,7 +44,7 @@ public class CountersMoveAi extends SpellAiLogic { } // moveCounterCanPlayAI @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Card host = sa.getSourceCard(); final Target abTgt = sa.getTarget(); final String type = sa.getParam("CounterType"); diff --git a/src/main/java/forge/card/abilityfactory/ai/CountersProliferateAi.java b/src/main/java/forge/card/abilityfactory/ai/CountersProliferateAi.java index 8d5309e6025..394e6805115 100644 --- a/src/main/java/forge/card/abilityfactory/ai/CountersProliferateAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/CountersProliferateAi.java @@ -10,13 +10,13 @@ import forge.CounterType; import forge.card.abilityfactory.SpellAiLogic; import forge.card.cardfactory.CardFactoryUtil; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.game.zone.ZoneType; public class CountersProliferateAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { boolean chance = true; List cperms = CardLists.filter(ai.getCardsIn(ZoneType.Battlefield), new Predicate() { @@ -50,7 +50,7 @@ public class CountersProliferateAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { boolean chance = true; // TODO Make sure Human has poison counters or there are some counters @@ -62,7 +62,7 @@ public class CountersProliferateAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player) */ @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { return canPlayAI(ai, sa); } diff --git a/src/main/java/forge/card/abilityfactory/ai/CountersPutAi.java b/src/main/java/forge/card/abilityfactory/ai/CountersPutAi.java index 4af2d37bd49..52e87677980 100644 --- a/src/main/java/forge/card/abilityfactory/ai/CountersPutAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/CountersPutAi.java @@ -20,13 +20,14 @@ import forge.game.ai.ComputerUtil; import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; public class CountersPutAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, final SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, final SpellAbility sa) { // AI needs to be expanded, since this function can be pretty complex // based on // what the expected targets could be @@ -165,7 +166,7 @@ public class CountersPutAi extends SpellAiLogic { } // putCanPlayAI @Override - public boolean chkAIDrawback(final SpellAbility sa, Player ai) { + public boolean chkAIDrawback(final SpellAbility sa, AIPlayer ai) { boolean chance = true; final Target abTgt = sa.getTarget(); final Card source = sa.getSourceCard(); @@ -228,7 +229,7 @@ public class CountersPutAi extends SpellAiLogic { } // putPlayDrawbackAI @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Target abTgt = sa.getTarget(); final Card source = sa.getSourceCard(); // boolean chance = true; diff --git a/src/main/java/forge/card/abilityfactory/ai/CountersPutAllAi.java b/src/main/java/forge/card/abilityfactory/ai/CountersPutAllAi.java index 5ff117a41b6..44c74bacc3c 100644 --- a/src/main/java/forge/card/abilityfactory/ai/CountersPutAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/CountersPutAllAi.java @@ -18,13 +18,14 @@ import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; public class CountersPutAllAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { // AI needs to be expanded, since this function can be pretty complex // based on what // the expected targets could be @@ -131,7 +132,7 @@ public class CountersPutAllAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { return canPlayAI(ai, sa); } } diff --git a/src/main/java/forge/card/abilityfactory/ai/CountersRemoveAi.java b/src/main/java/forge/card/abilityfactory/ai/CountersRemoveAi.java index 57305dc798a..136ed3ca6da 100644 --- a/src/main/java/forge/card/abilityfactory/ai/CountersRemoveAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/CountersRemoveAi.java @@ -11,13 +11,13 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCost; import forge.game.phase.PhaseType; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.util.MyRandom; public class CountersRemoveAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { // AI needs to be expanded, since this function can be pretty complex // based on what // the expected targets could be @@ -83,7 +83,7 @@ public class CountersRemoveAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { // AI needs to be expanded, since this function can be pretty complex // based on what the // expected targets could be diff --git a/src/main/java/forge/card/abilityfactory/ai/DamageAllAi.java b/src/main/java/forge/card/abilityfactory/ai/DamageAllAi.java index eb027b85cc3..2042e63f0b0 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DamageAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DamageAllAi.java @@ -17,6 +17,7 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -24,7 +25,7 @@ import forge.util.MyRandom; public class DamageAllAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { // AI needs to be expanded, since this function can be pretty complex // based on what the expected targets could be final Random r = MyRandom.getRandom(); @@ -103,7 +104,7 @@ public class DamageAllAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { final Card source = sa.getSourceCard(); String validP = ""; @@ -187,7 +188,7 @@ public class DamageAllAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Card source = sa.getSourceCard(); String validP = ""; diff --git a/src/main/java/forge/card/abilityfactory/ai/DamageDealAi.java b/src/main/java/forge/card/abilityfactory/ai/DamageDealAi.java index d63ae1203ff..2867c729a3e 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DamageDealAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DamageDealAi.java @@ -20,13 +20,14 @@ import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; public class DamageDealAi extends DamageAiBase { @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { final String damage = sa.getParam("NumDmg"); int dmg = AbilityFactory.calculateAmount(sa.getSourceCard(), damage, sa); @@ -44,7 +45,7 @@ public class DamageDealAi extends DamageAiBase { } @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -378,7 +379,7 @@ public class DamageDealAi extends DamageAiBase { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Card source = sa.getSourceCard(); final String damage = sa.getParam("NumDmg"); diff --git a/src/main/java/forge/card/abilityfactory/ai/DamageEachAi.java b/src/main/java/forge/card/abilityfactory/ai/DamageEachAi.java index 9d19ac62066..ede94511fe9 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DamageEachAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DamageEachAi.java @@ -4,7 +4,7 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.AbilityFactory; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class DamageEachAi extends DamageAiBase { @@ -12,7 +12,7 @@ public class DamageEachAi extends DamageAiBase { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Target tgt = sa.getTarget(); if (tgt != null && sa.canTarget(ai.getOpponent())) { @@ -26,7 +26,7 @@ public class DamageEachAi extends DamageAiBase { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { // check AI life before playing this drawback? return true; } @@ -35,7 +35,7 @@ public class DamageEachAi extends DamageAiBase { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { return canPlayAI(ai, sa); } diff --git a/src/main/java/forge/card/abilityfactory/ai/DamagePreventAi.java b/src/main/java/forge/card/abilityfactory/ai/DamagePreventAi.java index a1f2505b9fb..c1e92ec6efe 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DamagePreventAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DamagePreventAi.java @@ -17,13 +17,14 @@ import forge.game.ai.ComputerUtilCombat; import forge.game.ai.ComputerUtilCost; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; public class DamagePreventAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Card hostCard = sa.getSourceCard(); boolean chance = false; @@ -147,7 +148,7 @@ public class DamagePreventAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { boolean chance = false; final Target tgt = sa.getTarget(); if (tgt == null) { diff --git a/src/main/java/forge/card/abilityfactory/ai/DamagePreventAllAi.java b/src/main/java/forge/card/abilityfactory/ai/DamagePreventAllAi.java index bca2fdf2675..44b227d155a 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DamagePreventAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DamagePreventAllAi.java @@ -8,7 +8,7 @@ import forge.card.cost.Cost; import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtilCost; import forge.game.phase.PhaseType; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class DamagePreventAllAi extends SpellAiLogic { @@ -16,7 +16,7 @@ public class DamagePreventAllAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Card hostCard = sa.getSourceCard(); boolean chance = false; @@ -52,7 +52,7 @@ public class DamagePreventAllAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { boolean chance = true; return chance; diff --git a/src/main/java/forge/card/abilityfactory/ai/DebuffAi.java b/src/main/java/forge/card/abilityfactory/ai/DebuffAi.java index d59b31129d1..1f3e76a5284 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DebuffAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DebuffAi.java @@ -19,6 +19,7 @@ import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCost; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -28,7 +29,7 @@ public class DebuffAi extends SpellAiLogic { // ************************************************************************* @Override - protected boolean canPlayAI(final Player ai, final SpellAbility sa) { + protected boolean canPlayAI(final AIPlayer ai, final SpellAbility sa) { // if there is no target and host card isn't in play, don't activate final Card source = sa.getSourceCard(); if ((sa.getTarget() == null) && !source.isInPlay()) { @@ -97,7 +98,7 @@ public class DebuffAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { if ((sa.getTarget() == null) || !sa.getTarget().doesTarget()) { // TODO - copied from AF_Pump.pumpDrawbackAI() - what should be // here? @@ -279,7 +280,7 @@ public class DebuffAi extends SpellAiLogic { } // pumpMandatoryTarget() @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final List kws = sa.hasParam("Keywords") ? Arrays.asList(sa.getParam("Keywords").split(" & ")) : new ArrayList(); if (sa.getTarget() == null) { diff --git a/src/main/java/forge/card/abilityfactory/ai/DebuffAllAi.java b/src/main/java/forge/card/abilityfactory/ai/DebuffAllAi.java index c4831dcb31b..a1e3e1380cd 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DebuffAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DebuffAllAi.java @@ -12,13 +12,14 @@ import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.game.phase.CombatUtil; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; public class DebuffAllAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { String valid = ""; final Random r = MyRandom.getRandom(); // final Card source = sa.getSourceCard(); @@ -60,7 +61,7 @@ public class DebuffAllAi extends SpellAiLogic { } // debuffAllCanPlayAI() @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return true; } } diff --git a/src/main/java/forge/card/abilityfactory/ai/DelayedTriggerAi.java b/src/main/java/forge/card/abilityfactory/ai/DelayedTriggerAi.java index a1f8cf30623..d2bd283125b 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DelayedTriggerAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DelayedTriggerAi.java @@ -4,13 +4,13 @@ import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class DelayedTriggerAi extends SpellAiLogic { private static AbilityFactory tempCreator = new AbilityFactory(); @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { final String svarName = sa.getParam("Execute"); final SpellAbility trigsa = tempCreator.getAbility(sa.getSourceCard().getSVar(svarName), sa.getSourceCard()); trigsa.setActivatingPlayer(ai); @@ -23,7 +23,7 @@ public class DelayedTriggerAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final String svarName = sa.getParam("Execute"); final SpellAbility trigsa = tempCreator.getAbility(sa.getSourceCard().getSVar(svarName), sa.getSourceCard()); trigsa.setActivatingPlayer(ai); @@ -36,7 +36,7 @@ public class DelayedTriggerAi extends SpellAiLogic { } @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final String svarName = sa.getParam("Execute"); final SpellAbility trigsa = tempCreator.getAbility(sa.getSourceCard().getSVar(svarName), sa.getSourceCard()); trigsa.setActivatingPlayer(ai); diff --git a/src/main/java/forge/card/abilityfactory/ai/DestroyAi.java b/src/main/java/forge/card/abilityfactory/ai/DestroyAi.java index 880397a8fb5..33f1fb9ba96 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DestroyAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DestroyAi.java @@ -20,6 +20,7 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtil; import forge.game.ai.ComputerUtilCost; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -30,14 +31,14 @@ public class DestroyAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player) */ @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { return canPlayAI(ai, sa); } /* (non-Javadoc) * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(final Player ai, SpellAbility sa) { + protected boolean canPlayAI(final AIPlayer ai, SpellAbility sa) { // AI needs to be expanded, since this function can be pretty complex // based on what the expected targets could be final Random r = MyRandom.getRandom(); @@ -164,7 +165,7 @@ public class DestroyAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); final boolean noRegen = sa.hasParam("NoRegen"); diff --git a/src/main/java/forge/card/abilityfactory/ai/DestroyAllAi.java b/src/main/java/forge/card/abilityfactory/ai/DestroyAllAi.java index fc380c24360..f6652efa00d 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DestroyAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DestroyAllAi.java @@ -14,7 +14,7 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -31,7 +31,7 @@ public class DestroyAllAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Card source = sa.getSourceCard(); final Target tgt = sa.getTarget(); String valid = ""; @@ -73,13 +73,13 @@ public class DestroyAllAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { //TODO: Check for bad outcome return true; } @Override - protected boolean canPlayAI(final Player ai, SpellAbility sa) { + protected boolean canPlayAI(final AIPlayer ai, SpellAbility sa) { // AI needs to be expanded, since this function can be pretty complex // based on what the expected targets could be final Random r = MyRandom.getRandom(); diff --git a/src/main/java/forge/card/abilityfactory/ai/DigAi.java b/src/main/java/forge/card/abilityfactory/ai/DigAi.java index 580adcc97ca..0a08931f4bc 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DigAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DigAi.java @@ -8,6 +8,7 @@ import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -18,7 +19,7 @@ public class DigAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { double chance = .4; // 40 percent chance with instant speed stuff if (AbilityFactory.isSorcerySpeed(sa)) { chance = .667; // 66.7% chance for sorcery speed (since it will @@ -60,7 +61,7 @@ public class DigAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (sa.getTarget() != null) { diff --git a/src/main/java/forge/card/abilityfactory/ai/DigUntilAi.java b/src/main/java/forge/card/abilityfactory/ai/DigUntilAi.java index 55476bd241a..ca1a798f00b 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DigUntilAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DigUntilAi.java @@ -6,6 +6,7 @@ import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -13,7 +14,7 @@ import forge.util.MyRandom; public class DigUntilAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { double chance = .4; // 40 percent chance with instant speed stuff if (AbilityFactory.isSorcerySpeed(sa)) { chance = .667; // 66.7% chance for sorcery speed (since it will @@ -45,7 +46,7 @@ public class DigUntilAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); diff --git a/src/main/java/forge/card/abilityfactory/ai/DiscardAi.java b/src/main/java/forge/card/abilityfactory/ai/DiscardAi.java index e1b3021020c..c3ccb836f88 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DiscardAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DiscardAi.java @@ -14,6 +14,7 @@ import forge.game.ai.ComputerUtil; import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -21,7 +22,7 @@ import forge.util.MyRandom; public class DiscardAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); final Cost abCost = sa.getPayCosts(); @@ -127,7 +128,7 @@ public class DiscardAi extends SpellAiLogic { @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt != null) { Player opp = ai.getOpponent(); @@ -153,7 +154,7 @@ public class DiscardAi extends SpellAiLogic { } // discardTrigger() @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { // Drawback AI improvements // if parent draws cards, make sure cards in hand + cards drawn > 0 final Target tgt = sa.getTarget(); diff --git a/src/main/java/forge/card/abilityfactory/ai/DrainManaAi.java b/src/main/java/forge/card/abilityfactory/ai/DrainManaAi.java index 338fd691f5a..e8efee53341 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DrainManaAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DrainManaAi.java @@ -8,13 +8,14 @@ import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.util.MyRandom; public class DrainManaAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { // AI cannot use this properly until he can use SAs during Humans turn final Target tgt = sa.getTarget(); @@ -41,7 +42,7 @@ public class DrainManaAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Player opp = ai.getOpponent(); final Target tgt = sa.getTarget(); @@ -68,7 +69,7 @@ public class DrainManaAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { // AI cannot use this properly until he can use SAs during Humans turn final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); diff --git a/src/main/java/forge/card/abilityfactory/ai/DrawAi.java b/src/main/java/forge/card/abilityfactory/ai/DrawAi.java index 71370c6670a..38e250ae8f2 100644 --- a/src/main/java/forge/card/abilityfactory/ai/DrawAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/DrawAi.java @@ -46,7 +46,7 @@ import forge.util.MyRandom; public class DrawAi extends SpellAiLogic { @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { return targetAI(ai, sa, false); } @@ -54,7 +54,7 @@ public class DrawAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); final Cost abCost = sa.getPayCosts(); @@ -262,7 +262,7 @@ public class DrawAi extends SpellAiLogic { @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { return targetAI(ai, sa, mandatory); } diff --git a/src/main/java/forge/card/abilityfactory/ai/EffectAi.java b/src/main/java/forge/card/abilityfactory/ai/EffectAi.java index e239a28335a..09a8fc848e3 100644 --- a/src/main/java/forge/card/abilityfactory/ai/EffectAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/EffectAi.java @@ -17,13 +17,14 @@ import forge.game.ai.ComputerUtilCombat; import forge.game.phase.CombatUtil; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; public class EffectAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final GameState game = Singletons.getModel().getGame(); final Random r = MyRandom.getRandom(); boolean randomReturn = r.nextFloat() <= .6667; @@ -121,7 +122,7 @@ public class EffectAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { // TODO: Add targeting effects return true; diff --git a/src/main/java/forge/card/abilityfactory/ai/EndTurnAi.java b/src/main/java/forge/card/abilityfactory/ai/EndTurnAi.java index cdd0d45a10f..1f26a2b6fd9 100644 --- a/src/main/java/forge/card/abilityfactory/ai/EndTurnAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/EndTurnAi.java @@ -3,7 +3,7 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; /** * TODO: Write javadoc for this type. @@ -12,18 +12,18 @@ import forge.game.player.Player; public class EndTurnAi extends SpellAiLogic { @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return mandatory; } @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { return false; } + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { return false; } /* (non-Javadoc) * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { return false; } } diff --git a/src/main/java/forge/card/abilityfactory/ai/FightAi.java b/src/main/java/forge/card/abilityfactory/ai/FightAi.java index 43883b3009c..51d569ced15 100644 --- a/src/main/java/forge/card/abilityfactory/ai/FightAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/FightAi.java @@ -10,7 +10,7 @@ import forge.CardLists; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.util.MyRandom; public class FightAi extends SpellAiLogic { @@ -19,7 +19,7 @@ public class FightAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { Target tgt = sa.getTarget(); tgt.resetTargets(); @@ -86,7 +86,7 @@ public class FightAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return false; } diff --git a/src/main/java/forge/card/abilityfactory/ai/FogAi.java b/src/main/java/forge/card/abilityfactory/ai/FogAi.java index 105ded8d260..9bb516cf44f 100644 --- a/src/main/java/forge/card/abilityfactory/ai/FogAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/FogAi.java @@ -6,7 +6,7 @@ import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtilCombat; import forge.game.phase.PhaseType; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class FogAi extends SpellAiLogic { @@ -14,7 +14,7 @@ public class FogAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { // AI should only activate this during Human's Declare Blockers phase if (Singletons.getModel().getGame().getPhaseHandler().isPlayerTurn(sa.getActivatingPlayer())) { return false; @@ -38,7 +38,7 @@ public class FogAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { // AI should only activate this during Human's turn boolean chance; @@ -53,7 +53,7 @@ public class FogAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { boolean chance; if (Singletons.getModel().getGame().getPhaseHandler().isPlayerTurn(sa.getActivatingPlayer().getOpponent())) { chance = Singletons.getModel().getGame().getPhaseHandler().getPhase().isBefore(PhaseType.COMBAT_FIRST_STRIKE_DAMAGE); diff --git a/src/main/java/forge/card/abilityfactory/ai/GameLossAi.java b/src/main/java/forge/card/abilityfactory/ai/GameLossAi.java index d2711118585..c0a8817a31a 100644 --- a/src/main/java/forge/card/abilityfactory/ai/GameLossAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/GameLossAi.java @@ -3,11 +3,12 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; import forge.game.player.Player; public class GameLossAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Player opp = ai.getOpponent(); if (opp.cantLose()) { return false; @@ -28,7 +29,7 @@ public class GameLossAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { // Phage the Untouchable // (Final Fortune would need to attach it's delayed trigger to a diff --git a/src/main/java/forge/card/abilityfactory/ai/GameWinAi.java b/src/main/java/forge/card/abilityfactory/ai/GameWinAi.java index 39381f31b7b..be5507b9f6f 100644 --- a/src/main/java/forge/card/abilityfactory/ai/GameWinAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/GameWinAi.java @@ -3,14 +3,14 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class GameWinAi extends SpellAiLogic { /* (non-Javadoc) * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { if (ai.cantWin()) { return false; } @@ -25,7 +25,7 @@ public class GameWinAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return true; } diff --git a/src/main/java/forge/card/abilityfactory/ai/LifeExchangeAi.java b/src/main/java/forge/card/abilityfactory/ai/LifeExchangeAi.java index d86476ee948..9286ca5a926 100644 --- a/src/main/java/forge/card/abilityfactory/ai/LifeExchangeAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/LifeExchangeAi.java @@ -5,6 +5,7 @@ import java.util.Random; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.util.MyRandom; @@ -19,7 +20,7 @@ public class LifeExchangeAi extends SpellAiLogic { * forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { final Random r = MyRandom.getRandom(); final int myLife = aiPlayer.getLife(); Player opponent = aiPlayer.getOpponent(); diff --git a/src/main/java/forge/card/abilityfactory/ai/LifeGainAi.java b/src/main/java/forge/card/abilityfactory/ai/LifeGainAi.java index 0107eeeacf8..714e5676e48 100644 --- a/src/main/java/forge/card/abilityfactory/ai/LifeGainAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/LifeGainAi.java @@ -15,7 +15,7 @@ import forge.game.ai.ComputerUtil; import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; import forge.game.phase.PhaseType; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.util.MyRandom; /** @@ -29,7 +29,7 @@ public class LifeGainAi extends SpellAiLogic { * @see forge.card.abilityfactory.AbilityFactoryAlterLife.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Random r = MyRandom.getRandom(); final Cost abCost = sa.getPayCosts(); @@ -145,7 +145,7 @@ public class LifeGainAi extends SpellAiLogic { * @return a boolean. */ @Override - protected boolean doTriggerAINoCost(final Player ai, final SpellAbility sa, + protected boolean doTriggerAINoCost(final AIPlayer ai, final SpellAbility sa, final boolean mandatory) { // If the Target is gaining life, target self. diff --git a/src/main/java/forge/card/abilityfactory/ai/LifeLoseAi.java b/src/main/java/forge/card/abilityfactory/ai/LifeLoseAi.java index e2256667f4b..6e027e91ea4 100644 --- a/src/main/java/forge/card/abilityfactory/ai/LifeLoseAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/LifeLoseAi.java @@ -14,13 +14,14 @@ import forge.game.ai.ComputerUtil; import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.util.MyRandom; public class LifeLoseAi extends SpellAiLogic { @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { final Target tgt = sa.getTarget(); List tgtPlayers; @@ -52,7 +53,7 @@ public class LifeLoseAi extends SpellAiLogic { * @see forge.card.abilityfactory.AbilityFactoryAlterLife.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Random r = MyRandom.getRandom(); final Cost abCost = sa.getPayCosts(); @@ -139,7 +140,7 @@ public class LifeLoseAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(final Player ai, final SpellAbility sa, + protected boolean doTriggerAINoCost(final AIPlayer ai, final SpellAbility sa, final boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt != null) { diff --git a/src/main/java/forge/card/abilityfactory/ai/LifeSetAi.java b/src/main/java/forge/card/abilityfactory/ai/LifeSetAi.java index 2c9cf23032f..6ce56522fcf 100644 --- a/src/main/java/forge/card/abilityfactory/ai/LifeSetAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/LifeSetAi.java @@ -11,13 +11,14 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilMana; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.util.MyRandom; public class LifeSetAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Random r = MyRandom.getRandom(); // Ability_Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -102,7 +103,7 @@ public class LifeSetAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final int myLife = ai.getLife(); final Player opponent = ai.getOpponent(); final int hlife = opponent.getLife(); diff --git a/src/main/java/forge/card/abilityfactory/ai/MillAi.java b/src/main/java/forge/card/abilityfactory/ai/MillAi.java index 8aef32c9d66..cf131ee8981 100644 --- a/src/main/java/forge/card/abilityfactory/ai/MillAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/MillAi.java @@ -14,6 +14,7 @@ import forge.game.ai.ComputerUtil; import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -21,7 +22,7 @@ import forge.util.MyRandom; public class MillAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Card source = sa.getSourceCard(); final Cost abCost = sa.getPayCosts(); @@ -136,13 +137,13 @@ public class MillAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { return targetAI(aiPlayer, sa, true); } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { if (!targetAI(aiPlayer, sa, mandatory)) { return false; } diff --git a/src/main/java/forge/card/abilityfactory/ai/MustAttackAi.java b/src/main/java/forge/card/abilityfactory/ai/MustAttackAi.java index 1111221a179..2fb416c91f6 100644 --- a/src/main/java/forge/card/abilityfactory/ai/MustAttackAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/MustAttackAi.java @@ -3,18 +3,18 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class MustAttackAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { // disabled for the AI for now. Only for Gideon Jura at this time. return false; } @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { // AI should only activate this during Human's turn // TODO - implement AI return false; @@ -24,7 +24,7 @@ public class MustAttackAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { boolean chance; diff --git a/src/main/java/forge/card/abilityfactory/ai/MustBlockAi.java b/src/main/java/forge/card/abilityfactory/ai/MustBlockAi.java index a4fcb326f2c..2402f847466 100644 --- a/src/main/java/forge/card/abilityfactory/ai/MustBlockAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/MustBlockAi.java @@ -16,25 +16,25 @@ import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCombat; import forge.game.phase.CombatUtil; import forge.game.phase.PhaseType; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.game.zone.ZoneType; public class MustBlockAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { // disabled for the AI until he/she can make decisions about who to make // block return false; } @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { return false; } @Override - protected boolean doTriggerAINoCost(final Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(final AIPlayer ai, SpellAbility sa, boolean mandatory) { final Card source = sa.getSourceCard(); final Target abTgt = sa.getTarget(); diff --git a/src/main/java/forge/card/abilityfactory/ai/PeekAndRevealAi.java b/src/main/java/forge/card/abilityfactory/ai/PeekAndRevealAi.java index 8fb3b3d0f22..f2fde73badb 100644 --- a/src/main/java/forge/card/abilityfactory/ai/PeekAndRevealAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/PeekAndRevealAi.java @@ -2,7 +2,7 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; /** * TODO: Write javadoc for this type. @@ -14,7 +14,7 @@ public class PeekAndRevealAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { // So far this only appears on Triggers, but will expand // once things get converted from Dig + NoMove return false; diff --git a/src/main/java/forge/card/abilityfactory/ai/PermanentCreatureAi.java b/src/main/java/forge/card/abilityfactory/ai/PermanentCreatureAi.java index cd8704353be..2d71601f5b1 100644 --- a/src/main/java/forge/card/abilityfactory/ai/PermanentCreatureAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/PermanentCreatureAi.java @@ -13,7 +13,7 @@ import forge.card.spellability.SpellAbility; import forge.game.GameState; import forge.game.ai.ComputerUtil; import forge.game.phase.PhaseType; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.game.zone.ZoneType; /** @@ -26,7 +26,7 @@ public class PermanentCreatureAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { String logic = sa.getParam("AILogic"); GameState game = Singletons.getModel().getGame(); diff --git a/src/main/java/forge/card/abilityfactory/ai/PermanentNoncreatureAi.java b/src/main/java/forge/card/abilityfactory/ai/PermanentNoncreatureAi.java index 54391efcbb5..d0dd2f0e4b0 100644 --- a/src/main/java/forge/card/abilityfactory/ai/PermanentNoncreatureAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/PermanentNoncreatureAi.java @@ -6,7 +6,7 @@ import forge.card.spellability.SpellAbility; import forge.game.GameState; import forge.game.ai.ComputerUtil; import forge.game.phase.PhaseType; -import forge.game.player.Player; +import forge.game.player.AIPlayer; /** * AbilityFactory for Creature Spells. @@ -18,7 +18,7 @@ public class PermanentNoncreatureAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { String logic = sa.getParam("AILogic"); GameState game = Singletons.getModel().getGame(); diff --git a/src/main/java/forge/card/abilityfactory/ai/PhasesAi.java b/src/main/java/forge/card/abilityfactory/ai/PhasesAi.java index 0591ba559b7..0fe1577eab9 100644 --- a/src/main/java/forge/card/abilityfactory/ai/PhasesAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/PhasesAi.java @@ -10,7 +10,7 @@ import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -20,7 +20,7 @@ public class PhasesAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { // This still needs to be fleshed out final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); @@ -50,7 +50,7 @@ public class PhasesAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt == null) { @@ -68,7 +68,7 @@ public class PhasesAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { final Target tgt = sa.getTarget(); boolean randomReturn = true; diff --git a/src/main/java/forge/card/abilityfactory/ai/PlayAi.java b/src/main/java/forge/card/abilityfactory/ai/PlayAi.java index 710bd5feaae..634d181c7e5 100644 --- a/src/main/java/forge/card/abilityfactory/ai/PlayAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/PlayAi.java @@ -14,14 +14,14 @@ import forge.card.cost.Cost; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCost; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.game.zone.ZoneType; import forge.util.MyRandom; public class PlayAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); diff --git a/src/main/java/forge/card/abilityfactory/ai/PoisonAi.java b/src/main/java/forge/card/abilityfactory/ai/PoisonAi.java index 9c4a93471d5..196e7bdbeca 100644 --- a/src/main/java/forge/card/abilityfactory/ai/PoisonAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/PoisonAi.java @@ -12,6 +12,7 @@ import forge.card.spellability.Target; import forge.game.ai.ComputerUtil; import forge.game.ai.ComputerUtilCost; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; public class PoisonAi extends SpellAiLogic { @@ -25,7 +26,7 @@ public class PoisonAi extends SpellAiLogic { * forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); // int humanPoison = AllZone.getHumanPlayer().getPoisonCounters(); @@ -71,7 +72,7 @@ public class PoisonAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt != null) { diff --git a/src/main/java/forge/card/abilityfactory/ai/ProtectAi.java b/src/main/java/forge/card/abilityfactory/ai/ProtectAi.java index facfb5106c3..a808ddb47ff 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ProtectAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ProtectAi.java @@ -19,6 +19,7 @@ import forge.game.GameState; import forge.game.ai.ComputerUtilCombat; import forge.game.ai.ComputerUtilCost; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -110,7 +111,7 @@ public class ProtectAi extends SpellAiLogic { } // getProtectCreatures() @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Card hostCard = sa.getSourceCard(); // if there is no target and host card isn't in play, don't activate if ((sa.getTarget() == null) && !hostCard.isInPlay()) { @@ -342,7 +343,7 @@ public class ProtectAi extends SpellAiLogic { } // protectMandatoryTarget() @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { if (sa.getTarget() == null) { if (mandatory) { return true; @@ -355,7 +356,7 @@ public class ProtectAi extends SpellAiLogic { } // protectTriggerAI @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { final Card host = sa.getSourceCard(); if ((sa.getTarget() == null) || !sa.getTarget().doesTarget()) { if (host.isCreature()) { diff --git a/src/main/java/forge/card/abilityfactory/ai/ProtectAllAi.java b/src/main/java/forge/card/abilityfactory/ai/ProtectAllAi.java index e61c049ff90..ff6a033d262 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ProtectAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ProtectAllAi.java @@ -6,12 +6,12 @@ import forge.card.abilityfactory.SpellAiLogic; import forge.card.cost.Cost; import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtilCost; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class ProtectAllAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Card hostCard = sa.getSourceCard(); // if there is no target and host card isn't in play, don't activate if ((sa.getTarget() == null) && !hostCard.isInPlay()) { @@ -42,7 +42,7 @@ public class ProtectAllAi extends SpellAiLogic { @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return true; } } diff --git a/src/main/java/forge/card/abilityfactory/ai/PumpAi.java b/src/main/java/forge/card/abilityfactory/ai/PumpAi.java index ffbdc4b5fe5..a3cadf83e03 100644 --- a/src/main/java/forge/card/abilityfactory/ai/PumpAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/PumpAi.java @@ -21,6 +21,7 @@ import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -30,7 +31,7 @@ public class PumpAi extends PumpAiBase { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Cost cost = sa.getPayCosts(); final PhaseHandler ph = Singletons.getModel().getGame().getPhaseHandler(); final List keywords = sa.hasParam("KW") ? Arrays.asList(sa.getParam("KW").split(" & ")) : new ArrayList(); @@ -337,7 +338,7 @@ public class PumpAi extends PumpAiBase { } // pumpMandatoryTarget() @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Card source = sa.getSourceCard(); final String numDefense = sa.hasParam("NumDef") ? sa.getParam("NumDef") : ""; final String numAttack = sa.hasParam("NumAtt") ? sa.getParam("NumAtt") : ""; @@ -380,7 +381,7 @@ public class PumpAi extends PumpAiBase { } // pumpTriggerAI @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { final Card source = sa.getSourceCard(); diff --git a/src/main/java/forge/card/abilityfactory/ai/PumpAllAi.java b/src/main/java/forge/card/abilityfactory/ai/PumpAllAi.java index d6a73faeb1e..c83e8fd7e35 100644 --- a/src/main/java/forge/card/abilityfactory/ai/PumpAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/PumpAllAi.java @@ -17,6 +17,7 @@ import forge.game.ai.ComputerUtilCombat; import forge.game.ai.ComputerUtil; import forge.game.phase.CombatUtil; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -26,7 +27,7 @@ public class PumpAllAi extends PumpAiBase { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(final Player ai, final SpellAbility sa) { + protected boolean canPlayAI(final AIPlayer ai, final SpellAbility sa) { String valid = ""; final Card source = sa.getSourceCard(); @@ -141,7 +142,7 @@ public class PumpAllAi extends PumpAiBase { } // pumpAllCanPlayAI() @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { return true; } @@ -149,7 +150,7 @@ public class PumpAllAi extends PumpAiBase { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return true; } diff --git a/src/main/java/forge/card/abilityfactory/ai/RearrangeTopOfLibraryAi.java b/src/main/java/forge/card/abilityfactory/ai/RearrangeTopOfLibraryAi.java index b1b50877c23..50734f0751e 100644 --- a/src/main/java/forge/card/abilityfactory/ai/RearrangeTopOfLibraryAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/RearrangeTopOfLibraryAi.java @@ -4,6 +4,7 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; import forge.game.player.Player; public class RearrangeTopOfLibraryAi extends SpellAiLogic { @@ -11,7 +12,7 @@ public class RearrangeTopOfLibraryAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { return false; } @@ -19,7 +20,7 @@ public class RearrangeTopOfLibraryAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); diff --git a/src/main/java/forge/card/abilityfactory/ai/RegenerateAi.java b/src/main/java/forge/card/abilityfactory/ai/RegenerateAi.java index 139aafccb8f..36b72a55447 100644 --- a/src/main/java/forge/card/abilityfactory/ai/RegenerateAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/RegenerateAi.java @@ -34,6 +34,7 @@ import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCombat; import forge.game.ai.ComputerUtilCost; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -56,7 +57,7 @@ public class RegenerateAi extends SpellAiLogic { // ************************************************************** @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Card hostCard = sa.getSourceCard(); boolean chance = false; final Cost abCost = sa.getPayCosts(); @@ -153,7 +154,7 @@ public class RegenerateAi extends SpellAiLogic { } // regenerateCanPlayAI @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { boolean chance = false; final Target tgt = sa.getTarget(); diff --git a/src/main/java/forge/card/abilityfactory/ai/RegenerateAllAi.java b/src/main/java/forge/card/abilityfactory/ai/RegenerateAllAi.java index 45e7b04176c..01729c013f7 100644 --- a/src/main/java/forge/card/abilityfactory/ai/RegenerateAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/RegenerateAllAi.java @@ -14,13 +14,13 @@ import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtilCombat; import forge.game.ai.ComputerUtilCost; import forge.game.phase.PhaseType; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.game.zone.ZoneType; public class RegenerateAllAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Card hostCard = sa.getSourceCard(); boolean chance = false; final Cost abCost = sa.getPayCosts(); @@ -83,7 +83,7 @@ public class RegenerateAllAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { boolean chance = true; return chance; diff --git a/src/main/java/forge/card/abilityfactory/ai/RemoveFromCombatAi.java b/src/main/java/forge/card/abilityfactory/ai/RemoveFromCombatAi.java index a6d3ead30a9..92a1fced57a 100644 --- a/src/main/java/forge/card/abilityfactory/ai/RemoveFromCombatAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/RemoveFromCombatAi.java @@ -3,18 +3,18 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class RemoveFromCombatAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { // disabled for the AI for now. Only for Gideon Jura at this time. return false; } @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { // AI should only activate this during Human's turn // TODO - implement AI @@ -25,7 +25,7 @@ public class RemoveFromCombatAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { boolean chance; // TODO - implement AI diff --git a/src/main/java/forge/card/abilityfactory/ai/RepeatAi.java b/src/main/java/forge/card/abilityfactory/ai/RepeatAi.java index 92b606a9ebb..e28638745b4 100644 --- a/src/main/java/forge/card/abilityfactory/ai/RepeatAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/RepeatAi.java @@ -4,12 +4,13 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; import forge.game.player.Player; public class RepeatAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Player opp = ai.getOpponent(); if (tgt != null) { diff --git a/src/main/java/forge/card/abilityfactory/ai/RepeatEachAi.java b/src/main/java/forge/card/abilityfactory/ai/RepeatEachAi.java index af4de56121f..8288c595a0b 100644 --- a/src/main/java/forge/card/abilityfactory/ai/RepeatEachAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/RepeatEachAi.java @@ -12,6 +12,7 @@ import forge.CardPredicates.Presets; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -25,7 +26,7 @@ public class RepeatEachAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { String logic = sa.getParam("AILogic"); if ("CloneMyTokens".equals(logic)) { diff --git a/src/main/java/forge/card/abilityfactory/ai/RestartGameAi.java b/src/main/java/forge/card/abilityfactory/ai/RestartGameAi.java index 90ab61d1bef..f271ad50895 100644 --- a/src/main/java/forge/card/abilityfactory/ai/RestartGameAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/RestartGameAi.java @@ -2,7 +2,7 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class RestartGameAi extends SpellAiLogic { @@ -15,7 +15,7 @@ public class RestartGameAi extends SpellAiLogic { * forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { // The only card that uses this is Karn Liberated // TODO Add Logic, check if AI is losing game state, or life @@ -26,7 +26,7 @@ public class RestartGameAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { // This trigger AI is completely unused, but return true just in case return true; } diff --git a/src/main/java/forge/card/abilityfactory/ai/RevealAi.java b/src/main/java/forge/card/abilityfactory/ai/RevealAi.java index 02bce64da14..1d38d51e981 100644 --- a/src/main/java/forge/card/abilityfactory/ai/RevealAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/RevealAi.java @@ -7,12 +7,12 @@ import forge.card.abilityfactory.AbilityFactory; import forge.card.cost.Cost; import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtilCost; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.util.MyRandom; public class RevealAi extends RevealAiBase { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { // AI cannot use this properly until he can use SAs during Humans turn final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -54,7 +54,7 @@ public class RevealAi extends RevealAiBase { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { if (!revealHandTargetAI(ai, sa/*, false, mandatory*/)) { return false; diff --git a/src/main/java/forge/card/abilityfactory/ai/RevealAiBase.java b/src/main/java/forge/card/abilityfactory/ai/RevealAiBase.java index 31284f9bb51..e551b204177 100644 --- a/src/main/java/forge/card/abilityfactory/ai/RevealAiBase.java +++ b/src/main/java/forge/card/abilityfactory/ai/RevealAiBase.java @@ -4,6 +4,7 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -37,7 +38,7 @@ public abstract class RevealAiBase extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player) */ @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { revealHandTargetAI(ai, sa); return true; } diff --git a/src/main/java/forge/card/abilityfactory/ai/RevealHandAi.java b/src/main/java/forge/card/abilityfactory/ai/RevealHandAi.java index 07c47dad3d4..577bc7ef7ea 100644 --- a/src/main/java/forge/card/abilityfactory/ai/RevealHandAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/RevealHandAi.java @@ -7,7 +7,7 @@ import forge.card.abilityfactory.AbilityFactory; import forge.card.cost.Cost; import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtilCost; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.util.MyRandom; public class RevealHandAi extends RevealAiBase { @@ -16,7 +16,7 @@ public class RevealHandAi extends RevealAiBase { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { // AI cannot use this properly until he can use SAs during Humans turn final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -58,7 +58,7 @@ public class RevealHandAi extends RevealAiBase { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { if (!revealHandTargetAI(ai, sa/*, false, mandatory*/)) { return false; diff --git a/src/main/java/forge/card/abilityfactory/ai/SacrificeAi.java b/src/main/java/forge/card/abilityfactory/ai/SacrificeAi.java index 391ba5733e2..a02aa0250ca 100644 --- a/src/main/java/forge/card/abilityfactory/ai/SacrificeAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/SacrificeAi.java @@ -9,6 +9,7 @@ import forge.card.cardfactory.CardFactoryUtil; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilMana; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -18,7 +19,7 @@ public class SacrificeAi extends SpellAiLogic { // ************************************************************** @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { boolean chance = sacrificeTgtAI(ai, sa); // Some additional checks based on what is being sacrificed, and who is @@ -58,14 +59,14 @@ public class SacrificeAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { // AI should only activate this during Human's turn return sacrificeTgtAI(ai, sa); } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { // AI should only activate this during Human's turn boolean chance = sacrificeTgtAI(ai, sa); diff --git a/src/main/java/forge/card/abilityfactory/ai/SacrificeAllAi.java b/src/main/java/forge/card/abilityfactory/ai/SacrificeAllAi.java index 2b57e0f3fc9..fd066515165 100644 --- a/src/main/java/forge/card/abilityfactory/ai/SacrificeAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/SacrificeAllAi.java @@ -11,14 +11,14 @@ import forge.card.cost.Cost; import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.game.zone.ZoneType; import forge.util.MyRandom; public class SacrificeAllAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { // AI needs to be expanded, since this function can be pretty complex // based on what the expected targets could be final Random r = MyRandom.getRandom(); @@ -76,7 +76,7 @@ public class SacrificeAllAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { //TODO: Add checks for bad outcome return true; } diff --git a/src/main/java/forge/card/abilityfactory/ai/ScryAi.java b/src/main/java/forge/card/abilityfactory/ai/ScryAi.java index 3b0050b13f4..eca69966b98 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ScryAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ScryAi.java @@ -6,7 +6,7 @@ import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.util.MyRandom; public class ScryAi extends SpellAiLogic { @@ -15,7 +15,7 @@ public class ScryAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt != null) { // It doesn't appear that Scry ever targets @@ -29,13 +29,13 @@ public class ScryAi extends SpellAiLogic { } // scryTargetAI() @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { return doTriggerAINoCost(ai, sa, false); } @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { // Card source = sa.getSourceCard(); double chance = .4; // 40 percent chance of milling with instant speed diff --git a/src/main/java/forge/card/abilityfactory/ai/SetStateAi.java b/src/main/java/forge/card/abilityfactory/ai/SetStateAi.java index 2742c2f39e7..8b74a853a3b 100644 --- a/src/main/java/forge/card/abilityfactory/ai/SetStateAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/SetStateAi.java @@ -3,16 +3,16 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class SetStateAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { return false; } @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { // Gross generalization, but this always considers alternate // states more powerful return !sa.getSourceCard().isInAlternateState(); @@ -23,7 +23,7 @@ public class SetStateAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return true; } } diff --git a/src/main/java/forge/card/abilityfactory/ai/SetStateAllAi.java b/src/main/java/forge/card/abilityfactory/ai/SetStateAllAi.java index 7235c1931ec..c7ece411610 100644 --- a/src/main/java/forge/card/abilityfactory/ai/SetStateAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/SetStateAllAi.java @@ -3,14 +3,14 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class SetStateAllAi extends SpellAiLogic { /* (non-Javadoc) * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { return true; } @@ -18,7 +18,7 @@ public class SetStateAllAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player) */ @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { // Gross generalization, but this always considers alternate // states more powerful if (sa.getSourceCard().isInAlternateState()) { @@ -32,7 +32,7 @@ public class SetStateAllAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return true; } diff --git a/src/main/java/forge/card/abilityfactory/ai/ShuffleAi.java b/src/main/java/forge/card/abilityfactory/ai/ShuffleAi.java index c50c1c23dc9..45686c33d7c 100644 --- a/src/main/java/forge/card/abilityfactory/ai/ShuffleAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/ShuffleAi.java @@ -2,11 +2,11 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class ShuffleAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { // not really sure when the compy would use this; maybe only after a // human // deliberately put a card on top of their library @@ -27,7 +27,7 @@ public class ShuffleAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { return shuffleTargetAI(/*sa, false, false*/); } @@ -40,7 +40,7 @@ public class ShuffleAi extends SpellAiLogic { } // shuffleTargetAI() @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { if (!shuffleTargetAI(/*sa, false, mandatory*/)) { return false; } diff --git a/src/main/java/forge/card/abilityfactory/ai/StoreSVarAi.java b/src/main/java/forge/card/abilityfactory/ai/StoreSVarAi.java index 2f435263d8c..45889f145f8 100644 --- a/src/main/java/forge/card/abilityfactory/ai/StoreSVarAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/StoreSVarAi.java @@ -6,12 +6,12 @@ import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtilCombat; import forge.game.ai.ComputerUtil; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class StoreSVarAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { //Tree of Redemption final Card source = sa.getSourceCard(); @@ -24,7 +24,7 @@ public class StoreSVarAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return true; } diff --git a/src/main/java/forge/card/abilityfactory/ai/TapAi.java b/src/main/java/forge/card/abilityfactory/ai/TapAi.java index 07e6b725ff4..12538762e50 100644 --- a/src/main/java/forge/card/abilityfactory/ai/TapAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/TapAi.java @@ -10,12 +10,13 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.util.MyRandom; public class TapAi extends TapAiBase { @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); @@ -58,7 +59,7 @@ public class TapAi extends TapAiBase { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); @@ -84,7 +85,7 @@ public class TapAi extends TapAiBase { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); diff --git a/src/main/java/forge/card/abilityfactory/ai/TapAllAi.java b/src/main/java/forge/card/abilityfactory/ai/TapAllAi.java index 16879559631..50c1d0229c1 100644 --- a/src/main/java/forge/card/abilityfactory/ai/TapAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/TapAllAi.java @@ -13,6 +13,7 @@ import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -23,7 +24,7 @@ public class TapAllAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(final Player ai, SpellAbility sa) { + protected boolean canPlayAI(final AIPlayer ai, SpellAbility sa) { // If tapping all creatures do it either during declare attackers of AIs // turn // or during upkeep/begin combat? @@ -98,7 +99,7 @@ public class TapAllAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Card source = sa.getSourceCard(); String valid = ""; diff --git a/src/main/java/forge/card/abilityfactory/ai/TapOrUntapAi.java b/src/main/java/forge/card/abilityfactory/ai/TapOrUntapAi.java index d2ef8be5ff6..8c7154358a7 100644 --- a/src/main/java/forge/card/abilityfactory/ai/TapOrUntapAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/TapOrUntapAi.java @@ -7,7 +7,7 @@ import forge.Card; import forge.card.abilityfactory.AbilityFactory; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.Player; +import forge.game.player.AIPlayer; import forge.util.MyRandom; public class TapOrUntapAi extends TapAiBase { @@ -16,7 +16,7 @@ public class TapOrUntapAi extends TapAiBase { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); @@ -48,7 +48,7 @@ public class TapOrUntapAi extends TapAiBase { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); @@ -73,7 +73,7 @@ public class TapOrUntapAi extends TapAiBase { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); diff --git a/src/main/java/forge/card/abilityfactory/ai/TapOrUntapAllAi.java b/src/main/java/forge/card/abilityfactory/ai/TapOrUntapAllAi.java index eb3d36637f4..11483194d24 100644 --- a/src/main/java/forge/card/abilityfactory/ai/TapOrUntapAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/TapOrUntapAllAi.java @@ -2,7 +2,7 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; /** * TODO: Write javadoc for this type. @@ -14,7 +14,7 @@ public class TapOrUntapAllAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { // Only Turnabout currently uses this, it's hardcoded to always return false // Looks like Faces of the Past could also use this return false; diff --git a/src/main/java/forge/card/abilityfactory/ai/TokenAi.java b/src/main/java/forge/card/abilityfactory/ai/TokenAi.java index 18d86d633b4..71084b1b5ad 100644 --- a/src/main/java/forge/card/abilityfactory/ai/TokenAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/TokenAi.java @@ -14,6 +14,7 @@ import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -64,7 +65,7 @@ public class TokenAi extends SpellAiLogic { } @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Cost cost = sa.getPayCosts(); readParameters(sa); @@ -173,7 +174,7 @@ public class TokenAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { readParameters(sa); final Card source = sa.getSourceCard(); final Target tgt = sa.getTarget(); diff --git a/src/main/java/forge/card/abilityfactory/ai/TwoPilesAi.java b/src/main/java/forge/card/abilityfactory/ai/TwoPilesAi.java index c119b646179..30dece90d37 100644 --- a/src/main/java/forge/card/abilityfactory/ai/TwoPilesAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/TwoPilesAi.java @@ -9,6 +9,7 @@ import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -18,7 +19,7 @@ public class TwoPilesAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Card card = sa.getSourceCard(); ZoneType zone = null; @@ -61,7 +62,7 @@ public class TwoPilesAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return false; } } diff --git a/src/main/java/forge/card/abilityfactory/ai/UnattachAllAi.java b/src/main/java/forge/card/abilityfactory/ai/UnattachAllAi.java index 55dca230fcc..8db05e38251 100644 --- a/src/main/java/forge/card/abilityfactory/ai/UnattachAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/UnattachAllAi.java @@ -13,6 +13,7 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilMana; import forge.game.phase.PhaseType; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.util.MyRandom; @@ -22,7 +23,7 @@ public class UnattachAllAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Random r = MyRandom.getRandom(); final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -63,7 +64,7 @@ public class UnattachAllAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Card card = sa.getSourceCard(); final Player opp = ai.getOpponent(); // Check if there are any valid targets @@ -93,7 +94,7 @@ public class UnattachAllAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { // AI should only activate this during Human's turn return canPlayAI(ai, sa); } diff --git a/src/main/java/forge/card/abilityfactory/ai/UntapAi.java b/src/main/java/forge/card/abilityfactory/ai/UntapAi.java index 620e040afe0..cd50b7aa815 100644 --- a/src/main/java/forge/card/abilityfactory/ai/UntapAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/UntapAi.java @@ -14,6 +14,7 @@ import forge.card.cost.Cost; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCost; +import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -24,7 +25,7 @@ public class UntapAi extends SpellAiLogic { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player ai, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); final Cost cost = sa.getPayCosts(); @@ -51,7 +52,7 @@ public class UntapAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt == null) { @@ -79,7 +80,7 @@ public class UntapAi extends SpellAiLogic { } @Override - public boolean chkAIDrawback(SpellAbility sa, Player ai) { + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { final Target tgt = sa.getTarget(); boolean randomReturn = true; diff --git a/src/main/java/forge/card/abilityfactory/ai/UntapAllAi.java b/src/main/java/forge/card/abilityfactory/ai/UntapAllAi.java index 3f2c07204eb..8620f46d006 100644 --- a/src/main/java/forge/card/abilityfactory/ai/UntapAllAi.java +++ b/src/main/java/forge/card/abilityfactory/ai/UntapAllAi.java @@ -3,12 +3,12 @@ package forge.card.abilityfactory.ai; import forge.card.abilityfactory.SpellAiLogic; import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; -import forge.game.player.Player; +import forge.game.player.AIPlayer; public class UntapAllAi extends SpellAiLogic { @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { // check SubAbilities DoTrigger? final AbilitySub abSub = sa.getSubAbility(); if (abSub != null) { @@ -18,7 +18,7 @@ public class UntapAllAi extends SpellAiLogic { } @Override - protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { return mandatory; }