Projet_JAVA_PMT_STRI1A/JAVA/PROJET-PMT_STRI1A/src/modeles/Menu.java

217 lines
7.3 KiB
Java
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 ;
}
}
}