コード例 #1
0
ファイル: Partie.java プロジェクト: Alcidauk/SmallWorldUtbm
  /**
   * permet de fournir le coût de l'attaque d'un territoire donnée appelé depuis TerritoireCase
   *
   * @param t
   * @return
   */
  public double coutAttaque(Territoire t) {
    try {
      return t.coutAttaque(joueurEnCours.getPeuple());
    } catch (Exception e) {
    }

    return 0.0;
  }
コード例 #2
0
ファイル: Partie.java プロジェクト: Alcidauk/SmallWorldUtbm
  /**
   * Récupère toutes les unités placées sur les territoires du joueur à l'exception d'une par
   * territoire et les places dans sa main
   */
  public void miseEnMain() {
    Peuple p = joueurEnCours.getPeuple();

    // Récupération des unités du plateau
    Iterator<Territoire> it = p.getTerritoiresOccupes().iterator();

    while (it.hasNext()) {
      Territoire t = it.next();

      int nb = t.getNbUnite();

      t.setNbUnite(1);

      p.addNbUniteEnMain(nb - 1);
    }

    // Application des bonus
    p.calcBonusUniteAttaque();
  }
コード例 #3
0
ファイル: Partie.java プロジェクト: Alcidauk/SmallWorldUtbm
  /**
   * Traitements en fonction du territoire cliqué
   *
   * @param territoire Territoire cliqué par l'utilisateur
   */
  public void cliqueTerritoire(Territoire territoire) {
    if (etape == 0 || etape == 1) {
      // Phase d'attaque

      if (joueurEnCours.getPeuple().equals(territoire.getOccupant())) {
        List<Peuple> ls = territoire.getPrisesDuTerritoire(tourEnCours);

        if (!ls.contains(getJoueurEnCours().getPeuple())
            && Game.getInstance().askAbandon(territoire)) {
          getJoueurEnCours().getPeuple().abandonTerritoire(territoire);
        }
      } else {
        // if(coutAttaque(territoire) > joueurEnCours.getPeuple().)
        if (getJoueurEnCours().peutAttaquerUnTerritoire(territoire) || territoire.estEnBordure()) {

          if (Game.getInstance().askAttaque(territoire)) {

            if (getJoueurEnCours().attaquer(territoire) && etape == 0) {
              etape = 1;
            }
          }

        } else {
          new WinWarn("Vous ne pouvez pas attaquer ce territoire.");
          return;
        }
      }

      Game.getInstance().majInfos();

    } else if (etape == 2 || etape == 3) {
      // Phase de redéploiement

      if (joueurEnCours.getPeuple().equals(territoire.getOccupant())) {
        int nbPion = Game.getInstance().askNbPion(territoire);

        if (nbPion > 0) {
          getJoueurEnCours().getPeuple().addNbUniteEnMain(-(nbPion - territoire.getNbUnite()));
          territoire.setNbUnite(nbPion);
        } else if (nbPion == 0) {
          if (Game.getInstance().askAbandon(territoire)) {
            getJoueurEnCours().getPeuple().abandonTerritoire(territoire);
          }
        }

        Game.getInstance().majInfos();
      } else {
        new WinWarn("Vous ne pouvez que vous redéployer sur un de vos territoires");
      }
    }
  }