@Override void doEndPhaseChanges(Vector<Report> vPhaseReport) { game = server.getGame(); this.vPhaseReport = vPhaseReport; resolveScreen(); this.vPhaseReport = null; }
@Override void doEndPhaseChanges(Vector<Report> vPhaseReport) { game = server.getGame(); this.vPhaseReport = vPhaseReport; resolveQuicksand(); this.vPhaseReport = null; }
@Override void doEndPhaseChanges(Vector<Report> vPhaseReport) { game = server.getGame(); this.vPhaseReport = vPhaseReport; resolveWeather(); this.vPhaseReport = null; }
@Override void doEndPhaseChanges(Vector<Report> vPhaseReport) { game = server.getGame(); this.vPhaseReport = vPhaseReport; resolveSmoke(); this.vPhaseReport = null; }
/** * Return a list of all nova CEWS units the clients player owns. * * @return */ private List<Entity> getMyNovaUnits(int connID) { List<Entity> novaUnits = new LinkedList<Entity>(); for (Entity ent : server.getGame().getEntitiesVector()) { if ((ent.getOwnerId() == connID) && ent.hasNovaCEWS()) { novaUnits.add(ent); } } return novaUnits; }
/** * Remove any empty clouds from the array */ public void removeEmptyClouds() { List<SmokeCloud> cloudsToRemove = new ArrayList<>(); for (SmokeCloud cloud: server.getSmokeCloudList()) { if ( cloud.getCoordsList().size() < 1 ) { cloudsToRemove.add(cloud); }else if ( cloud.getSmokeLevel() < 1 ) { server.removeSmokeTerrain(cloud); cloudsToRemove.add(cloud); } } server.getGame().removeSmokeClouds(cloudsToRemove); }
@Override void doEndPhaseChanges(Vector<Report> vPhaseReport) { game = server.getGame(); if (game.getOptions().booleanOption(OptionsConstants.ADVCOMBAT_TACOPS_START_FIRE)) { this.vPhaseReport = vPhaseReport; resolveFire(); this.vPhaseReport = null; } }
/** * Run this command with the arguments supplied */ @Override public void run(int connId, String[] args) { if (server.getGame().getOptions().booleanOption(OptionsConstants.ADVANCED_DOUBLE_BLIND) && server.getGame().getOptions().booleanOption(OptionsConstants.BASE_DISABLE_LOCAL_SAVE)) { server .sendServerChat("Local Save only outside double blind games."); } else { String fileName = "savegame.sav"; String localPath = "savegames"+ File.separator; if (args.length > 1) { fileName = args[1]; } if (args.length > 2) { localPath = args[2]; } server.sendSaveGame(connId, fileName, localPath); } } }
@Override public void run(int connId, String[] args) { String result = new AddBotUtil().addBot(args, server.getGame(), server.getHost(), server.getPort()); server.sendServerChat(connId, result); } }
/** * Run this command with the arguments supplied */ @Override public void run(int connId, String[] args) { int countbad = 0; for (Entity entity : server.getGame().getEntitiesVector()) { if (entity.fixElevation()) { Building bldg = server.getGame().getBoard().getBuildingAt(entity.getPosition()); if (bldg != null) { server.checkForCollapse(bldg, server.getGame().getPositionMap(), entity.getPosition(), true, server.getvPhaseReport()); } server.sendServerChat(entity.getDisplayName() + " elevation fixed, see megameklog.txt for details & report a bug if you know how this happened"); countbad++; } } server.sendServerChat(connId, "" + countbad + " unit(s) had elevation problems"); }
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()); } } }
private void findGeysers() { IBoard b = server.getGame().getBoard(); int height = b.getHeight(); int width = b.getWidth(); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { if (b.getHex(x, y).containsTerrain(Terrains.GEYSER)) { geysers.add(new GeyserInfo(new Coords(x, y))); } } } }
private String strListNetwork(int connID, int id, boolean planned) { String rval = ""; Entity ent = server.getGame().getEntity(id); if (ent != null) { if (ent.getOwnerId() != connID) { return "This unit doesn't belong to you!\n"; } for (Entity e : listNetwork(connID, ent, planned)) { rval += "+ " + e.getId() + " " + e.getDisplayName() + "\n"; } } if (rval != "") { rval = "Unit " + id + " is in the Network consisting of:\n"; } else { rval = "Error. No ID match.\n"; } return rval; }
private String strLink2(int connID, int id1, int id2) { String rval = ""; Entity ent1 = server.getGame().getEntity(id1); Entity ent2 = server.getGame().getEntity(id2); if ((ent1 == null) || (ent2 == null)) { return "ID Mismatch!\n"; } if (ent1.getOwnerId() != connID) { return "This unit doesn't belong to you!\n"; } if (ent2.getOwnerId() != connID) { return "This unit doesn't belong to you!\n"; } if (!ent1.hasActiveNovaCEWS()) { return "ID: " + id1 + " has no active nova CEWS. Aborting."; } if (!ent2.hasActiveNovaCEWS()) { return "ID: " + id2 + " has no active nova CEWS. Aborting."; } rval += strUnlinkID(connID, id1); rval += strUnlinkID(connID, id2); setNewNetworkID(connID, ent2, ent1.getNewRoundNovaNetworkString()); return rval + "New Network! Linked Units: " + id1 + ", " + id2 + "\n"; }
/** * Wrapper to random#d6(n) */ public static int d6(int dice, int keep) { Roll roll = random.d6(dice, keep); if (Server.getServerInstance() != null) { if (Server.getServerInstance().getGame().getOptions() .booleanOption(OptionsConstants.BASE_RNG_LOG)) { Server.getServerInstance().reportRoll(roll); } } return roll.getIntValue(); }
/** * Wrapper to random#d6() */ public static int d6() { Roll roll = random.d6(); if (Server.getServerInstance() != null) { if (Server.getServerInstance().getGame().getOptions() .booleanOption(OptionsConstants.BASE_RNG_LOG)) { Server.getServerInstance().reportRoll(roll); } } return roll.getIntValue(); }
/** * Wrapper to random#d6(n) */ public static int d6(int dice) { Roll roll = random.d6(dice); if (Server.getServerInstance() != null) { if (Server.getServerInstance().getGame().getOptions() .booleanOption(OptionsConstants.BASE_RNG_LOG)) { Server.getServerInstance().reportRoll(roll); } } return roll.getIntValue(); }
private void findElevators() { IBoard b = server.getGame().getBoard(); int height = b.getHeight(); int width = b.getWidth(); int exits = 0; for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { if (b.getHex(x, y).containsTerrain(Terrains.ELEVATOR)) { exits = b.getHex(x, y).getTerrain(Terrains.ELEVATOR) .getExits(); // add the elevator to each list it belongs in. // exits are abused to hold which d6 roll(s) move this // elevator for (int z = 0; z < 6; z++) { if ((exits & 1) == 1) { elevators[z].positions.add(new Coords(x, y)); } exits >>= 1; } } } } }
/** * Run this command with the arguments supplied */ @Override public void run(int connId, String[] args) { if (!canRunRestrictedCommand(connId)) { server.sendServerChat(connId, restrictedResponse); return; } IPlayer player = server.getPlayer(connId); if (server.getGame().isForceVictory()) { server.sendServerChat(getAdmitsDefeat(player.getName())); player.setAdmitsDefeat(true); } else { server.sendServerChat(getWantsDefeat(player.getName())); server.sendServerChat(connId, note); } } }