From f3dd9404bfb930da481d808cf1ed1dc71db902ce Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Sun, 12 May 2013 18:45:39 +0000 Subject: [PATCH] AIPlayer.java removed --- .gitattributes | 1 - .../forge/card/ability/AbilityApiBased.java | 6 +-- .../java/forge/card/ability/AbilityUtils.java | 3 +- .../forge/card/ability/SpellAbilityAi.java | 15 +++---- .../forge/card/ability/SpellApiBased.java | 7 ++- .../forge/card/ability/ai/AddPhaseAi.java | 4 +- .../java/forge/card/ability/ai/AddTurnAi.java | 5 +-- .../forge/card/ability/ai/AlwaysPlayAi.java | 4 +- .../java/forge/card/ability/ai/AnimateAi.java | 7 ++- .../forge/card/ability/ai/AnimateAllAi.java | 6 +-- .../java/forge/card/ability/ai/AttachAi.java | 5 +-- .../card/ability/ai/BecomesBlockedAi.java | 8 ++-- .../java/forge/card/ability/ai/BondAi.java | 4 +- .../card/ability/ai/CanPlayAsDrawbackAi.java | 6 +-- .../forge/card/ability/ai/CannotPlayAi.java | 6 +-- .../forge/card/ability/ai/ChangeZoneAi.java | 17 ++++--- .../card/ability/ai/ChangeZoneAllAi.java | 7 ++- .../java/forge/card/ability/ai/CharmAi.java | 7 ++- .../forge/card/ability/ai/ChooseCardAi.java | 6 +-- .../card/ability/ai/ChooseCardNameAi.java | 6 +-- .../forge/card/ability/ai/ChooseColorAi.java | 6 +-- .../forge/card/ability/ai/ChoosePlayerAi.java | 8 ++-- .../forge/card/ability/ai/ChooseSourceAi.java | 4 +- .../forge/card/ability/ai/ChooseTypeAi.java | 5 +-- .../java/forge/card/ability/ai/ClashAi.java | 5 +-- .../java/forge/card/ability/ai/CloneAi.java | 8 ++-- .../card/ability/ai/ControlExchangeAi.java | 6 +-- .../forge/card/ability/ai/ControlGainAi.java | 7 ++- .../card/ability/ai/CopyPermanentAi.java | 6 +-- .../java/forge/card/ability/ai/CounterAi.java | 8 ++-- .../forge/card/ability/ai/CountersMoveAi.java | 5 +-- .../ability/ai/CountersProliferateAi.java | 8 ++-- .../forge/card/ability/ai/CountersPutAi.java | 7 ++- .../card/ability/ai/CountersPutAllAi.java | 5 +-- .../card/ability/ai/CountersRemoveAi.java | 6 +-- .../forge/card/ability/ai/DamageAllAi.java | 7 ++- .../forge/card/ability/ai/DamageDealAi.java | 11 +++-- .../forge/card/ability/ai/DamageEachAi.java | 8 ++-- .../card/ability/ai/DamagePreventAi.java | 5 +-- .../card/ability/ai/DamagePreventAllAi.java | 6 +-- .../java/forge/card/ability/ai/DebuffAi.java | 7 ++- .../forge/card/ability/ai/DebuffAllAi.java | 5 +-- .../card/ability/ai/DelayedTriggerAi.java | 8 ++-- .../java/forge/card/ability/ai/DestroyAi.java | 7 ++- .../forge/card/ability/ai/DestroyAllAi.java | 8 ++-- .../java/forge/card/ability/ai/DigAi.java | 5 +-- .../forge/card/ability/ai/DigUntilAi.java | 5 +-- .../java/forge/card/ability/ai/DiscardAi.java | 7 ++- .../forge/card/ability/ai/DrainManaAi.java | 7 ++- .../java/forge/card/ability/ai/DrawAi.java | 9 ++-- .../java/forge/card/ability/ai/EffectAi.java | 5 +-- .../java/forge/card/ability/ai/EncodeAi.java | 6 +-- .../java/forge/card/ability/ai/EndTurnAi.java | 8 ++-- .../java/forge/card/ability/ai/FightAi.java | 6 +-- .../forge/card/ability/ai/FlipACoinAi.java | 6 +-- .../java/forge/card/ability/ai/FogAi.java | 8 ++-- .../forge/card/ability/ai/GameLossAi.java | 5 +-- .../java/forge/card/ability/ai/GameWinAi.java | 6 +-- .../forge/card/ability/ai/LifeExchangeAi.java | 3 +- .../forge/card/ability/ai/LifeGainAi.java | 6 +-- .../forge/card/ability/ai/LifeLoseAi.java | 7 ++- .../java/forge/card/ability/ai/LifeSetAi.java | 5 +-- .../forge/card/ability/ai/ManaEffectAi.java | 6 +-- .../java/forge/card/ability/ai/MillAi.java | 7 ++- .../forge/card/ability/ai/MustAttackAi.java | 8 ++-- .../forge/card/ability/ai/MustBlockAi.java | 8 ++-- .../card/ability/ai/PeekAndRevealAi.java | 4 +- .../card/ability/ai/PermanentCreatureAi.java | 4 +- .../ability/ai/PermanentNoncreatureAi.java | 4 +- .../java/forge/card/ability/ai/PhasesAi.java | 8 ++-- .../java/forge/card/ability/ai/PlayAi.java | 6 +-- .../java/forge/card/ability/ai/PoisonAi.java | 5 +-- .../java/forge/card/ability/ai/ProtectAi.java | 7 ++- .../forge/card/ability/ai/ProtectAllAi.java | 6 +-- .../java/forge/card/ability/ai/PumpAi.java | 7 ++- .../java/forge/card/ability/ai/PumpAllAi.java | 7 ++- .../ability/ai/RearrangeTopOfLibraryAi.java | 5 +-- .../forge/card/ability/ai/RegenerateAi.java | 5 +-- .../card/ability/ai/RegenerateAllAi.java | 6 +-- .../card/ability/ai/RemoveFromCombatAi.java | 8 ++-- .../java/forge/card/ability/ai/RepeatAi.java | 3 +- .../forge/card/ability/ai/RepeatEachAi.java | 3 +- .../forge/card/ability/ai/RestartGameAi.java | 6 +-- .../java/forge/card/ability/ai/RevealAi.java | 6 +-- .../forge/card/ability/ai/RevealAiBase.java | 3 +- .../forge/card/ability/ai/RevealHandAi.java | 6 +-- .../forge/card/ability/ai/SacrificeAi.java | 7 ++- .../forge/card/ability/ai/SacrificeAllAi.java | 6 +-- .../java/forge/card/ability/ai/ScryAi.java | 8 ++-- .../forge/card/ability/ai/SetStateAi.java | 8 ++-- .../java/forge/card/ability/ai/ShuffleAi.java | 8 ++-- .../forge/card/ability/ai/StoreSVarAi.java | 6 +-- .../java/forge/card/ability/ai/TapAi.java | 3 +- .../java/forge/card/ability/ai/TapAiBase.java | 5 +-- .../java/forge/card/ability/ai/TapAllAi.java | 5 +-- .../forge/card/ability/ai/TapOrUntapAi.java | 4 +- .../card/ability/ai/TapOrUntapAllAi.java | 4 +- .../java/forge/card/ability/ai/TokenAi.java | 5 +-- .../forge/card/ability/ai/TwoPilesAi.java | 5 +-- .../forge/card/ability/ai/UnattachAllAi.java | 7 ++- .../java/forge/card/ability/ai/UntapAi.java | 7 ++- .../forge/card/ability/ai/UntapAllAi.java | 6 +-- .../ability/effects/ChangeZoneEffect.java | 3 +- .../card/ability/effects/CharmEffect.java | 5 +-- .../card/ability/effects/CounterEffect.java | 3 +- .../ability/effects/PeekAndRevealEffect.java | 3 +- .../card/ability/effects/PlayEffect.java | 5 +-- .../cardfactory/CardFactorySorceries.java | 1 - .../card/cardfactory/CardFactoryUtil.java | 3 +- src/main/java/forge/card/cost/CostDamage.java | 5 +-- .../java/forge/card/cost/CostDiscard.java | 5 +-- src/main/java/forge/card/cost/CostExile.java | 5 +-- .../java/forge/card/cost/CostExileAndPay.java | 6 +-- .../java/forge/card/cost/CostGainLife.java | 5 +-- src/main/java/forge/card/cost/CostMill.java | 3 +- src/main/java/forge/card/cost/CostPart.java | 6 +-- .../java/forge/card/cost/CostPartMana.java | 6 +-- .../forge/card/cost/CostPartWithList.java | 4 +- .../java/forge/card/cost/CostPayLife.java | 5 +-- .../java/forge/card/cost/CostPayment.java | 3 +- .../java/forge/card/cost/CostPutCounter.java | 5 +-- .../forge/card/cost/CostRemoveCounter.java | 5 +-- src/main/java/forge/card/cost/CostReturn.java | 5 +-- src/main/java/forge/card/cost/CostReveal.java | 3 +- .../java/forge/card/cost/CostSacrifice.java | 3 +- src/main/java/forge/card/cost/CostTap.java | 6 +-- .../java/forge/card/cost/CostTapType.java | 3 +- .../java/forge/card/cost/CostUnattach.java | 3 +- src/main/java/forge/card/cost/CostUntap.java | 6 +-- .../java/forge/card/cost/CostUntapType.java | 3 +- .../card/replacement/ReplacementEffect.java | 4 +- .../card/replacement/ReplacementHandler.java | 5 +-- .../forge/card/spellability/AbilitySub.java | 6 +-- .../forge/card/spellability/SpellAbility.java | 3 +- .../card/spellability/SpellPermanent.java | 7 ++- .../forge/card/trigger/TriggerHandler.java | 5 +-- .../forge/card/trigger/WrappedAbility.java | 7 ++- .../forge/control/input/InputMulligan.java | 8 ++-- .../input/InputPartialParisMulligan.java | 20 ++++----- src/main/java/forge/game/GameAction.java | 7 ++- src/main/java/forge/game/GameActionUtil.java | 1 - src/main/java/forge/game/GameNew.java | 6 +-- src/main/java/forge/game/ai/AiController.java | 7 ++- src/main/java/forge/game/ai/ComputerUtil.java | 23 +++++----- .../java/forge/game/ai/ComputerUtilMana.java | 9 ++-- .../java/forge/game/phase/CombatUtil.java | 3 +- src/main/java/forge/game/phase/PhaseUtil.java | 3 +- src/main/java/forge/game/phase/Upkeep.java | 11 +++-- src/main/java/forge/game/player/AIPlayer.java | 45 ------------------- .../java/forge/game/player/LobbyPlayerAi.java | 3 +- .../forge/game/player/PlayerControllerAi.java | 4 +- src/main/java/forge/game/zone/MagicStack.java | 9 ++-- 152 files changed, 406 insertions(+), 540 deletions(-) delete mode 100644 src/main/java/forge/game/player/AIPlayer.java diff --git a/.gitattributes b/.gitattributes index f38b503299a..c47b5c2e10a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -14239,7 +14239,6 @@ src/main/java/forge/game/phase/PhaseUtil.java svneol=native#text/plain src/main/java/forge/game/phase/Untap.java -text src/main/java/forge/game/phase/Upkeep.java svneol=native#text/plain src/main/java/forge/game/phase/package-info.java svneol=native#text/plain -src/main/java/forge/game/player/AIPlayer.java svneol=native#text/plain src/main/java/forge/game/player/GameLossReason.java -text src/main/java/forge/game/player/HumanPlay.java -text src/main/java/forge/game/player/LobbyPlayer.java -text diff --git a/src/main/java/forge/card/ability/AbilityApiBased.java b/src/main/java/forge/card/ability/AbilityApiBased.java index 6c616e3bf7b..fa397f0f02a 100644 --- a/src/main/java/forge/card/ability/AbilityApiBased.java +++ b/src/main/java/forge/card/ability/AbilityApiBased.java @@ -12,7 +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; +import forge.game.player.Player; public class AbilityApiBased extends AbilityActivated { private final SpellAbilityEffect effect; @@ -64,11 +64,11 @@ public class AbilityApiBased extends AbilityActivated { @Override public boolean canPlayAI() { - return ai.canPlayAIWithSubs((AIPlayer)getActivatingPlayer(), this); + return ai.canPlayAIWithSubs(getActivatingPlayer(), this); } @Override - public boolean doTrigger(final boolean mandatory, AIPlayer aiPlayer) { + public boolean doTrigger(final boolean mandatory, Player aiPlayer) { return ai.doTriggerAI(aiPlayer, this, mandatory); } } diff --git a/src/main/java/forge/card/ability/AbilityUtils.java b/src/main/java/forge/card/ability/AbilityUtils.java index e8c73f818d5..fc1d471af28 100644 --- a/src/main/java/forge/card/ability/AbilityUtils.java +++ b/src/main/java/forge/card/ability/AbilityUtils.java @@ -25,7 +25,6 @@ import forge.game.GameActionUtil; import forge.game.GameState; 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.Expressions; @@ -1109,7 +1108,7 @@ public class AbilityUtils { ability.setActivatingPlayer(payer); if (payer.isComputer()) { if (ComputerUtilCost.willPayUnlessCost(sa, payer, ability, paid, payers)) { - ComputerUtil.playNoStack((AIPlayer) payer, ability, game); // Unless cost was payed - no resolve + ComputerUtil.playNoStack(payer, ability, game); // Unless cost was payed - no resolve paid = true; } } else { diff --git a/src/main/java/forge/card/ability/SpellAbilityAi.java b/src/main/java/forge/card/ability/SpellAbilityAi.java index 1fa8ac29227..8262b3673a2 100644 --- a/src/main/java/forge/card/ability/SpellAbilityAi.java +++ b/src/main/java/forge/card/ability/SpellAbilityAi.java @@ -6,12 +6,11 @@ import forge.card.spellability.SpellAbility; 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; public abstract class SpellAbilityAi { - public final boolean canPlayAIWithSubs(final AIPlayer aiPlayer, final SpellAbility sa) { + public final boolean canPlayAIWithSubs(final Player aiPlayer, final SpellAbility sa) { if (!canPlayAI(aiPlayer, sa)) { return false; } @@ -19,9 +18,9 @@ public abstract class SpellAbilityAi { return subAb == null || chkDrawbackWithSubs(aiPlayer, subAb); } - protected abstract boolean canPlayAI(final AIPlayer aiPlayer, final SpellAbility sa); + protected abstract boolean canPlayAI(final Player aiPlayer, final SpellAbility sa); - public final boolean doTriggerAI(final AIPlayer aiPlayer, final SpellAbility sa, final boolean mandatory) { + public final boolean doTriggerAI(final Player aiPlayer, final SpellAbility sa, final boolean mandatory) { if (!ComputerUtilCost.canPayCost(sa, aiPlayer) && !mandatory) { return false; } @@ -29,7 +28,7 @@ public abstract class SpellAbilityAi { return doTriggerNoCostWithSubs(aiPlayer, sa, mandatory); } - public final boolean doTriggerNoCostWithSubs(final AIPlayer aiPlayer, final SpellAbility sa, final boolean mandatory) + public final boolean doTriggerNoCostWithSubs(final Player aiPlayer, final SpellAbility sa, final boolean mandatory) { if (!doTriggerAINoCost(aiPlayer, sa, mandatory)) { return false; @@ -38,11 +37,11 @@ public abstract class SpellAbilityAi { return subAb == null || chkDrawbackWithSubs(aiPlayer, subAb) || mandatory; } - protected boolean doTriggerAINoCost(final AIPlayer aiPlayer, final SpellAbility sa, final boolean mandatory) { + protected boolean doTriggerAINoCost(final Player aiPlayer, final SpellAbility sa, final boolean mandatory) { return canPlayAI(aiPlayer, sa) || mandatory; } - public boolean chkAIDrawback(final SpellAbility sa, final AIPlayer aiPlayer) { + public boolean chkAIDrawback(final SpellAbility sa, final Player aiPlayer) { return true; } @@ -100,7 +99,7 @@ public abstract class SpellAbilityAi { * @param subAb * @return */ - public boolean chkDrawbackWithSubs(AIPlayer aiPlayer, AbilitySub ab) { + public boolean chkDrawbackWithSubs(Player aiPlayer, AbilitySub ab) { final AbilitySub subAb = ab.getSubAbility(); return ab.getAi().chkAIDrawback(ab, aiPlayer) && (subAb == null || chkDrawbackWithSubs(aiPlayer, subAb)); } diff --git a/src/main/java/forge/card/ability/SpellApiBased.java b/src/main/java/forge/card/ability/SpellApiBased.java index dd121609c0d..af5950a3853 100644 --- a/src/main/java/forge/card/ability/SpellApiBased.java +++ b/src/main/java/forge/card/ability/SpellApiBased.java @@ -11,7 +11,6 @@ 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 SpellApiBased extends Spell { private static final long serialVersionUID = -6741797239508483250L; @@ -47,7 +46,7 @@ public class SpellApiBased extends Spell { @Override public boolean canPlayAI() { - return ai.canPlayAIWithSubs((AIPlayer) getActivatingPlayer(), this) && super.canPlayAI(); + return ai.canPlayAIWithSubs(getActivatingPlayer(), this) && super.canPlayAI(); } @Override @@ -59,9 +58,9 @@ public class SpellApiBased extends Spell { public boolean canPlayFromEffectAI(final boolean mandatory, final boolean withOutManaCost) { boolean chance = false; if (withOutManaCost) { - chance = ai.doTriggerNoCostWithSubs((AIPlayer)this.getActivatingPlayer(), this, mandatory); + chance = ai.doTriggerNoCostWithSubs(this.getActivatingPlayer(), this, mandatory); } - chance = ai.doTriggerAI((AIPlayer)this.getActivatingPlayer(), this, mandatory); + chance = ai.doTriggerAI(this.getActivatingPlayer(), this, mandatory); return chance && super.canPlayAI(); } } diff --git a/src/main/java/forge/card/ability/ai/AddPhaseAi.java b/src/main/java/forge/card/ability/ai/AddPhaseAi.java index 3cc37353024..df2a965ac1e 100644 --- a/src/main/java/forge/card/ability/ai/AddPhaseAi.java +++ b/src/main/java/forge/card/ability/ai/AddPhaseAi.java @@ -2,7 +2,7 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; /** * TODO: Write javadoc for this type. @@ -11,7 +11,7 @@ import forge.game.player.AIPlayer; public class AddPhaseAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { return false; } diff --git a/src/main/java/forge/card/ability/ai/AddTurnAi.java b/src/main/java/forge/card/ability/ai/AddTurnAi.java index bfe7af83a88..16a29491621 100644 --- a/src/main/java/forge/card/ability/ai/AddTurnAi.java +++ b/src/main/java/forge/card/ability/ai/AddTurnAi.java @@ -23,7 +23,6 @@ import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.AIPlayer; import forge.game.player.Player; /** @@ -38,7 +37,7 @@ public class AddTurnAi extends SpellAbilityAi { @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Player opp = ai.getWeakestOpponent(); final Target tgt = sa.getTarget(); @@ -76,7 +75,7 @@ public class AddTurnAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { return doTriggerAINoCost(aiPlayer, sa, false); } diff --git a/src/main/java/forge/card/ability/ai/AlwaysPlayAi.java b/src/main/java/forge/card/ability/ai/AlwaysPlayAi.java index 1ce65b8c6c8..0c089523a53 100644 --- a/src/main/java/forge/card/ability/ai/AlwaysPlayAi.java +++ b/src/main/java/forge/card/ability/ai/AlwaysPlayAi.java @@ -3,14 +3,14 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class AlwaysPlayAi extends SpellAbilityAi { /* (non-Javadoc) * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { return true; } } diff --git a/src/main/java/forge/card/ability/ai/AnimateAi.java b/src/main/java/forge/card/ability/ai/AnimateAi.java index 3a57174ef24..cda187acf77 100644 --- a/src/main/java/forge/card/ability/ai/AnimateAi.java +++ b/src/main/java/forge/card/ability/ai/AnimateAi.java @@ -12,7 +12,6 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.GameState; import forge.game.phase.PhaseType; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -31,7 +30,7 @@ public class AnimateAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); final GameState game = aiPlayer.getGame(); @@ -125,7 +124,7 @@ public class AnimateAi extends SpellAbilityAi { // end animateCanPlayAI() @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { if (sa.getTarget() != null) { sa.getTarget().resetTargets(); if (!animateTgtAI(sa)) { @@ -150,7 +149,7 @@ public class AnimateAi extends SpellAbilityAi { * @return a boolean. */ @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { if (sa.getTarget() != null && !animateTgtAI(sa) && !mandatory) { return false; diff --git a/src/main/java/forge/card/ability/ai/AnimateAllAi.java b/src/main/java/forge/card/ability/ai/AnimateAllAi.java index 7fc1e798b1c..eeea1e332d0 100644 --- a/src/main/java/forge/card/ability/ai/AnimateAllAi.java +++ b/src/main/java/forge/card/ability/ai/AnimateAllAi.java @@ -2,17 +2,17 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class AnimateAllAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { return false; } // end animateAllCanPlayAI() @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return false; } diff --git a/src/main/java/forge/card/ability/ai/AttachAi.java b/src/main/java/forge/card/ability/ai/AttachAi.java index e8aa5b4714e..6b87b26a79e 100644 --- a/src/main/java/forge/card/ability/ai/AttachAi.java +++ b/src/main/java/forge/card/ability/ai/AttachAi.java @@ -28,7 +28,6 @@ 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; @@ -39,7 +38,7 @@ public class AttachAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Random r = MyRandom.getRandom(); final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -607,7 +606,7 @@ public class AttachAi extends SpellAbilityAi { * @return true, if successful */ @Override - protected boolean doTriggerAINoCost(final AIPlayer ai, final SpellAbility sa, final boolean mandatory) { + protected boolean doTriggerAINoCost(final Player 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/ability/ai/BecomesBlockedAi.java b/src/main/java/forge/card/ability/ai/BecomesBlockedAi.java index 8dbe8b6dfd8..5b483dea14f 100644 --- a/src/main/java/forge/card/ability/ai/BecomesBlockedAi.java +++ b/src/main/java/forge/card/ability/ai/BecomesBlockedAi.java @@ -11,13 +11,13 @@ import forge.card.spellability.Target; import forge.game.GameState; import forge.game.ai.ComputerUtilCard; import forge.game.phase.PhaseType; -import forge.game.player.AIPlayer; +import forge.game.player.Player; import forge.game.zone.ZoneType; public class BecomesBlockedAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { final Card source = sa.getSourceCard(); final Target tgt = sa.getTarget(); final GameState game = aiPlayer.getGame(); @@ -52,7 +52,7 @@ public class BecomesBlockedAi extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { // TODO - implement AI return false; @@ -62,7 +62,7 @@ public class BecomesBlockedAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { boolean chance; // TODO - implement AI diff --git a/src/main/java/forge/card/ability/ai/BondAi.java b/src/main/java/forge/card/ability/ai/BondAi.java index 5522307a289..ba79d9b2a23 100644 --- a/src/main/java/forge/card/ability/ai/BondAi.java +++ b/src/main/java/forge/card/ability/ai/BondAi.java @@ -19,7 +19,7 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; /** *

@@ -42,7 +42,7 @@ public final class BondAi extends SpellAbilityAi { * @return a boolean. */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { return true; } // end bondCanPlayAI() } diff --git a/src/main/java/forge/card/ability/ai/CanPlayAsDrawbackAi.java b/src/main/java/forge/card/ability/ai/CanPlayAsDrawbackAi.java index 842b0b094ed..faa27297a97 100644 --- a/src/main/java/forge/card/ability/ai/CanPlayAsDrawbackAi.java +++ b/src/main/java/forge/card/ability/ai/CanPlayAsDrawbackAi.java @@ -3,7 +3,7 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class CanPlayAsDrawbackAi extends SpellAbilityAi { @@ -11,7 +11,7 @@ public class CanPlayAsDrawbackAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { return false; } @@ -29,7 +29,7 @@ public class CanPlayAsDrawbackAi extends SpellAbilityAi { * @return a boolean. */ @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return false; } diff --git a/src/main/java/forge/card/ability/ai/CannotPlayAi.java b/src/main/java/forge/card/ability/ai/CannotPlayAi.java index 8fb8b9fdb0d..595f731ad12 100644 --- a/src/main/java/forge/card/ability/ai/CannotPlayAi.java +++ b/src/main/java/forge/card/ability/ai/CannotPlayAi.java @@ -3,14 +3,14 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class CannotPlayAi extends SpellAbilityAi { /* (non-Javadoc) * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { return false; } @@ -18,7 +18,7 @@ public class CannotPlayAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player) */ @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { return canPlayAI(aiPlayer, sa); } } diff --git a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java index e560b5ee661..16547b93cce 100644 --- a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java +++ b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java @@ -37,7 +37,6 @@ 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; @@ -58,7 +57,7 @@ public class ChangeZoneAi extends SpellAbilityAi { * @return a boolean. */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { String origin = null; if (sa.hasParam("Origin")) { origin = sa.getParam("Origin"); @@ -88,7 +87,7 @@ public class ChangeZoneAi extends SpellAbilityAi { * @return a boolean. */ @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { String origin = null; if (sa.hasParam("Origin")) { origin = sa.getParam("Origin"); @@ -116,7 +115,7 @@ public class ChangeZoneAi extends SpellAbilityAi { * @return a boolean. */ @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { String origin = null; if (sa.hasParam("Origin")) { origin = sa.getParam("Origin"); @@ -152,7 +151,7 @@ public class ChangeZoneAi extends SpellAbilityAi { * a {@link forge.card.spellability.SpellAbility} object. * @return a boolean. */ - private static boolean hiddenOriginCanPlayAI(final AIPlayer ai, final SpellAbility sa) { + private static boolean hiddenOriginCanPlayAI(final Player ai, final SpellAbility sa) { // Fetching should occur fairly often as it helps cast more spells, and // have access to more mana final Cost abCost = sa.getPayCosts(); @@ -535,7 +534,7 @@ public class ChangeZoneAi extends SpellAbilityAi { * a {@link forge.card.spellability.SpellAbility} object. * @return a boolean. */ - private static boolean knownOriginCanPlayAI(final AIPlayer ai, final SpellAbility sa) { + private static boolean knownOriginCanPlayAI(final Player ai, final SpellAbility sa) { // Retrieve either this card, or target Cards in Graveyard final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -650,7 +649,7 @@ public class ChangeZoneAi extends SpellAbilityAi { * a {@link forge.card.spellability.SpellAbility} object. * @return a boolean. */ - private static boolean knownOriginPlayDrawbackAI(final AIPlayer aiPlayer, final SpellAbility sa) { + private static boolean knownOriginPlayDrawbackAI(final Player aiPlayer, final SpellAbility sa) { if (sa.getTarget() == null) { return true; } @@ -671,7 +670,7 @@ public class ChangeZoneAi extends SpellAbilityAi { * a boolean. * @return a boolean. */ - private static boolean isPreferredTarget(final AIPlayer ai, final SpellAbility sa, final boolean mandatory) { + private static boolean isPreferredTarget(final Player ai, final SpellAbility sa, final boolean mandatory) { final Card source = sa.getSourceCard(); final ZoneType origin = ZoneType.listValueOf(sa.getParam("Origin")).get(0); final ZoneType destination = ZoneType.smartValueOf(sa.getParam("Destination")); @@ -1029,7 +1028,7 @@ public class ChangeZoneAi extends SpellAbilityAi { * a boolean. * @return a boolean. */ - private static boolean knownOriginTriggerAI(final AIPlayer ai, final SpellAbility sa, + private static boolean knownOriginTriggerAI(final Player ai, final SpellAbility sa, final boolean mandatory) { if (sa.getTarget() == null) { diff --git a/src/main/java/forge/card/ability/ai/ChangeZoneAllAi.java b/src/main/java/forge/card/ability/ai/ChangeZoneAllAi.java index d6d753e87c1..bc7b45a066b 100644 --- a/src/main/java/forge/card/ability/ai/ChangeZoneAllAi.java +++ b/src/main/java/forge/card/ability/ai/ChangeZoneAllAi.java @@ -13,7 +13,6 @@ import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCard; 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 +23,7 @@ public class ChangeZoneAllAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player 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 +166,7 @@ public class ChangeZoneAllAi extends SpellAbilityAi { * @return a boolean. */ @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { // if putting cards from hand to library and parent is drawing cards // make sure this will actually do something: @@ -176,7 +175,7 @@ public class ChangeZoneAllAi extends SpellAbilityAi { @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player 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/ability/ai/CharmAi.java b/src/main/java/forge/card/ability/ai/CharmAi.java index c0229e560b1..320e7752b0d 100644 --- a/src/main/java/forge/card/ability/ai/CharmAi.java +++ b/src/main/java/forge/card/ability/ai/CharmAi.java @@ -10,14 +10,13 @@ import forge.card.ability.SpellAbilityAi; import forge.card.ability.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 SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Random r = MyRandom.getRandom(); final int num = Integer.parseInt(sa.hasParam("CharmNum") ? sa.getParam("CharmNum") : "1"); @@ -35,7 +34,7 @@ public class CharmAi extends SpellAbilityAi { return r.nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); } - public static List chooseOptionsAi(final AIPlayer ai, boolean playNow, List choices, int num, int min, boolean opponentChoser) { + public static List chooseOptionsAi(final Player ai, boolean playNow, List choices, int num, int min, boolean opponentChoser) { List chosenList = new ArrayList(); if (opponentChoser) { @@ -69,7 +68,7 @@ public class CharmAi extends SpellAbilityAi { return chosenList.size() >= min ? chosenList : null; } - public static Player determineOpponentChooser(AIPlayer ai, SpellAbility sa, List opponents) { + public static Player determineOpponentChooser(Player ai, SpellAbility sa, List opponents) { return opponents.get(RandomUtils.nextInt(opponents.size())); } diff --git a/src/main/java/forge/card/ability/ai/ChooseCardAi.java b/src/main/java/forge/card/ability/ai/ChooseCardAi.java index 1c907f81d1a..8eaf64115cf 100644 --- a/src/main/java/forge/card/ability/ai/ChooseCardAi.java +++ b/src/main/java/forge/card/ability/ai/ChooseCardAi.java @@ -7,7 +7,7 @@ import forge.CardLists; import forge.card.ability.SpellAbilityAi; 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; public class ChooseCardAi extends SpellAbilityAi { @@ -16,7 +16,7 @@ public class ChooseCardAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Card host = sa.getSourceCard(); final Target tgt = sa.getTarget(); @@ -62,7 +62,7 @@ public class ChooseCardAi extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { return canPlayAI(ai, sa); } } diff --git a/src/main/java/forge/card/ability/ai/ChooseCardNameAi.java b/src/main/java/forge/card/ability/ai/ChooseCardNameAi.java index f2dc3d68dd6..a87ba0f7b92 100644 --- a/src/main/java/forge/card/ability/ai/ChooseCardNameAi.java +++ b/src/main/java/forge/card/ability/ai/ChooseCardNameAi.java @@ -6,12 +6,12 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtil; import forge.game.ai.ComputerUtilMana; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class ChooseCardNameAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { Card source = sa.getSourceCard(); if (sa.hasParam("AILogic")) { // Don't tap creatures that may be able to block @@ -58,7 +58,7 @@ public class ChooseCardNameAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { // TODO - there is no AILogic implemented yet return false; } diff --git a/src/main/java/forge/card/ability/ai/ChooseColorAi.java b/src/main/java/forge/card/ability/ai/ChooseColorAi.java index 2dc6d8a07c6..36cb7770fac 100644 --- a/src/main/java/forge/card/ability/ai/ChooseColorAi.java +++ b/src/main/java/forge/card/ability/ai/ChooseColorAi.java @@ -2,13 +2,13 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; import forge.util.MyRandom; public class ChooseColorAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { if (!sa.hasParam("AILogic")) { return false; } @@ -17,7 +17,7 @@ public class ChooseColorAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { return mandatory || canPlayAI(ai, sa); } diff --git a/src/main/java/forge/card/ability/ai/ChoosePlayerAi.java b/src/main/java/forge/card/ability/ai/ChoosePlayerAi.java index 0f9ab460710..032e29d5f7c 100644 --- a/src/main/java/forge/card/ability/ai/ChoosePlayerAi.java +++ b/src/main/java/forge/card/ability/ai/ChoosePlayerAi.java @@ -2,7 +2,7 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class ChoosePlayerAi extends SpellAbilityAi { @@ -10,17 +10,17 @@ public class ChoosePlayerAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { return true; } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { return canPlayAI(ai, sa); } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { return canPlayAI(ai, sa); } diff --git a/src/main/java/forge/card/ability/ai/ChooseSourceAi.java b/src/main/java/forge/card/ability/ai/ChooseSourceAi.java index efd88607f8f..ac6308d4012 100644 --- a/src/main/java/forge/card/ability/ai/ChooseSourceAi.java +++ b/src/main/java/forge/card/ability/ai/ChooseSourceAi.java @@ -17,7 +17,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; public class ChooseSourceAi extends SpellAbilityAi { @@ -26,7 +26,7 @@ public class ChooseSourceAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(final AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(final Player 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/ability/ai/ChooseTypeAi.java b/src/main/java/forge/card/ability/ai/ChooseTypeAi.java index 388c98a57a8..d8de63f9217 100644 --- a/src/main/java/forge/card/ability/ai/ChooseTypeAi.java +++ b/src/main/java/forge/card/ability/ai/ChooseTypeAi.java @@ -4,12 +4,11 @@ import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.AIPlayer; import forge.game.player.Player; public class ChooseTypeAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { if (!sa.hasParam("AILogic")) { return false; } @@ -18,7 +17,7 @@ public class ChooseTypeAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (sa.getTarget() != null) { diff --git a/src/main/java/forge/card/ability/ai/ClashAi.java b/src/main/java/forge/card/ability/ai/ClashAi.java index db2111bde87..a50fe31a4ba 100644 --- a/src/main/java/forge/card/ability/ai/ClashAi.java +++ b/src/main/java/forge/card/ability/ai/ClashAi.java @@ -4,7 +4,6 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.AIPlayer; import forge.game.player.Player; public class ClashAi extends SpellAbilityAi { @@ -13,7 +12,7 @@ public class ClashAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return true; } @@ -21,7 +20,7 @@ public class ClashAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Player opp = ai.getOpponent(); if (tgt != null) { diff --git a/src/main/java/forge/card/ability/ai/CloneAi.java b/src/main/java/forge/card/ability/ai/CloneAi.java index 23b52c84233..f50f5a19846 100644 --- a/src/main/java/forge/card/ability/ai/CloneAi.java +++ b/src/main/java/forge/card/ability/ai/CloneAi.java @@ -10,12 +10,12 @@ import forge.card.spellability.Target; import forge.game.GameState; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class CloneAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); final GameState game = source.getGame(); @@ -93,7 +93,7 @@ public class CloneAi extends SpellAbilityAi { } // end cloneCanPlayAI() @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { // AI should only activate this during Human's turn boolean chance = true; @@ -106,7 +106,7 @@ public class CloneAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { boolean chance = true; diff --git a/src/main/java/forge/card/ability/ai/ControlExchangeAi.java b/src/main/java/forge/card/ability/ai/ControlExchangeAi.java index 8bddd66d1ac..e444c11cb8b 100644 --- a/src/main/java/forge/card/ability/ai/ControlExchangeAi.java +++ b/src/main/java/forge/card/ability/ai/ControlExchangeAi.java @@ -12,7 +12,7 @@ import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCard; -import forge.game.player.AIPlayer; +import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -22,7 +22,7 @@ public class ControlExchangeAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, final SpellAbility sa) { + protected boolean canPlayAI(Player ai, final SpellAbility sa) { Card object1 = null; Card object2 = null; final Target tgt = sa.getTarget(); @@ -62,7 +62,7 @@ public class ControlExchangeAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return false; } } diff --git a/src/main/java/forge/card/ability/ai/ControlGainAi.java b/src/main/java/forge/card/ability/ai/ControlGainAi.java index ce3637c0561..212f9b5404f 100644 --- a/src/main/java/forge/card/ability/ai/ControlGainAi.java +++ b/src/main/java/forge/card/ability/ai/ControlGainAi.java @@ -32,7 +32,6 @@ import forge.card.spellability.Target; import forge.game.GameState; import forge.game.ai.ComputerUtilCard; import forge.game.phase.PhaseType; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -62,7 +61,7 @@ import forge.game.zone.ZoneType; */ public class ControlGainAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, final SpellAbility sa) { + protected boolean canPlayAI(Player ai, final SpellAbility sa) { boolean hasCreature = false; boolean hasArtifact = false; boolean hasEnchantment = false; @@ -170,7 +169,7 @@ public class ControlGainAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { if (sa.getTarget() == null) { if (mandatory) { return true; @@ -183,7 +182,7 @@ public class ControlGainAi extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, final AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, final Player ai) { final GameState game = ai.getGame(); if ((sa.getTarget() == null) || !sa.getTarget().doesTarget()) { if (sa.hasParam("AllValid")) { diff --git a/src/main/java/forge/card/ability/ai/CopyPermanentAi.java b/src/main/java/forge/card/ability/ai/CopyPermanentAi.java index 0f0cd1ecdbd..bccecd8994d 100644 --- a/src/main/java/forge/card/ability/ai/CopyPermanentAi.java +++ b/src/main/java/forge/card/ability/ai/CopyPermanentAi.java @@ -14,7 +14,7 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCard; 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 +24,7 @@ public class CopyPermanentAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { // Card source = sa.getSourceCard(); // TODO - I'm sure someone can do this AI better @@ -46,7 +46,7 @@ public class CopyPermanentAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(final AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(final Player aiPlayer, SpellAbility sa, boolean mandatory) { final Card source = sa.getSourceCard(); // //// diff --git a/src/main/java/forge/card/ability/ai/CounterAi.java b/src/main/java/forge/card/ability/ai/CounterAi.java index 6f49d5b9280..4ba1397b441 100644 --- a/src/main/java/forge/card/ability/ai/CounterAi.java +++ b/src/main/java/forge/card/ability/ai/CounterAi.java @@ -11,13 +11,13 @@ import forge.game.GameState; import forge.game.ai.ComputerUtilCard; import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; -import forge.game.player.AIPlayer; +import forge.game.player.Player; import forge.util.MyRandom; public class CounterAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { boolean toReturn = true; final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -102,12 +102,12 @@ public class CounterAi extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { return doTriggerAINoCost(aiPlayer, sa, true); } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt != null) { diff --git a/src/main/java/forge/card/ability/ai/CountersMoveAi.java b/src/main/java/forge/card/ability/ai/CountersMoveAi.java index 8417d9ab9b2..68b3f13c9d7 100644 --- a/src/main/java/forge/card/ability/ai/CountersMoveAi.java +++ b/src/main/java/forge/card/ability/ai/CountersMoveAi.java @@ -11,7 +11,6 @@ import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCard; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.Aggregates; @@ -19,7 +18,7 @@ import forge.util.MyRandom; public class CountersMoveAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { // AI needs to be expanded, since this function can be pretty complex // based on what // the expected targets could be @@ -47,7 +46,7 @@ public class CountersMoveAi extends SpellAbilityAi { } // moveCounterCanPlayAI @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player 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/ability/ai/CountersProliferateAi.java b/src/main/java/forge/card/ability/ai/CountersProliferateAi.java index caaa2e71d0e..2cc08206c1b 100644 --- a/src/main/java/forge/card/ability/ai/CountersProliferateAi.java +++ b/src/main/java/forge/card/ability/ai/CountersProliferateAi.java @@ -9,13 +9,13 @@ import forge.CardLists; import forge.CounterType; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; import forge.game.zone.ZoneType; public class CountersProliferateAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { boolean chance = true; List cperms = CardLists.filter(ai.getCardsIn(ZoneType.Battlefield), new Predicate() { @@ -49,7 +49,7 @@ public class CountersProliferateAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { boolean chance = true; // TODO Make sure Human has poison counters or there are some counters @@ -61,7 +61,7 @@ public class CountersProliferateAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player) */ @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { return canPlayAI(ai, sa); } diff --git a/src/main/java/forge/card/ability/ai/CountersPutAi.java b/src/main/java/forge/card/ability/ai/CountersPutAi.java index b80ab2b7212..fd99ec01a73 100644 --- a/src/main/java/forge/card/ability/ai/CountersPutAi.java +++ b/src/main/java/forge/card/ability/ai/CountersPutAi.java @@ -19,7 +19,6 @@ import forge.game.ai.ComputerUtilCard; 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.Aggregates; @@ -27,7 +26,7 @@ import forge.util.MyRandom; public class CountersPutAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, final SpellAbility sa) { + protected boolean canPlayAI(Player ai, final SpellAbility sa) { // AI needs to be expanded, since this function can be pretty complex // based on // what the expected targets could be @@ -172,7 +171,7 @@ public class CountersPutAi extends SpellAbilityAi { } // putCanPlayAI @Override - public boolean chkAIDrawback(final SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(final SpellAbility sa, Player ai) { boolean chance = true; final Target abTgt = sa.getTarget(); final Card source = sa.getSourceCard(); @@ -240,7 +239,7 @@ public class CountersPutAi extends SpellAbilityAi { } // putPlayDrawbackAI @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player 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/ability/ai/CountersPutAllAi.java b/src/main/java/forge/card/ability/ai/CountersPutAllAi.java index 4648fb58747..b31df9bbae7 100644 --- a/src/main/java/forge/card/ability/ai/CountersPutAllAi.java +++ b/src/main/java/forge/card/ability/ai/CountersPutAllAi.java @@ -17,14 +17,13 @@ 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 SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player 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 +130,7 @@ public class CountersPutAllAi extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { return canPlayAI(ai, sa); } } diff --git a/src/main/java/forge/card/ability/ai/CountersRemoveAi.java b/src/main/java/forge/card/ability/ai/CountersRemoveAi.java index 66b508dd0ca..92a65c80df3 100644 --- a/src/main/java/forge/card/ability/ai/CountersRemoveAi.java +++ b/src/main/java/forge/card/ability/ai/CountersRemoveAi.java @@ -10,13 +10,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.AIPlayer; +import forge.game.player.Player; import forge.util.MyRandom; public class CountersRemoveAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { // AI needs to be expanded, since this function can be pretty complex // based on what // the expected targets could be @@ -82,7 +82,7 @@ public class CountersRemoveAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player 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/ability/ai/DamageAllAi.java b/src/main/java/forge/card/ability/ai/DamageAllAi.java index 8fe050b245a..9cc4fbf4f6a 100644 --- a/src/main/java/forge/card/ability/ai/DamageAllAi.java +++ b/src/main/java/forge/card/ability/ai/DamageAllAi.java @@ -17,7 +17,6 @@ import forge.game.ai.ComputerUtilCard; import forge.game.ai.ComputerUtilCombat; 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; @@ -25,7 +24,7 @@ import forge.util.MyRandom; public class DamageAllAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player 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(); @@ -104,7 +103,7 @@ public class DamageAllAi extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { final Card source = sa.getSourceCard(); String validP = ""; @@ -188,7 +187,7 @@ public class DamageAllAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Card source = sa.getSourceCard(); String validP = ""; diff --git a/src/main/java/forge/card/ability/ai/DamageDealAi.java b/src/main/java/forge/card/ability/ai/DamageDealAi.java index 27ea651e4c6..bbc156af84d 100644 --- a/src/main/java/forge/card/ability/ai/DamageDealAi.java +++ b/src/main/java/forge/card/ability/ai/DamageDealAi.java @@ -22,14 +22,13 @@ 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, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { final String damage = sa.getParam("NumDmg"); int dmg = AbilityUtils.calculateAmount(sa.getSourceCard(), damage, sa); @@ -47,7 +46,7 @@ public class DamageDealAi extends DamageAiBase { } @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -204,7 +203,7 @@ public class DamageDealAi extends DamageAiBase { * a int. * @return a boolean. */ - private boolean damageTargetAI(final AIPlayer ai, final SpellAbility saMe, final int dmg) { + private boolean damageTargetAI(final Player ai, final SpellAbility saMe, final int dmg) { final Target tgt = saMe.getTarget(); if (tgt == null) { @@ -354,7 +353,7 @@ public class DamageDealAi extends DamageAiBase { * a int. * @return a boolean. */ - private boolean damageChooseNontargeted(AIPlayer ai, final SpellAbility saMe, final int dmg) { + private boolean damageChooseNontargeted(Player ai, final SpellAbility saMe, final int dmg) { // TODO: Improve circumstances where the Defined Damage is unwanted final ArrayList objects = AbilityUtils.getDefinedObjects(saMe.getSourceCard(), saMe.getParam("Defined"), saMe); boolean urgent = false; // can it wait? @@ -451,7 +450,7 @@ public class DamageDealAi extends DamageAiBase { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Card source = sa.getSourceCard(); final String damage = sa.getParam("NumDmg"); diff --git a/src/main/java/forge/card/ability/ai/DamageEachAi.java b/src/main/java/forge/card/ability/ai/DamageEachAi.java index 0c8671545ae..f2cdd5293e9 100644 --- a/src/main/java/forge/card/ability/ai/DamageEachAi.java +++ b/src/main/java/forge/card/ability/ai/DamageEachAi.java @@ -4,7 +4,7 @@ package forge.card.ability.ai; import forge.card.ability.AbilityUtils; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.AIPlayer; +import forge.game.player.Player; 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(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player 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, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player 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(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { return canPlayAI(ai, sa); } diff --git a/src/main/java/forge/card/ability/ai/DamagePreventAi.java b/src/main/java/forge/card/ability/ai/DamagePreventAi.java index 2d625f66818..a795422234f 100644 --- a/src/main/java/forge/card/ability/ai/DamagePreventAi.java +++ b/src/main/java/forge/card/ability/ai/DamagePreventAi.java @@ -18,14 +18,13 @@ 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 SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Card hostCard = sa.getSourceCard(); final GameState game = ai.getGame(); boolean chance = false; @@ -150,7 +149,7 @@ public class DamagePreventAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { boolean chance = false; final Target tgt = sa.getTarget(); if (tgt == null) { diff --git a/src/main/java/forge/card/ability/ai/DamagePreventAllAi.java b/src/main/java/forge/card/ability/ai/DamagePreventAllAi.java index 097212a7b46..a284ec22f72 100644 --- a/src/main/java/forge/card/ability/ai/DamagePreventAllAi.java +++ b/src/main/java/forge/card/ability/ai/DamagePreventAllAi.java @@ -7,7 +7,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.AIPlayer; +import forge.game.player.Player; public class DamagePreventAllAi extends SpellAbilityAi { @@ -15,7 +15,7 @@ public class DamagePreventAllAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Card hostCard = sa.getSourceCard(); boolean chance = false; @@ -51,7 +51,7 @@ public class DamagePreventAllAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { boolean chance = true; return chance; diff --git a/src/main/java/forge/card/ability/ai/DebuffAi.java b/src/main/java/forge/card/ability/ai/DebuffAi.java index 73353c2f344..8e87797b0f7 100644 --- a/src/main/java/forge/card/ability/ai/DebuffAi.java +++ b/src/main/java/forge/card/ability/ai/DebuffAi.java @@ -18,7 +18,6 @@ import forge.game.ai.ComputerUtilCard; 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 +27,7 @@ public class DebuffAi extends SpellAbilityAi { // ************************************************************************* @Override - protected boolean canPlayAI(final AIPlayer ai, final SpellAbility sa) { + protected boolean canPlayAI(final Player 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 +96,7 @@ public class DebuffAi extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { if ((sa.getTarget() == null) || !sa.getTarget().doesTarget()) { // TODO - copied from AF_Pump.pumpDrawbackAI() - what should be // here? @@ -279,7 +278,7 @@ public class DebuffAi extends SpellAbilityAi { } // pumpMandatoryTarget() @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player 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/ability/ai/DebuffAllAi.java b/src/main/java/forge/card/ability/ai/DebuffAllAi.java index 860bf5e2d55..c602b4e0b06 100644 --- a/src/main/java/forge/card/ability/ai/DebuffAllAi.java +++ b/src/main/java/forge/card/ability/ai/DebuffAllAi.java @@ -11,14 +11,13 @@ import forge.card.ability.SpellAbilityAi; 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 SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { String valid = ""; final Random r = MyRandom.getRandom(); // final Card source = sa.getSourceCard(); @@ -60,7 +59,7 @@ public class DebuffAllAi extends SpellAbilityAi { } // debuffAllCanPlayAI() @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return true; } } diff --git a/src/main/java/forge/card/ability/ai/DelayedTriggerAi.java b/src/main/java/forge/card/ability/ai/DelayedTriggerAi.java index a11c3187419..19c579f13dc 100644 --- a/src/main/java/forge/card/ability/ai/DelayedTriggerAi.java +++ b/src/main/java/forge/card/ability/ai/DelayedTriggerAi.java @@ -4,12 +4,12 @@ import forge.card.ability.AbilityFactory; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class DelayedTriggerAi extends SpellAbilityAi { @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { final String svarName = sa.getParam("Execute"); final SpellAbility trigsa = AbilityFactory.getAbility(sa.getSourceCard().getSVar(svarName), sa.getSourceCard()); trigsa.setActivatingPlayer(ai); @@ -22,7 +22,7 @@ public class DelayedTriggerAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final String svarName = sa.getParam("Execute"); final SpellAbility trigsa = AbilityFactory.getAbility(sa.getSourceCard().getSVar(svarName), sa.getSourceCard()); trigsa.setActivatingPlayer(ai); @@ -35,7 +35,7 @@ public class DelayedTriggerAi extends SpellAbilityAi { } @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final String svarName = sa.getParam("Execute"); final SpellAbility trigsa = AbilityFactory.getAbility(sa.getSourceCard().getSVar(svarName), sa.getSourceCard()); trigsa.setActivatingPlayer(ai); diff --git a/src/main/java/forge/card/ability/ai/DestroyAi.java b/src/main/java/forge/card/ability/ai/DestroyAi.java index bfeb417f7bf..0ef05b45e15 100644 --- a/src/main/java/forge/card/ability/ai/DestroyAi.java +++ b/src/main/java/forge/card/ability/ai/DestroyAi.java @@ -19,7 +19,6 @@ import forge.card.spellability.Target; import forge.game.ai.ComputerUtil; import forge.game.ai.ComputerUtilCard; 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 +29,14 @@ public class DestroyAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player) */ @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player 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 AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(final Player 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 +163,7 @@ public class DestroyAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player 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/ability/ai/DestroyAllAi.java b/src/main/java/forge/card/ability/ai/DestroyAllAi.java index 750fe7cf689..cf61e8a5b57 100644 --- a/src/main/java/forge/card/ability/ai/DestroyAllAi.java +++ b/src/main/java/forge/card/ability/ai/DestroyAllAi.java @@ -14,7 +14,7 @@ import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCard; 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; @@ -31,7 +31,7 @@ public class DestroyAllAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player 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 SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { //TODO: Check for bad outcome return true; } @Override - protected boolean canPlayAI(final AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(final Player 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/ability/ai/DigAi.java b/src/main/java/forge/card/ability/ai/DigAi.java index 1c706e02e6e..1259a5eb76b 100644 --- a/src/main/java/forge/card/ability/ai/DigAi.java +++ b/src/main/java/forge/card/ability/ai/DigAi.java @@ -6,7 +6,6 @@ import forge.card.ability.SpellAbilityAi; 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; @@ -17,7 +16,7 @@ public class DigAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Random r = MyRandom.getRandom(); boolean randomReturn = r.nextFloat() <= Math.pow(0.9, sa.getActivationsThisTurn()); @@ -55,7 +54,7 @@ public class DigAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (sa.getTarget() != null) { diff --git a/src/main/java/forge/card/ability/ai/DigUntilAi.java b/src/main/java/forge/card/ability/ai/DigUntilAi.java index 177f3c3c562..0baee0c1a58 100644 --- a/src/main/java/forge/card/ability/ai/DigUntilAi.java +++ b/src/main/java/forge/card/ability/ai/DigUntilAi.java @@ -9,7 +9,6 @@ import forge.card.spellability.AbilitySub; 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; import forge.util.MyRandom; @@ -17,7 +16,7 @@ import forge.util.MyRandom; public class DigUntilAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { Card source = sa.getSourceCard(); double chance = .4; // 40 percent chance with instant speed stuff if (SpellAbilityAi.isSorcerySpeed(sa)) { @@ -69,7 +68,7 @@ public class DigUntilAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); diff --git a/src/main/java/forge/card/ability/ai/DiscardAi.java b/src/main/java/forge/card/ability/ai/DiscardAi.java index 0ef106b9b67..7402e1dc3f3 100644 --- a/src/main/java/forge/card/ability/ai/DiscardAi.java +++ b/src/main/java/forge/card/ability/ai/DiscardAi.java @@ -13,7 +13,6 @@ 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 +20,7 @@ import forge.util.MyRandom; public class DiscardAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); final Cost abCost = sa.getPayCosts(); @@ -130,7 +129,7 @@ public class DiscardAi extends SpellAbilityAi { @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt != null) { Player opp = ai.getOpponent(); @@ -156,7 +155,7 @@ public class DiscardAi extends SpellAbilityAi { } // discardTrigger() @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player 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/ability/ai/DrainManaAi.java b/src/main/java/forge/card/ability/ai/DrainManaAi.java index e0d854bb383..bd9c620aed3 100644 --- a/src/main/java/forge/card/ability/ai/DrainManaAi.java +++ b/src/main/java/forge/card/ability/ai/DrainManaAi.java @@ -8,14 +8,13 @@ import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityAi; 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 SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { // AI cannot use this properly until he can use SAs during Humans turn final Target tgt = sa.getTarget(); @@ -42,7 +41,7 @@ public class DrainManaAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Player opp = ai.getOpponent(); final Target tgt = sa.getTarget(); @@ -69,7 +68,7 @@ public class DrainManaAi extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player 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/ability/ai/DrawAi.java b/src/main/java/forge/card/ability/ai/DrawAi.java index 6da0a719f9b..c10d6c32fde 100644 --- a/src/main/java/forge/card/ability/ai/DrawAi.java +++ b/src/main/java/forge/card/ability/ai/DrawAi.java @@ -36,7 +36,6 @@ 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; @@ -44,7 +43,7 @@ import forge.util.MyRandom; public class DrawAi extends SpellAbilityAi { @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { return targetAI(ai, sa, false); } @@ -52,7 +51,7 @@ public class DrawAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); final Cost abCost = sa.getPayCosts(); @@ -72,7 +71,7 @@ public class DrawAi extends SpellAbilityAi { for (final CostPart part : abCost.getCostParts()) { if (part instanceof CostDiscard) { CostDiscard cd = (CostDiscard) part; - PaymentDecision decision = cd.decideAIPayment((AIPlayer) ai, sa, sa.getSourceCard()); + PaymentDecision decision = cd.decideAIPayment(ai, sa, sa.getSourceCard()); if ( null == decision ) return false; for (Card discard : decision.cards) { @@ -265,7 +264,7 @@ public class DrawAi extends SpellAbilityAi { @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { return targetAI(ai, sa, mandatory); } diff --git a/src/main/java/forge/card/ability/ai/EffectAi.java b/src/main/java/forge/card/ability/ai/EffectAi.java index 89091693e7f..19a33d81b08 100644 --- a/src/main/java/forge/card/ability/ai/EffectAi.java +++ b/src/main/java/forge/card/ability/ai/EffectAi.java @@ -16,14 +16,13 @@ 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 SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final GameState game = ai.getGame(); final Random r = MyRandom.getRandom(); boolean randomReturn = r.nextFloat() <= .6667; @@ -124,7 +123,7 @@ public class EffectAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { // TODO: Add targeting effects return true; diff --git a/src/main/java/forge/card/ability/ai/EncodeAi.java b/src/main/java/forge/card/ability/ai/EncodeAi.java index 9b2ec6e9b8c..a57c3c9bdf8 100644 --- a/src/main/java/forge/card/ability/ai/EncodeAi.java +++ b/src/main/java/forge/card/ability/ai/EncodeAi.java @@ -19,7 +19,7 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; /** *

@@ -42,13 +42,13 @@ public final class EncodeAi extends SpellAbilityAi { * @return a boolean. */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { return true; } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { return true; } } diff --git a/src/main/java/forge/card/ability/ai/EndTurnAi.java b/src/main/java/forge/card/ability/ai/EndTurnAi.java index 3b3b213a2b2..1a05c52c882 100644 --- a/src/main/java/forge/card/ability/ai/EndTurnAi.java +++ b/src/main/java/forge/card/ability/ai/EndTurnAi.java @@ -3,7 +3,7 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; /** * TODO: Write javadoc for this type. @@ -12,18 +12,18 @@ import forge.game.player.AIPlayer; public class EndTurnAi extends SpellAbilityAi { @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return mandatory; } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { return false; } + public boolean chkAIDrawback(SpellAbility sa, Player 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(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { return false; } } diff --git a/src/main/java/forge/card/ability/ai/FightAi.java b/src/main/java/forge/card/ability/ai/FightAi.java index fca53ac63fb..bd34b7d3143 100644 --- a/src/main/java/forge/card/ability/ai/FightAi.java +++ b/src/main/java/forge/card/ability/ai/FightAi.java @@ -11,7 +11,7 @@ import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCombat; -import forge.game.player.AIPlayer; +import forge.game.player.Player; import forge.util.MyRandom; public class FightAi extends SpellAbilityAi { @@ -20,7 +20,7 @@ public class FightAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { Target tgt = sa.getTarget(); tgt.resetTargets(); @@ -87,7 +87,7 @@ public class FightAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return false; } diff --git a/src/main/java/forge/card/ability/ai/FlipACoinAi.java b/src/main/java/forge/card/ability/ai/FlipACoinAi.java index 862ca248a55..5e2e2cce48e 100644 --- a/src/main/java/forge/card/ability/ai/FlipACoinAi.java +++ b/src/main/java/forge/card/ability/ai/FlipACoinAi.java @@ -2,7 +2,7 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class FlipACoinAi extends SpellAbilityAi { @@ -10,7 +10,7 @@ public class FlipACoinAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { if (sa.hasParam("AILogic")) { if (sa.getParam("AILogic").equals("Never")) { @@ -21,7 +21,7 @@ public class FlipACoinAi extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { return canPlayAI(ai, sa); } } diff --git a/src/main/java/forge/card/ability/ai/FogAi.java b/src/main/java/forge/card/ability/ai/FogAi.java index 4155f1b5c6f..f3aa94e6b0b 100644 --- a/src/main/java/forge/card/ability/ai/FogAi.java +++ b/src/main/java/forge/card/ability/ai/FogAi.java @@ -6,7 +6,7 @@ import forge.card.spellability.SpellAbility; import forge.game.GameState; import forge.game.ai.ComputerUtilCombat; import forge.game.phase.PhaseType; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class FogAi extends SpellAbilityAi { @@ -14,7 +14,7 @@ public class FogAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final GameState game = ai.getGame(); // AI should only activate this during Human's Declare Blockers phase if (game.getPhaseHandler().isPlayerTurn(sa.getActivatingPlayer())) { @@ -39,7 +39,7 @@ public class FogAi extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { // AI should only activate this during Human's turn boolean chance; final GameState game = ai.getGame(); @@ -55,7 +55,7 @@ public class FogAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { final GameState game = aiPlayer.getGame(); boolean chance; if (game.getPhaseHandler().isPlayerTurn(sa.getActivatingPlayer().getOpponent())) { diff --git a/src/main/java/forge/card/ability/ai/GameLossAi.java b/src/main/java/forge/card/ability/ai/GameLossAi.java index f5c57bb1bff..8c5876051ec 100644 --- a/src/main/java/forge/card/ability/ai/GameLossAi.java +++ b/src/main/java/forge/card/ability/ai/GameLossAi.java @@ -3,12 +3,11 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.AIPlayer; import forge.game.player.Player; public class GameLossAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Player opp = ai.getOpponent(); if (opp.cantLose()) { return false; @@ -29,7 +28,7 @@ public class GameLossAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player 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/ability/ai/GameWinAi.java b/src/main/java/forge/card/ability/ai/GameWinAi.java index ceb9499e769..45a7fef94ac 100644 --- a/src/main/java/forge/card/ability/ai/GameWinAi.java +++ b/src/main/java/forge/card/ability/ai/GameWinAi.java @@ -3,14 +3,14 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class GameWinAi extends SpellAbilityAi { /* (non-Javadoc) * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { if (ai.cantWin()) { return false; } @@ -25,7 +25,7 @@ public class GameWinAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return true; } diff --git a/src/main/java/forge/card/ability/ai/LifeExchangeAi.java b/src/main/java/forge/card/ability/ai/LifeExchangeAi.java index 109f472c6e0..362dc3199f6 100644 --- a/src/main/java/forge/card/ability/ai/LifeExchangeAi.java +++ b/src/main/java/forge/card/ability/ai/LifeExchangeAi.java @@ -5,7 +5,6 @@ import java.util.Random; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.util.MyRandom; @@ -20,7 +19,7 @@ public class LifeExchangeAi extends SpellAbilityAi { * forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player 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/ability/ai/LifeGainAi.java b/src/main/java/forge/card/ability/ai/LifeGainAi.java index 285ba4e5345..66dedc681e8 100644 --- a/src/main/java/forge/card/ability/ai/LifeGainAi.java +++ b/src/main/java/forge/card/ability/ai/LifeGainAi.java @@ -15,7 +15,7 @@ import forge.game.ai.ComputerUtilCombat; 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; /** @@ -29,7 +29,7 @@ public class LifeGainAi extends SpellAbilityAi { * @see forge.card.abilityfactory.AbilityFactoryAlterLife.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Random r = MyRandom.getRandom(); final Cost abCost = sa.getPayCosts(); @@ -146,7 +146,7 @@ public class LifeGainAi extends SpellAbilityAi { * @return a boolean. */ @Override - protected boolean doTriggerAINoCost(final AIPlayer ai, final SpellAbility sa, + protected boolean doTriggerAINoCost(final Player ai, final SpellAbility sa, final boolean mandatory) { // If the Target is gaining life, target self. diff --git a/src/main/java/forge/card/ability/ai/LifeLoseAi.java b/src/main/java/forge/card/ability/ai/LifeLoseAi.java index 2b3873d91ed..3b67b28d9c2 100644 --- a/src/main/java/forge/card/ability/ai/LifeLoseAi.java +++ b/src/main/java/forge/card/ability/ai/LifeLoseAi.java @@ -13,14 +13,13 @@ 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 SpellAbilityAi { @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { final Target tgt = sa.getTarget(); List tgtPlayers; @@ -52,7 +51,7 @@ public class LifeLoseAi extends SpellAbilityAi { * @see forge.card.abilityfactory.AbilityFactoryAlterLife.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Random r = MyRandom.getRandom(); final Cost abCost = sa.getPayCosts(); @@ -139,7 +138,7 @@ public class LifeLoseAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(final AIPlayer ai, final SpellAbility sa, + protected boolean doTriggerAINoCost(final Player ai, final SpellAbility sa, final boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt != null) { diff --git a/src/main/java/forge/card/ability/ai/LifeSetAi.java b/src/main/java/forge/card/ability/ai/LifeSetAi.java index 33ddc1ce4c3..5d751041cb4 100644 --- a/src/main/java/forge/card/ability/ai/LifeSetAi.java +++ b/src/main/java/forge/card/ability/ai/LifeSetAi.java @@ -10,14 +10,13 @@ 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 SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Random r = MyRandom.getRandom(); // Ability_Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -102,7 +101,7 @@ public class LifeSetAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player 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/ability/ai/ManaEffectAi.java b/src/main/java/forge/card/ability/ai/ManaEffectAi.java index 5e4a92a9b04..1cc31c2b730 100644 --- a/src/main/java/forge/card/ability/ai/ManaEffectAi.java +++ b/src/main/java/forge/card/ability/ai/ManaEffectAi.java @@ -3,12 +3,12 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class ManaEffectAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { return false; } @@ -23,7 +23,7 @@ public class ManaEffectAi extends SpellAbilityAi { * @return a boolean. */ @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return true; } diff --git a/src/main/java/forge/card/ability/ai/MillAi.java b/src/main/java/forge/card/ability/ai/MillAi.java index 74621262515..88618a19aa6 100644 --- a/src/main/java/forge/card/ability/ai/MillAi.java +++ b/src/main/java/forge/card/ability/ai/MillAi.java @@ -13,7 +13,6 @@ 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 +20,7 @@ import forge.util.MyRandom; public class MillAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Card source = sa.getSourceCard(); final Cost abCost = sa.getPayCosts(); @@ -135,13 +134,13 @@ public class MillAi extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { return targetAI(aiPlayer, sa, true); } @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { if (!targetAI(aiPlayer, sa, mandatory)) { return false; } diff --git a/src/main/java/forge/card/ability/ai/MustAttackAi.java b/src/main/java/forge/card/ability/ai/MustAttackAi.java index eddd3ddb9a2..50f6b2de7fa 100644 --- a/src/main/java/forge/card/ability/ai/MustAttackAi.java +++ b/src/main/java/forge/card/ability/ai/MustAttackAi.java @@ -3,18 +3,18 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class MustAttackAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { // disabled for the AI for now. Only for Gideon Jura at this time. return false; } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { // AI should only activate this during Human's turn // TODO - implement AI return false; @@ -24,7 +24,7 @@ public class MustAttackAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { boolean chance; diff --git a/src/main/java/forge/card/ability/ai/MustBlockAi.java b/src/main/java/forge/card/ability/ai/MustBlockAi.java index fb62bbe1eeb..1c3483dc821 100644 --- a/src/main/java/forge/card/ability/ai/MustBlockAi.java +++ b/src/main/java/forge/card/ability/ai/MustBlockAi.java @@ -15,25 +15,25 @@ import forge.game.ai.ComputerUtilCard; import forge.game.ai.ComputerUtilCombat; 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; public class MustBlockAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player 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, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { return false; } @Override - protected boolean doTriggerAINoCost(final AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(final Player ai, SpellAbility sa, boolean mandatory) { final Card source = sa.getSourceCard(); final Target abTgt = sa.getTarget(); diff --git a/src/main/java/forge/card/ability/ai/PeekAndRevealAi.java b/src/main/java/forge/card/ability/ai/PeekAndRevealAi.java index d4175d770b5..79f410d40d2 100644 --- a/src/main/java/forge/card/ability/ai/PeekAndRevealAi.java +++ b/src/main/java/forge/card/ability/ai/PeekAndRevealAi.java @@ -2,7 +2,7 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; /** * TODO: Write javadoc for this type. @@ -14,7 +14,7 @@ public class PeekAndRevealAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { // So far this only appears on Triggers, but will expand // once things get converted from Dig + NoMove return true; diff --git a/src/main/java/forge/card/ability/ai/PermanentCreatureAi.java b/src/main/java/forge/card/ability/ai/PermanentCreatureAi.java index e6be91c1fde..baf785ce31a 100644 --- a/src/main/java/forge/card/ability/ai/PermanentCreatureAi.java +++ b/src/main/java/forge/card/ability/ai/PermanentCreatureAi.java @@ -12,7 +12,7 @@ import forge.card.spellability.SpellAbility; import forge.game.GameState; import forge.game.ai.ComputerUtil; import forge.game.phase.PhaseType; -import forge.game.player.AIPlayer; +import forge.game.player.Player; import forge.game.zone.ZoneType; /** @@ -25,7 +25,7 @@ public class PermanentCreatureAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { String logic = sa.getParam("AILogic"); GameState game = aiPlayer.getGame(); diff --git a/src/main/java/forge/card/ability/ai/PermanentNoncreatureAi.java b/src/main/java/forge/card/ability/ai/PermanentNoncreatureAi.java index 95de190e8e3..5b01c95f8f7 100644 --- a/src/main/java/forge/card/ability/ai/PermanentNoncreatureAi.java +++ b/src/main/java/forge/card/ability/ai/PermanentNoncreatureAi.java @@ -4,7 +4,7 @@ import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtil; import forge.game.phase.PhaseType; -import forge.game.player.AIPlayer; +import forge.game.player.Player; /** * AbilityFactory for Creature Spells. @@ -16,7 +16,7 @@ public class PermanentNoncreatureAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { String logic = sa.getParam("AILogic"); if ("DontCast".equals(logic)) { diff --git a/src/main/java/forge/card/ability/ai/PhasesAi.java b/src/main/java/forge/card/ability/ai/PhasesAi.java index ff2f157d08e..279e9d4da7c 100644 --- a/src/main/java/forge/card/ability/ai/PhasesAi.java +++ b/src/main/java/forge/card/ability/ai/PhasesAi.java @@ -10,7 +10,7 @@ import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.GameState; -import forge.game.player.AIPlayer; +import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; @@ -20,7 +20,7 @@ public class PhasesAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player 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 SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt == null) { @@ -68,7 +68,7 @@ public class PhasesAi extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { final Target tgt = sa.getTarget(); boolean randomReturn = true; diff --git a/src/main/java/forge/card/ability/ai/PlayAi.java b/src/main/java/forge/card/ability/ai/PlayAi.java index 78e5f8ba76c..be299264012 100644 --- a/src/main/java/forge/card/ability/ai/PlayAi.java +++ b/src/main/java/forge/card/ability/ai/PlayAi.java @@ -13,14 +13,14 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCard; import forge.game.ai.ComputerUtilCost; -import forge.game.player.AIPlayer; +import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.util.MyRandom; public class PlayAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -85,7 +85,7 @@ public class PlayAi extends SpellAbilityAi { * @return a boolean. */ @Override - protected boolean doTriggerAINoCost(final AIPlayer ai, final SpellAbility sa, final boolean mandatory) { + protected boolean doTriggerAINoCost(final Player ai, final SpellAbility sa, final boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt != null) { diff --git a/src/main/java/forge/card/ability/ai/PoisonAi.java b/src/main/java/forge/card/ability/ai/PoisonAi.java index 80f3023f93c..b6b0653a78d 100644 --- a/src/main/java/forge/card/ability/ai/PoisonAi.java +++ b/src/main/java/forge/card/ability/ai/PoisonAi.java @@ -11,7 +11,6 @@ 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 SpellAbilityAi { @@ -25,7 +24,7 @@ public class PoisonAi extends SpellAbilityAi { * forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); // int humanPoison = AllZone.getHumanPlayer().getPoisonCounters(); @@ -71,7 +70,7 @@ public class PoisonAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt != null) { diff --git a/src/main/java/forge/card/ability/ai/ProtectAi.java b/src/main/java/forge/card/ability/ai/ProtectAi.java index aeab8d6cf07..89fa8d24bb2 100644 --- a/src/main/java/forge/card/ability/ai/ProtectAi.java +++ b/src/main/java/forge/card/ability/ai/ProtectAi.java @@ -18,7 +18,6 @@ import forge.game.ai.ComputerUtilCard; 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 +109,7 @@ public class ProtectAi extends SpellAbilityAi { } // getProtectCreatures() @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Card hostCard = sa.getSourceCard(); final GameState game = ai.getGame(); // if there is no target and host card isn't in play, don't activate @@ -344,7 +343,7 @@ public class ProtectAi extends SpellAbilityAi { } // protectMandatoryTarget() @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { if (sa.getTarget() == null) { if (mandatory) { return true; @@ -357,7 +356,7 @@ public class ProtectAi extends SpellAbilityAi { } // protectTriggerAI @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { final Card host = sa.getSourceCard(); if ((sa.getTarget() == null) || !sa.getTarget().doesTarget()) { if (host.isCreature()) { diff --git a/src/main/java/forge/card/ability/ai/ProtectAllAi.java b/src/main/java/forge/card/ability/ai/ProtectAllAi.java index a42c80fedfe..7126abe1a27 100644 --- a/src/main/java/forge/card/ability/ai/ProtectAllAi.java +++ b/src/main/java/forge/card/ability/ai/ProtectAllAi.java @@ -6,12 +6,12 @@ import forge.card.ability.SpellAbilityAi; import forge.card.cost.Cost; import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtilCost; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class ProtectAllAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player 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 SpellAbilityAi { @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return true; } } diff --git a/src/main/java/forge/card/ability/ai/PumpAi.java b/src/main/java/forge/card/ability/ai/PumpAi.java index 36f69f3a985..b70e4d02a89 100644 --- a/src/main/java/forge/card/ability/ai/PumpAi.java +++ b/src/main/java/forge/card/ability/ai/PumpAi.java @@ -24,7 +24,6 @@ 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; @@ -47,7 +46,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(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Cost cost = sa.getPayCosts(); final GameState game = ai.getGame(); final PhaseHandler ph = game.getPhaseHandler(); @@ -357,7 +356,7 @@ public class PumpAi extends PumpAiBase { } // pumpMandatoryTarget() @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player 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") : ""; @@ -400,7 +399,7 @@ public class PumpAi extends PumpAiBase { } // pumpTriggerAI @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { final Card source = sa.getSourceCard(); diff --git a/src/main/java/forge/card/ability/ai/PumpAllAi.java b/src/main/java/forge/card/ability/ai/PumpAllAi.java index 133069dc86f..8b6cf164882 100644 --- a/src/main/java/forge/card/ability/ai/PumpAllAi.java +++ b/src/main/java/forge/card/ability/ai/PumpAllAi.java @@ -17,7 +17,6 @@ import forge.game.ai.ComputerUtilCard; import forge.game.ai.ComputerUtilCombat; 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; @@ -27,7 +26,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 AIPlayer ai, final SpellAbility sa) { + protected boolean canPlayAI(final Player ai, final SpellAbility sa) { String valid = ""; final Card source = sa.getSourceCard(); final GameState game = ai.getGame(); @@ -146,7 +145,7 @@ public class PumpAllAi extends PumpAiBase { } // pumpAllCanPlayAI() @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { return true; } @@ -154,7 +153,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(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return true; } diff --git a/src/main/java/forge/card/ability/ai/RearrangeTopOfLibraryAi.java b/src/main/java/forge/card/ability/ai/RearrangeTopOfLibraryAi.java index c0d4469038c..3e6b2978538 100644 --- a/src/main/java/forge/card/ability/ai/RearrangeTopOfLibraryAi.java +++ b/src/main/java/forge/card/ability/ai/RearrangeTopOfLibraryAi.java @@ -4,7 +4,6 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.AIPlayer; import forge.game.player.Player; public class RearrangeTopOfLibraryAi extends SpellAbilityAi { @@ -12,7 +11,7 @@ public class RearrangeTopOfLibraryAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { return false; } @@ -20,7 +19,7 @@ public class RearrangeTopOfLibraryAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); diff --git a/src/main/java/forge/card/ability/ai/RegenerateAi.java b/src/main/java/forge/card/ability/ai/RegenerateAi.java index 39208cc127c..6ecda5e764a 100644 --- a/src/main/java/forge/card/ability/ai/RegenerateAi.java +++ b/src/main/java/forge/card/ability/ai/RegenerateAi.java @@ -34,7 +34,6 @@ import forge.game.ai.ComputerUtilCard; 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; @@ -57,7 +56,7 @@ public class RegenerateAi extends SpellAbilityAi { // ************************************************************** @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Card hostCard = sa.getSourceCard(); final Cost abCost = sa.getPayCosts(); final GameState game = ai.getGame(); @@ -159,7 +158,7 @@ public class RegenerateAi extends SpellAbilityAi { } // regenerateCanPlayAI @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { boolean chance = false; final Target tgt = sa.getTarget(); diff --git a/src/main/java/forge/card/ability/ai/RegenerateAllAi.java b/src/main/java/forge/card/ability/ai/RegenerateAllAi.java index f6fe6f84ff5..06f35a2aed5 100644 --- a/src/main/java/forge/card/ability/ai/RegenerateAllAi.java +++ b/src/main/java/forge/card/ability/ai/RegenerateAllAi.java @@ -14,13 +14,13 @@ import forge.game.ai.ComputerUtil; 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; public class RegenerateAllAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Card hostCard = sa.getSourceCard(); boolean chance = false; final Cost abCost = sa.getPayCosts(); @@ -84,7 +84,7 @@ public class RegenerateAllAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { boolean chance = true; return chance; diff --git a/src/main/java/forge/card/ability/ai/RemoveFromCombatAi.java b/src/main/java/forge/card/ability/ai/RemoveFromCombatAi.java index 1131e236eb1..112a9cd5b39 100644 --- a/src/main/java/forge/card/ability/ai/RemoveFromCombatAi.java +++ b/src/main/java/forge/card/ability/ai/RemoveFromCombatAi.java @@ -3,18 +3,18 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class RemoveFromCombatAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { // disabled for the AI for now. Only for Gideon Jura at this time. return false; } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { // AI should only activate this during Human's turn // TODO - implement AI @@ -25,7 +25,7 @@ public class RemoveFromCombatAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { boolean chance; // TODO - implement AI diff --git a/src/main/java/forge/card/ability/ai/RepeatAi.java b/src/main/java/forge/card/ability/ai/RepeatAi.java index d0f29b5e637..0e1f74fc3aa 100644 --- a/src/main/java/forge/card/ability/ai/RepeatAi.java +++ b/src/main/java/forge/card/ability/ai/RepeatAi.java @@ -4,13 +4,12 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.player.AIPlayer; import forge.game.player.Player; public class RepeatAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Player opp = ai.getOpponent(); if (tgt != null) { diff --git a/src/main/java/forge/card/ability/ai/RepeatEachAi.java b/src/main/java/forge/card/ability/ai/RepeatEachAi.java index 7cd24bd987d..fac0e1bc6ba 100644 --- a/src/main/java/forge/card/ability/ai/RepeatEachAi.java +++ b/src/main/java/forge/card/ability/ai/RepeatEachAi.java @@ -12,7 +12,6 @@ import forge.CounterType; import forge.card.ability.SpellAbilityAi; 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; @@ -26,7 +25,7 @@ public class RepeatEachAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { String logic = sa.getParam("AILogic"); if ("CloneMyTokens".equals(logic)) { diff --git a/src/main/java/forge/card/ability/ai/RestartGameAi.java b/src/main/java/forge/card/ability/ai/RestartGameAi.java index 8d97e804310..53e8653669d 100644 --- a/src/main/java/forge/card/ability/ai/RestartGameAi.java +++ b/src/main/java/forge/card/ability/ai/RestartGameAi.java @@ -2,7 +2,7 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class RestartGameAi extends SpellAbilityAi { @@ -15,7 +15,7 @@ public class RestartGameAi extends SpellAbilityAi { * forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player 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 SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player 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/ability/ai/RevealAi.java b/src/main/java/forge/card/ability/ai/RevealAi.java index 35ef9631753..8dd33d34954 100644 --- a/src/main/java/forge/card/ability/ai/RevealAi.java +++ b/src/main/java/forge/card/ability/ai/RevealAi.java @@ -7,12 +7,12 @@ import forge.card.ability.SpellAbilityAi; import forge.card.cost.Cost; import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtilCost; -import forge.game.player.AIPlayer; +import forge.game.player.Player; import forge.util.MyRandom; public class RevealAi extends RevealAiBase { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player 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(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { if (!revealHandTargetAI(ai, sa/*, false, mandatory*/)) { return false; diff --git a/src/main/java/forge/card/ability/ai/RevealAiBase.java b/src/main/java/forge/card/ability/ai/RevealAiBase.java index c5bc97eac75..4d1a9599b2a 100644 --- a/src/main/java/forge/card/ability/ai/RevealAiBase.java +++ b/src/main/java/forge/card/ability/ai/RevealAiBase.java @@ -4,7 +4,6 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; 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; @@ -38,7 +37,7 @@ public abstract class RevealAiBase extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player) */ @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { revealHandTargetAI(ai, sa); return true; } diff --git a/src/main/java/forge/card/ability/ai/RevealHandAi.java b/src/main/java/forge/card/ability/ai/RevealHandAi.java index b870ca4a72b..d6d0426e264 100644 --- a/src/main/java/forge/card/ability/ai/RevealHandAi.java +++ b/src/main/java/forge/card/ability/ai/RevealHandAi.java @@ -7,7 +7,7 @@ import forge.card.ability.SpellAbilityAi; import forge.card.cost.Cost; import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtilCost; -import forge.game.player.AIPlayer; +import forge.game.player.Player; 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(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player 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(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { if (!revealHandTargetAI(ai, sa/*, false, mandatory*/)) { return false; diff --git a/src/main/java/forge/card/ability/ai/SacrificeAi.java b/src/main/java/forge/card/ability/ai/SacrificeAi.java index 2bf77488e4d..c5106a419aa 100644 --- a/src/main/java/forge/card/ability/ai/SacrificeAi.java +++ b/src/main/java/forge/card/ability/ai/SacrificeAi.java @@ -11,7 +11,6 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCard; import forge.game.ai.ComputerUtilMana; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -21,20 +20,20 @@ public class SacrificeAi extends SpellAbilityAi { // ************************************************************** @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { return sacrificeTgtAI(ai, sa); } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { // AI should only activate this during Human's turn return sacrificeTgtAI(ai, sa); } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player 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/ability/ai/SacrificeAllAi.java b/src/main/java/forge/card/ability/ai/SacrificeAllAi.java index b6fc3d3b307..48af1692d1d 100644 --- a/src/main/java/forge/card/ability/ai/SacrificeAllAi.java +++ b/src/main/java/forge/card/ability/ai/SacrificeAllAi.java @@ -11,14 +11,14 @@ import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtilCard; 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; public class SacrificeAllAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player 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 SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { //TODO: Add checks for bad outcome return true; } diff --git a/src/main/java/forge/card/ability/ai/ScryAi.java b/src/main/java/forge/card/ability/ai/ScryAi.java index 0fc78028934..47ac3ed1e51 100644 --- a/src/main/java/forge/card/ability/ai/ScryAi.java +++ b/src/main/java/forge/card/ability/ai/ScryAi.java @@ -5,7 +5,7 @@ import java.util.Random; import forge.card.ability.SpellAbilityAi; 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 ScryAi extends SpellAbilityAi { @@ -14,7 +14,7 @@ public class ScryAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt != null) { // It doesn't appear that Scry ever targets @@ -28,13 +28,13 @@ public class ScryAi extends SpellAbilityAi { } // scryTargetAI() @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { return doTriggerAINoCost(ai, sa, false); } @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player 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/ability/ai/SetStateAi.java b/src/main/java/forge/card/ability/ai/SetStateAi.java index ed60cc56010..cc32f729516 100644 --- a/src/main/java/forge/card/ability/ai/SetStateAi.java +++ b/src/main/java/forge/card/ability/ai/SetStateAi.java @@ -3,16 +3,16 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class SetStateAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { return false; } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { // Gross generalization, but this always considers alternate // states more powerful return !sa.getSourceCard().isInAlternateState(); @@ -23,7 +23,7 @@ public class SetStateAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return true; } } diff --git a/src/main/java/forge/card/ability/ai/ShuffleAi.java b/src/main/java/forge/card/ability/ai/ShuffleAi.java index 4626f34608e..4b82e6b4074 100644 --- a/src/main/java/forge/card/ability/ai/ShuffleAi.java +++ b/src/main/java/forge/card/ability/ai/ShuffleAi.java @@ -2,11 +2,11 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class ShuffleAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player 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 SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer aiPlayer) { + public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { return shuffleTargetAI(/*sa, false, false*/); } @@ -40,7 +40,7 @@ public class ShuffleAi extends SpellAbilityAi { } // shuffleTargetAI() @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { if (!shuffleTargetAI(/*sa, false, mandatory*/)) { return false; } diff --git a/src/main/java/forge/card/ability/ai/StoreSVarAi.java b/src/main/java/forge/card/ability/ai/StoreSVarAi.java index 8a75e0c7ed2..9f40a8d4484 100644 --- a/src/main/java/forge/card/ability/ai/StoreSVarAi.java +++ b/src/main/java/forge/card/ability/ai/StoreSVarAi.java @@ -5,12 +5,12 @@ import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.game.ai.ComputerUtil; import forge.game.ai.ComputerUtilCombat; -import forge.game.player.AIPlayer; +import forge.game.player.Player; public class StoreSVarAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { //Tree of Redemption final Card source = sa.getSourceCard(); @@ -23,7 +23,7 @@ public class StoreSVarAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return true; } diff --git a/src/main/java/forge/card/ability/ai/TapAi.java b/src/main/java/forge/card/ability/ai/TapAi.java index 4ee43aa03e9..5a5d827a82c 100644 --- a/src/main/java/forge/card/ability/ai/TapAi.java +++ b/src/main/java/forge/card/ability/ai/TapAi.java @@ -10,13 +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.AIPlayer; import forge.game.player.Player; import forge.util.MyRandom; public class TapAi extends TapAiBase { @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final PhaseHandler phase = ai.getGame().getPhaseHandler(); final Player turn = phase.getPlayerTurn(); diff --git a/src/main/java/forge/card/ability/ai/TapAiBase.java b/src/main/java/forge/card/ability/ai/TapAiBase.java index 5f80927b1fa..ace071843de 100644 --- a/src/main/java/forge/card/ability/ai/TapAiBase.java +++ b/src/main/java/forge/card/ability/ai/TapAiBase.java @@ -18,7 +18,6 @@ import forge.game.ai.ComputerUtilCard; 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; @@ -279,7 +278,7 @@ public abstract class TapAiBase extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); @@ -305,7 +304,7 @@ public abstract class TapAiBase extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); diff --git a/src/main/java/forge/card/ability/ai/TapAllAi.java b/src/main/java/forge/card/ability/ai/TapAllAi.java index d66c4e3f7a8..4fbdcee25b1 100644 --- a/src/main/java/forge/card/ability/ai/TapAllAi.java +++ b/src/main/java/forge/card/ability/ai/TapAllAi.java @@ -15,7 +15,6 @@ import forge.card.spellability.Target; import forge.game.GameState; 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; @@ -26,7 +25,7 @@ public class TapAllAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(final AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(final Player ai, SpellAbility sa) { // If tapping all creatures do it either during declare attackers of AIs // turn // or during upkeep/begin combat? @@ -117,7 +116,7 @@ public class TapAllAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(final AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(final Player ai, SpellAbility sa, boolean mandatory) { final Card source = sa.getSourceCard(); String valid = ""; diff --git a/src/main/java/forge/card/ability/ai/TapOrUntapAi.java b/src/main/java/forge/card/ability/ai/TapOrUntapAi.java index 7bdc958adc8..1d67a7bc6b0 100644 --- a/src/main/java/forge/card/ability/ai/TapOrUntapAi.java +++ b/src/main/java/forge/card/ability/ai/TapOrUntapAi.java @@ -7,7 +7,7 @@ import forge.Card; import forge.card.ability.AbilityUtils; 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 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(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); diff --git a/src/main/java/forge/card/ability/ai/TapOrUntapAllAi.java b/src/main/java/forge/card/ability/ai/TapOrUntapAllAi.java index 9c0e085117e..228b36cc0ab 100644 --- a/src/main/java/forge/card/ability/ai/TapOrUntapAllAi.java +++ b/src/main/java/forge/card/ability/ai/TapOrUntapAllAi.java @@ -2,7 +2,7 @@ package forge.card.ability.ai; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; /** * TODO: Write javadoc for this type. @@ -14,7 +14,7 @@ public class TapOrUntapAllAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player 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/ability/ai/TokenAi.java b/src/main/java/forge/card/ability/ai/TokenAi.java index a3bf649a18c..ce07905e620 100644 --- a/src/main/java/forge/card/ability/ai/TokenAi.java +++ b/src/main/java/forge/card/ability/ai/TokenAi.java @@ -14,7 +14,6 @@ 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; @@ -65,7 +64,7 @@ public class TokenAi extends SpellAbilityAi { } @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Cost cost = sa.getPayCosts(); final GameState game = ai.getGame(); readParameters(sa); @@ -181,7 +180,7 @@ public class TokenAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player 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/ability/ai/TwoPilesAi.java b/src/main/java/forge/card/ability/ai/TwoPilesAi.java index 25699940197..7e91e6c2459 100644 --- a/src/main/java/forge/card/ability/ai/TwoPilesAi.java +++ b/src/main/java/forge/card/ability/ai/TwoPilesAi.java @@ -9,7 +9,6 @@ import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityAi; 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; @@ -19,7 +18,7 @@ public class TwoPilesAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Card card = sa.getSourceCard(); ZoneType zone = null; @@ -62,7 +61,7 @@ public class TwoPilesAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return false; } } diff --git a/src/main/java/forge/card/ability/ai/UnattachAllAi.java b/src/main/java/forge/card/ability/ai/UnattachAllAi.java index 782e5122455..b4c5ee03b7e 100644 --- a/src/main/java/forge/card/ability/ai/UnattachAllAi.java +++ b/src/main/java/forge/card/ability/ai/UnattachAllAi.java @@ -12,7 +12,6 @@ import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCard; 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 +21,7 @@ public class UnattachAllAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Random r = MyRandom.getRandom(); final Cost abCost = sa.getPayCosts(); final Card source = sa.getSourceCard(); @@ -63,7 +62,7 @@ public class UnattachAllAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) */ @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Card card = sa.getSourceCard(); final Player opp = ai.getOpponent(); // Check if there are any valid targets @@ -93,7 +92,7 @@ public class UnattachAllAi extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { // AI should only activate this during Human's turn return canPlayAI(ai, sa); } diff --git a/src/main/java/forge/card/ability/ai/UntapAi.java b/src/main/java/forge/card/ability/ai/UntapAi.java index 301cb8f2258..f83c1f583ee 100644 --- a/src/main/java/forge/card/ability/ai/UntapAi.java +++ b/src/main/java/forge/card/ability/ai/UntapAi.java @@ -13,7 +13,6 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.ai.ComputerUtilCard; 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 +23,7 @@ public class UntapAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { final Target tgt = sa.getTarget(); final Card source = sa.getSourceCard(); final Cost cost = sa.getPayCosts(); @@ -51,7 +50,7 @@ public class UntapAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer ai, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { final Target tgt = sa.getTarget(); if (tgt == null) { @@ -79,7 +78,7 @@ public class UntapAi extends SpellAbilityAi { } @Override - public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + public boolean chkAIDrawback(SpellAbility sa, Player ai) { final Target tgt = sa.getTarget(); boolean randomReturn = true; diff --git a/src/main/java/forge/card/ability/ai/UntapAllAi.java b/src/main/java/forge/card/ability/ai/UntapAllAi.java index 72acab5402b..aa7d9e11634 100644 --- a/src/main/java/forge/card/ability/ai/UntapAllAi.java +++ b/src/main/java/forge/card/ability/ai/UntapAllAi.java @@ -7,13 +7,13 @@ import forge.CardLists; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; import forge.game.zone.ZoneType; public class UntapAllAi extends SpellAbilityAi { @Override - protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { final Card source = sa.getSourceCard(); final AbilitySub abSub = sa.getSubAbility(); @@ -30,7 +30,7 @@ public class UntapAllAi extends SpellAbilityAi { } @Override - protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) { + protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { return mandatory; } diff --git a/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java b/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java index 261b2e402cc..1e0dacde2ae 100644 --- a/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java +++ b/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java @@ -23,7 +23,6 @@ import forge.card.trigger.TriggerType; import forge.control.input.InputSelectCardsFromList; import forge.game.GameState; import forge.game.ai.ComputerUtilCard; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.Zone; import forge.game.zone.ZoneType; @@ -595,7 +594,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { if (decider == null) { decider = player; } - if (decider instanceof AIPlayer) { + if (decider.isComputer()) { ChangeZoneAi.hiddenOriginResolveAI(decider, sa, player); } else { changeHiddenOriginResolveHuman(decider, sa, player); diff --git a/src/main/java/forge/card/ability/effects/CharmEffect.java b/src/main/java/forge/card/ability/effects/CharmEffect.java index b6fc42d66db..f4d8a1793c9 100644 --- a/src/main/java/forge/card/ability/effects/CharmEffect.java +++ b/src/main/java/forge/card/ability/effects/CharmEffect.java @@ -9,7 +9,6 @@ import forge.card.ability.SpellAbilityEffect; import forge.card.ability.ai.CharmAi; import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.gui.GuiChoose; @@ -65,7 +64,7 @@ public class CharmEffect extends SpellAbilityEffect { chooser = opponents.get(0); } else { if (activator.isComputer()) { - chooser = CharmAi.determineOpponentChooser((AIPlayer)activator, sa, opponents); + chooser = CharmAi.determineOpponentChooser(activator, sa, opponents); } else { chooser = GuiChoose.one("Choose an opponent", opponents); } @@ -91,7 +90,7 @@ public class CharmEffect extends SpellAbilityEffect { chosen.add(a); } } else { - chosen = CharmAi.chooseOptionsAi((AIPlayer)chooser, sa.isTrigger(), choices, num, min, !chooser.equals(activator)); + chosen = CharmAi.chooseOptionsAi(chooser, sa.isTrigger(), choices, num, min, !chooser.equals(activator)); } chainAbilities(sa, chosen); diff --git a/src/main/java/forge/card/ability/effects/CounterEffect.java b/src/main/java/forge/card/ability/effects/CounterEffect.java index 67653366c2c..5bdc63ffc72 100644 --- a/src/main/java/forge/card/ability/effects/CounterEffect.java +++ b/src/main/java/forge/card/ability/effects/CounterEffect.java @@ -8,7 +8,6 @@ import forge.Card; import forge.card.ability.SpellAbilityEffect; import forge.card.cardfactory.CardFactoryUtil; import forge.game.GameState; -import forge.game.player.AIPlayer; import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbilityStackInstance; import forge.card.spellability.SpellPermanent; @@ -146,7 +145,7 @@ public class CounterEffect extends SpellAbilityEffect { String destination = srcSA.hasParam("Destination") ? srcSA.getParam("Destination") : "Graveyard"; if (srcSA.hasParam("DestinationChoice")) {//Hinder final String[] pos = srcSA.getParam("DestinationChoice").split(","); - if (srcSA.getActivatingPlayer() instanceof AIPlayer) { + if (srcSA.getActivatingPlayer().isComputer()) { destination = pos[0]; } else { final String prompt = "Select a destination to remove"; diff --git a/src/main/java/forge/card/ability/effects/PeekAndRevealEffect.java b/src/main/java/forge/card/ability/effects/PeekAndRevealEffect.java index bb73f8b2479..5eb82284d52 100644 --- a/src/main/java/forge/card/ability/effects/PeekAndRevealEffect.java +++ b/src/main/java/forge/card/ability/effects/PeekAndRevealEffect.java @@ -10,7 +10,6 @@ import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityEffect; import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.PlayerZone; import forge.game.zone.ZoneType; @@ -69,7 +68,7 @@ public class PeekAndRevealEffect extends SpellAbilityEffect { if (doReveal && revealOptional) { // If AbilitySub subAb = sa.getSubAbility(); - doReveal = subAb != null && subAb.getAi().chkDrawbackWithSubs((AIPlayer)peekingPlayer, subAb); + doReveal = subAb != null && subAb.getAi().chkDrawbackWithSubs(peekingPlayer, subAb); } } diff --git a/src/main/java/forge/card/ability/effects/PlayEffect.java b/src/main/java/forge/card/ability/effects/PlayEffect.java index 7a791bfcd1e..6f6c2888fc5 100644 --- a/src/main/java/forge/card/ability/effects/PlayEffect.java +++ b/src/main/java/forge/card/ability/effects/PlayEffect.java @@ -22,7 +22,6 @@ import forge.card.spellability.SpellAbilityRestriction; import forge.game.GameState; import forge.game.ai.ComputerUtil; import forge.game.ai.ComputerUtilCard; -import forge.game.player.AIPlayer; import forge.game.player.HumanPlay; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -251,9 +250,9 @@ public class PlayEffect extends SpellAbilityEffect { Spell spell = (Spell) tgtSA; if (spell.canPlayFromEffectAI(!optional, noManaCost) || !optional) { if (noManaCost) { - ComputerUtil.playSpellAbilityWithoutPayingManaCost((AIPlayer)controller, tgtSA, game); + ComputerUtil.playSpellAbilityWithoutPayingManaCost(controller, tgtSA, game); } else { - ComputerUtil.playStack(tgtSA, (AIPlayer)controller, game); + ComputerUtil.playStack(tgtSA, controller, game); } } else remember = false; // didn't play spell diff --git a/src/main/java/forge/card/cardfactory/CardFactorySorceries.java b/src/main/java/forge/card/cardfactory/CardFactorySorceries.java index 62d03cc5767..e43ca7048e2 100644 --- a/src/main/java/forge/card/cardfactory/CardFactorySorceries.java +++ b/src/main/java/forge/card/cardfactory/CardFactorySorceries.java @@ -35,7 +35,6 @@ import forge.control.input.InputSelectCards; import forge.control.input.InputSelectCardsFromList; import forge.game.GameState; import forge.game.ai.AiController; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.player.PlayerControllerAi; import forge.game.zone.ZoneType; diff --git a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java index 469eebacc89..53cf45293de 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java @@ -71,7 +71,6 @@ import forge.game.ai.ComputerUtilCard; 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.PlayerZone; import forge.game.zone.Zone; @@ -2831,7 +2830,7 @@ public class CardFactoryUtil { @Override public boolean canPlayAI() { - if (!SpellPermanent.checkETBEffects(card, (AIPlayer) this.getActivatingPlayer())) { + if (!SpellPermanent.checkETBEffects(card, this.getActivatingPlayer())) { return false; } return super.canPlayAI(); diff --git a/src/main/java/forge/card/cost/CostDamage.java b/src/main/java/forge/card/cost/CostDamage.java index a7b0af5c712..5d2bd1566fa 100644 --- a/src/main/java/forge/card/cost/CostDamage.java +++ b/src/main/java/forge/card/cost/CostDamage.java @@ -21,7 +21,6 @@ import forge.Card; import forge.card.ability.AbilityUtils; import forge.card.spellability.SpellAbility; import forge.game.GameState; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.gui.GuiDialog; @@ -65,7 +64,7 @@ public class CostDamage extends CostPart { * forge.Card, forge.card.cost.Cost_Payment) */ @Override - public final void payAI(final PaymentDecision decision, final AIPlayer ai, SpellAbility ability, Card source) { + public final void payAI(final PaymentDecision decision, final Player ai, SpellAbility ability, Card source) { ability.getActivatingPlayer().addDamage(decision.c, source); } @@ -113,7 +112,7 @@ public class CostDamage extends CostPart { * , forge.Card, forge.card.cost.Cost_Payment) */ @Override - public final PaymentDecision decideAIPayment(final AIPlayer ai, final SpellAbility ability, final Card source) { + public final PaymentDecision decideAIPayment(final Player ai, final SpellAbility ability, final Card source) { Integer c = this.convertAmount(); if (c == null) { diff --git a/src/main/java/forge/card/cost/CostDiscard.java b/src/main/java/forge/card/cost/CostDiscard.java index 32ba9c3bd58..d09306380d6 100644 --- a/src/main/java/forge/card/cost/CostDiscard.java +++ b/src/main/java/forge/card/cost/CostDiscard.java @@ -31,7 +31,6 @@ import forge.control.input.InputSelectCards; import forge.control.input.InputSelectCardsFromList; import forge.game.GameState; import forge.game.ai.AiController; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.player.PlayerControllerAi; import forge.game.zone.ZoneType; @@ -243,7 +242,7 @@ public class CostDiscard extends CostPartWithList { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { final String type = this.getType(); final List hand = ai.getCardsIn(ZoneType.Hand); @@ -306,7 +305,7 @@ public class CostDiscard extends CostPartWithList { * @see forge.card.cost.CostPart#payAI(forge.card.cost.PaymentDecision, forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public void payAI(PaymentDecision decision, AIPlayer ai, SpellAbility ability, Card source) { + public void payAI(PaymentDecision decision, Player ai, SpellAbility ability, Card source) { executePayment(ability, decision.cards); } diff --git a/src/main/java/forge/card/cost/CostExile.java b/src/main/java/forge/card/cost/CostExile.java index d45c2e4d690..8206bb489f0 100644 --- a/src/main/java/forge/card/cost/CostExile.java +++ b/src/main/java/forge/card/cost/CostExile.java @@ -31,7 +31,6 @@ import forge.control.input.InputSelectCards; import forge.control.input.InputSelectCardsFromList; import forge.game.GameState; import forge.game.ai.ComputerUtil; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.MagicStack; import forge.game.zone.ZoneType; @@ -453,7 +452,7 @@ public class CostExile extends CostPartWithList { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { if (this.payCostFromSource()) { return new PaymentDecision(source); } @@ -488,7 +487,7 @@ public class CostExile extends CostPartWithList { * @see forge.card.cost.CostPart#payAI(forge.card.cost.PaymentDecision, forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public void payAI(PaymentDecision decision, AIPlayer ai, SpellAbility ability, Card source) { + public void payAI(PaymentDecision decision, Player ai, SpellAbility ability, Card source) { for (final Card c : decision.cards) { executePayment(ability, c); if (this.from.equals(ZoneType.Stack)) { diff --git a/src/main/java/forge/card/cost/CostExileAndPay.java b/src/main/java/forge/card/cost/CostExileAndPay.java index da394f0c061..52cc20a1424 100644 --- a/src/main/java/forge/card/cost/CostExileAndPay.java +++ b/src/main/java/forge/card/cost/CostExileAndPay.java @@ -10,7 +10,7 @@ import forge.card.spellability.SpellPermanent; import forge.game.GameState; import forge.game.ai.ComputerUtilCard; import forge.game.ai.ComputerUtilCost; -import forge.game.player.AIPlayer; +import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.gui.GuiChoose; @@ -48,7 +48,7 @@ public class CostExileAndPay extends CostPartWithList { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { List validGrave = CardLists.getValidCards(ability.getActivatingPlayer().getZone(ZoneType.Graveyard), "Creature", ability.getActivatingPlayer(), ability.getSourceCard()); if(validGrave.size() == 0) @@ -142,7 +142,7 @@ public class CostExileAndPay extends CostPartWithList { * @see forge.card.cost.CostPart#payAI(forge.card.cost.PaymentDecision, forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public void payAI(PaymentDecision decision, AIPlayer ai, SpellAbility ability, Card source) { + public void payAI(PaymentDecision decision, Player ai, SpellAbility ability, Card source) { for (final Card c : decision.cards) { executePayment(ability, c); for(SpellAbility sa : c.getSpellAbilities()) diff --git a/src/main/java/forge/card/cost/CostGainLife.java b/src/main/java/forge/card/cost/CostGainLife.java index dd2c1addfd0..99098931881 100644 --- a/src/main/java/forge/card/cost/CostGainLife.java +++ b/src/main/java/forge/card/cost/CostGainLife.java @@ -24,7 +24,6 @@ import forge.Card; import forge.card.ability.AbilityUtils; import forge.card.spellability.SpellAbility; import forge.game.GameState; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.gui.GuiChoose; @@ -99,7 +98,7 @@ public class CostGainLife extends CostPart { * forge.Card, forge.card.cost.Cost_Payment) */ @Override - public final void payAI(final PaymentDecision decision, final AIPlayer ai, SpellAbility ability, Card source) { + public final void payAI(final PaymentDecision decision, final Player ai, SpellAbility ability, Card source) { int playersLeft = cntPlayers; for (final Player opp : getPotentialTargets(ai, source)) { if (opp.canGainLife() && playersLeft > 0) { @@ -170,7 +169,7 @@ public class CostGainLife extends CostPart { * , forge.Card, forge.card.cost.Cost_Payment) */ @Override - public final PaymentDecision decideAIPayment(final AIPlayer ai, final SpellAbility ability, final Card source) { + public final PaymentDecision decideAIPayment(final Player ai, final SpellAbility ability, final Card source) { Integer c = this.convertAmount(); if (c == null) { final String sVar = ability.getSVar(this.getAmount()); diff --git a/src/main/java/forge/card/cost/CostMill.java b/src/main/java/forge/card/cost/CostMill.java index f654cf8ca5f..133648d1d43 100644 --- a/src/main/java/forge/card/cost/CostMill.java +++ b/src/main/java/forge/card/cost/CostMill.java @@ -23,7 +23,6 @@ import forge.Card; import forge.card.ability.AbilityUtils; import forge.card.spellability.SpellAbility; import forge.game.GameState; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.PlayerZone; import forge.game.zone.ZoneType; @@ -156,7 +155,7 @@ public class CostMill extends CostPartWithList { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { Integer c = this.convertAmount(); if (c == null) { final String sVar = ability.getSVar(this.getAmount()); diff --git a/src/main/java/forge/card/cost/CostPart.java b/src/main/java/forge/card/cost/CostPart.java index 9b652642324..b2bd33a5719 100644 --- a/src/main/java/forge/card/cost/CostPart.java +++ b/src/main/java/forge/card/cost/CostPart.java @@ -23,7 +23,7 @@ import org.apache.commons.lang3.StringUtils; import forge.Card; import forge.card.spellability.SpellAbility; import forge.game.GameState; -import forge.game.player.AIPlayer; +import forge.game.player.Player; /** * The Class CostPart. @@ -163,7 +163,7 @@ public abstract class CostPart { * {@link forge.card.cost.CostPayment} * @return true, if successful */ - public abstract PaymentDecision decideAIPayment(final AIPlayer ai, SpellAbility ability, Card source); + public abstract PaymentDecision decideAIPayment(final Player ai, SpellAbility ability, Card source); /** * Pay ai. @@ -178,7 +178,7 @@ public abstract class CostPart { * {@link forge.card.cost.CostPayment} * @param game */ - public abstract void payAI(final PaymentDecision decision, final AIPlayer ai, SpellAbility ability, Card source); + public abstract void payAI(final PaymentDecision decision, final Player ai, SpellAbility ability, Card source); /** * Pay human. diff --git a/src/main/java/forge/card/cost/CostPartMana.java b/src/main/java/forge/card/cost/CostPartMana.java index d39cbff42b0..ff0cabfc33b 100644 --- a/src/main/java/forge/card/cost/CostPartMana.java +++ b/src/main/java/forge/card/cost/CostPartMana.java @@ -30,7 +30,7 @@ import forge.control.input.InputPayManaX; import forge.control.input.InputPayment; import forge.game.GameState; import forge.game.ai.ComputerUtilMana; -import forge.game.player.AIPlayer; +import forge.game.player.Player; /** * The mana component of any spell or ability cost @@ -157,7 +157,7 @@ public class CostPartMana extends CostPart { * @see forge.card.cost.CostPart#payAI(forge.card.cost.PaymentDecision, forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public void payAI(PaymentDecision decision, AIPlayer ai, SpellAbility ability, Card source) { + public void payAI(PaymentDecision decision, Player ai, SpellAbility ability, Card source) { ComputerUtilMana.payManaCost(ai, ability); } @@ -166,7 +166,7 @@ public class CostPartMana extends CostPart { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { return new PaymentDecision(0); } diff --git a/src/main/java/forge/card/cost/CostPartWithList.java b/src/main/java/forge/card/cost/CostPartWithList.java index 5326433eddd..c09b85a2f68 100644 --- a/src/main/java/forge/card/cost/CostPartWithList.java +++ b/src/main/java/forge/card/cost/CostPartWithList.java @@ -23,7 +23,7 @@ import java.util.List; import forge.Card; import forge.CardUtil; import forge.card.spellability.SpellAbility; -import forge.game.player.AIPlayer; +import forge.game.player.Player; /** * The Class CostPartWithList. @@ -122,7 +122,7 @@ public abstract class CostPartWithList extends CostPart { public abstract String getHashForList(); @Override - public void payAI(PaymentDecision decision, AIPlayer ai, SpellAbility ability, Card source) { + public void payAI(PaymentDecision decision, Player ai, SpellAbility ability, Card source) { executePayment(ability, decision.cards); reportPaidCardsTo(ability); } diff --git a/src/main/java/forge/card/cost/CostPayLife.java b/src/main/java/forge/card/cost/CostPayLife.java index 5fb290f5d1f..cf048ee6ed0 100644 --- a/src/main/java/forge/card/cost/CostPayLife.java +++ b/src/main/java/forge/card/cost/CostPayLife.java @@ -21,7 +21,6 @@ import forge.Card; import forge.card.ability.AbilityUtils; import forge.card.spellability.SpellAbility; import forge.game.GameState; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.gui.GuiDialog; @@ -98,7 +97,7 @@ public class CostPayLife extends CostPart { * @see forge.card.cost.CostPart#payAI(forge.card.cost.PaymentDecision, forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public void payAI(PaymentDecision decision, AIPlayer ai, SpellAbility ability, Card source) { + public void payAI(PaymentDecision decision, Player ai, SpellAbility ability, Card source) { // TODO Auto-generated method stub paidAmount = decision.c; ai.payLife(paidAmount, null); @@ -150,7 +149,7 @@ public class CostPayLife extends CostPart { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { Integer c = this.convertAmount(); if (c == null) { final String sVar = ability.getSVar(this.getAmount()); diff --git a/src/main/java/forge/card/cost/CostPayment.java b/src/main/java/forge/card/cost/CostPayment.java index 324401f94da..10e3813ea01 100644 --- a/src/main/java/forge/card/cost/CostPayment.java +++ b/src/main/java/forge/card/cost/CostPayment.java @@ -25,7 +25,6 @@ import forge.Card; import forge.card.mana.ManaCost; import forge.card.spellability.SpellAbility; import forge.game.GameState; -import forge.game.player.AIPlayer; import forge.game.player.Player; /** @@ -169,7 +168,7 @@ public class CostPayment { * * @return a boolean. */ - public final boolean payComputerCosts(final AIPlayer ai, final GameState game) { + public final boolean payComputerCosts(final Player ai, final GameState game) { // canPayAdditionalCosts now Player Agnostic // Just in case it wasn't set, but honestly it shouldn't have gotten diff --git a/src/main/java/forge/card/cost/CostPutCounter.java b/src/main/java/forge/card/cost/CostPutCounter.java index 412e40813f6..a21c2588c00 100644 --- a/src/main/java/forge/card/cost/CostPutCounter.java +++ b/src/main/java/forge/card/cost/CostPutCounter.java @@ -27,7 +27,6 @@ import forge.card.spellability.SpellAbility; import forge.control.input.InputPayment; import forge.game.GameState; import forge.game.ai.ComputerUtilCard; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.gui.match.CMatchUI; @@ -215,7 +214,7 @@ public class CostPutCounter extends CostPartWithList { * forge.Card, forge.card.cost.Cost_Payment) */ @Override - public void payAI(PaymentDecision decision, AIPlayer ai, SpellAbility ability, Card source) { + public void payAI(PaymentDecision decision, Player ai, SpellAbility ability, Card source) { Integer c = getNumberOfCounters(ability); if (this.payCostFromSource()) { @@ -285,7 +284,7 @@ public class CostPutCounter extends CostPartWithList { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { if (this.payCostFromSource()) { return new PaymentDecision(source); diff --git a/src/main/java/forge/card/cost/CostRemoveCounter.java b/src/main/java/forge/card/cost/CostRemoveCounter.java index 838c53d042a..bffcf44c271 100644 --- a/src/main/java/forge/card/cost/CostRemoveCounter.java +++ b/src/main/java/forge/card/cost/CostRemoveCounter.java @@ -30,7 +30,6 @@ import forge.card.ability.AbilityUtils; import forge.card.spellability.SpellAbility; import forge.control.input.InputSelectCards; import forge.game.GameState; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.gui.GuiChoose; @@ -320,7 +319,7 @@ public class CostRemoveCounter extends CostPartWithList { * @see forge.card.cost.CostPartWithList#payAI(forge.card.cost.PaymentDecision, forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public void payAI(PaymentDecision decision, AIPlayer ai, SpellAbility ability, Card source) { + public void payAI(PaymentDecision decision, Player ai, SpellAbility ability, Card source) { final String amount = this.getAmount(); Integer c = this.convertAmount(); if (c == null) { @@ -359,7 +358,7 @@ public class CostRemoveCounter extends CostPartWithList { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { final String amount = this.getAmount(); Integer c = this.convertAmount(); diff --git a/src/main/java/forge/card/cost/CostReturn.java b/src/main/java/forge/card/cost/CostReturn.java index 367f5d9e117..755b0b42179 100644 --- a/src/main/java/forge/card/cost/CostReturn.java +++ b/src/main/java/forge/card/cost/CostReturn.java @@ -28,7 +28,6 @@ import forge.control.input.InputSelectCards; import forge.control.input.InputSelectCardsFromList; import forge.game.GameState; import forge.game.ai.ComputerUtil; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.gui.GuiDialog; @@ -169,7 +168,7 @@ public class CostReturn extends CostPartWithList { * , forge.Card, forge.card.cost.Cost_Payment) */ @Override - public final PaymentDecision decideAIPayment(final AIPlayer ai, final SpellAbility ability, final Card source) { + public final PaymentDecision decideAIPayment(final Player ai, final SpellAbility ability, final Card source) { if (this.payCostFromSource()) return new PaymentDecision(source); @@ -202,7 +201,7 @@ public class CostReturn extends CostPartWithList { * @see forge.card.cost.CostPart#payAI(forge.card.cost.PaymentDecision, forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public void payAI(PaymentDecision decision, AIPlayer ai, SpellAbility ability, Card source) { + public void payAI(PaymentDecision decision, Player ai, SpellAbility ability, Card source) { for (final Card c : decision.cards) { executePayment(ability, c); } diff --git a/src/main/java/forge/card/cost/CostReveal.java b/src/main/java/forge/card/cost/CostReveal.java index 7c1c4e90fea..50af125ece7 100644 --- a/src/main/java/forge/card/cost/CostReveal.java +++ b/src/main/java/forge/card/cost/CostReveal.java @@ -32,7 +32,6 @@ import forge.control.input.InputSelectCards; import forge.control.input.InputSelectCardsFromList; import forge.game.GameState; import forge.game.ai.AiController; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.player.PlayerControllerAi; import forge.game.zone.ZoneType; @@ -104,7 +103,7 @@ public class CostReveal extends CostPartWithList { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { final String type = this.getType(); List hand = new ArrayList(ai.getCardsIn(ZoneType.Hand)); diff --git a/src/main/java/forge/card/cost/CostSacrifice.java b/src/main/java/forge/card/cost/CostSacrifice.java index 4b1c0a75e25..b77963e8b49 100644 --- a/src/main/java/forge/card/cost/CostSacrifice.java +++ b/src/main/java/forge/card/cost/CostSacrifice.java @@ -28,7 +28,6 @@ import forge.control.input.InputSelectCards; import forge.control.input.InputSelectCardsFromList; import forge.game.GameState; import forge.game.ai.ComputerUtil; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.gui.GuiDialog; @@ -191,7 +190,7 @@ public class CostSacrifice extends CostPartWithList { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { if (this.payCostFromSource()) { return new PaymentDecision(source); diff --git a/src/main/java/forge/card/cost/CostTap.java b/src/main/java/forge/card/cost/CostTap.java index 57c1a17bb90..1d58b94bf4f 100644 --- a/src/main/java/forge/card/cost/CostTap.java +++ b/src/main/java/forge/card/cost/CostTap.java @@ -20,7 +20,7 @@ package forge.card.cost; import forge.Card; import forge.card.spellability.SpellAbility; import forge.game.GameState; -import forge.game.player.AIPlayer; +import forge.game.player.Player; /** * The Class CostTap. @@ -80,7 +80,7 @@ public class CostTap extends CostPart { * @see forge.card.cost.CostPart#payAI(forge.card.cost.PaymentDecision, forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public void payAI(PaymentDecision decision, AIPlayer ai, SpellAbility ability, Card source) { + public void payAI(PaymentDecision decision, Player ai, SpellAbility ability, Card source) { source.tap(); } @@ -105,7 +105,7 @@ public class CostTap extends CostPart { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { return new PaymentDecision(0); } } diff --git a/src/main/java/forge/card/cost/CostTapType.java b/src/main/java/forge/card/cost/CostTapType.java index d272877eade..e4b28ab00b7 100644 --- a/src/main/java/forge/card/cost/CostTapType.java +++ b/src/main/java/forge/card/cost/CostTapType.java @@ -32,7 +32,6 @@ import forge.control.input.InputSelectCards; import forge.control.input.InputSelectCardsFromList; import forge.game.GameState; import forge.game.ai.ComputerUtil; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -211,7 +210,7 @@ public class CostTapType extends CostPartWithList { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { final String amount = this.getAmount(); Integer c = this.convertAmount(); if (c == null) { diff --git a/src/main/java/forge/card/cost/CostUnattach.java b/src/main/java/forge/card/cost/CostUnattach.java index fb2b7f486ee..41ec7e3d1fa 100644 --- a/src/main/java/forge/card/cost/CostUnattach.java +++ b/src/main/java/forge/card/cost/CostUnattach.java @@ -23,7 +23,6 @@ import forge.Card; import forge.CardLists; import forge.card.spellability.SpellAbility; import forge.game.GameState; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.gui.GuiDialog; @@ -146,7 +145,7 @@ public class CostUnattach extends CostPartWithList { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { Card cardToUnattach = findCardToUnattach(source, (Player) ai, ability); if (cardToUnattach == null) { // We really shouldn't be able to get here if there's nothing to unattach diff --git a/src/main/java/forge/card/cost/CostUntap.java b/src/main/java/forge/card/cost/CostUntap.java index ecf06618e80..6252e0b97be 100644 --- a/src/main/java/forge/card/cost/CostUntap.java +++ b/src/main/java/forge/card/cost/CostUntap.java @@ -20,7 +20,7 @@ package forge.card.cost; import forge.Card; import forge.card.spellability.SpellAbility; import forge.game.GameState; -import forge.game.player.AIPlayer; +import forge.game.player.Player; /** * The Class CostUntap. @@ -97,7 +97,7 @@ public class CostUntap extends CostPart { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { return new PaymentDecision(0); } @@ -105,7 +105,7 @@ public class CostUntap extends CostPart { * @see forge.card.cost.CostPart#payAI(forge.card.cost.PaymentDecision, forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public void payAI(PaymentDecision decision, AIPlayer ai, SpellAbility ability, Card source) { + public void payAI(PaymentDecision decision, Player ai, SpellAbility ability, Card source) { source.untap(); } } diff --git a/src/main/java/forge/card/cost/CostUntapType.java b/src/main/java/forge/card/cost/CostUntapType.java index 566fd86d9a8..06f53d19e2a 100644 --- a/src/main/java/forge/card/cost/CostUntapType.java +++ b/src/main/java/forge/card/cost/CostUntapType.java @@ -28,7 +28,6 @@ import forge.control.input.InputSelectCards; import forge.control.input.InputSelectCardsFromList; import forge.game.GameState; import forge.game.ai.ComputerUtil; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -181,7 +180,7 @@ public class CostUntapType extends CostPartWithList { * @see forge.card.cost.CostPart#decideAIPayment(forge.game.player.AIPlayer, forge.card.spellability.SpellAbility, forge.Card) */ @Override - public PaymentDecision decideAIPayment(AIPlayer ai, SpellAbility ability, Card source) { + public PaymentDecision decideAIPayment(Player ai, SpellAbility ability, Card source) { final String amount = this.getAmount(); Integer c = this.convertAmount(); if (c == null) { diff --git a/src/main/java/forge/card/replacement/ReplacementEffect.java b/src/main/java/forge/card/replacement/ReplacementEffect.java index 5dfbe2da0bd..417a4296e8b 100644 --- a/src/main/java/forge/card/replacement/ReplacementEffect.java +++ b/src/main/java/forge/card/replacement/ReplacementEffect.java @@ -28,7 +28,7 @@ import forge.card.cardfactory.CardFactoryUtil; import forge.card.spellability.SpellAbility; import forge.game.GameState; import forge.game.phase.PhaseType; -import forge.game.player.AIPlayer; +import forge.game.player.Player; import forge.util.Expressions; /** @@ -67,7 +67,7 @@ public abstract class ReplacementEffect extends TriggerReplacementBase { * @param ai * @return true, if successful */ - public final boolean aiShouldRun(final SpellAbility sa, AIPlayer ai) { + public final boolean aiShouldRun(final SpellAbility sa, Player ai) { if (this.mapParams.containsKey("AICheckSVar")) { System.out.println("aiShouldRun?" + sa); final String svarToCheck = this.mapParams.get("AICheckSVar"); diff --git a/src/main/java/forge/card/replacement/ReplacementHandler.java b/src/main/java/forge/card/replacement/ReplacementHandler.java index 90feb4c162b..5196fdbf2f4 100644 --- a/src/main/java/forge/card/replacement/ReplacementHandler.java +++ b/src/main/java/forge/card/replacement/ReplacementHandler.java @@ -29,7 +29,6 @@ import forge.card.ability.AbilityUtils; import forge.card.spellability.SpellAbility; import forge.game.GameState; import forge.game.ai.ComputerUtil; -import forge.game.player.AIPlayer; import forge.game.player.HumanPlay; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -225,7 +224,7 @@ public class ReplacementHandler { } } else { // AI-logic - if (!replacementEffect.aiShouldRun(effectSA, (AIPlayer) optDecider)) { + if (!replacementEffect.aiShouldRun(effectSA, optDecider)) { return ReplacementResult.NotReplaced; } } @@ -242,7 +241,7 @@ public class ReplacementHandler { if (player.isHuman()) { HumanPlay.playSpellAbilityNoStack(player, effectSA); } else { - ComputerUtil.playNoStack((AIPlayer) player, effectSA, game); + ComputerUtil.playNoStack(player, effectSA, game); } return ReplacementResult.Replaced; diff --git a/src/main/java/forge/card/spellability/AbilitySub.java b/src/main/java/forge/card/spellability/AbilitySub.java index adcc74a7880..a33cd2e5b11 100644 --- a/src/main/java/forge/card/spellability/AbilitySub.java +++ b/src/main/java/forge/card/spellability/AbilitySub.java @@ -30,7 +30,7 @@ import forge.card.ability.effects.ManaEffect; import forge.card.ability.effects.ManaReflectedEffect; import forge.card.cardfactory.CardFactory; import forge.card.cost.Cost; -import forge.game.player.AIPlayer; +import forge.game.player.Player; /** *

@@ -122,7 +122,7 @@ public final class AbilitySub extends SpellAbility implements java.io.Serializab @Override public boolean canPlayAI() { - return ai.canPlayAIWithSubs((AIPlayer)getActivatingPlayer(), this); + return ai.canPlayAIWithSubs(getActivatingPlayer(), this); } @Override @@ -131,7 +131,7 @@ public final class AbilitySub extends SpellAbility implements java.io.Serializab } @Override - public boolean doTrigger(final boolean mandatory, AIPlayer aiPlayer) { + public boolean doTrigger(final boolean mandatory, Player aiPlayer) { return ai.doTriggerAI(aiPlayer, this, mandatory); } } diff --git a/src/main/java/forge/card/spellability/SpellAbility.java b/src/main/java/forge/card/spellability/SpellAbility.java index d2af02db152..80ee60518fa 100644 --- a/src/main/java/forge/card/spellability/SpellAbility.java +++ b/src/main/java/forge/card/spellability/SpellAbility.java @@ -35,7 +35,6 @@ import forge.card.cost.CostPartMana; import forge.card.mana.Mana; import forge.card.mana.ManaCost; import forge.game.GameState; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.util.TextUtil; @@ -214,7 +213,7 @@ public abstract class SpellAbility implements ISpellAbility { * @param ai TODO * @return a boolean. */ - public boolean doTrigger(final boolean mandatory, AIPlayer ai) { + public boolean doTrigger(final boolean mandatory, Player ai) { return false; } diff --git a/src/main/java/forge/card/spellability/SpellPermanent.java b/src/main/java/forge/card/spellability/SpellPermanent.java index fce45e328ef..a6d432b1537 100644 --- a/src/main/java/forge/card/spellability/SpellPermanent.java +++ b/src/main/java/forge/card/spellability/SpellPermanent.java @@ -43,7 +43,6 @@ 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; @@ -144,7 +143,7 @@ public class SpellPermanent extends Spell { if (mandatory) { return true; } - final AIPlayer ai = (AIPlayer) getActivatingPlayer(); + final Player ai = getActivatingPlayer(); final Card card = this.getSourceCard(); ManaCost mana = this.getPayCosts().getTotalMana(); final Cost cost = this.getPayCosts(); @@ -210,11 +209,11 @@ public class SpellPermanent extends Spell { return super.canPlayAI(); } - public static boolean checkETBEffects(final Card card, final AIPlayer ai) { + public static boolean checkETBEffects(final Card card, final Player ai) { return checkETBEffects(card, null, null, ai); } - public static boolean checkETBEffects(final Card card, final SpellAbility sa, final ApiType api, final AIPlayer ai) { + public static boolean checkETBEffects(final Card card, final SpellAbility sa, final ApiType api, final Player ai) { boolean rightapi = false; final GameState game = ai.getGame(); diff --git a/src/main/java/forge/card/trigger/TriggerHandler.java b/src/main/java/forge/card/trigger/TriggerHandler.java index dc21a3033fc..57f80f0c236 100644 --- a/src/main/java/forge/card/trigger/TriggerHandler.java +++ b/src/main/java/forge/card/trigger/TriggerHandler.java @@ -37,7 +37,6 @@ import forge.game.GameState; import forge.game.GlobalRuleChange; import forge.game.ai.ComputerUtil; import forge.game.phase.PhaseType; -import forge.game.player.AIPlayer; import forge.game.player.HumanPlay; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -432,8 +431,8 @@ public class TriggerHandler { if (wrapperAbility.getActivatingPlayer().isHuman()) { HumanPlay.playSpellAbilityNoStack(wrapperAbility.getActivatingPlayer(), wrapperAbility); } else { - wrapperAbility.doTrigger(isMandatory, (AIPlayer)wrapperAbility.getActivatingPlayer()); - ComputerUtil.playNoStack((AIPlayer)wrapperAbility.getActivatingPlayer(), wrapperAbility, game); + wrapperAbility.doTrigger(isMandatory, wrapperAbility.getActivatingPlayer()); + ComputerUtil.playNoStack(wrapperAbility.getActivatingPlayer(), wrapperAbility, game); } } else { game.getStack().addSimultaneousStackEntry(wrapperAbility); diff --git a/src/main/java/forge/card/trigger/WrappedAbility.java b/src/main/java/forge/card/trigger/WrappedAbility.java index 562df964195..1f1ce2c39f6 100644 --- a/src/main/java/forge/card/trigger/WrappedAbility.java +++ b/src/main/java/forge/card/trigger/WrappedAbility.java @@ -17,7 +17,6 @@ import forge.card.spellability.Target; import forge.card.spellability.TargetChoices; import forge.game.GameState; import forge.game.ai.ComputerUtil; -import forge.game.player.AIPlayer; import forge.game.player.HumanPlay; import forge.game.player.Player; import forge.gui.GuiDialog; @@ -144,7 +143,7 @@ public class WrappedAbility extends Ability implements ISpellAbility { } @Override - public boolean doTrigger(final boolean mandatory, AIPlayer ai) { + public boolean doTrigger(final boolean mandatory, Player ai) { return sa.doTrigger(mandatory, ai); } @@ -370,7 +369,7 @@ public class WrappedAbility extends Ability implements ISpellAbility { // commented out because i don't think this should be called // again here // sa.doTrigger(isMandatory); - ComputerUtil.playNoStack((AIPlayer)getActivatingPlayer(), sa, game); + ComputerUtil.playNoStack(getActivatingPlayer(), sa, game); } // Add eventual delayed trigger. @@ -416,7 +415,7 @@ public class WrappedAbility extends Ability implements ISpellAbility { } // There is no way this doTrigger here will have the same target as stored above // So it's possible it's making a different decision here than will actually happen - if (!sa.doTrigger(this.isMandatory(), (AIPlayer) decider)) { + if (!sa.doTrigger(this.isMandatory(), decider)) { return false; } if (storeChoices) { diff --git a/src/main/java/forge/control/input/InputMulligan.java b/src/main/java/forge/control/input/InputMulligan.java index 48a7db7ecad..c5843a30f14 100644 --- a/src/main/java/forge/control/input/InputMulligan.java +++ b/src/main/java/forge/control/input/InputMulligan.java @@ -26,7 +26,6 @@ import forge.game.GameState; import forge.game.GameType; import forge.game.MatchController; import forge.game.ai.ComputerUtil; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.Zone; import forge.game.zone.ZoneType; @@ -100,12 +99,11 @@ public class InputMulligan extends InputBase { // Computer mulligan final GameState game = match.getCurrentGame(); for (Player p : game.getPlayers()) { - if (!(p instanceof AIPlayer)) { + if (!p.isComputer()) { continue; } - AIPlayer ai = (AIPlayer) p; - while (ComputerUtil.wantMulligan(ai)) { - ai.doMulligan(); + while (ComputerUtil.wantMulligan(p)) { + p.doMulligan(); } } diff --git a/src/main/java/forge/control/input/InputPartialParisMulligan.java b/src/main/java/forge/control/input/InputPartialParisMulligan.java index e88aa258c16..bbb67843f2d 100644 --- a/src/main/java/forge/control/input/InputPartialParisMulligan.java +++ b/src/main/java/forge/control/input/InputPartialParisMulligan.java @@ -26,7 +26,6 @@ import forge.game.GameState; import forge.game.GameType; import forge.game.MatchController; import forge.game.ai.ComputerUtil; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.Zone; import forge.game.zone.ZoneType; @@ -101,14 +100,14 @@ public class InputPartialParisMulligan extends InputBase { final List aiAllExiled = new ArrayList(); for (Player p : game.getPlayers()) { - if (!(p instanceof AIPlayer)) { + if (!(p.isComputer())) { continue; } int ppcandidates = -1; - AIPlayer ai = (AIPlayer) p; + - while (ComputerUtil.wantMulligan(ai) && ppcandidates != 0) { - List cand = ComputerUtil.getPartialParisCandidates(ai); + while (ComputerUtil.wantMulligan(p) && ppcandidates != 0) { + List cand = ComputerUtil.getPartialParisCandidates(p); ppcandidates = cand.size(); if(ppcandidates != 0) { @@ -117,7 +116,7 @@ public class InputPartialParisMulligan extends InputBase { { game.action.exile(c); } - ai.drawCards(ppcandidates-1); + p.drawCards(ppcandidates-1); } } } @@ -140,14 +139,13 @@ public class InputPartialParisMulligan extends InputBase { // Computer mulligan final List aiAllExiled = new ArrayList(); for (Player p : game.getPlayers()) { - if (!(p instanceof AIPlayer)) { + if (!(p.isComputer())) { continue; } int ppcandidates = -1; - AIPlayer ai = (AIPlayer) p; - while (ComputerUtil.wantMulligan(ai) && ppcandidates != 0) { - List cand = ComputerUtil.getPartialParisCandidates(ai); + while (ComputerUtil.wantMulligan(p) && ppcandidates != 0) { + List cand = ComputerUtil.getPartialParisCandidates(p); ppcandidates = cand.size(); if(ppcandidates != 0) { @@ -156,7 +154,7 @@ public class InputPartialParisMulligan extends InputBase { { game.action.exile(c); } - ai.drawCards(ppcandidates-1); + p.drawCards(ppcandidates-1); } } } diff --git a/src/main/java/forge/game/GameAction.java b/src/main/java/forge/game/GameAction.java index f9dd96981b6..e15103c5bc7 100644 --- a/src/main/java/forge/game/GameAction.java +++ b/src/main/java/forge/game/GameAction.java @@ -59,7 +59,6 @@ import forge.game.ai.ComputerUtilCost; import forge.game.event.CardDestroyedEvent; import forge.game.event.CardRegeneratedEvent; import forge.game.event.CardSacrificedEvent; -import forge.game.player.AIPlayer; import forge.game.player.GameLossReason; import forge.game.player.HumanPlay; import forge.game.player.Player; @@ -529,7 +528,7 @@ public class GameAction { exile(recoverable); } else { // computer if (ComputerUtilCost.canPayCost(abRecover, p)) { - ComputerUtil.playNoStack((AIPlayer)p, abRecover, game); + ComputerUtil.playNoStack(p, abRecover, game); } else { GameAction.this.exile(recoverable); } @@ -1453,9 +1452,9 @@ public class GameAction { final SpellAbility effect = AbilityFactory.getAbility(c.getSVar(effName), c); effect.setActivatingPlayer(p); // Is there a better way for the AI to decide this? - if (effect.doTrigger(false, (AIPlayer)p)) { + if (effect.doTrigger(false, p)) { GuiDialog.message("Computer reveals " + c.getName() + "(" + c.getUniqueNumber() + ")."); - ComputerUtil.playNoStack((AIPlayer)p, effect, game); + ComputerUtil.playNoStack(p, effect, game); } } } diff --git a/src/main/java/forge/game/GameActionUtil.java b/src/main/java/forge/game/GameActionUtil.java index b4809788339..be2387587e0 100644 --- a/src/main/java/forge/game/GameActionUtil.java +++ b/src/main/java/forge/game/GameActionUtil.java @@ -73,7 +73,6 @@ import forge.control.input.InputSelectCardsFromList; import forge.game.ai.AiController; import forge.game.event.CardDamagedEvent; import forge.game.event.LifeLossEvent; -import forge.game.player.AIPlayer; import forge.game.player.HumanPlay; import forge.game.player.Player; import forge.game.player.PlayerControllerAi; diff --git a/src/main/java/forge/game/GameNew.java b/src/main/java/forge/game/GameNew.java index f9d91ce8774..a6a5605fbba 100644 --- a/src/main/java/forge/game/GameNew.java +++ b/src/main/java/forge/game/GameNew.java @@ -24,9 +24,9 @@ import forge.deck.CardPool; import forge.deck.Deck; import forge.deck.DeckSection; import forge.game.phase.PhaseHandler; -import forge.game.player.AIPlayer; import forge.game.player.LobbyPlayer; import forge.game.player.Player; +import forge.game.player.PlayerType; import forge.game.zone.PlayerZone; import forge.game.zone.ZoneType; import forge.gui.GuiDialog; @@ -261,7 +261,7 @@ public class GameNew { preparePlayerLibrary(player, ZoneType.Sideboard, myDeck.get(DeckSection.Sideboard), canRandomFoil, generator); // Shuffling - if (player instanceof AIPlayer && preferences.getPrefBoolean(FPref.UI_SMOOTH_LAND)) { + if (player.getLobbyPlayer().getType() == PlayerType.COMPUTER && preferences.getPrefBoolean(FPref.UI_SMOOTH_LAND)) { // AI may do this instead of shuffling its deck final Iterable c1 = GameNew.smoothComputerManaCurve(player.getCardsIn(ZoneType.Library)); player.getZone(ZoneType.Library).setCards(c1); @@ -269,7 +269,7 @@ public class GameNew { player.shuffle(); } - if(player instanceof AIPlayer) { + if(player.getLobbyPlayer().getType() == PlayerType.COMPUTER) { rAICards.addAll(getCardsAiCantPlayWell(myDeck)); } diff --git a/src/main/java/forge/game/ai/AiController.java b/src/main/java/forge/game/ai/AiController.java index 491ce9e9f6c..090c88f0ae1 100644 --- a/src/main/java/forge/game/ai/AiController.java +++ b/src/main/java/forge/game/ai/AiController.java @@ -46,7 +46,6 @@ import forge.game.GameActionUtil; import forge.game.GameState; 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.Aggregates; @@ -63,14 +62,14 @@ import forge.util.MyRandom; */ public class AiController { - private final AIPlayer player; + private final Player player; private final GameState game; public GameState getGame() { return game; } - public AIPlayer getPlayer() + public Player getPlayer() { return player; } @@ -80,7 +79,7 @@ public class AiController { * Constructor for ComputerAI_General. *

*/ - public AiController(final AIPlayer computerPlayer, final GameState game0) { + public AiController(final Player computerPlayer, final GameState game0) { player = computerPlayer; game = game0; } diff --git a/src/main/java/forge/game/ai/ComputerUtil.java b/src/main/java/forge/game/ai/ComputerUtil.java index 1f05532df38..2b67d568379 100644 --- a/src/main/java/forge/game/ai/ComputerUtil.java +++ b/src/main/java/forge/game/ai/ComputerUtil.java @@ -49,7 +49,6 @@ import forge.game.phase.Combat; 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.player.PlayerControllerAi; import forge.game.zone.ZoneType; @@ -77,7 +76,7 @@ public class ComputerUtil { * a {@link forge.card.spellability.SpellAbility} object. * @return a boolean. */ - public static boolean handlePlayingSpellAbility(final AIPlayer ai, final SpellAbility sa, final GameState game) { + public static boolean handlePlayingSpellAbility(final Player ai, final SpellAbility sa, final GameState game) { if (sa instanceof AbilityStatic) { final Cost cost = sa.getPayCosts(); @@ -220,7 +219,7 @@ public class ComputerUtil { * @param sa * a {@link forge.card.spellability.SpellAbility} object. */ - public static final void playStack(final SpellAbility sa, final AIPlayer ai, final GameState game) { + public static final void playStack(final SpellAbility sa, final Player ai, final GameState game) { sa.setActivatingPlayer(ai); if (!ComputerUtilCost.canPayCost(sa, ai)) return; @@ -268,7 +267,7 @@ public class ComputerUtil { * @param sa * a {@link forge.card.spellability.SpellAbility} object. */ - public static final void playSpellAbilityWithoutPayingManaCost(final AIPlayer ai, final SpellAbility sa, final GameState game) { + public static final void playSpellAbilityWithoutPayingManaCost(final Player ai, final SpellAbility sa, final GameState game) { final SpellAbility newSA = sa.copyWithNoManaCost(); newSA.setActivatingPlayer(ai); @@ -295,7 +294,7 @@ public class ComputerUtil { * @param sa * a {@link forge.card.spellability.SpellAbility} object. */ - public static final void playNoStack(final AIPlayer ai, final SpellAbility sa, final GameState game) { + public static final void playNoStack(final Player ai, final SpellAbility sa, final GameState game) { sa.setActivatingPlayer(ai); // TODO: We should really restrict what doesn't use the Stack if (ComputerUtilCost.canPayCost(sa, ai)) { @@ -309,7 +308,7 @@ public class ComputerUtil { ComputerUtilMana.payManaCost(ai, sa); } else { final CostPayment pay = new CostPayment(cost, sa); - pay.payComputerCosts((AIPlayer)ai, game); + pay.payComputerCosts(ai, game); } AbilityUtils.resolve(sa, false); @@ -1236,7 +1235,7 @@ public class ComputerUtil { // Computer mulligans if there are no cards with converted mana cost of // 0 in its hand - public static boolean wantMulligan(AIPlayer ai) { + public static boolean wantMulligan(Player ai) { final List handList = ai.getCardsIn(ZoneType.Hand); final boolean hasLittleCmc0Cards = CardLists.getValidCards(handList, "Card.cmcEQ0", ai, null).size() < 2; final AiController aic = ((PlayerControllerAi)ai.getController()).getAi(); @@ -1244,7 +1243,7 @@ public class ComputerUtil { } - public static List getPartialParisCandidates(AIPlayer ai) { + public static List getPartialParisCandidates(Player ai) { final List candidates = new ArrayList(); final List handList = ai.getCardsIn(ZoneType.Hand); @@ -1304,7 +1303,7 @@ public class ComputerUtil { } - public static boolean scryWillMoveCardToBottomOfLibrary(AIPlayer player, Card c) { + public static boolean scryWillMoveCardToBottomOfLibrary(Player player, Card c) { boolean bottom = false; if (c.isBasicLand()) { List bl = player.getCardsIn(ZoneType.Battlefield); @@ -1327,7 +1326,7 @@ public class ComputerUtil { * @param min * @return */ - public static List getCardsToDiscardFromOpponent(AIPlayer chooser, Player discarder, SpellAbility sa, List validCards, int min, int max) { + public static List getCardsToDiscardFromOpponent(Player chooser, Player discarder, SpellAbility sa, List validCards, int min, int max) { List goodChoices = CardLists.filter(validCards, new Predicate() { @Override public boolean apply(final Card c) { @@ -1368,8 +1367,8 @@ public class ComputerUtil { * @param min * @return */ - public static List getCardsToDiscardFromFriend(AIPlayer aiChooser, Player p, SpellAbility sa, List validCards, int min, int max) { - if (p instanceof AIPlayer) { // ask that ai player what he would like to discard + public static List getCardsToDiscardFromFriend(Player aiChooser, Player p, SpellAbility sa, List validCards, int min, int max) { + if (p.isComputer()) { // ask that ai player what he would like to discard final AiController aic = ((PlayerControllerAi)p.getController()).getAi(); return aic.getCardsToDiscard(min, max, validCards, sa); } diff --git a/src/main/java/forge/game/ai/ComputerUtilMana.java b/src/main/java/forge/game/ai/ComputerUtilMana.java index fc59e8d7bbd..1fbe8ce7d16 100644 --- a/src/main/java/forge/game/ai/ComputerUtilMana.java +++ b/src/main/java/forge/game/ai/ComputerUtilMana.java @@ -28,7 +28,6 @@ import forge.card.spellability.AbilityManaPart; import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; import forge.game.GameActionUtil; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -206,7 +205,7 @@ public class ComputerUtilMana { // Pay additional costs if (ma.getPayCosts() != null) { final CostPayment pay = new CostPayment(ma.getPayCosts(), ma); - if (!pay.payComputerCosts((AIPlayer)ai, ai.getGame())) { + if (!pay.payComputerCosts(ai, ai.getGame())) { continue; } } else { @@ -262,7 +261,7 @@ public class ComputerUtilMana { } // payManaCost() // TODO: this code is disconnected now, it was moved here from MagicStack, where X cost is not processed any more - public static void computerPayX(final SpellAbility sa, AIPlayer player, int xCost) { + public static void computerPayX(final SpellAbility sa, Player player, int xCost) { final int neededDamage = CardFactoryUtil.getNeededXDamage(sa); final Ability ability = new Ability(sa.getSourceCard(), ManaCost.get(xCost)) { @Override @@ -544,7 +543,7 @@ public class ComputerUtilMana { // don't use abilities with dangerous drawbacks AbilitySub sub = m.getSubAbility(); if (sub != null && !card.getName().equals("Pristine Talisman")) { - if (ai instanceof AIPlayer && !sub.getAi().chkDrawbackWithSubs((AIPlayer)ai, sub)) { + if (!sub.getAi().chkDrawbackWithSubs(ai, sub)) { continue; } needsLimitedResources = true; // TODO: check for good drawbacks (gainLife) @@ -618,7 +617,7 @@ public class ComputerUtilMana { // don't use abilities with dangerous drawbacks AbilitySub sub = m.getSubAbility(); if (sub != null) { - if (ai instanceof AIPlayer && !sub.getAi().chkDrawbackWithSubs((AIPlayer)ai, sub)) { + if (!sub.getAi().chkDrawbackWithSubs(ai, sub)) { continue; } } diff --git a/src/main/java/forge/game/phase/CombatUtil.java b/src/main/java/forge/game/phase/CombatUtil.java index 1b3c2d3f158..e297a7f933a 100644 --- a/src/main/java/forge/game/phase/CombatUtil.java +++ b/src/main/java/forge/game/phase/CombatUtil.java @@ -52,7 +52,6 @@ import forge.game.GlobalRuleChange; import forge.game.ai.ComputerUtil; import forge.game.ai.ComputerUtilCard; import forge.game.ai.ComputerUtilCost; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.PlayerZone; import forge.game.zone.ZoneType; @@ -1082,7 +1081,7 @@ public class CombatUtil { hasPaid = GameActionUtil.payCostDuringAbilityResolve(ability, attackCost, null, game); } else { // computer if (ComputerUtilCost.canPayCost(ability, c.getController())) { - ComputerUtil.playNoStack((AIPlayer)c.getController(), ability, game); + ComputerUtil.playNoStack(c.getController(), ability, game); hasPaid = true; } } diff --git a/src/main/java/forge/game/phase/PhaseUtil.java b/src/main/java/forge/game/phase/PhaseUtil.java index b5c7c7a86e7..94f5e85270d 100644 --- a/src/main/java/forge/game/phase/PhaseUtil.java +++ b/src/main/java/forge/game/phase/PhaseUtil.java @@ -36,7 +36,6 @@ import forge.game.GameActionUtil; import forge.game.GameState; 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.gui.match.CMatchUI; @@ -229,7 +228,7 @@ public class PhaseUtil { hasPaid = GameActionUtil.payCostDuringAbilityResolve(ability, blockCost, null, game); } else { // computer if (ComputerUtilCost.canPayCost(ability, blocker.getController())) { - ComputerUtil.playNoStack((AIPlayer)blocker.getController(), ability, game); + ComputerUtil.playNoStack(blocker.getController(), ability, game); hasPaid = true; } } diff --git a/src/main/java/forge/game/phase/Upkeep.java b/src/main/java/forge/game/phase/Upkeep.java index 9f91964c569..cbaece3a778 100644 --- a/src/main/java/forge/game/phase/Upkeep.java +++ b/src/main/java/forge/game/phase/Upkeep.java @@ -48,7 +48,6 @@ import forge.game.ai.ComputerUtilCard; import forge.game.ai.ComputerUtilCombat; import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; -import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.PlayerZone; import forge.game.zone.ZoneType; @@ -188,7 +187,7 @@ public class Upkeep extends Phase { } else { // computer if (ComputerUtilCost.canPayCost(blankAbility, controller)) { - ComputerUtil.playNoStack((AIPlayer)controller, blankAbility, game); + ComputerUtil.playNoStack(controller, blankAbility, game); } else { game.getAction().sacrifice(c, null); } @@ -279,7 +278,7 @@ public class Upkeep extends Phase { Ability aiPaid = Upkeep.getBlankAbility(c, upkeepCost.toString()); isUpkeepPaid = ComputerUtilCost.canPayCost(aiPaid, controller) && !c.hasKeyword("Indestructible"); if (isUpkeepPaid) { - ComputerUtil.playNoStack((AIPlayer)controller, aiPaid, game); + ComputerUtil.playNoStack(controller, aiPaid, game); } } if( !isUpkeepPaid ) { @@ -329,7 +328,7 @@ public class Upkeep extends Phase { game.getAction().sacrifice(c, null); } else { // computer if (ComputerUtilCost.shouldPayCost(controller, c, upkeepCost) && ComputerUtilCost.canPayCost(blankAbility, controller)) { - ComputerUtil.playNoStack((AIPlayer)controller, blankAbility, game); // this makes AI pay + ComputerUtil.playNoStack(controller, blankAbility, game); // this makes AI pay } else { game.getAction().sacrifice(c, null); } @@ -363,7 +362,7 @@ public class Upkeep extends Phase { } else { // computers final Ability aiPaid = Upkeep.getBlankAbility(c, upkeepCost.toString()); if (ComputerUtilCost.canPayCost(aiPaid, controller) && ComputerUtilCombat.predictDamageTo(controller, upkeepDamage, c, false) > 0) { - ComputerUtil.playNoStack((AIPlayer)controller, aiPaid, game); + ComputerUtil.playNoStack(controller, aiPaid, game); isUpkeepPaid = true; } } @@ -611,7 +610,7 @@ public class Upkeep extends Phase { } // end human else { // computer unpaidHordesAb.setActivatingPlayer(cp); - if (ComputerUtilCost.canPayCost(cost, (AIPlayer) cp)) { + if (ComputerUtilCost.canPayCost(cost, cp)) { final Ability computerPay = new Ability(c, ManaCost.ZERO) { @Override public void resolve() { diff --git a/src/main/java/forge/game/player/AIPlayer.java b/src/main/java/forge/game/player/AIPlayer.java deleted file mode 100644 index 880074e62d9..00000000000 --- a/src/main/java/forge/game/player/AIPlayer.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Forge: Play Magic: the Gathering. - * Copyright (C) 2011 Forge Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package forge.game.player; - -import forge.game.GameState; -import forge.game.ai.AiController; - -/** - *

- * AIPlayer class. - *

- * - * @author Forge - * @version $Id$ - */ -public class AIPlayer extends Player { - /** - *

- * Constructor for AIPlayer. - *

- * @param computerAIGeneral - * - * @param myName - * a {@link java.lang.String} object. - */ - public AIPlayer(final LobbyPlayerAi player, final GameState game) { - super(player, game); - controller = new PlayerControllerAi(game, this); - } -} // end AIPlayer class diff --git a/src/main/java/forge/game/player/LobbyPlayerAi.java b/src/main/java/forge/game/player/LobbyPlayerAi.java index a522a8788f8..bf235ea5013 100644 --- a/src/main/java/forge/game/player/LobbyPlayerAi.java +++ b/src/main/java/forge/game/player/LobbyPlayerAi.java @@ -27,7 +27,8 @@ public class LobbyPlayerAi extends LobbyPlayer { @Override public Player getPlayer(GameState game) { - AIPlayer ai = new AIPlayer(this, game); + Player ai = new Player(this, game); + ai.setController(new PlayerControllerAi(game, ai)); String currentAiProfile = Singletons.getModel().getPreferences().getPref(FPref.UI_CURRENT_AI_PROFILE); String lastProfileChosen = game.getMatch().getPlayedGames().isEmpty() ? currentAiProfile : getAiProfile(); diff --git a/src/main/java/forge/game/player/PlayerControllerAi.java b/src/main/java/forge/game/player/PlayerControllerAi.java index 590e43f42fc..ad73cc6fa42 100644 --- a/src/main/java/forge/game/player/PlayerControllerAi.java +++ b/src/main/java/forge/game/player/PlayerControllerAi.java @@ -46,14 +46,14 @@ public class PlayerControllerAi extends PlayerController { private Input autoPassPriorityInput; private final AiController brains; - private final AIPlayer player; + private final Player player; public final Input getDefaultInput() { return defaultInput; } - public PlayerControllerAi(GameState game, AIPlayer p) { + public PlayerControllerAi(GameState game, Player p) { super(game); player = p; diff --git a/src/main/java/forge/game/zone/MagicStack.java b/src/main/java/forge/game/zone/MagicStack.java index cf9ba6ca8b1..e2b8672b9dc 100644 --- a/src/main/java/forge/game/zone/MagicStack.java +++ b/src/main/java/forge/game/zone/MagicStack.java @@ -53,7 +53,6 @@ import forge.game.ai.ComputerUtilCard; import forge.game.ai.ComputerUtilCost; import forge.game.event.SpellResolvedEvent; import forge.game.phase.PhaseType; -import forge.game.player.AIPlayer; import forge.game.player.HumanPlay; import forge.game.player.Player; import forge.gui.GuiChoose; @@ -403,7 +402,7 @@ public class MagicStack extends MyObservable { }; while (ComputerUtilCost.canPayCost(abilityIncreaseMultikicker, activating)) { - ComputerUtil.playNoStack((AIPlayer)activating, abilityIncreaseMultikicker, game); + ComputerUtil.playNoStack(activating, abilityIncreaseMultikicker, game); } } this.push(sa); @@ -446,7 +445,7 @@ public class MagicStack extends MyObservable { } else { // computer while (ComputerUtilCost.canPayCost(ability, controller)) { - ComputerUtil.playNoStack((AIPlayer)controller, ability, game); + ComputerUtil.playNoStack(controller, ability, game); } this.push(sa); @@ -1050,8 +1049,8 @@ public class MagicStack extends MyObservable { if (activePlayer.isComputer()) { for (final SpellAbility sa : activePlayerSAs) { - sa.doTrigger(sa.isMandatory(), (AIPlayer) activePlayer); - ComputerUtil.playStack(sa, (AIPlayer) activePlayer, game); + sa.doTrigger(sa.isMandatory(), activePlayer); + ComputerUtil.playStack(sa, activePlayer, game); } } else { List orderedSAs = activePlayerSAs;