Exemple #1
0
 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();
 }
Exemple #2
0
  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();
  }
Exemple #3
0
 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);
     }
   }
 }
Exemple #4
0
 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());
   }
 }
Exemple #7
0
 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);
 }
Exemple #8
0
  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;
  }
Exemple #9
0
 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++;
   }
 }
Exemple #10
0
  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;
    }
  }
Exemple #11
0
  /**
   * 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();
  }
Exemple #12
0
 private void reinforcements(Territory t) {
   if (t.getOwner() == this) {
     reinforce(t, 1);
     armiesLeft--;
   }
 }
Exemple #13
0
 public void travel(Territory ter) {
   isOn().removePlayer(this);
   ter.addPlayer(this);
   setGround(ter);
 }