mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
get****Player methods are depreacated. Do not use them in new code.
Exile zone marked as containing hidden information Players have getType method to learn if certain player is AI or human
This commit is contained in:
@@ -91,6 +91,7 @@ public final class AllZone {
|
||||
* @return a {@link forge.game.player.Player} object.
|
||||
* @since 1.0.15
|
||||
*/
|
||||
@Deprecated
|
||||
public static Player getHumanPlayer() {
|
||||
if (Singletons.getModel() != null) {
|
||||
return Singletons.getModel().getGameState().getHumanPlayer();
|
||||
@@ -109,6 +110,7 @@ public final class AllZone {
|
||||
* @return a {@link forge.game.player.Player} object.
|
||||
* @since 1.0.15
|
||||
*/
|
||||
@Deprecated
|
||||
public static Player getComputerPlayer() {
|
||||
return Singletons.getModel().getGameState().getComputerPlayer();
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ import forge.card.spellability.Target;
|
||||
import forge.game.phase.PhaseType;
|
||||
import forge.game.player.ComputerUtil;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.player.PlayerType;
|
||||
import forge.game.zone.ZoneType;
|
||||
|
||||
/**
|
||||
@@ -1500,8 +1501,8 @@ public class AbilityFactory {
|
||||
return true;
|
||||
}
|
||||
|
||||
return (Singletons.getModel().getGameState().getPhaseHandler().is(PhaseType.END_OF_TURN) && Singletons.getModel().getGameState().getPhaseHandler().isNextTurn(
|
||||
AllZone.getComputerPlayer()));
|
||||
return (Singletons.getModel().getGameState().getPhaseHandler().is(PhaseType.END_OF_TURN)
|
||||
&& Singletons.getModel().getGameState().getPhaseHandler().isNextTurn(PlayerType.COMPUTER));
|
||||
}
|
||||
|
||||
// returns true if it's better to wait until blockers are declared
|
||||
@@ -1519,7 +1520,7 @@ public class AbilityFactory {
|
||||
return (sa.getSourceCard().isCreature()
|
||||
&& sa.getPayCosts().getTap()
|
||||
&& (Singletons.getModel().getGameState().getPhaseHandler().getPhase().isBefore(PhaseType.COMBAT_DECLARE_BLOCKERS_INSTANT_ABILITY)
|
||||
|| Singletons.getModel().getGameState().getPhaseHandler().isNextTurn(AllZone.getHumanPlayer())));
|
||||
|| Singletons.getModel().getGameState().getPhaseHandler().isNextTurn(PlayerType.HUMAN)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2224,11 +2225,10 @@ public class AbilityFactory {
|
||||
players.add(sa.getActivatingPlayer().getOpponent());
|
||||
}
|
||||
} else {
|
||||
if (AllZone.getHumanPlayer().isValid(defined, sa.getActivatingPlayer(), sa.getSourceCard())) {
|
||||
players.add(AllZone.getHumanPlayer());
|
||||
}
|
||||
if (AllZone.getComputerPlayer().isValid(defined, sa.getActivatingPlayer(), sa.getSourceCard())) {
|
||||
players.add(AllZone.getComputerPlayer());
|
||||
for (Player p : AllZone.getPlayersInGame()) {
|
||||
if (p.isValid(defined, sa.getActivatingPlayer(), sa.getSourceCard())) {
|
||||
players.add(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
return players;
|
||||
@@ -2487,7 +2487,8 @@ public class AbilityFactory {
|
||||
if (threatParams.containsKey("Defined")) {
|
||||
objects = AbilityFactory.getDefinedObjects(source, threatParams.get("Defined"), topStack);
|
||||
} else if (threatParams.containsKey("ValidCards")) {
|
||||
List<Card> cards = CardLists.getValidCards(AllZone.getComputerPlayer().getCardsIn(ZoneType.Battlefield), threatParams.get("ValidCards").split(","), source.getController(), source);
|
||||
List<Card> battleField = AllZone.getComputerPlayer().getCardsIn(ZoneType.Battlefield);
|
||||
List<Card> cards = CardLists.getValidCards(battleField, threatParams.get("ValidCards").split(","), source.getController(), source);
|
||||
for (Card card : cards) {
|
||||
objects.add(card);
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@ import forge.game.phase.PhaseHandler;
|
||||
import forge.game.phase.PhaseType;
|
||||
import forge.game.player.ComputerUtil;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.player.PlayerType;
|
||||
import forge.game.zone.PlayerZone;
|
||||
import forge.game.zone.ZoneType;
|
||||
import forge.gui.GuiChoose;
|
||||
@@ -1946,7 +1947,7 @@ public class AbilityFactoryCounters {
|
||||
if (type.equals("P1P1") && sa.isAbility() && source.isCreature()
|
||||
&& sa.getPayCosts() != null && sa.getPayCosts().getTap()
|
||||
&& sa instanceof AbilitySub
|
||||
&& (phase.isNextTurn(AllZone.getHumanPlayer())
|
||||
&& (phase.isNextTurn(PlayerType.HUMAN)
|
||||
|| phase.getPhase().isBefore(PhaseType.COMBAT_DECLARE_BLOCKERS_INSTANT_ABILITY))) {
|
||||
boolean combatants = false;
|
||||
for (Card c : hList) {
|
||||
|
||||
@@ -46,6 +46,7 @@ import forge.game.phase.PhaseHandler;
|
||||
import forge.game.phase.PhaseType;
|
||||
import forge.game.player.ComputerUtil;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.player.PlayerType;
|
||||
import forge.game.zone.ZoneType;
|
||||
import forge.util.MyRandom;
|
||||
|
||||
@@ -644,7 +645,7 @@ public class AbilityFactoryDealDamage {
|
||||
// on the stack
|
||||
// or from taking combat damage
|
||||
final boolean freePing = isTrigger || saMe.getPayCosts() == null || tgt.getNumTargeted() > 0
|
||||
|| (phase.is(PhaseType.END_OF_TURN) && saMe.isAbility() && phase.isNextTurn(AllZone.getComputerPlayer()))
|
||||
|| (phase.is(PhaseType.END_OF_TURN) && saMe.isAbility() && phase.isNextTurn(PlayerType.COMPUTER))
|
||||
|| (phase.is(PhaseType.MAIN2) && saMe.getRestrictions().getPlaneswalker());
|
||||
|
||||
if (freePing && saMe.canTarget(AllZone.getHumanPlayer()) && tgt.addTarget(AllZone.getHumanPlayer())) {
|
||||
@@ -662,7 +663,7 @@ public class AbilityFactoryDealDamage {
|
||||
// because we can
|
||||
else if (saMe.canTarget(AllZone.getHumanPlayer())) {
|
||||
|
||||
if ((phase.is(PhaseType.END_OF_TURN) && phase.isNextTurn(AllZone.getComputerPlayer()))
|
||||
if ((phase.is(PhaseType.END_OF_TURN) && phase.isNextTurn(PlayerType.COMPUTER))
|
||||
|| (AbilityFactory.isSorcerySpeed(saMe) && phase.is(PhaseType.MAIN2))
|
||||
|| saMe.getPayCosts() == null || isTrigger) {
|
||||
tgt.addTarget(AllZone.getHumanPlayer());
|
||||
|
||||
@@ -45,6 +45,7 @@ import forge.card.spellability.Target;
|
||||
import forge.game.phase.PhaseType;
|
||||
import forge.game.player.ComputerUtil;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.player.PlayerType;
|
||||
import forge.game.zone.ZoneType;
|
||||
import forge.gui.GuiChoose;
|
||||
import forge.util.MyRandom;
|
||||
@@ -361,7 +362,7 @@ public class AbilityFactoryZoneAffecting {
|
||||
randomReturn = true;
|
||||
}
|
||||
if ((Singletons.getModel().getGameState().getPhaseHandler().is(PhaseType.END_OF_TURN)
|
||||
&& Singletons.getModel().getGameState().getPhaseHandler().isNextTurn(AllZone.getComputerPlayer()))) {
|
||||
&& Singletons.getModel().getGameState().getPhaseHandler().isNextTurn(PlayerType.COMPUTER))) {
|
||||
randomReturn = true;
|
||||
}
|
||||
|
||||
@@ -912,8 +913,8 @@ public class AbilityFactoryZoneAffecting {
|
||||
chance = .667; // 66.7% chance for sorcery speed
|
||||
}
|
||||
|
||||
if ((Singletons.getModel().getGameState().getPhaseHandler().is(PhaseType.END_OF_TURN) && Singletons.getModel().getGameState().getPhaseHandler().isNextTurn(
|
||||
AllZone.getComputerPlayer()))) {
|
||||
if ((Singletons.getModel().getGameState().getPhaseHandler().is(PhaseType.END_OF_TURN)
|
||||
&& Singletons.getModel().getGameState().getPhaseHandler().isNextTurn(PlayerType.COMPUTER))) {
|
||||
chance = .9; // 90% for end of opponents turn
|
||||
}
|
||||
|
||||
|
||||
@@ -87,7 +87,6 @@ public class GameNew {
|
||||
bf.updateObservers();
|
||||
p.getPlayer().getZone(ZoneType.Hand).updateObservers();
|
||||
}
|
||||
|
||||
GameNew.actuateGame(players);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ import forge.Singletons;
|
||||
import forge.card.spellability.SpellAbility;
|
||||
import forge.card.trigger.TriggerType;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.player.PlayerType;
|
||||
import forge.game.zone.ZoneType;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
import forge.util.MyObservable;
|
||||
@@ -753,9 +754,9 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
|
||||
* a {@link forge.game.player.Player} object.
|
||||
* @return a boolean.
|
||||
*/
|
||||
public final boolean isNextTurn(final Player pl) {
|
||||
public final boolean isNextTurn(final PlayerType pt) {
|
||||
final Player next = this.getNextTurn();
|
||||
return (pl.equals(next));
|
||||
return next.getType() == pt;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -102,6 +102,7 @@ public class AIPlayer extends Player {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* isComputer.
|
||||
@@ -188,7 +189,7 @@ public class AIPlayer extends Player {
|
||||
// to doDiscard basically
|
||||
return;
|
||||
}
|
||||
AllZone.getComputerPlayer().discard(num, sa, false);
|
||||
this.discard(num, sa, false);
|
||||
}
|
||||
|
||||
// /////////////////////////
|
||||
@@ -200,13 +201,13 @@ public class AIPlayer extends Player {
|
||||
for (int i = 0; i < num; i++) {
|
||||
boolean bottom = false;
|
||||
if (topN.get(i).isBasicLand()) {
|
||||
List<Card> bl = AllZone.getComputerPlayer().getCardsIn(ZoneType.Battlefield);
|
||||
List<Card> bl = this.getCardsIn(ZoneType.Battlefield);
|
||||
int nBasicLands = Iterables.size(Iterables.filter(bl, CardPredicates.Presets.BASIC_LANDS));
|
||||
|
||||
bottom = nBasicLands > 5; // if control more than 5 Basic land,
|
||||
// probably don't need more
|
||||
} else if (topN.get(i).isCreature()) {
|
||||
List<Card> cl = AllZone.getComputerPlayer().getCardsIn(ZoneType.Battlefield);
|
||||
List<Card> cl = this.getCardsIn(ZoneType.Battlefield);
|
||||
cl = CardLists.filter(cl, CardPredicates.Presets.CREATURES);
|
||||
bottom = cl.size() > 5; // if control more than 5 Creatures,
|
||||
// probably don't need more
|
||||
@@ -257,4 +258,11 @@ public class AIPlayer extends Player {
|
||||
this.drawCard();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see forge.game.player.Player#getType()
|
||||
*/
|
||||
@Override
|
||||
public PlayerType getType() {
|
||||
return PlayerType.COMPUTER;
|
||||
}
|
||||
} // end AIPlayer class
|
||||
|
||||
@@ -242,7 +242,7 @@ public class ComputerUtilAttack {
|
||||
int fixedBlockers = 0;
|
||||
final List<Card> vigilantes = new ArrayList<Card>();
|
||||
//check for time walks
|
||||
if (Singletons.getModel().getGameState().getPhaseHandler().isNextTurn(AllZone.getComputerPlayer())) {
|
||||
if (Singletons.getModel().getGameState().getPhaseHandler().isNextTurn(PlayerType.COMPUTER)) {
|
||||
return attackers;
|
||||
}
|
||||
for (final Card c : this.computerList) {
|
||||
|
||||
@@ -226,4 +226,12 @@ public class HumanPlayer extends Player {
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see forge.game.player.Player#getType()
|
||||
*/
|
||||
@Override
|
||||
public PlayerType getType() {
|
||||
return PlayerType.HUMAN;
|
||||
}
|
||||
|
||||
} // end HumanPlayer class
|
||||
|
||||
@@ -240,6 +240,7 @@ public abstract class Player extends GameEntity implements Comparable<Player> {
|
||||
* @return a boolean.
|
||||
*/
|
||||
public abstract boolean isComputer();
|
||||
public abstract PlayerType getType();
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
||||
@@ -21,7 +21,7 @@ public enum ZoneType {
|
||||
Battlefield(false),
|
||||
|
||||
/** The Exile. */
|
||||
Exile(false),
|
||||
Exile(true), // Some cards get exiled face down (ex: Clone Shell)
|
||||
|
||||
/** The Command. */
|
||||
Command(false),
|
||||
|
||||
Reference in New Issue
Block a user