/** * Extends a river hex to left and right sides. * * @param hexloc The location of the river hex, from which it should get * started. * @param width The width to wich the river should extend in the direction. * So the actual width of the river is 2*width+1. * @param direction Direction too which the riverhexes should be extended. * @return Hashset with the hexes from the side. */ private static HashSet<IHex> extendRiverToSide(IBoard board, Point hexloc, int width, int direction, HashMap<IHex, Point> reverseHex) { Point current = new Point(hexloc); HashSet<IHex> result = new HashSet<IHex>(); IHex hex; hex = board.getHexInDir(current.x, current.y, direction); while ((hex != null) && (width-- > 0)) { hex.removeAllTerrains(); hex.addTerrain(Terrains.getTerrainFactory().createTerrain( Terrains.WATER, 1)); result.add(hex); current = reverseHex.get(hex); hex = board.getHexInDir(current.x, current.y, direction); } return result; }
hex.removeAllTerrains(); hex.addTerrain(tf.createTerrain(Terrains.PAVEMENT, 1)); hex.addTerrain(tf.createTerrain(Terrains.BUILDING, type, true,
do { field.removeAllTerrains(); field.addTerrain(f.createTerrain(Terrains.WATER, 1)); riverHexes.add(field);
r.add(g.position.getBoardNum()); vPhaseReport.add(r); hex.removeAllTerrains(); hex.addTerrain(tf.createTerrain(Terrains.MAGMA, 2)); server.getHexUpdateSet().add(g.position);
/** * Flood negative hex levels Shoreline / salt marshes effect Works best with * more elevation */ protected static void postProcessFlood(IHex[] hexSet, int modifier) { int n; IHex field; ITerrainFactory f = Terrains.getTerrainFactory(); for (n = 0; n < hexSet.length; n++) { field = hexSet[n]; int elev = field.getLevel() - modifier; if ((elev == 0) && !(field.containsTerrain(Terrains.WATER)) && !(field.containsTerrain(Terrains.PAVEMENT))) { field.addTerrain(f.createTerrain(Terrains.SWAMP, 1)); } else if (elev < 0) { if (elev < -4) { elev = -4; } field.removeAllTerrains(); field.addTerrain(f.createTerrain(Terrains.WATER, -elev)); field.setLevel(modifier); } } }
hex.removeAllTerrains(); hex.addTerrain(tf.createTerrain(Terrains.MAGMA, 2)); elev -= 2; break; case MapSettings.MOUNTAIN_VOLCANO_DORMANT: hex.removeAllTerrains(); hex.addTerrain(tf.createTerrain(Terrains.MAGMA, 1)); elev -= 2;
public IBoard implantOldBoard(IGame game, int west, int north, int east, int south) { IBoard oldBoard = game.getBoard(); for (int x = 0; x < oldBoard.getWidth(); x++) { for (int y = 0; y < oldBoard.getHeight(); y++) { int newX = x+west; int newY = y+north; if (oldBoard.contains(x, y) && board.contains(newX, newY)) { IHex oldHex = oldBoard.getHex(x, y); IHex hex = board.getHex(newX, newY); hex.removeAllTerrains(); hex.setLevel(oldHex.getLevel()); int terrainTypes[] = oldHex.getTerrainTypes(); for (int i = 0; i < terrainTypes.length; i++) { int terrainID = terrainTypes[i]; if (!hex.containsTerrain(terrainID) && oldHex.containsTerrain(terrainID)) { hex.addTerrain(oldHex.getTerrain(terrainID)); } } hex.setTheme(oldHex.getTheme()); board.setHex(newX, newY, hex); board.resetStoredElevation(); } } } return board; }