diff --git a/.gitattributes b/.gitattributes index 329a392d506..856a3ef2497 100644 --- a/.gitattributes +++ b/.gitattributes @@ -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 diff --git a/src/main/java/forge/game/GameNew.java b/src/main/java/forge/game/GameNew.java index f693dc3d636..7b760d0e4a9 100644 --- a/src/main/java/forge/game/GameNew.java +++ b/src/main/java/forge/game/GameNew.java @@ -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> playersConditions = game.getMatch().getPlayers(); + final List 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); diff --git a/src/main/java/forge/game/GameState.java b/src/main/java/forge/game/GameState.java index 41e5ff75a3c..1ecc5d1f78a 100644 --- a/src/main/java/forge/game/GameState.java +++ b/src/main/java/forge/game/GameState.java @@ -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> players0, GameType t, MatchState match0) { /* no more zones to map here */ + public GameState(List players0, GameType t, MatchState match0) { /* no more zones to map here */ type = t; match = match0; List players = new ArrayList(); allPlayers = Collections.unmodifiableList(players); roIngamePlayers = Collections.unmodifiableList(ingamePlayers); - for (Entry 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()); diff --git a/src/main/java/forge/game/MatchState.java b/src/main/java/forge/game/MatchState.java index 91195ab7f98..9156d1fe533 100644 --- a/src/main/java/forge/game/MatchState.java +++ b/src/main/java/forge/game/MatchState.java @@ -25,7 +25,7 @@ import forge.util.Aggregates; public class MatchState { - private final List> players; + private final List 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> players0) { + public MatchState(GameType type, List players0) { gamesPlayedRo = Collections.unmodifiableList(gamesPlayed); players = Collections.unmodifiableList(Lists.newArrayList(players0)); gameType = type; } - public MatchState(GameType type, List> players0, Boolean overrideAnte) { + public MatchState(GameType type, List 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 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> getPlayers() { + public List getPlayers() { return players; } diff --git a/src/main/java/forge/game/PlayerStartConditions.java b/src/main/java/forge/game/RegisteredPlayer.java similarity index 77% rename from src/main/java/forge/game/PlayerStartConditions.java rename to src/main/java/forge/game/RegisteredPlayer.java index 7b77d9cef4a..ef703060a62 100644 --- a/src/main/java/forge/game/PlayerStartConditions.java +++ b/src/main/java/forge/game/RegisteredPlayer.java @@ -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 EmptyList = Collections.unmodifiableList(new ArrayList()); + + private LobbyPlayer player = null; + private int startingLife = 20; private int startingHand = 7; private Iterable cardsOnBattlefield = null; @@ -24,7 +28,7 @@ public class PlayerStartConditions { private Iterable 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 schemes) { - PlayerStartConditions start = fromDeck(deck); + public static RegisteredPlayer forArchenemy(final Deck deck, final Iterable schemes) { + RegisteredPlayer start = fromDeck(deck); start.setSchemes(schemes); return start; } - public static PlayerStartConditions forPlanechase(final Deck deck, final Iterable planes) { - PlayerStartConditions start = fromDeck(deck); + public static RegisteredPlayer forPlanechase(final Deck deck, final Iterable 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; + } + } diff --git a/src/main/java/forge/game/limited/GauntletMini.java b/src/main/java/forge/game/limited/GauntletMini.java index d52a5f1b537..17d455d2eef 100644 --- a/src/main/java/forge/game/limited/GauntletMini.java +++ b/src/main/java/forge/game/limited/GauntletMini.java @@ -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 aiOpponents = new ArrayList(); + private List aiOpponents = new ArrayList(); // 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> starter = new ArrayList>(); + List starter = new ArrayList(); 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 diff --git a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletContests.java b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletContests.java index d477d4f072b..490c2fed159 100644 --- a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletContests.java +++ b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletContests.java @@ -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> starter = new ArrayList>(); + List starter = new ArrayList(); 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(){ diff --git a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java index 69c831c8099..3588f56e246 100644 --- a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java +++ b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java @@ -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> starter = new ArrayList>(); + List starter = new ArrayList(); 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(){ diff --git a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletQuick.java b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletQuick.java index d5f8c27c14d..b1a56eb5832 100644 --- a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletQuick.java +++ b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletQuick.java @@ -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> starter = new ArrayList>(); + List starter = new ArrayList(); 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(){ diff --git a/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java b/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java index 31b872b9849..4f817ffdf66 100644 --- a/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java +++ b/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java @@ -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> starter = new ArrayList>(); + List starter = new ArrayList(); 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(){ diff --git a/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java b/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java index 4ccdd89c1a6..5bbc04251d2 100644 --- a/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java +++ b/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java @@ -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> players = new ArrayList>(); - players.add(ImmutablePair.of(rightPlayer, pscRight)); - players.add(ImmutablePair.of(leftPlayer, pscLeft)); + List players = new ArrayList(); + 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 diff --git a/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java b/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java index c126a0f48ef..777fc8aece3 100644 --- a/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java +++ b/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java @@ -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> starter = new ArrayList>(); + List starter = new ArrayList(); 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(){ diff --git a/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java b/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java index 028b052c3ff..83bdc351898 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java @@ -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 playerDecks = new ArrayList(); 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> players = new ArrayList>(); + List players = new ArrayList(); 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())); } } diff --git a/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java b/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java index a1a9097b5a3..befd4cf4bf2 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java @@ -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   {@link java.util.List}<{@link javax.swing.JList}> */ private void startGame() { Lobby lobby = Singletons.getControl().getLobby(); - List> helper = new ArrayList>(); + List helper = new ArrayList(); List playerDecks = new ArrayList(); 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(); diff --git a/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java b/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java index eb115972898..3943e8e28e2 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java @@ -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 playerDecks = new ArrayList(); 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> helper = new ArrayList>(); + List helper = new ArrayList(); 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(){ diff --git a/src/main/java/forge/gui/match/ControlWinLose.java b/src/main/java/forge/gui/match/ControlWinLose.java index 1de3766abde..1c9f3936216 100644 --- a/src/main/java/forge/gui/match/ControlWinLose.java +++ b/src/main/java/forge/gui/match/ControlWinLose.java @@ -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 compAntes = new ArrayList(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 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) { diff --git a/src/main/java/forge/gui/match/controllers/CDock.java b/src/main/java/forge/gui/match/controllers/CDock.java index e19ebda90e1..a5ed0cfe714 100644 --- a/src/main/java/forge/gui/match/controllers/CDock.java +++ b/src/main/java/forge/gui/match/controllers/CDock.java @@ -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()); } /** diff --git a/src/main/java/forge/gui/toolbox/FDeckChooser.java b/src/main/java/forge/gui/toolbox/FDeckChooser.java index 64ae681a5b9..76a19ffa639 100644 --- a/src/main/java/forge/gui/toolbox/FDeckChooser.java +++ b/src/main/java/forge/gui/toolbox/FDeckChooser.java @@ -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); }