private void load(File f, int connId) { server.sendServerChat(server.getPlayer(connId).getName() + " loaded a new game."); // Keep track of the current id to name mapping Map<String, Integer> nameToIdMap = new HashMap<>(); Map<Integer, String> idToNameMap = new HashMap<>(); for (IPlayer p: server.getGame().getPlayersVector()) { nameToIdMap.put(p.getName(), p.getId()); idToNameMap.put(p.getId(), p.getName()); } if(!server.loadGame(f, false)) { server.sendServerChat(f.getName() + " could not be loaded"); } else { server.remapConnIds(nameToIdMap, idToNameMap); // update all the clients with the new game info Enumeration<IConnection> connEnum = server.getConnections(); while (connEnum.hasMoreElements()) { IConnection conn = connEnum.nextElement(); server.sendCurrentInfo(conn.getId()); } } }
if (!(server.getGame().getOptions().booleanOption(OptionsConstants.ALLOWED_REALLY_ALLOW_NUKES) && server.getGame().getOptions().booleanOption(OptionsConstants.ALLOWED_ALLOW_NUKES))) { server.sendServerChat(connId, "Command-line nukes are not enabled in this game."); return; if (!server.getGame().getBoard().contains(nuke[0]-1, nuke[1]-1)) { server.sendServerChat(connId, "Specified hex is not on the board."); return; server.addScheduledNuke(nuke); server.sendServerChat(connId, "A nuke is incoming! Take cover!"); } catch (Exception e) { server.sendServerChat(connId, "Nuke command failed (1). Proper format is \"/nuke <x> <y> <type>\" or \"/nuke <x> <y> <damage> <degredation> <secondary radius> <craterdepth>\" where type is 0-4 (0: Davy-Crockett-I, 1: Davy-Crockett-M, 2: Alamo, 3: Santa Ana, 4: Peacemaker) and hex x,y is x=column number and y=row number (hex 0923 would be x=9 and y=23)"); if (!server.getGame().getBoard().contains(nuke[0]-1, nuke[1]-1)) { server.sendServerChat(connId, "Specified hex is not on the board."); return; server.addScheduledNuke(nuke); server.sendServerChat(connId, "A nuke is incoming! Take cover!"); } catch (Exception e) { server.sendServerChat(connId, "Nuke command failed (2). Proper format is \"/nuke <x> <y> <type>\" or \"/nuke <x> <y> <damage> <degredation> <secondary radius> <craterdepth>\""); server.sendServerChat(connId, "Nuke command failed (3). Proper format is \"/nuke <x> <y> <type>\" or \"/nuke <x> <y> <damage> <degredation> <secondary radius> <craterdepth>\" where type is 0-4 (0: Davy-Crockett-I, 1: Davy-Crockett-M, 2: Alamo, 3: Santa Ana, 4: Peacemaker) and hex x,y is x=column number and y=row number (hex 0923 would be x=9 and y=23)");
public void run(int connId, String[] args) { try { IPlayer player = server.getPlayer(connId); player.setAllowTeamChange(true); if (!server.isTeamChangeRequestInProgress()){ server.sendServerChat(connId, "No vote to change " + "teams in progress!"); return; int voteCount = 0; int eligiblePlayerCount = 0; for (IPlayer p : server.getGame().getPlayersVector()){ if (p.getTeam() != IPlayer.TEAM_UNASSIGNED){ changeTeam &= p.isAllowingTeamChange(); server.sendServerChat(player.getName() + " has voted to allow " + server.getPlayerRequestingTeamChange().getName() + " to join Team " + server.getRequestedTeam() + ", " + voteCount + " vote(s) received out of " + eligiblePlayerCount server.sendServerChat("All votes received, " + server.getPlayerRequestingTeamChange().getName() + " will join Team " + server.getRequestedTeam() + " at the end of the turn."); server.allowTeamChange(); server.sendServerChat(connId,"Failed to parse team number!");
server.deliverArtilleryFlare(targetPos, radius); return false; server.doNuclearExplosion(targetPos, 1, vPhaseReport); return false; server.deliverFASCAMMinefield(targetPos, ae.getOwner().getId(), rackSize, ae.getId()); return false; server.deliverArtilleryInferno(targetPos, ae, subjectId, vPhaseReport); return false; server.deliverThunderVibraMinefield(targetPos, ae.getOwner() .getId(), 30, waa.getOtherAttackInfo(), ae.getId()); return false; server.deliverArtillerySmoke(targetPos, vPhaseReport); return false; server.deliverLIsmoke(targetPos, vPhaseReport); return false; while (minefields.hasMoreElements()) { Minefield mf = minefields.nextElement(); if (server.clearMinefield(mf, ae, Minefield.CLEAR_NUMBER_WEAPON, vPhaseReport)) { mfRemoved.add(mf);
server.deliverArtilleryFlare(targetPos, radius); return false; server.doNuclearExplosion(targetPos, 1, vPhaseReport); return false; server.deliverFASCAMMinefield(targetPos, ae.getOwner().getId(), atype.getRackSize(), ae.getId()); return false; server.deliverArtillerySmoke(targetPos, vPhaseReport); return false; while (minefields.hasMoreElements()) { Minefield mf = minefields.nextElement(); if (server.clearMinefield(mf, ae, Minefield.CLEAR_NUMBER_WEAPON, vPhaseReport)) { mfRemoved.add(mf); server.removeMinefield(mf); server.artilleryDamageArea(targetPos, ae.getPosition(), atype, subjectId, ae, isFlak, altitude, mineClear, vPhaseReport, asfFlak, -1); while (minefields.hasMoreElements()) { Minefield mf = minefields.nextElement(); if (server.clearMinefield(mf, ae, 10, vPhaseReport)) { mfRemoved.add(mf);
server = new Server(hd.serverPass, hd.port, hd.register, hd.register ? hd.metaserver : ""); } catch (IOException ex) { return; if (!server.loadGame(fc.getSelectedFile())) { JOptionPane .showMessageDialog( frame, Messages.getString("MegaMek.LoadGameAlert.message"), Messages.getString("MegaMek.LoadGameAlert.title"), JOptionPane.ERROR_MESSAGE); //$NON-NLS-1$ //$NON-NLS-2$ server.die(); server = null; return;
server = new Server(hd.serverPass, hd.port); } catch (IOException ex) { System.err.println("could not create server socket on port " return; server.setGame(g); server.calculatePlayerBVs(); Enumeration<IPlayer> pE = server.getGame().getPlayers(); while (pE.hasMoreElements()) { IPlayer tmpP = pE.nextElement();
else if (!server.checkForCollapse(bldg, positionMap, coords, false, vPhaseReport)) { bldg.setPhaseCF(cf, coords); == Terrains.FIRE_LVL_NORMAL) && !currentHex.isIgnitable()) { server.removeFire(currentCoords, "lack of fuel"); continue; server.checkExplodeIndustrialZone(currentCoords, vPhaseReport); Coords.yInDir(currentXCoord, currentYCoord, (windDirection + 5) % 6))); server.addSmoke(smokeList, windDirection, bInferno); board.initializeAround(currentXCoord, currentYCoord); server.getHexUpdateSet().add(currentCoords);
HitData hit = damagePlan.entity.rollHitLocation(ToHitData.HIT_NORMAL, ToHitData.SIDE_FRONT); System.out.println("[s.damageEntity(dp.entity, hit, 5)]"); //$NON-NLS-1$ s.damageEntity(damagePlan.entity, hit, 5); } else { System.out.print("[s.applyCriticalHit(chp.entity, ch.loc, cs, false)]"); //$NON-NLS-1$ s.applyCriticalHit(chp.entity, critHit.loc, cs, false, 0, false); CriticalSlot cs = new CriticalSlot(CriticalSlot.TYPE_SYSTEM, critHit.slot + 1); System.out.print("[s.applyCriticalHit(chp.entity, ch.loc, cs, false)]"); //$NON-NLS-1$ s.applyCriticalHit(chp.entity, Entity.NONE, cs, false, 0, false); sap.entity.getShortName(), sa.loc, sa.slot + 1)); } else if(ammo.getType() instanceof AmmoType) { AmmoType newAmmoType = getValidAmmoType(s.getGame(), ammo, sa.type); if(null != newAmmoType) { ammo.changeAmmoType(newAmmoType);
public synchronized void stopHost() { if(null != myServer) { //myServer.getGame().removeGameListener(this); myServer.die(); myServer = null; } currentScenario = null; }
server = new Server(hd.serverPass, hd.port, hd.register, hd.register ? hd.metaserver : ""); } catch (IOException ex) {
targetDescriptions.add(target.getDisplayName() + ": Needs " + toHit.getValue() + " to hit."); int choice = server.processTeleguidedMissileCFR(ae.getOwnerId(), targetDescriptions); newTarget = targets.get(choice); target = newTarget; server.assignAMS(); aaa.setTargetType(target.getTargetType()); setToHit(target); server.assignAMS();
server.assignAMS(); calcCounterAV();
server.artilleryDamageArea(coords, ae.getPosition(), (AmmoType) ammo.getType(), subjectId, ae, ratedDamage * 2, ratedDamage, false, 0, vPhaseReport, false);
server.deliverArtilleryFlare(targetPos, radius); return false; server.doNuclearExplosion(targetPos, 1, vPhaseReport); return false; server.deliverFASCAMMinefield(targetPos, ae.getOwner().getId(), bayAmmoType.getRackSize(), ae.getId()); return false; server.deliverArtilleryInferno(targetPos, ae, subjectId, vPhaseReport); return false; server.deliverThunderVibraMinefield(targetPos, ae.getOwner() .getId(), bayAmmoType.getRackSize(), waa.getOtherAttackInfo(), ae .getId()); server.deliverArtillerySmoke(targetPos, vPhaseReport); return false; server.deliverLIsmoke(targetPos, vPhaseReport); return false; while (minefields.hasMoreElements()) { Minefield mf = minefields.nextElement(); if (server.clearMinefield(mf, ae, Minefield.CLEAR_NUMBER_WEAPON, vPhaseReport)) { mfRemoved.add(mf);
/** * Un-hides the main menu and tries to clean up the client or server. */ void unlaunch() { // clean up server, if we have one if (server != null) { server.die(); server = null; } // show menu frame frame.setVisible(true); // just to free some memory client = null; System.gc(); System.runFinalization(); }
server.assignAMS(); getAMSHitsMod(vPhaseReport); calcCounterAV();