private JMenu createViewMenu() { JMenu menu = new JMenu("View"); IGame game = client.getGame(); IPlayer localPlayer = client.getLocalPlayer(); for (Entity entity : game.getEntitiesVector(coords, true)) { // Only add the unit if it's actually visible // With double blind on, the game may unseen units if (!entity.isSensorReturn(localPlayer) && entity.hasSeenEntity(localPlayer)) { menu.add(viewJMenuItem(entity)); } } return menu; }
/** * The client has become disconnected from the server */ protected void disconnected() { if (!disconnectFlag) { disconnectFlag = true; if (connected) { die(); } if (!host.equals("localhost")) { //$NON-NLS-1$ game.processGameEvent(new GamePlayerDisconnectedEvent(this, getLocalPlayer())); } } }
public void deleteAllUnits(Client c) { ArrayList<Entity> currentUnits = c.getGame().getPlayerEntities( c.getLocalPlayer(), false); ArrayList<Integer> ids = new ArrayList<Integer>(currentUnits.size()); for (Entity e : currentUnits){ ids.add(e.getId()); } c.sendDeleteEntities(ids); }
/** * Return a list of all nova CEWS units the clients player owns. * @return */ private List<Entity> getMyNovaUnits() { List<Entity> novaUnits = new LinkedList<Entity>(); for (Entity ent : client.getEntitiesVector()) { if(ent.getOwnerId() == client.getLocalPlayer().getId() && ent.hasNovaCEWS()) { novaUnits.add(ent); } } return novaUnits; }
@Override public void run() { client.addCloseClientListener(this); client2.die(); client.connect(); } catch (Exception ex) { MekHQ.getLogger().log(getClass(), "run", LogLevel.ERROR, //$NON-NLS-1$ while (client.getLocalPlayer() == null) { Thread.sleep(50); for (int i = 0; (i < 1000) && (client.getGame().getPhase() == IGame.Phase.PHASE_UNKNOWN); i++) { Thread.sleep(50); System.out.println("Thread in unknown stage" ); if (((client.getGame() != null) && (client.getGame().getPhase() == IGame.Phase.PHASE_LOUNGE))) { System.out.println("Thread in lounge" ); client.getLocalPlayer().setCamoCategory(app.getCampaign().getCamoCategory()); client.getLocalPlayer().setCamoFileName(app.getCampaign().getCamoFileName()); client.getLocalPlayer().setColorIndex(app.getCampaign().getColorIndex()); client.getGame().getOptions().loadOptions(); client.sendGameOptions("", app.getCampaign().getGameOptionsVector()); Thread.sleep(campaign.getCampaignOptions().getStartGameDelay()); mapSettings.getBoardsSelectedVector().clear(); mapSettings.getBoardsSelectedVector().add(MapSettings.BOARD_GENERATED);
clientgui.getGameOptionsDialog().update(clientgui.getClient().getGame().getOptions()); clientgui.getGameOptionsDialog().setVisible(true); } else if (ev.getSource().equals(butCompact)) { clientgui.loadListFile(c.getLocalPlayer()); } else if (ev.getSource().equals(butSaveList)) { clientgui.saveListFile(c.getGame().getPlayerEntities(c.getLocalPlayer(), false), c.getLocalPlayer().getName()); } else if (ev.getSource().equals(butAddBot)) { BotConfigDialog bcd = new BotConfigDialog(clientgui.frame); Messages.getString("ChatLounge.AlertExistsBot.message")); //$NON-NLS-1$ //$NON-NLS-2$ } else { BotClient c = bcd.getSelectedBot(clientgui.getClient().getHost(), clientgui.getClient().getPort()); c.setClientGUI(clientgui); c.getGame().addGameListener(new BotGUI(c)); c.die(); clientgui.getBots().remove(c.getName()); } else if (ev.getSource() == butConditions) { clientgui.getPlanetaryConditionsDialog().update(clientgui.getClient().getGame().getPlanetaryConditions()); clientgui.getPlanetaryConditionsDialog().setVisible(true); } else if (ev.getSource() == butRandomMap) { resetAvailBoardSelection = true; resetSelectedBoards = true; clientgui.getClient().sendMapSettings(mapSettings);
@Override public void run() { client.addCloseClientListener(this); client2.die(); client.connect(); } catch (Exception ex) { MekHQ.getLogger().log(getClass(), "run()", LogLevel.ERROR, while (client.getLocalPlayer() == null) { Thread.sleep(50); for (int i = 0; (i < 1000) && (client.getGame().getPhase() == IGame.Phase.PHASE_UNKNOWN); i++) { Thread.sleep(50); System.out.println("Thread in unknown stage" ); if (((client.getGame() != null) && (client.getGame().getPhase() == IGame.Phase.PHASE_LOUNGE))) { System.out.println("Thread in lounge" ); client.getLocalPlayer().setCamoCategory(app.getCampaign().getCamoCategory()); client.getLocalPlayer().setCamoFileName(app.getCampaign().getCamoFileName()); client.getGame().getOptions().loadOptions(); client.sendGameOptions("", app.getCampaign().getGameOptionsVector()); Thread.sleep(campaign.getCampaignOptions().getStartGameDelay()); entity.setOwner(client.getLocalPlayer()); client.sendAddEntity(entity);
/** * Returns the current entity. */ Entity ce() { return clientgui.getClient().getGame().getEntity(cen); }
client = new Client(cd.playerName, cd.serverAddr, cd.port); ClientGUI gui = new ClientGUI(client, controller); controller.clientgui = gui; gui.initialize(); frame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); if (!client.connect()) { StringBuffer error = new StringBuffer(); error.append("Error: could not connect to server at ") Messages.getString("MegaMek.ConnectAlert.title"), JOptionPane.ERROR_MESSAGE); //$NON-NLS-1$ frame.setVisible(false); client.die();
e.setOwner(c.getLocalPlayer()); if (c.getGame().getPhase() != Phase.PHASE_LOUNGE){ e.setDeployRound(c.getGame().getRoundCount()+1); e.setGame(c.getGame()); c.sendAddEntity(entities);
client.sendChat("/localsave " + file + " " + path); //$NON-NLS-1$ String filename = (String) JOptionPane.showInputDialog(frame, Messages.getString("ClientGUI.FileSaveServerDialog.message"), Messages.getString("ClientGUI.FileSaveServerDialog.title"), JOptionPane.QUESTION_MESSAGE, null, null, "savegame.sav"); if (filename != null) { client.sendChat("/save " + filename); loadListFile(client.getLocalPlayer(), true); ignoreHotKeys = false; if (client.getLocalPlayer().getTeam() == IPlayer.TEAM_UNASSIGNED){ String title = Messages.getString( "ClientGUI.openUnitListFileDialog.noReinforceTitle"); //$NON-NLS-1$ !GUIPreferences.getInstance().getFovHighlight()); bv.refreshDisplayables(); if (client.getGame().getPhase() == Phase.PHASE_MOVEMENT) { bv.clearHexImageCache(); !GUIPreferences.getInstance().getFovDarken()); bv.refreshDisplayables(); if (client.getGame().getPhase() == Phase.PHASE_MOVEMENT) { bv.clearHexImageCache(); ent.getCustomWeaponOrder()); getMenuBar().updateSaveWeaponOrderMenuItem(); client.sendEntityWeaponOrderUpdate(ent);
/** * Allow the player to select a MegaMek Unit List file to load. The * <code>Entity</code>s in the file will replace any that the player has * already selected. As such, this method should only be called in the chat * lounge. The file can record damage sustained, non- standard munitions * selected, and ammunition expended in a prior engagement. * * @param c */ protected void loadListFile(Client c) { loadListFile(c.getLocalPlayer()); }
client.getGame().addGameListener(new BotGUI((BotClient) client)); ClientGUI gui = new ClientGUI(client, controller); controller.clientgui = gui; gui.initialize(); if (!client.connect()) { StringBuffer error = new StringBuffer(); error.append("Error: could not connect to server at ") Messages.getString("MegaMek.ConnectAlert.title"), JOptionPane.ERROR_MESSAGE); //$NON-NLS-1$ frame.setVisible(false); client.die();
bv.clearFieldofF(); for (Client client2 : getBots().values()) { client2.die(); ArrayList<Entity> living = getClient().getGame().getPlayerEntities(getClient().getLocalPlayer(), false); for (Enumeration<Entity> iter = getClient().getGame().getRetreatedEntities(); iter.hasMoreElements(); ) { Entity ent = iter.nextElement(); if (ent.getOwnerId() == getClient().getLocalPlayer().getId()) { living.add(ent); Enumeration<Entity> graveyard = getClient().getGame().getGraveyardEntities(); while (graveyard.hasMoreElements()) { Entity entity = graveyard.nextElement();
public void joinGame(Scenario scenario, ArrayList<Unit> meks) { LaunchGameDialog lgd = new LaunchGameDialog(campaigngui.getFrame(), false, campaign); lgd.setVisible(true); if(lgd.cancelled) { return; } try { client = new Client(lgd.playerName, lgd.serverAddr, lgd.port); } catch (Exception ex) { MekHQ.logMessage("Failed to connect to server properly"); MekHQ.logError(ex); return; } client.getGame().addGameListener(this); currentScenario = scenario; //Start the game thread gameThread = new GameThread(lgd.playerName, client, this, meks, false); gameThread.start(); }
entity.setOwner(player); if (reinforce) { entity.setDeployRound(client.getGame().getRoundCount()+1); entity.setGame(client.getGame()); client.sendAddEntity(loadedUnits); addedUnits = true; client.getGame().setupRoundDeployment(); client.sendResetRoundDeployment();
String actual = testAddBotUtil.addBot(args, mockGame, mockClient.getHost(), mockClient.getPort()); TestCase.assertEquals(expected, actual); args = new String[]{"/replacePlayer", "-b:TestBot", BOT_PLAYER_NAME}; expected = "TestBot has replaced MockBot.\n"; actual = testAddBotUtil.addBot(args, mockGame, mockClient.getHost(), mockClient.getPort()); TestCase.assertEquals(expected, actual); args = new String[]{"/replacePlayer", "-b:Princess", BOT_PLAYER_NAME}; expected = "Princess has replaced MockBot. Config: DEFAULT. Verbosity: " + DEFAULT_VERBOSITY + ".\n"; actual = testAddBotUtil.addBot(args, mockGame, mockClient.getHost(), mockClient.getPort()); TestCase.assertEquals(expected, actual); args = new String[]{"/replacePlayer", "-b:Princess", "-c:BERSERK", "-p:" + BOT_PLAYER_NAME}; expected = "Princess has replaced MockBot. Config: BERSERK. Verbosity: " + DEFAULT_VERBOSITY + ".\n"; actual = testAddBotUtil.addBot(args, mockGame, mockClient.getHost(), mockClient.getPort()); TestCase.assertEquals(expected, actual); BehaviorSettings expectedBehavior = BehaviorSettingsFactory.getInstance().getBehavior("BERSERK"); args = new String[] { "/replacePlayer", "-b:Princess", "-v:" + LogLevel.INFO, "-p:" + BOT_PLAYER_NAME }; expected = "Verbosity set to 'INFO'.\nPrincess has replaced MockBot. Config: DEFAULT. Verbosity: " + DEFAULT_VERBOSITY + ".\n"; actual = testAddBotUtil.addBot(args, mockGame, mockClient.getHost(), mockClient.getPort()); TestCase.assertEquals(expected, actual); "-p:" + BOT_PLAYER_NAME}; expected = "Verbosity set to 'WARNING'.\nPrincess has replaced MockBot. Config: ESCAPE. Verbosity: " + DEFAULT_VERBOSITY + ".\n"; actual = testAddBotUtil.addBot(args, mockGame, mockClient.getHost(), mockClient.getPort()); TestCase.assertEquals(expected, actual); expectedBehavior = BehaviorSettingsFactory.getInstance().getBehavior("ESCAPE");
public void loadFS(Vector<Integer> fighterIds) { String name = JOptionPane.showInputDialog(clientgui.frame, "Choose a squadron designation"); if ((name == null) || (name.trim().length() == 0)) { name = "Flying Circus"; } FighterSquadron fs = new FighterSquadron(name); fs.setOwner(clientgui.getClient().getGame().getEntity(fighterIds.firstElement()).getOwner()); clientgui.getClient().sendAddSquadron(fs, fighterIds); }