PlayerStartConditions renamed to RegisteredPlayer, lobbyPlayer added as a field

MatchState now starts with list of RegisteredPlayers, not a list of tuples
This commit is contained in:
Maxmtg
2013-05-28 14:32:38 +00:00
parent 9d989137e8
commit c58bb4b130
18 changed files with 96 additions and 120 deletions

2
.gitattributes vendored
View File

@@ -14225,7 +14225,7 @@ src/main/java/forge/game/GameType.java -text
src/main/java/forge/game/GlobalRuleChange.java -text
src/main/java/forge/game/MatchState.java -text
src/main/java/forge/game/PlanarDice.java -text
src/main/java/forge/game/PlayerStartConditions.java -text
src/main/java/forge/game/RegisteredPlayer.java -text
src/main/java/forge/game/ai/AiAttackController.java svneol=native#text/plain
src/main/java/forge/game/ai/AiController.java svneol=native#text/plain
src/main/java/forge/game/ai/AiProfileUtil.java -text

View File

@@ -27,7 +27,6 @@ import forge.deck.CardPool;
import forge.deck.Deck;
import forge.deck.DeckSection;
import forge.game.phase.PhaseHandler;
import forge.game.player.LobbyPlayer;
import forge.game.player.Player;
import forge.game.player.PlayerType;
import forge.game.zone.PlayerZone;
@@ -68,7 +67,7 @@ public class GameNew {
}
private static void initVariantsZones(final Player player, final PlayerStartConditions psc) {
private static void initVariantsZones(final Player player, final RegisteredPlayer psc) {
PlayerZone com = player.getZone(ZoneType.Command);
// Mainly for avatar, but might find something else here
@@ -240,10 +239,10 @@ public class GameNew {
boolean isFirstGame = game.getMatch().getPlayedGames().isEmpty();
boolean canSideBoard = !isFirstGame && gameType.isSideboardingAllowed();
final List<Pair<LobbyPlayer, PlayerStartConditions>> playersConditions = game.getMatch().getPlayers();
final List<RegisteredPlayer> playersConditions = game.getMatch().getPlayers();
for (int i = 0; i < playersConditions.size(); i++) {
Player player = game.getPlayers().get(i);
final PlayerStartConditions psc = playersConditions.get(i).getRight();
final RegisteredPlayer psc = playersConditions.get(i);
putCardsOnBattlefield(player, psc.getCardsOnBattlefield(player));
initVariantsZones(player, psc);
@@ -355,7 +354,7 @@ public class GameNew {
final Player player = gamePlayers.get(i);
if( player.hasLost()) continue;
PlayerStartConditions psc = game.getMatch().getPlayers().get(i).getValue();
RegisteredPlayer psc = game.getMatch().getPlayers().get(i);
player.setStartingLife(psc.getStartingLife());
player.setNumLandsPlayed(0);

View File

@@ -22,11 +22,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
import org.apache.commons.lang3.tuple.Pair;
import com.google.common.eventbus.EventBus;
import forge.Card;
@@ -48,7 +45,6 @@ import forge.game.phase.EndOfTurn;
import forge.game.phase.PhaseHandler;
import forge.game.phase.Untap;
import forge.game.phase.Upkeep;
import forge.game.player.LobbyPlayer;
import forge.game.player.Player;
import forge.game.zone.MagicStack;
import forge.game.zone.PlayerZone;
@@ -94,19 +90,18 @@ public class GameState {
* @param match0
* @param input
*/
public GameState(List<Pair<LobbyPlayer, PlayerStartConditions>> players0, GameType t, MatchState match0) { /* no more zones to map here */
public GameState(List<RegisteredPlayer> players0, GameType t, MatchState match0) { /* no more zones to map here */
type = t;
match = match0;
List<Player> players = new ArrayList<Player>();
allPlayers = Collections.unmodifiableList(players);
roIngamePlayers = Collections.unmodifiableList(ingamePlayers);
for (Entry<LobbyPlayer, PlayerStartConditions> kv : players0) {
Player pl = kv.getKey().getPlayer(this);
for (RegisteredPlayer psc : players0) {
Player pl = psc.getPlayer().getPlayer(this);
players.add(pl);
ingamePlayers.add(pl);
PlayerStartConditions psc = kv.getValue();
pl.setStartingLife(psc.getStartingLife());
pl.setMaxHandSize(psc.getStartingHand());
pl.setStartingHandSize(psc.getStartingHand());

View File

@@ -25,7 +25,7 @@ import forge.util.Aggregates;
public class MatchState {
private final List<Pair<LobbyPlayer, PlayerStartConditions>> players;
private final List<RegisteredPlayer> players;
private final GameType gameType;
private int gamesPerMatch = 3;
@@ -41,13 +41,13 @@ public class MatchState {
/**
* This should become constructor once.
*/
public MatchState(GameType type, List<Pair<LobbyPlayer, PlayerStartConditions>> players0) {
public MatchState(GameType type, List<RegisteredPlayer> players0) {
gamesPlayedRo = Collections.unmodifiableList(gamesPlayed);
players = Collections.unmodifiableList(Lists.newArrayList(players0));
gameType = type;
}
public MatchState(GameType type, List<Pair<LobbyPlayer, PlayerStartConditions>> players0, Boolean overrideAnte) {
public MatchState(GameType type, List<RegisteredPlayer> players0, Boolean overrideAnte) {
this(type, players0);
if( overrideAnte != null )
this.useAnte = overrideAnte.booleanValue();
@@ -174,8 +174,8 @@ public class MatchState {
for (GameOutcome go : gamesPlayed) {
LobbyPlayer winner = go.getWinner();
int i = 0;
for (Pair<LobbyPlayer, PlayerStartConditions> p : players) {
if (p.getLeft().equals(winner)) {
for (RegisteredPlayer p : players) {
if (p.getPlayer().equals(winner)) {
victories[i]++;
break; // can't have 2 winners per game
}
@@ -217,7 +217,7 @@ public class MatchState {
return getGamesWonBy(questPlayer) >= gamesToWinMatch;
}
public List<Pair<LobbyPlayer, PlayerStartConditions>> getPlayers() {
public List<RegisteredPlayer> getPlayers() {
return players;
}

View File

@@ -6,16 +6,20 @@ import java.util.List;
import forge.deck.Deck;
import forge.deck.DeckSection;
import forge.game.player.LobbyPlayer;
import forge.game.player.Player;
import forge.item.CardPrinted;
import forge.item.IPaperCard;
public class PlayerStartConditions {
public class RegisteredPlayer {
private final Deck originalDeck;
private Deck currentDeck;
private static final Iterable<CardPrinted> EmptyList = Collections.unmodifiableList(new ArrayList<CardPrinted>());
private LobbyPlayer player = null;
private int startingLife = 20;
private int startingHand = 7;
private Iterable<IPaperCard> cardsOnBattlefield = null;
@@ -24,7 +28,7 @@ public class PlayerStartConditions {
private Iterable<CardPrinted> planes = null;
private int teamNumber = -1; // members of teams with negative id will play FFA.
public PlayerStartConditions(Deck deck0) {
public RegisteredPlayer(Deck deck0) {
originalDeck = deck0;
currentDeck = originalDeck;
}
@@ -133,17 +137,17 @@ public class PlayerStartConditions {
}
public static PlayerStartConditions fromDeck(final Deck deck) {
PlayerStartConditions start = new PlayerStartConditions(deck);
public static RegisteredPlayer fromDeck(final Deck deck) {
RegisteredPlayer start = new RegisteredPlayer(deck);
if( deck != null && deck.has(DeckSection.Commander)) {
start.setStartingLife(40);
start.addCardsInCommand(deck.get(DeckSection.Commander).toFlatList());
}
return new PlayerStartConditions(deck);
return new RegisteredPlayer(deck);
}
public static PlayerStartConditions forVanguard(final Deck deck, final CardPrinted avatar) {
PlayerStartConditions start = fromDeck(deck);
public static RegisteredPlayer forVanguard(final Deck deck, final CardPrinted avatar) {
RegisteredPlayer start = fromDeck(deck);
start.setStartingLife(start.getStartingLife() + avatar.getRules().getLife());
start.setStartingHand(start.getStartingHand() + avatar.getRules().getHand());
start.addCardsInCommand(avatar);
@@ -151,17 +155,26 @@ public class PlayerStartConditions {
}
public static PlayerStartConditions forArchenemy(final Deck deck, final Iterable<CardPrinted> schemes) {
PlayerStartConditions start = fromDeck(deck);
public static RegisteredPlayer forArchenemy(final Deck deck, final Iterable<CardPrinted> schemes) {
RegisteredPlayer start = fromDeck(deck);
start.setSchemes(schemes);
return start;
}
public static PlayerStartConditions forPlanechase(final Deck deck, final Iterable<CardPrinted> planes) {
PlayerStartConditions start = fromDeck(deck);
public static RegisteredPlayer forPlanechase(final Deck deck, final Iterable<CardPrinted> planes) {
RegisteredPlayer start = fromDeck(deck);
start.setPlanes(planes);
return start;
}
public LobbyPlayer getPlayer() {
return player;
}
public RegisteredPlayer setPlayer(LobbyPlayer player0) {
this.player = player0;
return this;
}
}

View File

@@ -22,16 +22,13 @@ import java.util.List;
import javax.swing.SwingUtilities;
import org.apache.commons.lang3.tuple.Pair;
import forge.FThreads;
import forge.Singletons;
import forge.control.Lobby;
import forge.deck.Deck;
import forge.game.GameType;
import forge.game.MatchState;
import forge.game.PlayerStartConditions;
import forge.game.player.LobbyPlayer;
import forge.game.RegisteredPlayer;
import forge.gui.SOverlayUtils;
/**
@@ -52,7 +49,7 @@ public class GauntletMini {
private int losses;
private boolean gauntletDraft; // Means: Draft game is in Gauntlet-mode, not a single match
private GameType gauntletType;
private List<PlayerStartConditions> aiOpponents = new ArrayList<PlayerStartConditions>();
private List<RegisteredPlayer> aiOpponents = new ArrayList<RegisteredPlayer>();
// private final String humanName;
/**
@@ -145,7 +142,7 @@ public class GauntletMini {
aiOpponents.clear();
for (int i = 0; i < Math.min(gameRounds, aiDecks.size()); i++) {
aiOpponents.add(new PlayerStartConditions(aiDecks.get(i)));
aiOpponents.add(new RegisteredPlayer(aiDecks.get(i)));
}
resetCurrentRound();
@@ -164,11 +161,10 @@ public class GauntletMini {
}
});
List<Pair<LobbyPlayer, PlayerStartConditions>> starter = new ArrayList<Pair<LobbyPlayer,PlayerStartConditions>>();
List<RegisteredPlayer> starter = new ArrayList<RegisteredPlayer>();
Lobby lobby = Singletons.getControl().getLobby();
starter.add(Pair.of(lobby.getGuiPlayer(), PlayerStartConditions.fromDeck(humanDeck)));
starter.add(Pair.of(lobby.getAiPlayer(), aiOpponents.get(currentRound - 1)));
starter.add(RegisteredPlayer.fromDeck(humanDeck).setPlayer(lobby.getGuiPlayer()));
starter.add(aiOpponents.get(currentRound - 1).setPlayer(lobby.getAiPlayer()));
final MatchState mc = new MatchState(gauntletType, starter);
FThreads.invokeInEdtLater(new Runnable(){
@Override

View File

@@ -11,9 +11,6 @@ import java.util.List;
import javax.swing.JList;
import javax.swing.SwingUtilities;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import forge.Command;
import forge.FThreads;
import forge.Singletons;
@@ -22,8 +19,7 @@ import forge.deck.Deck;
import forge.deck.DeckgenUtil;
import forge.game.GameType;
import forge.game.MatchState;
import forge.game.PlayerStartConditions;
import forge.game.player.LobbyPlayer;
import forge.game.RegisteredPlayer;
import forge.gauntlet.GauntletData;
import forge.gauntlet.GauntletIO;
import forge.gui.SOverlayUtils;
@@ -121,11 +117,11 @@ public enum CSubmenuGauntletContests implements ICDoc {
Deck aiDeck = gd.getDecks().get(gd.getCompleted());
List<Pair<LobbyPlayer, PlayerStartConditions>> starter = new ArrayList<Pair<LobbyPlayer,PlayerStartConditions>>();
List<RegisteredPlayer> starter = new ArrayList<RegisteredPlayer>();
Lobby lobby = Singletons.getControl().getLobby();
starter.add(ImmutablePair.of(lobby.getGuiPlayer(), PlayerStartConditions.fromDeck(gd.getUserDeck())));
starter.add(ImmutablePair.of(lobby.getAiPlayer(), PlayerStartConditions.fromDeck(aiDeck)));
starter.add(RegisteredPlayer.fromDeck(gd.getUserDeck()).setPlayer(lobby.getGuiPlayer()));
starter.add(RegisteredPlayer.fromDeck(aiDeck).setPlayer(lobby.getAiPlayer()));
final MatchState mc = new MatchState(GameType.Gauntlet, starter);
FThreads.invokeInEdtLater(new Runnable(){

View File

@@ -9,8 +9,6 @@ import java.util.List;
import javax.swing.JButton;
import javax.swing.SwingUtilities;
import org.apache.commons.lang3.tuple.Pair;
import forge.Command;
import forge.FThreads;
import forge.Singletons;
@@ -18,8 +16,7 @@ import forge.control.Lobby;
import forge.deck.Deck;
import forge.game.GameType;
import forge.game.MatchState;
import forge.game.PlayerStartConditions;
import forge.game.player.LobbyPlayer;
import forge.game.RegisteredPlayer;
import forge.gauntlet.GauntletData;
import forge.gauntlet.GauntletIO;
import forge.gui.SOverlayUtils;
@@ -113,10 +110,10 @@ public enum CSubmenuGauntletLoad implements ICDoc {
final GauntletData gd = FModel.SINGLETON_INSTANCE.getGauntletData();
final Deck aiDeck = gd.getDecks().get(gd.getCompleted());
List<Pair<LobbyPlayer, PlayerStartConditions>> starter = new ArrayList<Pair<LobbyPlayer,PlayerStartConditions>>();
List<RegisteredPlayer> starter = new ArrayList<RegisteredPlayer>();
Lobby lobby = Singletons.getControl().getLobby();
starter.add(Pair.of(lobby.getGuiPlayer(), PlayerStartConditions.fromDeck(gd.getUserDeck())));
starter.add(Pair.of(lobby.getAiPlayer(), PlayerStartConditions.fromDeck(aiDeck)));
starter.add(RegisteredPlayer.fromDeck(gd.getUserDeck()).setPlayer(lobby.getGuiPlayer()));
starter.add(RegisteredPlayer.fromDeck(aiDeck).setPlayer(lobby.getAiPlayer()));
final MatchState mc = new MatchState(GameType.Gauntlet, starter);
FThreads.invokeInEdtLater(new Runnable(){

View File

@@ -10,8 +10,6 @@ import java.util.Set;
import javax.swing.SwingUtilities;
import org.apache.commons.lang3.tuple.Pair;
import forge.Command;
import forge.FThreads;
import forge.Singletons;
@@ -21,8 +19,7 @@ import forge.deck.DeckgenUtil;
import forge.deck.DeckgenUtil.DeckTypes;
import forge.game.GameType;
import forge.game.MatchState;
import forge.game.PlayerStartConditions;
import forge.game.player.LobbyPlayer;
import forge.game.RegisteredPlayer;
import forge.gauntlet.GauntletData;
import forge.gauntlet.GauntletIO;
import forge.gui.SOverlayUtils;
@@ -147,10 +144,10 @@ public enum CSubmenuGauntletQuick implements ICDoc {
final Deck aiDeck = gd.getDecks().get(gd.getCompleted());
List<Pair<LobbyPlayer, PlayerStartConditions>> starter = new ArrayList<Pair<LobbyPlayer,PlayerStartConditions>>();
List<RegisteredPlayer> starter = new ArrayList<RegisteredPlayer>();
Lobby lobby = Singletons.getControl().getLobby();
starter.add(Pair.of(lobby.getGuiPlayer(), PlayerStartConditions.fromDeck(gd.getUserDeck())));
starter.add(Pair.of(lobby.getAiPlayer(), PlayerStartConditions.fromDeck(aiDeck)));
starter.add(RegisteredPlayer.fromDeck(gd.getUserDeck()).setPlayer(lobby.getGuiPlayer()));
starter.add(RegisteredPlayer.fromDeck(aiDeck).setPlayer(lobby.getAiPlayer()));
final MatchState mc = new MatchState(GameType.Gauntlet, starter);
FThreads.invokeInEdtLater(new Runnable(){

View File

@@ -10,8 +10,6 @@ import javax.swing.SwingUtilities;
import javax.swing.SwingWorker;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import forge.FThreads;
import forge.Singletons;
import forge.card.CardEdition;
@@ -20,7 +18,7 @@ import forge.control.Lobby;
import forge.deck.Deck;
import forge.game.GameType;
import forge.game.MatchState;
import forge.game.PlayerStartConditions;
import forge.game.RegisteredPlayer;
import forge.game.player.LobbyPlayer;
import forge.gui.GuiChoose;
import forge.gui.SOverlayUtils;
@@ -419,8 +417,8 @@ public class SSubmenuQuestUtil {
forceAnte = qc.isForceAnte();
}
PlayerStartConditions humanStart = new PlayerStartConditions(deck);
PlayerStartConditions aiStart = new PlayerStartConditions(event.getEventDeck());
RegisteredPlayer humanStart = new RegisteredPlayer(deck);
RegisteredPlayer aiStart = new RegisteredPlayer(event.getEventDeck());
if (lifeHuman != null) {
humanStart.setStartingLife(lifeHuman);
@@ -434,13 +432,13 @@ public class SSubmenuQuestUtil {
aiStart.setCardsOnBattlefield(QuestUtil.getComputerStartingCards(event));
}
List<Pair<LobbyPlayer, PlayerStartConditions>> starter = new ArrayList<Pair<LobbyPlayer,PlayerStartConditions>>();
List<RegisteredPlayer> starter = new ArrayList<RegisteredPlayer>();
Lobby lobby = Singletons.getControl().getLobby();
starter.add(Pair.of(lobby.getQuestPlayer(), humanStart));
starter.add(humanStart.setPlayer(lobby.getQuestPlayer()));
LobbyPlayer aiPlayer = Singletons.getControl().getLobby().getAiPlayer(event.getOpponent() == null ? event.getTitle() : event.getOpponent());
aiPlayer.setIconImageKey(event.getIconImageKey());
starter.add(Pair.of(aiPlayer, aiStart));
starter.add(aiStart.setPlayer(aiPlayer));
final MatchState mc = new MatchState(GameType.Quest, starter, forceAnte);
FThreads.invokeInEdtLater(new Runnable(){

View File

@@ -7,16 +7,13 @@ import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import forge.Command;
import forge.FThreads;
import forge.Singletons;
import forge.control.Lobby;
import forge.game.GameType;
import forge.game.MatchState;
import forge.game.PlayerStartConditions;
import forge.game.RegisteredPlayer;
import forge.game.player.LobbyPlayer;
import forge.gui.SOverlayUtils;
import forge.gui.framework.ICDoc;
@@ -100,8 +97,8 @@ public enum CSubmenuConstructed implements ICDoc {
* @param gameType
*/
private void startGame(final GameType gameType) {
PlayerStartConditions pscLeft = view.getDcLeft().getDeck();
PlayerStartConditions pscRight = view.getDcRight().getDeck();
RegisteredPlayer pscLeft = view.getDcLeft().getDeck();
RegisteredPlayer pscRight = view.getDcRight().getDeck();
String humanDeckErrorMessage = gameType.getDecksFormat().getDeckConformanceProblem(pscRight.getOriginalDeck());
if (null != humanDeckErrorMessage) {
@@ -119,14 +116,13 @@ public enum CSubmenuConstructed implements ICDoc {
LobbyPlayer rightPlayer = view.isRightPlayerAi() ? lobby.getAiPlayer() : lobby.getGuiPlayer();
LobbyPlayer leftPlayer = view.isLeftPlayerAi() ? lobby.getAiPlayer() : lobby.getGuiPlayer();
List<Pair<LobbyPlayer, PlayerStartConditions>> players = new ArrayList<Pair<LobbyPlayer, PlayerStartConditions>>();
players.add(ImmutablePair.of(rightPlayer, pscRight));
players.add(ImmutablePair.of(leftPlayer, pscLeft));
List<RegisteredPlayer> players = new ArrayList<RegisteredPlayer>();
players.add(pscRight.setPlayer(rightPlayer));
players.add(pscLeft.setPlayer(leftPlayer));
final MatchState mc = new MatchState(gameType, players);
SOverlayUtils.startGameOverlay();
SOverlayUtils.showOverlay();
FThreads.invokeInEdtLater(new Runnable(){
@Override

View File

@@ -9,8 +9,6 @@ import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import org.apache.commons.lang3.tuple.Pair;
import forge.Command;
import forge.FThreads;
import forge.Singletons;
@@ -20,10 +18,9 @@ import forge.deck.Deck;
import forge.deck.DeckGroup;
import forge.game.GameType;
import forge.game.MatchState;
import forge.game.PlayerStartConditions;
import forge.game.RegisteredPlayer;
import forge.game.limited.BoosterDraft;
import forge.game.limited.LimitedPoolType;
import forge.game.player.LobbyPlayer;
import forge.gui.GuiChoose;
import forge.gui.SOverlayUtils;
import forge.gui.deckeditor.CDeckEditorUI;
@@ -134,10 +131,10 @@ public enum CSubmenuDraft implements ICDoc {
throw new IllegalStateException("Draft: Computer deck is null!");
}
List<Pair<LobbyPlayer, PlayerStartConditions>> starter = new ArrayList<Pair<LobbyPlayer, PlayerStartConditions>>();
List<RegisteredPlayer> starter = new ArrayList<RegisteredPlayer>();
Lobby lobby = Singletons.getControl().getLobby();
starter.add(Pair.of(lobby.getGuiPlayer(), PlayerStartConditions.fromDeck(humanDeck)));
starter.add(Pair.of(lobby.getAiPlayer(), PlayerStartConditions.fromDeck(aiDeck)));
starter.add(RegisteredPlayer.fromDeck(humanDeck).setPlayer(lobby.getGuiPlayer()));
starter.add(RegisteredPlayer.fromDeck(aiDeck).setPlayer(lobby.getAiPlayer()));
final MatchState mc = new MatchState(GameType.Draft, starter);
FThreads.invokeInEdtLater(new Runnable(){

View File

@@ -8,9 +8,6 @@ import java.util.Vector;
import javax.swing.SwingUtilities;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import com.google.common.base.Predicate;
import forge.Command;
@@ -23,8 +20,7 @@ import forge.deck.DeckSection;
import forge.deck.DeckgenUtil;
import forge.game.GameType;
import forge.game.MatchState;
import forge.game.PlayerStartConditions;
import forge.game.player.LobbyPlayer;
import forge.game.RegisteredPlayer;
import forge.gui.GuiDialog;
import forge.gui.SOverlayUtils;
import forge.gui.deckeditor.CDeckEditorUI;
@@ -166,7 +162,7 @@ public enum CSubmenuArchenemy implements ICDoc {
List<Deck> playerDecks = new ArrayList<Deck>();
for (int i = 0; i < view.getNumPlayers(); i++) {
PlayerStartConditions d = view.getDeckChoosers().get(i).getDeck();
RegisteredPlayer d = view.getDeckChoosers().get(i).getDeck();
if (d == null) {
//ERROR!
@@ -224,17 +220,17 @@ public enum CSubmenuArchenemy implements ICDoc {
Lobby lobby = Singletons.getControl().getLobby();
List<Pair<LobbyPlayer, PlayerStartConditions>> players = new ArrayList<Pair<LobbyPlayer,PlayerStartConditions>>();
List<RegisteredPlayer> players = new ArrayList<RegisteredPlayer>();
for (int i = 0; i < view.getNumPlayers(); i++) {
if (i == 0) {
PlayerStartConditions psc = PlayerStartConditions.forArchenemy(playerDecks.get(i), schemes);
RegisteredPlayer psc = RegisteredPlayer.forArchenemy(playerDecks.get(i), schemes);
psc.setStartingLife(10 + (10 * (view.getNumPlayers() - 1)));
players.add(ImmutablePair.of(lobby.getGuiPlayer(), psc));
players.add(psc.setPlayer(lobby.getGuiPlayer()));
} else {
PlayerStartConditions psc = PlayerStartConditions.fromDeck(playerDecks.get(i));
RegisteredPlayer psc = RegisteredPlayer.fromDeck(playerDecks.get(i));
psc.setTeamNumber(0);
players.add(ImmutablePair.of(lobby.getAiPlayer(), psc));
players.add(psc.setPlayer(lobby.getAiPlayer()));
}
}

View File

@@ -8,8 +8,6 @@ import java.util.Vector;
import javax.swing.SwingUtilities;
import org.apache.commons.lang3.tuple.Pair;
import com.google.common.base.Predicate;
import forge.Command;
@@ -22,7 +20,7 @@ import forge.deck.DeckSection;
import forge.deck.DeckgenUtil;
import forge.game.GameType;
import forge.game.MatchState;
import forge.game.PlayerStartConditions;
import forge.game.RegisteredPlayer;
import forge.game.player.LobbyPlayer;
import forge.gui.GuiDialog;
import forge.gui.SOverlayUtils;
@@ -152,10 +150,10 @@ public enum CSubmenuPlanechase implements ICDoc {
/** @param lists0 &emsp; {@link java.util.List}<{@link javax.swing.JList}> */
private void startGame() {
Lobby lobby = Singletons.getControl().getLobby();
List<Pair<LobbyPlayer, PlayerStartConditions>> helper = new ArrayList<Pair<LobbyPlayer,PlayerStartConditions>>();
List<RegisteredPlayer> helper = new ArrayList<RegisteredPlayer>();
List<Deck> playerDecks = new ArrayList<Deck>();
for (int i = 0; i < view.getNumPlayers(); i++) {
PlayerStartConditions d = view.getDeckChoosers().get(i).getDeck();
RegisteredPlayer d = view.getDeckChoosers().get(i).getDeck();
if (d == null) {
//ERROR!
@@ -211,7 +209,7 @@ public enum CSubmenuPlanechase implements ICDoc {
GuiDialog.message("Player " + (i+1) + " will use a default planar deck.");
}
LobbyPlayer player = i == 0 ? lobby.getGuiPlayer() : lobby.getAiPlayer();
helper.add(Pair.of(player, PlayerStartConditions.forPlanechase(playerDecks.get(i), planes)));
helper.add(RegisteredPlayer.forPlanechase(playerDecks.get(i), planes).setPlayer(player));
}
SOverlayUtils.startGameOverlay();

View File

@@ -8,8 +8,6 @@ import java.util.Random;
import javax.swing.SwingUtilities;
import org.apache.commons.lang3.tuple.Pair;
import com.google.common.collect.Iterables;
import forge.Command;
@@ -20,7 +18,7 @@ import forge.deck.Deck;
import forge.deck.DeckSection;
import forge.game.GameType;
import forge.game.MatchState;
import forge.game.PlayerStartConditions;
import forge.game.RegisteredPlayer;
import forge.game.player.LobbyPlayer;
import forge.gui.GuiDialog;
import forge.gui.SOverlayUtils;
@@ -123,7 +121,7 @@ public enum CSubmenuVanguard implements ICDoc {
List<Deck> playerDecks = new ArrayList<Deck>();
for (int i = 0; i < view.getNumPlayers(); i++) {
PlayerStartConditions d = view.getDeckChoosers().get(i).getDeck();
RegisteredPlayer d = view.getDeckChoosers().get(i).getDeck();
if (d == null) {
//ERROR!
@@ -174,10 +172,10 @@ public enum CSubmenuVanguard implements ICDoc {
}
Lobby lobby = Singletons.getControl().getLobby();
List<Pair<LobbyPlayer, PlayerStartConditions>> helper = new ArrayList<Pair<LobbyPlayer, PlayerStartConditions>>();
List<RegisteredPlayer> helper = new ArrayList<RegisteredPlayer>();
for (int i = 0; i < view.getNumPlayers(); i++) {
LobbyPlayer player = i == 0 ? lobby.getGuiPlayer() : lobby.getAiPlayer();
helper.add(Pair.of(player, PlayerStartConditions.forVanguard(playerDecks.get(i), playerAvatars.get(i))));
helper.add(RegisteredPlayer.forVanguard(playerDecks.get(i), playerAvatars.get(i)).setPlayer(player));
}
final MatchState mc = new MatchState(GameType.Vanguard, helper);
FThreads.invokeInEdtLater(new Runnable(){

View File

@@ -14,7 +14,7 @@ import forge.deck.Deck;
import forge.game.GameOutcome;
import forge.game.GameType;
import forge.game.MatchState;
import forge.game.PlayerStartConditions;
import forge.game.RegisteredPlayer;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.gui.GuiChoose;
@@ -127,7 +127,7 @@ public class ControlWinLose {
List<Card> compAntes = new ArrayList<Card>(fromGame.getCardsIn(ZoneType.Ante));
PlayerStartConditions psc = match.getPlayers().get(i).getValue();
RegisteredPlayer psc = match.getPlayers().get(i);
Deck cDeck = psc.getCurrentDeck();
Deck oDeck = psc.getOriginalDeck();
@@ -148,7 +148,7 @@ public class ControlWinLose {
if (fromGame.isHuman()) {
List<CardPrinted> chosen = GuiChoose.noneOrMany("Select cards to add to your deck", losses);
if (null != chosen) {
PlayerStartConditions psc = match.getPlayers().get(i).getValue();
RegisteredPlayer psc = match.getPlayers().get(i);
Deck cDeck = psc.getCurrentDeck();
//Deck oDeck = psc.getOriginalDeck();
for (CardPrinted c : chosen) {

View File

@@ -158,7 +158,7 @@ public enum CDock implements ICDoc {
*/
private void viewDeckList() {
showDeck(game.getMatch().getPlayers().get(0).getValue().getCurrentDeck());
showDeck(game.getMatch().getPlayers().get(0).getCurrentDeck());
}
/**

View File

@@ -25,7 +25,7 @@ import forge.Singletons;
import forge.deck.Deck;
import forge.deck.DeckgenUtil;
import forge.deck.generate.GenerateThemeDeck;
import forge.game.PlayerStartConditions;
import forge.game.RegisteredPlayer;
import forge.quest.QuestController;
import forge.quest.QuestEvent;
import forge.quest.QuestEventChallenge;
@@ -232,7 +232,7 @@ public class FDeckChooser extends JPanel {
}
/** Generates deck from current list selection(s). */
public PlayerStartConditions getDeck() {
public RegisteredPlayer getDeck() {
JList lst0 = getLstDecks();
@@ -243,7 +243,7 @@ public class FDeckChooser extends JPanel {
// Special branch for quest events
if (lst0.getName().equals(DeckgenUtil.DeckTypes.QUESTEVENTS.toString())) {
QuestEvent event = DeckgenUtil.getQuestEvent(selection[0]);
PlayerStartConditions result = new PlayerStartConditions(event.getEventDeck());
RegisteredPlayer result = new RegisteredPlayer(event.getEventDeck());
if( event instanceof QuestEventChallenge ) {
result.setStartingLife(((QuestEventChallenge) event).getAiLife());
}
@@ -260,7 +260,7 @@ public class FDeckChooser extends JPanel {
deck = DeckgenUtil.getConstructedDeck(selection);
}
return PlayerStartConditions.fromDeck(deck);
return RegisteredPlayer.fromDeck(deck);
}