217 lines
7.3 KiB
Java
217 lines
7.3 KiB
Java
package modeles;
|
||
|
||
import javafx.util.*;
|
||
import java.io.IOException;
|
||
import java.util.Random;
|
||
public class Menu {
|
||
|
||
|
||
public void menuJeu() {
|
||
Labyrinthe lab=menuStartGame();
|
||
Marche marche= (Marche) lab.listePorte.get(0).getSalle1();
|
||
Personnage perso = menuSelection(lab);
|
||
perso.setSalle(lab.listePorte.get(0).getSalle1());
|
||
try {
|
||
do {
|
||
Menudeplacement(perso, perso.getSalle(),lab);
|
||
if (perso.getSalle().getType().contentEquals("Marche")) {
|
||
MenuMarche(perso, lab);
|
||
}
|
||
}while(perso.isVivant() && !perso.getSalle().estSortie());
|
||
}catch (Exception e) {
|
||
System.out.println(e);
|
||
menuJeu();
|
||
}
|
||
if (perso.isVivant()) System.out.println("Felicitation vous avez vaincu le grand Neltharion ! Vous avez sauver Azeroth");
|
||
}
|
||
|
||
public String menuCombat(Monstre mons, Personnage perso, Labyrinthe lab) throws IOException {
|
||
int degat;
|
||
int reponse = 0;
|
||
System.out.println("Un monstre du nom de "+mons.getNom()+" se presente devant vous et il est tres en colere :");
|
||
while (true){
|
||
System.out.println("\t - 1 attaquer\n\t - 2 Potion \n\t- 3 Fuir");
|
||
try{
|
||
reponse=Clavier.entrerClavierInt();
|
||
}catch (Exception e) {
|
||
System.in.read();
|
||
}
|
||
switch (reponse) {
|
||
case 1:
|
||
degat = perso.attaquer(mons, lab);
|
||
System.out.println("Vous infligez "+degat+" a votre adversaire.");
|
||
if (!mons.isVivant()) {
|
||
perso.setpVie(perso.getpVieMax()+1);
|
||
perso.soin();
|
||
perso.getSalle().cle(lab);
|
||
System.out.println(perso.remplirBourse());
|
||
return "Votre ennemie trepasse et vous obtenez la cle des portes de la salle.";
|
||
} else {
|
||
System.out.println("Au tour de votre adversaire. Il attaque preparez vous ! ");
|
||
System.out.println("il vous inflige "+ mons.attaquer(perso,lab)+".");
|
||
if (!perso.isVivant()) {
|
||
return "C'est ainsi que vous trepassez sous les coups des tenebres. Reposez vous heros... Vous avez l'eternite.";
|
||
}
|
||
else System.out.println("votre ennemie n'est pas encore a bout, achevez le !");
|
||
}
|
||
break;
|
||
|
||
case 2 :
|
||
if (!perso.getPotion().isEmpty()) {
|
||
perso.utiliser(perso.getPotion().remove(0));
|
||
System.out.println("Vous utilisez une potion. Votre vie est maintenant au maximum.");
|
||
} else {
|
||
System.out.println("Il ne vous reste plus de potion.");
|
||
}
|
||
break;
|
||
|
||
case 3 :
|
||
System.out.println("Vous tentez de fuir.");
|
||
Random rd = new Random();
|
||
if (rd.nextInt(100)<50) {
|
||
perso.soin();
|
||
return "Vous avez fuit.";
|
||
} else {
|
||
System.out.println("Ce fut un echec !");
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
public Labyrinthe menuStartGame() {
|
||
System.out.println("L'Aventure vous appelle ! Le choix s'offre a vous, une histoire peut s'ecrire une autre peut continuer :\n1) Nouvelle Partie\n2) Continuer votre progression");
|
||
switch(Clavier.entrerClavierInt()) {
|
||
case 1:
|
||
return new Labyrinthe();
|
||
case 2:
|
||
Generateur ge = new Generateur();
|
||
return ge.labyrinthe();
|
||
default :
|
||
return null;
|
||
}
|
||
}
|
||
|
||
public Personnage menuSelection(Labyrinthe lab) {
|
||
System.out.println("Bonjour Etranger, je suis le narrateur de votre histoire. Comment dois-je vous appeler ? ");
|
||
int i = 0;
|
||
for (Personnage per : lab.listePersonnage) {
|
||
System.out.println(i++ + ") "+per.getNom());
|
||
}
|
||
|
||
Personnage pers;
|
||
try{
|
||
pers =lab.listePersonnage.get(Clavier.entrerClavierInt());
|
||
}
|
||
catch(Exception e) {
|
||
System.out.println("Le personnage dont vous me parlez n'existe pas.");
|
||
return null;
|
||
}
|
||
System.out.println("Enchante de vous rencontrer "+pers.getNom()+".");
|
||
return pers;
|
||
}
|
||
|
||
public void Menudeplacement(Personnage perso, Salle salle,Labyrinthe lab) throws IOException {
|
||
System.out.println("Choisissez une direction:\n Z) Haut\n S) Bas\n D) Droite\n Q) Gauche");
|
||
Salle s;
|
||
Pair<Integer,Integer>next;
|
||
String csb="";
|
||
switch(Clavier.entrerClavierString()) {
|
||
case "Z":
|
||
next=new Pair(salle.getCoordonnes().getKey(),salle.getCoordonnes().getValue()+1);
|
||
if((s=salle.findNextSalle(next, lab))==null){
|
||
System.out.println("Je ne connais pas cette salle");
|
||
Menudeplacement(perso, salle, lab);
|
||
break;
|
||
}
|
||
while (!s.estVide() && perso.isVivant() && csb.contentEquals("Vous avez fuit.")) {
|
||
Monstre mons =lab.listeMonstre.get(s.getListeEnnemie().remove(0));
|
||
csb=menuCombat(mons, perso, lab);
|
||
}
|
||
if (perso.isVivant()) {
|
||
System.out.println("vous vous déplacez");
|
||
perso.seDeplacer(s);
|
||
}
|
||
break;
|
||
case "S":
|
||
next=new Pair(salle.getCoordonnes().getKey(),salle.getCoordonnes().getValue()-1);
|
||
if((s=salle.findNextSalle(next, lab))==null){
|
||
System.out.println("Je ne connais pas cette salle");
|
||
Menudeplacement(perso, salle, lab);
|
||
break;
|
||
}
|
||
while (!s.estVide() && perso.isVivant() && csb.contentEquals("Vous avez fuit.")) {
|
||
Monstre mons =lab.listeMonstre.get(s.getListeEnnemie().remove(0));
|
||
csb=menuCombat(mons, perso, lab);
|
||
}
|
||
if (perso.isVivant()) {
|
||
System.out.println("vous vous déplacez");
|
||
perso.seDeplacer(s);
|
||
}
|
||
break;
|
||
case "D":
|
||
next=new Pair(salle.getCoordonnes().getKey()+1,salle.getCoordonnes().getValue());
|
||
if((s=salle.findNextSalle(next, lab))==null){
|
||
System.out.println("Je ne connais pas cette salle");
|
||
Menudeplacement(perso, salle, lab);
|
||
break;
|
||
}
|
||
while (!s.estVide() && perso.isVivant() && csb.contentEquals("Vous avez fuit.")) {
|
||
Monstre mons =lab.listeMonstre.get(s.getListeEnnemie().remove(0));
|
||
csb=menuCombat(mons, perso, lab);
|
||
}
|
||
if (perso.isVivant()) {
|
||
System.out.println("vous vous déplacez");
|
||
perso.seDeplacer(s);
|
||
}
|
||
break;
|
||
case "Q":
|
||
next=new Pair(salle.getCoordonnes().getKey()-1,salle.getCoordonnes().getValue());
|
||
if((s=salle.findNextSalle(next, lab))==null){
|
||
System.out.println("Je ne connais pas cette salle");
|
||
Menudeplacement(perso, salle, lab);
|
||
break;
|
||
}
|
||
while (!s.estVide() && perso.isVivant() && csb.contentEquals("Vous avez fuit.")) {
|
||
Monstre mons =lab.listeMonstre.get(s.getListeEnnemie().remove(0));
|
||
csb=menuCombat(mons, perso, lab);
|
||
}
|
||
if (perso.isVivant()) {
|
||
System.out.println("vous vous déplacez");
|
||
perso.seDeplacer(s);
|
||
}
|
||
break;
|
||
default :
|
||
System.out.println("erreur de lecture");
|
||
}
|
||
System.out.println("Vous etes à la salle de coordonnes "+perso.getSalle().getCoordonnes().getKey()+" "+perso.getSalle().getCoordonnes().getValue()+".");
|
||
}
|
||
|
||
public void MenuMarche(Personnage perso, Labyrinthe lab) {
|
||
System.out.println("Voulez-vous acheter un objet:(votre bourse :"+perso.getValeurBourse() +")\n1) Oui\n2) Non");
|
||
switch(Clavier.entrerClavierString()) {
|
||
case "1":
|
||
System.out.println(Marche.creerObjetsAVendre(lab)+"\nVoulez-vous acheter une arme ? (oui/non)");
|
||
String selection=Clavier.entrerClavierString();
|
||
if(selection.compareTo("oui")>0) {
|
||
System.out.println("Quel numéro pour l'arme ?");
|
||
int valeur = Clavier.entrerClavierInt();
|
||
if (perso.getBourse().Achat(lab.listeArme.get(valeur))>=0) perso.equiper(lab.listeArme.get(valeur),lab);
|
||
} else {
|
||
System.out.println("Pourquoi Pas une armure alors ? (oui/non)");
|
||
selection=Clavier.entrerClavierString();
|
||
if(selection.compareTo("oui")>0) {
|
||
System.out.println("Quel numéro pour l'armure ?");
|
||
int valeur = Clavier.entrerClavierInt();
|
||
if (perso.getBourse().Achat(lab.listeArmure.get(valeur))>=0) perso.equiper(lab.listeArmure.get(valeur),lab);
|
||
}
|
||
}
|
||
break;
|
||
case "2":
|
||
System.out.println("Vous sortez du marche.");
|
||
return ;
|
||
}
|
||
}
|
||
}
|
||
|