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
public boolean apply(final Card c) {
for (Card aura : c.getEnchantedBy()) {
if (c.getOwner().isHuman() && aura.getController().isComputer()) {
if (c.getOwner().isHuman() && aura.getController().equals(ai)) {
return false;
}
}

View File

@@ -1714,7 +1714,7 @@ public class AbilityFactoryPermanentState {
final Card source = sa.getSourceCard();
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)) {
return false;
@@ -1748,13 +1748,13 @@ public class AbilityFactoryPermanentState {
final List<Card> human = CardLists.filter(validTappables, new Predicate<Card>() {
@Override
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>() {
@Override
public boolean apply(final Card c) {
return c.getController().isComputer();
return c.getController().equals(ai);
}
});
if (human.size() > compy.size()) {

View File

@@ -34,7 +34,6 @@ import javax.swing.WindowConstants;
import forge.Singletons;
import forge.control.KeyboardShortcuts.Shortcut;
import forge.game.player.Player;
import forge.game.player.PlayerType;
import forge.gui.deckeditor.CDeckEditorUI;
import forge.gui.deckeditor.VDeckEditorUI;
import forge.gui.framework.SOverflowUtil;
@@ -49,7 +48,6 @@ import forge.properties.ForgeProps;
import forge.properties.NewConstants;
import forge.quest.data.QuestPreferences.QPref;
import forge.quest.io.QuestDataIO;
import forge.util.Aggregates;
import forge.view.FView;
/**
@@ -270,11 +268,9 @@ public enum FControl {
}
/** @return {@link forge.game.player.Player} */
private Player localPlayer;
public Player getPlayer() {
if (Singletons.getModel() == null)
return null;
return Aggregates.firstFieldEquals(Singletons.getModel().getGame().getPlayers(), Player.Accessors.FN_GET_TYPE, PlayerType.HUMAN);
return localPlayer;
}
/**
@@ -287,4 +283,12 @@ public enum FControl {
lobby = new 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.game.player.LobbyPlayer;
import forge.game.player.Player;
import forge.game.player.PlayerType;
import forge.game.zone.ZoneType;
import forge.gui.GuiInput;
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.views.VAntes;
import forge.properties.ForgePreferences.FPref;
import forge.util.Aggregates;
/**
* TODO: Write javadoc for this type.
@@ -104,7 +106,8 @@ public class MatchController {
startConditions.put(p, players.get(p.getLobbyPlayer()));
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);
CDock.SINGLETON_INSTANCE.onGameStarts(currentGame, localHuman);
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.
* @return a boolean.
*/
@Deprecated
public final boolean isNextTurn(final PlayerType pt) {
final Player next = this.getNextTurn();
return next.getType() == pt;

View File

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