/** * check if hex contains roadelements and if it does, add to roadHexIndexes */ private void addRoadElements(IHex x, int boardX, int boardY) { final int[] roadTypes = new int[]{Terrains.ROAD, Terrains.BRIDGE}; for (int j : roadTypes) { if ((x.getTerrain(j) != null) && (m_terrainColors[j] != null)) { int[] roadHex = {boardX, boardY, x.getTerrain(j).getExits()}; roadHexIndexes.addElement(roadHex); } } }
/** * Refreshes the terrain list to match the current hex */ private void refreshTerrainList() { ((DefaultListModel<String>) lisTerrain.getModel()).removeAllElements(); int terrainTypes[] = curHex.getTerrainTypes(); for (int i = 0; i < terrainTypes.length; i++) { ITerrain terrain = curHex.getTerrain(terrainTypes[i]); if (terrain != null) { ((DefaultListModel<String>) lisTerrain.getModel()).addElement(terrain .toString()); } } }
for (int j = 0; j < terrainTypes.length; j++) { int terrType = terrainTypes[j]; ITerrain terrain = hex.getTerrain(terrType); if (terrain != null) { if (!firstTerrain) {
private void paintHeight(Graphics g, IHex h, int x, int y) { if (heightDisplayMode == SHOW_NO_HEIGHT) { return; } if (zoom > 2) { int baseX = (x * (hexSide[zoom] + hexSideBySin30[zoom])) + leftMargin; int baseY = (((2 * y) + 1 + (x % 2)) * hexSideByCos30[zoom]) + topMargin; g.setColor(Color.white); int height = 0; if ((h.getTerrain(Terrains.BUILDING) != null) && (heightDisplayMode == SHOW_BUILDING_HEIGHT)) { height = h.ceiling(); } else if (heightDisplayMode == SHOW_GROUND_HEIGHT) { height = h.floor(); } else if (heightDisplayMode == SHOW_TOTAL_HEIGHT) { height = ((h.getTerrain(Terrains.BUILDING) != null) || (h .getTerrain(Terrains.FUEL_TANK) != null)) ? h.ceiling() : h.floor(); } if (height != 0) { g.drawString(height + "", baseX + 5, baseY + 5); //$NON-NLS-1$ } } }
/** * Apply the current Hex to the Board at the specified location. */ public void addToHex(Coords c) { if (board.contains(c)) { IHex newHex = curHex.duplicate(); IHex oldHex = board.getHex(c); newHex.setLevel(oldHex.getLevel()); int terrainTypes[] = oldHex.getTerrainTypes(); for (int i = 0; i < terrainTypes.length; i++) { int terrainID = terrainTypes[i]; if (!newHex.containsTerrain(terrainID) && oldHex.containsTerrain(terrainID)) { newHex.addTerrain(oldHex.getTerrain(terrainID)); } } board.resetStoredElevation(); board.setHex(c, newHex); } }
/** * Set all the appropriate terrain field to match the currently selected * terrain in the list. */ private void refreshTerrainFromList() { if (lisTerrain.getSelectedIndex() == -1) { return; } ITerrain terrain = Terrains.getTerrainFactory().createTerrain( lisTerrain.getSelectedValue()); terrain = curHex.getTerrain(terrain.getType()); choTerrainType.setSelectedItem(Terrains.getName(terrain.getType())); texTerrainLevel.setText(Integer.toString(terrain.getLevel())); cheTerrExitSpecified.setSelected(terrain.hasExitsSpecified()); texTerrExits.setText(Integer.toString(terrain.getExits())); }
for (int i = 0; i < cTerrainTypes.length; i++) { int cTerrType = cTerrainTypes[i]; ITerrain cTerr = com.getTerrain(cTerrType); ITerrain oTerr = org.getTerrain(cTerrType); if (cTerr == null) { continue;
private void connectHexes(Coords src, Coords dest, int roadStyle) { if (board.contains(src)) { IHex hex = board.getHex(src); ITerrain t = hex.getTerrain(Terrains.ROAD); if (t == null) { t = hex.getTerrain(Terrains.BRIDGE); } if (t == null) { addRoad(hex, src.direction(dest), roadStyle); } else { t.setExit(src.direction(dest), true); } } }
for (int i = 0; i < cTerrainTypes.length; i++) { int cTerrType = cTerrainTypes[i]; ITerrain cTerr = com.getTerrain(cTerrType); ITerrain oTerr = org.getTerrain(cTerrType); if (cTerr == null) { continue;
} else { // Otherwise, color based on terrains - higher valued terrains take color precedence for (int j = m_terrainColors.length - 1; j >= 0; j--) { if ((x.getTerrain(j) != null) && (m_terrainColors[j] != null)) { if ((j == Terrains.ROAD) || (j == Terrains.BRIDGE)) { continue; terrain = j; if (((j == Terrains.WOODS) || (j == Terrains.JUNGLE)) && (x.getTerrain(j).getLevel() == 2)) { terrColor = HEAVY_WOODS; if (((j == Terrains.WOODS) || (j == Terrains.JUNGLE)) && (x.getTerrain(j).getLevel() > 2)) { terrColor = ULTRA_HEAVY_WOODS;
ITerrain cTerr = com.getTerrain(terrType); ITerrain oTerr = org.getTerrain(terrType); if ((cTerr == null) || (oTerr == null)) { continue;
int magnitude = curHex.getTerrain(Terrains.FUEL_TANK_MAGN).getLevel(); FuelTank bldg = new FuelTank(coords, this, Terrains.FUEL_TANK, magnitude); buildings.addElement(bldg);
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; }
Coords c = i.next(); IHex hex = server.getGame().getBoard().getHex(c); ITerrain terr = hex.getTerrain(Terrains.ELEVATOR);
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; } } } } }
if((h != null) && (h.getTerrain(Terrains.BLDG_CF) != null)) { int cf = h.getTerrain(Terrains.BLDG_CF).getTerrainFactor(); if (cf < getEntity().getWeight()) { current.setMovementType(EntityMovementType.MOVE_ILLEGAL);
public void setExits(IHex other, int direction, boolean roadsAutoExit) { for (Integer i : terrains.keySet()) { ITerrain cTerr = getTerrain(i); ITerrain oTerr; if ((cTerr == null) || cTerr.hasExitsSpecified()) { continue; } if (other != null) { oTerr = other.getTerrain(i); } else { oTerr = null; } cTerr.setExit(direction, cTerr.exitsTo(oTerr)); // Roads exit into pavement, too. if ((other != null) && roadsAutoExit && (cTerr.getType() == Terrains.ROAD) && other.containsTerrain(Terrains.PAVEMENT)) { cTerr.setExit(direction, true); } // buildings must have the same building class if ((other != null) && (cTerr.getType() == Terrains.BUILDING) && (terrainLevel(Terrains.BLDG_CLASS) != other.terrainLevel(Terrains.BLDG_CLASS))) { cTerr.setExit(direction, false); } // gun emplacements can only be single hex buildings if ((cTerr.getType() == Terrains.BUILDING) && (terrainLevel(Terrains.BLDG_CLASS) == Building.GUN_EMPLACEMENT)) { cTerr.setExit(direction, false); } } }
ITerrain woodHex = game.getBoard() .getHex(entityTarget.getPosition()) .getTerrain(Terrains.WOODS); ITerrain jungleHex = game.getBoard() .getHex(entityTarget.getPosition()) .getTerrain(Terrains.JUNGLE); int treeAbsorbs = 0; String hexType = "";
(destinationHex.getTerrain(Terrains.BRIDGE_CF).getLevel() < startingPath.getEntity().getWeight())) { continue;
.getTerrain(Terrains.SMOKE); if (game.getBoard().getHex(curr).containsTerrain(Terrains.SMOKE) && wtype.hasFlag(WeaponType.F_ENERGY)