public void setGround(Territory origin) { ground = origin; ground.addPlayer(this); x = ground.getX() - 15 + (int) (Math.random() * 30); y = ground.getY() - 15 + (int) (Math.random() * 30); checkReady(); }
public void createBountyIsland(Territory terr) { assert (terr.getXChunkCoord() == 0 && terr.getYChunkCoord() == 0); assert (this.world.getIslandList().getTotal() == 0); assert (this.player == null); this.cRect = ChunkMap.getCenterDomain(terr); int islandId = this.terrToChunkMap(terr, IslandList.INVALID_ISLAND_ID, true); this.chunkMapToSquids(islandId); this.world.getIslandList().scanAdd(); }
private void attacks(Territory t) { if (from == null) { if (t.getOwner() == this) { from = t; System.out.println("attacking from " + from); } } else if (to == null) { if (t.getOwner() != this) { to = t; System.out.println("attacking from " + from + " to " + to); } } }
private void tacticalMoves(Territory t) { if (from == null) { if (t.getOwner() == this && getUnitsInTerritory(t) > 1) { from = t; System.out.println("fortifying from " + from); } } else if (to == null) { if (t.getOwner() == this) { to = t; System.out.println("fortifying from " + from + " to " + to); } } }
// Decide the strategy - who to benefit and how much public void DecideStrategy() { // For now - just get the one best to overthrow, add 10% of own this.benefitTerr = LordUtility.BestChance2Overthrow(myTerr); this.benefitSoldiers = myTerr.getSoldiers() * .1; }
public void editVision() { System.out.println("editing vision now in servergame"); this.backup(); for (Player p : myGame.getPlayers()) { GameState tempState = this.readState(); GameMap map = tempState.getMap(); for (Territory t : myGame.getMap().getTerritories()) { if (!t.getOwner().onTeam(p) && !t.isAdjacentTo(p) && !t.hasSpy(p)) { // if territory is not yours AND you're not adjacent to it AND you don't have a spy there // hide it from your view with a fogged territory map.replaceTerritory(map.getTerritory(t.getID())); } } myServer.sendGameByPlayer(tempState, p.getPlayer()); } }
private boolean calculate(final Set<Territory> startSet, final Territory end) { final Set<Territory> nextSet = new HashSet<Territory>(); for (final Territory t : startSet) { final Set<Territory> neighbors = m_map.getNeighbors(t, m_condition); for (final Territory neighbor : neighbors) { if (!m_previous.containsKey(neighbor)) { m_previous.put(neighbor, t); if (neighbor.equals(end)) { return true; } nextSet.add(neighbor); } } } if (nextSet.isEmpty()) { return false; } return calculate(nextSet, end); }
public int terrToChunkMap(Territory terr, int terrId, boolean relativeTo0x0) { int xOffset = relativeTo0x0 ? 0 : terr.getXChunkCoord(); int yOffset = relativeTo0x0 ? 0 : terr.getYChunkCoord(); int thisIslandId = IslandList.INVALID_ISLAND_ID; if (this.inWorld()) { thisIslandId = this.world.getIslandList().addIsland(player, terrId); } else { thisIslandId = terrId; } CanonDecoder c = new CanonDecoder( Types.findByTypeName("puzzlePiece"), terr.getCanon(), terr.getRot(), new BoardCoord( this.cRect.getTl().getX() + xOffset, this.cRect.getTl().getY() + yOffset)); int indexWithinTerr = 0; while (c.isValid()) { ChunkCoord cc = new ChunkCoord((int) c.getPos().getX(), (int) c.getPos().getY()); Chunk ch = this.cMap.getChunk(cc); ch.setIslandId(thisIslandId); ch.setTerr(terr); ch.setIndexWithinTerr(indexWithinTerr); ch.setSideOrientation(c.getOrientation()); c.getNext(); ++indexWithinTerr; } if (this.inWorld()) { this.world .getIslandList() .setBoardCoordRect( thisIslandId, this.cMap.getChunkCoordRect(thisIslandId).getBoardCoordRect()); } return thisIslandId; }
public void collect() { String s = ground.getResource(); if (s.equals("Water")) { Water++; } else if (s.equals("Wood")) { Wood++; } else if (s.equals("Metal")) { Metal++; } else if (s.equals("Stone")) { Stone++; } else { Food++; } }
public void onClick(Territory t) { switch (stage) { case 1: // reinforcement phase if (t.getOwner() == this) { reinforce(t, 1); armiesLeft--; } reinforcements(t); break; case 2: // attack phase attacks(t); break; case 3: // tactical move phase tacticalMoves(t); break; } }
/** * paintComponent schreibt alle Laendernamen an die entsprechende Stelle der Landkarte * (Hintergrundgrafik) und zeichnet die Laendergrenzen auf der Landkarte nach. * * @param g Zeichenflaeche der Landkarte */ public void paintComponent(Graphics g) { Shape shape; Graphics2D g2d = (Graphics2D) g; g2d.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this); Font myFont = new Font("Times New Roman", Font.BOLD, 12); g2d.setFont(myFont); g2d.setStroke(new BasicStroke(2.0f)); Territory territory; Color color; ListIterator territories = worldMap.getTerritories().listIterator(); while (territories.hasNext()) { territory = (Territory) territories.next(); if (territory.getOwner() != null) { color = territory.getOwner().getPlayerColor(); } else { color = Color.WHITE; } g2d.setColor(color); g2d.drawString( territory.getName(), (int) territory.getMidpoint().getX() - 15, (int) territory.getMidpoint().getY() - 10); g2d.drawString( new Integer(territory.getArmySize()).toString(), (int) territory.getMidpoint().getX(), (int) territory.getMidpoint().getY()); } if (territoryBattle.size() != 0) { for (int j = 0; j < territoryBattle.size(); j++) { g2d.setColor(territoryBattle.get(j).getOwner().getPlayerColor()); // g2d.fillPolygon(territoryTmp.getFrontiers()); Sieht bei unseren Grenzen nicht huebsch // aus g2d.drawPolygon(territoryBattle.get(j).getFrontiers()); } } repaint(); }
private void reinforcements(Territory t) { if (t.getOwner() == this) { reinforce(t, 1); armiesLeft--; } }
public void travel(Territory ter) { isOn().removePlayer(this); ter.addPlayer(this); setGround(ter); }