mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 04:52:07 -08:00
changes to support matches
This commit is contained in:
parent
9ed6145b4b
commit
6ae4ac3c5e
34 changed files with 443 additions and 128 deletions
|
|
@ -53,6 +53,7 @@ import mage.client.remote.Session;
|
|||
import mage.client.table.TablePlayerPanel;
|
||||
import mage.client.util.Event;
|
||||
import mage.client.util.Listener;
|
||||
import mage.game.match.MatchOptions;
|
||||
import mage.sets.Sets;
|
||||
import mage.util.Logging;
|
||||
import mage.view.GameTypeView;
|
||||
|
|
@ -277,18 +278,16 @@ public class NewTableDialog extends MageDialog {
|
|||
|
||||
private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOKActionPerformed
|
||||
GameTypeView gameType = (GameTypeView) cbGameType.getSelectedItem();
|
||||
List<String> playerTypes = new ArrayList<String>();
|
||||
playerTypes.add("Human");
|
||||
MatchOptions options = new MatchOptions("Quick Start Game", gameType.getName());
|
||||
options.getPlayerTypes().add("Human");
|
||||
for (TablePlayerPanel player: players) {
|
||||
playerTypes.add(player.getPlayerType());
|
||||
options.getPlayerTypes().add(player.getPlayerType());
|
||||
}
|
||||
table = session.createTable(
|
||||
roomId,
|
||||
gameType.getName(),
|
||||
(String)this.cbDeckType.getSelectedItem(),
|
||||
playerTypes,
|
||||
(MultiplayerAttackOption)this.cbAttackOption.getSelectedItem(),
|
||||
(RangeOfInfluence)this.cbRange.getSelectedItem());
|
||||
options.setDeckType((String) this.cbDeckType.getSelectedItem());
|
||||
options.setAttackOption((MultiplayerAttackOption) this.cbAttackOption.getSelectedItem());
|
||||
options.setRange((RangeOfInfluence) this.cbRange.getSelectedItem());
|
||||
options.setWinsNeeded(1);
|
||||
table = session.createTable(roomId, options);
|
||||
try {
|
||||
if (session.joinTable(roomId, table.getTableId(), this.player1Panel.getPlayerName(), Sets.loadDeck(this.player1Panel.getDeckFile()))) {
|
||||
for (TablePlayerPanel player: players) {
|
||||
|
|
|
|||
|
|
@ -49,7 +49,9 @@ import mage.client.components.MageUI;
|
|||
import mage.client.game.GamePanel;
|
||||
import mage.client.util.Config;
|
||||
import mage.game.GameException;
|
||||
import mage.game.match.MatchType;
|
||||
import mage.interfaces.MageException;
|
||||
import mage.game.match.MatchOptions;
|
||||
import mage.interfaces.Server;
|
||||
import mage.interfaces.ServerState;
|
||||
import mage.interfaces.callback.CallbackClientDaemon;
|
||||
|
|
@ -396,9 +398,9 @@ public class Session {
|
|||
return false;
|
||||
}
|
||||
|
||||
public TableView createTable(UUID roomId, String gameType, String deckType, List<String> playerTypes, MultiplayerAttackOption attackOption, RangeOfInfluence range) {
|
||||
public TableView createTable(UUID roomId, MatchOptions matchOptions) {
|
||||
try {
|
||||
return server.createTable(sessionId, roomId, gameType, deckType, playerTypes, attackOption, range);
|
||||
return server.createTable(sessionId, roomId, matchOptions);
|
||||
} catch (RemoteException ex) {
|
||||
handleRemoteException(ex);
|
||||
} catch (MageException ex) {
|
||||
|
|
@ -456,7 +458,7 @@ public class Session {
|
|||
|
||||
public boolean startGame(UUID roomId, UUID tableId) {
|
||||
try {
|
||||
server.startGame(sessionId, roomId, tableId);
|
||||
server.startMatch(sessionId, roomId, tableId);
|
||||
return true;
|
||||
} catch (RemoteException ex) {
|
||||
handleRemoteException(ex);
|
||||
|
|
|
|||
|
|
@ -37,9 +37,7 @@ package mage.client.table;
|
|||
import java.awt.Color;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Observable;
|
||||
import java.util.Observer;
|
||||
|
|
@ -53,8 +51,9 @@ import javax.swing.JComponent;
|
|||
import javax.swing.JOptionPane;
|
||||
import javax.swing.Timer;
|
||||
import javax.swing.table.AbstractTableModel;
|
||||
import mage.Constants.MultiplayerAttackOption;
|
||||
import mage.Constants.RangeOfInfluence;
|
||||
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
import mage.client.MageFrame;
|
||||
import mage.client.components.MageComponents;
|
||||
import mage.client.dialog.JoinTableDialog;
|
||||
|
|
@ -63,6 +62,7 @@ import mage.client.dialog.TableWaitingDialog;
|
|||
import mage.client.remote.MageRemoteException;
|
||||
import mage.client.remote.Session;
|
||||
import mage.client.util.ButtonColumn;
|
||||
import mage.game.match.MatchOptions;
|
||||
import mage.sets.Sets;
|
||||
import mage.util.Logging;
|
||||
import mage.view.TableView;
|
||||
|
|
@ -280,16 +280,14 @@ public class TablesPanel extends javax.swing.JPanel implements Observer {
|
|||
private void btnQuickStartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnQuickStartActionPerformed
|
||||
TableView table;
|
||||
try {
|
||||
List<String> playerTypes = new ArrayList<String>();
|
||||
playerTypes.add("Human");
|
||||
playerTypes.add("Computer - default");
|
||||
table = session.createTable(
|
||||
roomId,
|
||||
"Two Player Duel",
|
||||
"Constructed",
|
||||
playerTypes,
|
||||
null, null
|
||||
);
|
||||
MatchOptions options = new MatchOptions("1", "Two Player Duel");
|
||||
options.getPlayerTypes().add("Human");
|
||||
options.getPlayerTypes().add("Computer - default");
|
||||
options.setDeckType("Limited");
|
||||
options.setAttackOption(MultiplayerAttackOption.LEFT);
|
||||
options.setRange(RangeOfInfluence.ALL);
|
||||
options.setWinsNeeded(1);
|
||||
table = session.createTable(roomId, options);
|
||||
session.joinTable(
|
||||
roomId,
|
||||
table.getTableId(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue