PhaseHandler isNextTurn(PlayerType) marked as deprecated. (There are many players of same type in a game)

local player is assigned at beginning of a match instead of being calculated each time.
This commit is contained in:
Maxmtg
2012-10-22 19:25:00 +00:00
parent 847f2aee02
commit c3f087db9e
6 changed files with 20 additions and 11 deletions

View File

@@ -1782,7 +1782,7 @@ public final class AbilityFactoryChangeZone {
@Override @Override
public boolean apply(final Card c) { public boolean apply(final Card c) {
for (Card aura : c.getEnchantedBy()) { for (Card aura : c.getEnchantedBy()) {
if (c.getOwner().isHuman() && aura.getController().isComputer()) { if (c.getOwner().isHuman() && aura.getController().equals(ai)) {
return false; return false;
} }
} }

View File

@@ -1714,7 +1714,7 @@ public class AbilityFactoryPermanentState {
final Card source = sa.getSourceCard(); final Card source = sa.getSourceCard();
final HashMap<String, String> params = af.getMapParams(); final HashMap<String, String> params = af.getMapParams();
Player opp = ai.getOpponent(); final Player opp = ai.getOpponent();
if (Singletons.getModel().getGame().getPhaseHandler().getPhase().isAfter(PhaseType.COMBAT_BEGIN)) { if (Singletons.getModel().getGame().getPhaseHandler().getPhase().isAfter(PhaseType.COMBAT_BEGIN)) {
return false; return false;
@@ -1748,13 +1748,13 @@ public class AbilityFactoryPermanentState {
final List<Card> human = CardLists.filter(validTappables, new Predicate<Card>() { final List<Card> human = CardLists.filter(validTappables, new Predicate<Card>() {
@Override @Override
public boolean apply(final Card c) { public boolean apply(final Card c) {
return c.getController().isHuman(); return c.getController().equals(opp);
} }
}); });
final List<Card> compy = CardLists.filter(validTappables, new Predicate<Card>() { final List<Card> compy = CardLists.filter(validTappables, new Predicate<Card>() {
@Override @Override
public boolean apply(final Card c) { public boolean apply(final Card c) {
return c.getController().isComputer(); return c.getController().equals(ai);
} }
}); });
if (human.size() > compy.size()) { if (human.size() > compy.size()) {

View File

@@ -34,7 +34,6 @@ import javax.swing.WindowConstants;
import forge.Singletons; import forge.Singletons;
import forge.control.KeyboardShortcuts.Shortcut; import forge.control.KeyboardShortcuts.Shortcut;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.player.PlayerType;
import forge.gui.deckeditor.CDeckEditorUI; import forge.gui.deckeditor.CDeckEditorUI;
import forge.gui.deckeditor.VDeckEditorUI; import forge.gui.deckeditor.VDeckEditorUI;
import forge.gui.framework.SOverflowUtil; import forge.gui.framework.SOverflowUtil;
@@ -49,7 +48,6 @@ import forge.properties.ForgeProps;
import forge.properties.NewConstants; import forge.properties.NewConstants;
import forge.quest.data.QuestPreferences.QPref; import forge.quest.data.QuestPreferences.QPref;
import forge.quest.io.QuestDataIO; import forge.quest.io.QuestDataIO;
import forge.util.Aggregates;
import forge.view.FView; import forge.view.FView;
/** /**
@@ -270,11 +268,9 @@ public enum FControl {
} }
/** @return {@link forge.game.player.Player} */ /** @return {@link forge.game.player.Player} */
private Player localPlayer;
public Player getPlayer() { public Player getPlayer() {
if (Singletons.getModel() == null) return localPlayer;
return null;
return Aggregates.firstFieldEquals(Singletons.getModel().getGame().getPlayers(), Player.Accessors.FN_GET_TYPE, PlayerType.HUMAN);
} }
/** /**
@@ -287,4 +283,12 @@ public enum FControl {
lobby = new Lobby(); lobby = new Lobby();
return lobby; return lobby;
} }
/**
* TODO: Write javadoc for this method.
* @param localHuman
*/
public void setPlayer(Player localHuman) {
localPlayer = localHuman;
}
} }

View File

@@ -15,6 +15,7 @@ import forge.deck.Deck;
import forge.error.ErrorViewer; import forge.error.ErrorViewer;
import forge.game.player.LobbyPlayer; import forge.game.player.LobbyPlayer;
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.GuiInput; import forge.gui.GuiInput;
import forge.gui.framework.EDocID; import forge.gui.framework.EDocID;
@@ -28,6 +29,7 @@ import forge.gui.match.controllers.CStack;
import forge.gui.match.nonsingleton.VField; import forge.gui.match.nonsingleton.VField;
import forge.gui.match.views.VAntes; import forge.gui.match.views.VAntes;
import forge.properties.ForgePreferences.FPref; import forge.properties.ForgePreferences.FPref;
import forge.util.Aggregates;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
@@ -104,7 +106,8 @@ public class MatchController {
startConditions.put(p, players.get(p.getLobbyPlayer())); startConditions.put(p, players.get(p.getLobbyPlayer()));
try { try {
Player localHuman = Singletons.getControl().getPlayer(); Player localHuman = Aggregates.firstFieldEquals(currentGame.getPlayers(), Player.Accessors.FN_GET_TYPE, PlayerType.HUMAN);
FControl.SINGLETON_INSTANCE.setPlayer(localHuman);
CMatchUI.SINGLETON_INSTANCE.initMatch(currentGame.getPlayers(), localHuman); CMatchUI.SINGLETON_INSTANCE.initMatch(currentGame.getPlayers(), localHuman);
CDock.SINGLETON_INSTANCE.onGameStarts(currentGame, localHuman); CDock.SINGLETON_INSTANCE.onGameStarts(currentGame, localHuman);
Singletons.getModel().getPreferences().actuateMatchPreferences(); Singletons.getModel().getPreferences().actuateMatchPreferences();

View File

@@ -661,6 +661,7 @@ 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.
*/ */
@Deprecated
public final boolean isNextTurn(final PlayerType pt) { public final boolean isNextTurn(final PlayerType pt) {
final Player next = this.getNextTurn(); final Player next = this.getNextTurn();
return next.getType() == pt; return next.getType() == pt;

View File

@@ -186,6 +186,7 @@ public abstract class Player extends GameEntity implements Comparable<Player> {
* *
* @return a boolean. * @return a boolean.
*/ */
//@Deprecated
public abstract boolean isComputer(); public abstract boolean isComputer();
public abstract PlayerType getType(); public abstract PlayerType getType();