/** * 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"); } } }
/** * 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(); }