mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Remove global Player cache, instead make it hang off the Game object.
This commit is contained in:
@@ -100,7 +100,7 @@ public class InputProxy implements Observer {
|
||||
public final void selectPlayer(final PlayerView playerView, final ITriggerEvent triggerEvent) {
|
||||
final Input inp = getInput();
|
||||
if (inp != null) {
|
||||
final Player player = Player.get(playerView);
|
||||
final Player player = controller.getGame().getPlayer(playerView);
|
||||
if (player != null) {
|
||||
inp.selectPlayer(player, triggerEvent);
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ import java.util.concurrent.BlockingDeque;
|
||||
import java.util.concurrent.LinkedBlockingDeque;
|
||||
|
||||
import forge.game.Game;
|
||||
import forge.game.player.Player;
|
||||
import forge.match.MatchUtil;
|
||||
import forge.player.PlayerControllerHuman;
|
||||
|
||||
@@ -37,9 +36,11 @@ import forge.player.PlayerControllerHuman;
|
||||
public class InputQueue extends Observable {
|
||||
private final BlockingDeque<InputSynchronized> inputStack = new LinkedBlockingDeque<InputSynchronized>();
|
||||
private final InputLockUI inputLock;
|
||||
private final Game game;
|
||||
|
||||
public InputQueue(final Game game, final InputProxy inputProxy) {
|
||||
inputLock = new InputLockUI(game, this);
|
||||
this.game = game;
|
||||
addObserver(inputProxy);
|
||||
}
|
||||
|
||||
@@ -76,7 +77,7 @@ public class InputQueue extends Observable {
|
||||
|
||||
public void setInput(final InputSynchronized input) {
|
||||
if (MatchUtil.getHumanCount() > 1) { //update current player if needed
|
||||
MatchUtil.setCurrentPlayer(Player.get(input.getOwner()));
|
||||
MatchUtil.setCurrentPlayer(game.getPlayer(input.getOwner()));
|
||||
}
|
||||
inputStack.push(input);
|
||||
InputBase.waitForOtherPlayer();
|
||||
|
||||
@@ -297,7 +297,7 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
if (nNeeded == 0) {
|
||||
return PaymentDecision.number(0);
|
||||
}
|
||||
final Player p = Player.get(SGuiChoose.oneOrNone(String.format("Exile from whose %s?", cost.getFrom()), PlayerView.getCollection(payableZone)));
|
||||
final Player p = controller.getGame().getPlayer(SGuiChoose.oneOrNone(String.format("Exile from whose %s?", cost.getFrom()), PlayerView.getCollection(payableZone)));
|
||||
if (p == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -489,7 +489,7 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
sb.append(source.getName()).append(" - Choose an opponent to gain ").append(c).append(" life:");
|
||||
|
||||
final Player chosenToGain = Player.get(SGuiChoose.oneOrNone(sb.toString(), PlayerView.getCollection(oppsThatCanGainLife)));
|
||||
final Player chosenToGain = controller.getGame().getPlayer(SGuiChoose.oneOrNone(sb.toString(), PlayerView.getCollection(oppsThatCanGainLife)));
|
||||
if (chosenToGain == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -614,7 +614,7 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
return PaymentDecision.number(0);
|
||||
}
|
||||
|
||||
final Player p = Player.get(SGuiChoose.oneOrNone(String.format("Put cards from whose %s?", fromZone), PlayerView.getCollection(payableZone)));
|
||||
final Player p = controller.getGame().getPlayer(SGuiChoose.oneOrNone(String.format("Put cards from whose %s?", fromZone), PlayerView.getCollection(payableZone)));
|
||||
if (p == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -524,7 +524,7 @@ public class HumanPlay {
|
||||
payableZone.add(player);
|
||||
}
|
||||
}
|
||||
Player chosen = Player.get(SGuiChoose.oneOrNone(String.format("Put cards from whose %s?", from), PlayerView.getCollection(payableZone)));
|
||||
Player chosen = controller.getGame().getPlayer(SGuiChoose.oneOrNone(String.format("Put cards from whose %s?", from), PlayerView.getCollection(payableZone)));
|
||||
if (chosen == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -418,7 +418,13 @@ public class PlayerControllerHuman extends PlayerController {
|
||||
|
||||
final GameEntityView result = GuiBase.getInterface().chooseSingleEntityForEffect(title, optionList, delayedReveal, isOptional, this);
|
||||
endTempShowCards(); //assume tempShow called by GuiBase.getInterface().chooseSingleEntityForEffect
|
||||
return (T) GameEntity.get(result);
|
||||
if (result instanceof CardView) {
|
||||
return (T) Card.get((CardView)result);
|
||||
}
|
||||
if (result instanceof PlayerView) {
|
||||
return (T) game.getPlayer((PlayerView)result);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1539,7 +1545,7 @@ public class PlayerControllerHuman extends PlayerController {
|
||||
}
|
||||
|
||||
public void setPlayerLife() {
|
||||
final Player player = Player.get(SGuiChoose.oneOrNone("Set life for which player?", PlayerView.getCollection(game.getPlayers())));
|
||||
final Player player = game.getPlayer(SGuiChoose.oneOrNone("Set life for which player?", PlayerView.getCollection(game.getPlayers())));
|
||||
if (player == null) { return; }
|
||||
|
||||
final Integer life = SGuiChoose.getInteger("Set life to what?", 0);
|
||||
@@ -1569,7 +1575,7 @@ public class PlayerControllerHuman extends PlayerController {
|
||||
}
|
||||
|
||||
public void addCardToHand() {
|
||||
final Player p = Player.get(SGuiChoose.oneOrNone("Put card in hand for which player?", PlayerView.getCollection(game.getPlayers())));
|
||||
final Player p = game.getPlayer(SGuiChoose.oneOrNone("Put card in hand for which player?", PlayerView.getCollection(game.getPlayers())));
|
||||
if (p == null) {
|
||||
return;
|
||||
}
|
||||
@@ -1589,7 +1595,7 @@ public class PlayerControllerHuman extends PlayerController {
|
||||
}
|
||||
|
||||
public void addCardToBattlefield() {
|
||||
final Player p = Player.get(SGuiChoose.oneOrNone("Put card in play for which player?", PlayerView.getCollection(game.getPlayers())));
|
||||
final Player p = game.getPlayer(SGuiChoose.oneOrNone("Put card in play for which player?", PlayerView.getCollection(game.getPlayers())));
|
||||
if (p == null) {
|
||||
return;
|
||||
}
|
||||
@@ -1637,7 +1643,7 @@ public class PlayerControllerHuman extends PlayerController {
|
||||
}
|
||||
|
||||
public void riggedPlanarRoll() {
|
||||
final Player player = Player.get(SGuiChoose.oneOrNone("Which player should roll?", PlayerView.getCollection(game.getPlayers())));
|
||||
final Player player = game.getPlayer(SGuiChoose.oneOrNone("Which player should roll?", PlayerView.getCollection(game.getPlayers())));
|
||||
if (player == null) { return; }
|
||||
|
||||
final PlanarDice res = SGuiChoose.oneOrNone("Choose result", PlanarDice.values());
|
||||
|
||||
@@ -63,7 +63,7 @@ public class QuestWinLoseController {
|
||||
final LobbyPlayer questLobbyPlayer = GamePlayerUtil.getQuestPlayer();
|
||||
PlayerView player = null;
|
||||
for (final PlayerView p : lastGame.getPlayers()) {
|
||||
if (p.getLobbyPlayer().equals(questLobbyPlayer)) {
|
||||
if (p.isLobbyPlayer(questLobbyPlayer)) {
|
||||
player = p;
|
||||
}
|
||||
}
|
||||
@@ -97,7 +97,7 @@ public class QuestWinLoseController {
|
||||
if (anteResult.lostCards != null) {
|
||||
qc.getCards().loseCards(anteResult.lostCards);
|
||||
}
|
||||
anteReport(anteResult.wonCards, anteResult.lostCards, questPlayer.getLobbyPlayer().equals(lastGame.getWinningPlayer()));
|
||||
anteReport(anteResult.wonCards, anteResult.lostCards, questPlayer.isLobbyPlayer(lastGame.getWinningPlayer()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user