/** Changement de joueur dans le tour donné */ public void joueurSuivant() { setEtape(0); /* on calcule les gains du tour et on met à jour les pts de victoire */ int argent = joueurEnCours.calcArgentTour(); Game.getInstance().showTemp(argent + " point(s) gagné(s) durant ce tour !"); joueurEnCours.addArgent(argent); if (indexJoueurEnCours == lstJoueurs.size() - 1) { nouveauTour(); } else { indexJoueurEnCours++; joueurEnCours = lstJoueurs.get(indexJoueurEnCours); if (joueurEnCours.getPeuple() == null) { Game.getInstance().selectionPeuple(); } else if (joueurEnCours.getPeuple().getNbUnite() == 0) { remettreBoite(joueurEnCours.getPeuple()); Game.getInstance().selectionPeuple(); } miseEnMain(); Game.getInstance().showTemp(joueurEnCours.getNom() + " attaque !"); } }
/** Demande aux joueurs ayant des unités en main de les placer */ public boolean deploiementSuivant() { int nextJoueur = (indexSauvJoueurEnCours + 1) == lstJoueurs.size() ? 0 : (indexSauvJoueurEnCours + 1); for (; indexJoueurEnCours < lstJoueurs.size(); indexJoueurEnCours++) { if (indexJoueurEnCours == nextJoueur) { continue; } joueurEnCours = lstJoueurs.get(indexJoueurEnCours); Peuple p = joueurEnCours.getPeuple(); if (p != null && p.getNbUniteEnMain() > 0) { Game.getInstance().showTemp(joueurEnCours.getNom() + " se redéploie."); return true; } } indexJoueurEnCours = indexSauvJoueurEnCours; joueurEnCours = lstJoueurs.get(indexSauvJoueurEnCours); return false; }
/** Verifie si un des deux joueurs gagne la partie */ public void verifiegagner() { Joueur j; if (this.verifieEquipeKO(joueur1)) j = joueur2; else if (this.verifieEquipeKO(joueur2)) j = joueur1; else j = null; if (j != null) { JOptionPane.showMessageDialog( null, "Bravo le joueur " + j.getNom() + " a gagner la partie", "Fin de la Partie", JOptionPane.NO_OPTION, new ImageIcon("image/gagner.png")); Object[] options = {"Recommencer une nouvelle partie", " Quitter le jeu"}; int confirm = JOptionPane.showOptionDialog( null, "Que voulez vous faire ?", "Quitter le jeu", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[1]); if (confirm == 1) { System.exit(0); } else if (confirm == 0) { ihmjeu.dispose(); new Jeu(); } } }
/** Phase de redeploiement */ public void redeploiement() { setEtape(2); miseEnMain(); joueurEnCours.getPeuple().calcBonusUnite(); Game.getInstance().majInfos(); Game.getInstance().showTemp(joueurEnCours.getNom() + " se redéploie."); }
/** Traitement lors d'un clic sur le bouton passer en déclin */ public void cliqueDeclin() { if (etape == 0 && joueurEnCours.getPeupleDeclin() == null && Game.getInstance().askConf("Confirmer le passage en déclin ?")) { // joueurEnCours.getPeuple().decliner(); // joueurSuivant(); tempEnDeclin = true; setEtape(2); miseEnMain(); Game.getInstance().showTemp(joueurEnCours.getNom() + " se redéploie."); } Game.getInstance().majInfos(); }
/** Méthode permettant de passer au tour suivant */ public void nouveauTour() { tourEnCours++; if (tourEnCours >= nbTours) { Game.gameOver(); } else { // RAZ des étapes etape = 0; indexJoueurEnCours = 0; joueurEnCours = this.lstJoueurs.get(indexJoueurEnCours); // Si le peuple n'a pas de joueur, il doit en choisir un if (joueurEnCours.getPeuple() == null) { Game.getInstance().selectionPeuple(); } Game.getInstance().showTemp(joueurEnCours.getNom() + " attaque !"); miseEnMain(); } }