mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 11:32:00 -08:00
fixed issue 255
This commit is contained in:
parent
abb58c4008
commit
bbb4f8a346
8 changed files with 32 additions and 8 deletions
|
|
@ -312,6 +312,7 @@ public class NewTableDialog extends MageDialog {
|
||||||
options.getPlayerTypes().add(player.getPlayerType());
|
options.getPlayerTypes().add(player.getPlayerType());
|
||||||
}
|
}
|
||||||
options.setDeckType((String) this.cbDeckType.getSelectedItem());
|
options.setDeckType((String) this.cbDeckType.getSelectedItem());
|
||||||
|
options.setLimited(false);
|
||||||
options.setAttackOption((MultiplayerAttackOption) this.cbAttackOption.getSelectedItem());
|
options.setAttackOption((MultiplayerAttackOption) this.cbAttackOption.getSelectedItem());
|
||||||
options.setRange((RangeOfInfluence) this.cbRange.getSelectedItem());
|
options.setRange((RangeOfInfluence) this.cbRange.getSelectedItem());
|
||||||
options.setWinsNeeded((Integer)this.spnNumWins.getValue());
|
options.setWinsNeeded((Integer)this.spnNumWins.getValue());
|
||||||
|
|
|
||||||
|
|
@ -306,6 +306,7 @@ public class NewTournamentDialog extends MageDialog {
|
||||||
tOptions.getMatchOptions().setWinsNeeded(2);
|
tOptions.getMatchOptions().setWinsNeeded(2);
|
||||||
tOptions.getMatchOptions().setAttackOption(MultiplayerAttackOption.LEFT);
|
tOptions.getMatchOptions().setAttackOption(MultiplayerAttackOption.LEFT);
|
||||||
tOptions.getMatchOptions().setRange(RangeOfInfluence.ALL);
|
tOptions.getMatchOptions().setRange(RangeOfInfluence.ALL);
|
||||||
|
tOptions.getMatchOptions().setLimited(true);
|
||||||
table = session.createTournamentTable(roomId, tOptions);
|
table = session.createTournamentTable(roomId, tOptions);
|
||||||
if (table == null) {
|
if (table == null) {
|
||||||
JOptionPane.showMessageDialog(MageFrame.getDesktop(), "Error creating table.", "Error", JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(MageFrame.getDesktop(), "Error creating table.", "Error", JOptionPane.ERROR_MESSAGE);
|
||||||
|
|
|
||||||
|
|
@ -209,7 +209,10 @@ public class CallbackClientImpl implements CallbackClient {
|
||||||
TableClientMessage message = (TableClientMessage) callback.getData();
|
TableClientMessage message = (TableClientMessage) callback.getData();
|
||||||
DeckView deckView = message.getDeck();
|
DeckView deckView = message.getDeck();
|
||||||
Deck deck = DeckUtil.construct(deckView);
|
Deck deck = DeckUtil.construct(deckView);
|
||||||
sideboard(deck, message.getTableId(), message.getTime());
|
if (message.getFlag())
|
||||||
|
construct(deck, message.getTableId(), message.getTime());
|
||||||
|
else
|
||||||
|
sideboard(deck, message.getTableId(), message.getTime());
|
||||||
}
|
}
|
||||||
else if (callback.getMethod().equals("construct")) {
|
else if (callback.getMethod().equals("construct")) {
|
||||||
TableClientMessage message = (TableClientMessage) callback.getData();
|
TableClientMessage message = (TableClientMessage) callback.getData();
|
||||||
|
|
|
||||||
|
|
@ -514,7 +514,7 @@ public class TablesPanel extends javax.swing.JPanel {
|
||||||
options.setWinsNeeded(1);
|
options.setWinsNeeded(1);
|
||||||
table = session.createTable(roomId, options);
|
table = session.createTable(roomId, options);
|
||||||
session.joinTable(roomId, table.getTableId(), "Human", "Human", 1, Sets.loadDeck("test.dck"));
|
session.joinTable(roomId, table.getTableId(), "Human", "Human", 1, Sets.loadDeck("test.dck"));
|
||||||
session.joinTable(roomId, table.getTableId(), "Computer", "Computer - minimax", 1, Sets.loadDeck("test.dck"));
|
session.joinTable(roomId, table.getTableId(), "Computer", "Computer - minimax", 5, Sets.loadDeck("test.dck"));
|
||||||
session.startGame(roomId, table.getTableId());
|
session.startGame(roomId, table.getTableId());
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
handleError(ex);
|
handleError(ex);
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ public class TableClientMessage implements Serializable {
|
||||||
private UUID gameId;
|
private UUID gameId;
|
||||||
private UUID playerId;
|
private UUID playerId;
|
||||||
private int time;
|
private int time;
|
||||||
private boolean flag;
|
private boolean flag = false;
|
||||||
|
|
||||||
public TableClientMessage(Deck deck, UUID tableId, int time) {
|
public TableClientMessage(Deck deck, UUID tableId, int time) {
|
||||||
this.deck = new DeckView(deck);
|
this.deck = new DeckView(deck);
|
||||||
|
|
@ -54,6 +54,13 @@ public class TableClientMessage implements Serializable {
|
||||||
this.time = time;
|
this.time = time;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TableClientMessage(Deck deck, UUID tableId, int time, boolean flag) {
|
||||||
|
this.deck = new DeckView(deck);
|
||||||
|
this.tableId = tableId;
|
||||||
|
this.time = time;
|
||||||
|
this.flag = flag;
|
||||||
|
}
|
||||||
|
|
||||||
public TableClientMessage(UUID gameId, UUID playerId) {
|
public TableClientMessage(UUID gameId, UUID playerId) {
|
||||||
this.gameId = gameId;
|
this.gameId = gameId;
|
||||||
this.playerId = playerId;
|
this.playerId = playerId;
|
||||||
|
|
|
||||||
|
|
@ -381,7 +381,7 @@ public class TableController {
|
||||||
User user = UserManager.getInstance().getUser(entry.getKey());
|
User user = UserManager.getInstance().getUser(entry.getKey());
|
||||||
int remaining = (int) futureTimeout.getDelay(TimeUnit.SECONDS);
|
int remaining = (int) futureTimeout.getDelay(TimeUnit.SECONDS);
|
||||||
if (user != null)
|
if (user != null)
|
||||||
user.sideboard(deck, table.getId(), remaining);
|
user.sideboard(deck, table.getId(), remaining, options.isLimited());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -394,6 +394,10 @@ public class TableController {
|
||||||
public void construct() {
|
public void construct() {
|
||||||
table.construct();
|
table.construct();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MatchOptions getOptions() {
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
public void endGame() {
|
public void endGame() {
|
||||||
UUID choosingPlayerId = match.getChooser();
|
UUID choosingPlayerId = match.getChooser();
|
||||||
|
|
|
||||||
|
|
@ -139,8 +139,8 @@ public class User {
|
||||||
fireCallback(new ClientCallback("startTournament", tournamentId, new TableClientMessage(tournamentId, playerId)));
|
fireCallback(new ClientCallback("startTournament", tournamentId, new TableClientMessage(tournamentId, playerId)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sideboard(final Deck deck, final UUID tableId, final int time) {
|
public void sideboard(final Deck deck, final UUID tableId, final int time, boolean limited) {
|
||||||
fireCallback(new ClientCallback("sideboard", tableId, new TableClientMessage(deck, tableId, time)));
|
fireCallback(new ClientCallback("sideboard", tableId, new TableClientMessage(deck, tableId, time, limited)));
|
||||||
sideboarding.put(tableId, deck);
|
sideboarding.put(tableId, deck);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -203,8 +203,8 @@ public class User {
|
||||||
entry.getValue().construct(0);
|
entry.getValue().construct(0);
|
||||||
}
|
}
|
||||||
for (Entry<UUID, Deck> entry: sideboarding.entrySet()) {
|
for (Entry<UUID, Deck> entry: sideboarding.entrySet()) {
|
||||||
int remaining = TableManager.getInstance().getController(entry.getKey()).getRemainingTime();
|
TableController controller = TableManager.getInstance().getController(entry.getKey());
|
||||||
sideboard(entry.getValue(), entry.getKey(), remaining);
|
sideboard(entry.getValue(), entry.getKey(), controller.getRemainingTime(), controller.getOptions().isLimited());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ public class MatchOptions implements Serializable {
|
||||||
protected int winsNeeded;
|
protected int winsNeeded;
|
||||||
protected String gameType;
|
protected String gameType;
|
||||||
protected String deckType;
|
protected String deckType;
|
||||||
|
protected boolean limited;
|
||||||
protected List<String> playerTypes = new ArrayList<String>();
|
protected List<String> playerTypes = new ArrayList<String>();
|
||||||
|
|
||||||
public MatchOptions(String name, String gameType) {
|
public MatchOptions(String name, String gameType) {
|
||||||
|
|
@ -100,5 +101,12 @@ public class MatchOptions implements Serializable {
|
||||||
public List<String> getPlayerTypes() {
|
public List<String> getPlayerTypes() {
|
||||||
return playerTypes;
|
return playerTypes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isLimited() {
|
||||||
|
return limited;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLimited(boolean limited) {
|
||||||
|
this.limited = limited;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue