mirror of
https://github.com/magefree/mage.git
synced 2025-12-29 06:52:02 -08:00
Adding Player state to TournamentPlayer and TournamentPanel.
This commit is contained in:
parent
7c5f1efe71
commit
06163d6ac5
8 changed files with 84 additions and 5 deletions
|
|
@ -30,7 +30,7 @@
|
|||
<Group type="102" attributes="0">
|
||||
<Component id="actionPanel" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jSplitPane2" pref="489" max="32767" attributes="0"/>
|
||||
<Component id="jSplitPane2" pref="494" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
|
|
|
|||
|
|
@ -363,7 +363,7 @@ public class TournamentPanel extends javax.swing.JPanel {
|
|||
}
|
||||
|
||||
class TournamentPlayersTableModel extends AbstractTableModel {
|
||||
private String[] columnNames = new String[]{"Player Name", "Points", "Results"};
|
||||
private String[] columnNames = new String[]{"Player Name", "State", "Points", "Results"};
|
||||
private TournamentPlayerView[] players = new TournamentPlayerView[0];
|
||||
|
||||
public void loadData(TournamentView tournament) {
|
||||
|
|
@ -387,8 +387,10 @@ class TournamentPlayersTableModel extends AbstractTableModel {
|
|||
case 0:
|
||||
return players[arg0].getName();
|
||||
case 1:
|
||||
return Integer.toString(players[arg0].getPoints());
|
||||
return players[arg0].getState();
|
||||
case 2:
|
||||
return Integer.toString(players[arg0].getPoints());
|
||||
case 3:
|
||||
return players[arg0].getResults();
|
||||
}
|
||||
return "";
|
||||
|
|
|
|||
|
|
@ -39,11 +39,17 @@ public class TournamentPlayerView implements Serializable {
|
|||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String name;
|
||||
private String state;
|
||||
private String results;
|
||||
private int points;
|
||||
|
||||
TournamentPlayerView(TournamentPlayer player) {
|
||||
this.name = player.getPlayer().getName();
|
||||
StringBuilder sb = new StringBuilder(player.getState().toString());
|
||||
if (!player.getStateInfo().isEmpty()) {
|
||||
sb.append(" (").append(player.getStateInfo()).append(")");
|
||||
}
|
||||
this.state = sb.toString();
|
||||
this.points = player.getPoints();
|
||||
this.results = player.getResults();
|
||||
}
|
||||
|
|
@ -52,6 +58,10 @@ public class TournamentPlayerView implements Serializable {
|
|||
return this.name;
|
||||
}
|
||||
|
||||
public String getState() {
|
||||
return state;
|
||||
}
|
||||
|
||||
public int getPoints() {
|
||||
return this.points;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
package mage.tournament;
|
||||
|
||||
import mage.constants.TournamentPlayerState;
|
||||
import mage.game.draft.BoosterDraft;
|
||||
import mage.game.draft.Draft;
|
||||
import mage.game.draft.DraftOptions;
|
||||
|
|
@ -57,6 +58,7 @@ public class BoosterDraftEliminationTournament extends TournamentSingleEliminati
|
|||
Draft draft = new BoosterDraft((DraftOptions) options.getLimitedOptions(), getSets());
|
||||
for (TournamentPlayer player: players.values()) {
|
||||
draft.addPlayer(player.getPlayer());
|
||||
player.setState(TournamentPlayerState.DRAFTING);
|
||||
}
|
||||
tableEventSource.fireTableEvent(EventType.START_DRAFT, null, draft);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ import java.util.UUID;
|
|||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import mage.MageException;
|
||||
import mage.cards.decks.Deck;
|
||||
import mage.constants.TournamentPlayerState;
|
||||
import mage.game.GameException;
|
||||
import mage.game.Table;
|
||||
import mage.game.draft.Draft;
|
||||
|
|
@ -201,6 +202,8 @@ public class TournamentController {
|
|||
tableManager.addPlayer(getPlayerSessionId(player2.getPlayer().getId()), table.getId(), player2.getPlayer(), player2.getPlayerType(), player2.getDeck());
|
||||
tableManager.startMatch(null, table.getId());
|
||||
pair.setMatch(tableManager.getMatch(table.getId()));
|
||||
player1.setState(TournamentPlayerState.DUELING);
|
||||
player2.setState(TournamentPlayerState.DUELING);
|
||||
} catch (GameException ex) {
|
||||
logger.fatal("TournamentController startMatch error", ex);
|
||||
}
|
||||
|
|
@ -223,16 +226,18 @@ public class TournamentController {
|
|||
TournamentSession tournamentSession = tournamentSessions.get(playerId);
|
||||
tournamentSession.construct(timeout);
|
||||
UserManager.getInstance().getUser(getPlayerSessionId(playerId)).addConstructing(playerId, tournamentSession);
|
||||
TournamentPlayer player = tournament.getPlayer(playerId);
|
||||
player.setState(TournamentPlayerState.CONSTRUCTING);
|
||||
}
|
||||
}
|
||||
|
||||
public void submitDeck(UUID playerId, Deck deck) {
|
||||
if (tournamentSessions.containsKey(playerId)) {
|
||||
tournamentSessions.get(playerId).submitDeck(deck);
|
||||
TournamentPlayer player = tournament.getPlayer(playerId);
|
||||
if (player != null) {
|
||||
ChatManager.getInstance().broadcast(chatId, "", player.getPlayer().getName() + " has submitted the deck", MessageColor.BLACK);
|
||||
ChatManager.getInstance().broadcast(chatId, "", player.getPlayer().getName() + " has submitted his tournament deck", MessageColor.BLACK);
|
||||
}
|
||||
tournamentSessions.get(playerId).submitDeck(deck);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
30
Mage/src/mage/constants/TournamentPlayerState.java
Normal file
30
Mage/src/mage/constants/TournamentPlayerState.java
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
package mage.constants;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
|
||||
public enum TournamentPlayerState {
|
||||
JOINED ("Joined"),
|
||||
DRAFTING ("Drafting"),
|
||||
CONSTRUCTING ("Constructing"),
|
||||
DUELING ("Dueling"),
|
||||
SIDEBOARDING ("Sideboarding"),
|
||||
WAITING ("Waiting for next round"),
|
||||
ELIMINATED ("Eliminated"),
|
||||
CANCELED ("Canceled"),
|
||||
FINISHED ("Finished"); // winner or player in swiss style
|
||||
|
||||
private String text;
|
||||
|
||||
TournamentPlayerState(String text) {
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return text;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -33,6 +33,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
|||
import mage.cards.Card;
|
||||
import mage.cards.ExpansionSet;
|
||||
import mage.cards.decks.Deck;
|
||||
import mage.constants.TournamentPlayerState;
|
||||
import mage.game.events.*;
|
||||
import mage.game.events.TableEvent.EventType;
|
||||
import mage.game.match.Match;
|
||||
|
|
@ -146,6 +147,11 @@ public abstract class TournamentImpl implements Tournament {
|
|||
Round round = new Round(rounds.size() + 1);
|
||||
rounds.add(round);
|
||||
List<TournamentPlayer> roundPlayers = getActivePlayers();
|
||||
if (roundPlayers.size() == 1) {
|
||||
TournamentPlayer winner = roundPlayers.get(0);
|
||||
winner.setState(TournamentPlayerState.FINISHED);
|
||||
winner.setStateInfo("Winner");
|
||||
}
|
||||
while (roundPlayers.size() > 1) {
|
||||
int i = rnd.nextInt(roundPlayers.size());
|
||||
TournamentPlayer player1 = roundPlayers.get(i);
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ package mage.game.tournament;
|
|||
|
||||
import mage.cards.Card;
|
||||
import mage.cards.decks.Deck;
|
||||
import mage.constants.TournamentPlayerState;
|
||||
import mage.players.Player;
|
||||
|
||||
/**
|
||||
|
|
@ -40,6 +41,8 @@ public class TournamentPlayer {
|
|||
|
||||
protected int points;
|
||||
protected String playerType;
|
||||
protected TournamentPlayerState state;
|
||||
protected String stateInfo = "";
|
||||
protected Player player;
|
||||
protected Deck deck;
|
||||
protected String results = "";
|
||||
|
|
@ -50,6 +53,7 @@ public class TournamentPlayer {
|
|||
public TournamentPlayer(Player player, String playerType) {
|
||||
this.player = player;
|
||||
this.playerType = playerType;
|
||||
this.state = TournamentPlayerState.JOINED;
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
|
|
@ -77,6 +81,7 @@ public class TournamentPlayer {
|
|||
}
|
||||
|
||||
public void setEliminated() {
|
||||
this.setState(TournamentPlayerState.ELIMINATED);
|
||||
this.eliminated = true;
|
||||
}
|
||||
|
||||
|
|
@ -89,12 +94,14 @@ public class TournamentPlayer {
|
|||
}
|
||||
|
||||
public void setConstructing() {
|
||||
this.setState(TournamentPlayerState.CONSTRUCTING);
|
||||
this.doneConstructing = false;
|
||||
}
|
||||
|
||||
public void submitDeck(Deck deck) {
|
||||
this.deck = deck;
|
||||
this.doneConstructing = true;
|
||||
this.setState(TournamentPlayerState.WAITING);
|
||||
}
|
||||
|
||||
public void updateDeck(Deck deck) {
|
||||
|
|
@ -126,4 +133,21 @@ public class TournamentPlayer {
|
|||
public void setResults(String results) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
public TournamentPlayerState getState() {
|
||||
return state;
|
||||
}
|
||||
|
||||
public void setState(TournamentPlayerState state) {
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
public String getStateInfo() {
|
||||
return stateInfo;
|
||||
}
|
||||
|
||||
public void setStateInfo(String stateInfo) {
|
||||
this.stateInfo = stateInfo;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue