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