diff --git a/assets/DialogBox.text b/assets/DialogBox.text index 3824c2cfa6d57ed073ec9ad88effe88f20d33bf0..2882879bc05263cc3ac838d5c349e4c50e053252 100644 --- a/assets/DialogBox.text +++ b/assets/DialogBox.text @@ -1,4 +1,4 @@ -________________________________________________________________________________________________________________________ + @@ -13,7 +13,7 @@ ________________________________________________________________________________ Commandes : - a - Attaquer - q - Quitter + a - Action + q - Quitter ________________________________________________________________________________________________________________________ \ No newline at end of file diff --git a/src/main/java/bitFight/Display.java b/src/main/java/bitFight/Display.java index 77173399f160548dac6e55a4e453e390d134e0ff..5d47f5c96155f82bd4434c39f6a31042d05225ce 100644 --- a/src/main/java/bitFight/Display.java +++ b/src/main/java/bitFight/Display.java @@ -31,20 +31,27 @@ public class Display { } public static void goToDialogBox(){ - setCursorPos(row+7,0); + setCursorPos(1,0); + //System.out.flush(); } - public static void clearDialogBox() throws IOException{ + public static void clearDialogBox(){ clearScreen(); setCursorPos(row, 0); printDialogBox(); goToDialogBox(); } - public static void printDialogBox() throws IOException{ - setCursorPos(50, 0); - String dialogBox = loadTextFile("assets/DialogBox.text"); + public static void printDialogBox(){ + setCursorPos(100, 0); + String dialogBox = ""; + try { + dialogBox = loadTextFile("assets/DialogBox.text"); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } System.out.println(dialogBox); } @@ -52,7 +59,7 @@ public class Display { setCursorPos(50, 0); } - public static void newPrintln(String text) throws IOException{ + public static void newPrintln(String text){ clearDialogBox(); System.out.println(text); goToUserInput(); diff --git a/src/main/java/bitFight/Input.java b/src/main/java/bitFight/Input.java index 3cef9023bb2af38d8286e5c9d0f231f29dbab4d3..62d37f08a893c0e84a83d90db6d64c1a51e669c4 100644 --- a/src/main/java/bitFight/Input.java +++ b/src/main/java/bitFight/Input.java @@ -37,11 +37,7 @@ public class Input { e.printStackTrace(); } } catch (InvalidInputException e) { - try { - Display.newPrintln(e.getMessage()); - } catch (IOException e1) { - e1.printStackTrace(); - } + Display.newPrintln(e.getMessage()); } } while (!validInput()); diff --git a/src/main/java/bitFight/Level.java b/src/main/java/bitFight/Level.java index b7b150e8537a2dee539936e8df81e93e3f35c5d1..5cf0541c217f441fc1c446627ca2a9b92b2f4e63 100644 --- a/src/main/java/bitFight/Level.java +++ b/src/main/java/bitFight/Level.java @@ -59,13 +59,16 @@ public class Level{ // annonce un nouvel ennemi public void ennemyShowing() { System.out.println("An ennemy just appeared : " + this.ennemy.toString()); + System.out.println(); } public void ennemyFaster(Attack attack) { + Display.clearDialogBox(); System.out.println("The ennemy attacks before you can !"); player.setCurrentHealth(player.getCurrentHealth() - attack.getDamage() * this.ennemy.getAttackMultiplier()); //Récupère une attaque aléatoire dans l'enum System.out.println(attack.getName() + "!! You're getting " + (int) attack.getDamage() * this.ennemy.getAttackMultiplier() + " of damage!"); System.out.println(this.player.getName() + "'s life' : " + this.displayPlayerHealth()); + Display.goToUserInput(); } // affiche la jauge de vie de l'ennemi @@ -109,14 +112,18 @@ public class Level{ // méthodes de combats // liste des attaques et défenses possibles pour le joueur public void possibleActions() { + Display.clearDialogBox(); System.out.println("Possible attacks are : \n \t punch, kick, double kick, supermanpunch. \""); System.out.println("Possible defenses are : \n \t lowblock, highblock\""); + Display.goToUserInput(); } // quand l'utilisateur choisit une action qui n'existe pas public void invalidActionChoice() { + Display.clearDialogBox(); System.out.println("This action is not available."); possibleActions(); + Display.goToUserInput(); } // méthodes de paramètrages diff --git a/src/main/java/bitFight/Main.java b/src/main/java/bitFight/Main.java index 74a651dd045f8d7011025139451bc5c768a63352..f32490746950db1e95cad57fda14ba4b2d490217 100644 --- a/src/main/java/bitFight/Main.java +++ b/src/main/java/bitFight/Main.java @@ -46,9 +46,11 @@ class Main { Display.goToDialogBox(); - Display.newPrintln(Terminal.RED_BACKGROUND + "ATTAQUEZ" + Terminal.RESET + " ou " + Terminal.PURPLE_BACKGROUND + "QUITTEZ" + Terminal.RESET); + // arrivée de l'ennemi + level.ennemyShowing(); - level.displayGameRules(); + Display.newPrintln(enemy.toString()); + Display.newPrintln(Terminal.RED_BACKGROUND + "ATTAQUEZ" + Terminal.RESET + " ou " + Terminal.PURPLE_BACKGROUND + "QUITTEZ" + Terminal.RESET); Display.goToUserInput(); @@ -68,15 +70,13 @@ class Main { if (input.getInput().equals("a")) { - while (!input.getInput().equals("q") && !enemy.isDead() && !player.isDead()) { - - //A garder au début de la boucle, mesure le temps que le joueur à pris d'écrire - LocalDateTime timeBeforeAttack = LocalDateTime.now(); - int attackTime = 5 - (int)(5 * rand.nextDouble()); - - // arrivée de l'ennemi - level.ennemyShowing(); - + while (!input.getInput().equals("q") && !enemy.isDead() && !player.isDead()) { + + //A garder au début de la boucle, mesure le temps que le joueur à pris d'écrire + LocalDateTime timeBeforeAttack = LocalDateTime.now(); + int attackTime = 5 - (int)(5 * rand.nextDouble()); + + if (input.getInput().equals("a")) { level.possibleActions(); input.newInput(); @@ -94,9 +94,7 @@ class Main { if (!actionNames.contains(input.getInput())){ Display.clearDialogBox(); level.invalidActionChoice(); - input.newInput(); - System.out.println(actionNames.toString()); - System.out.println(input.getInput()); + input.newInput(in.readLine()); } } @@ -112,7 +110,9 @@ class Main { Display.newPrintln(enemy.toString()); //Display.clearDialogBox(); - + + input.newInput(in.readLine()); + if (enemy.isDead()){ level.ennemyDying(); player.revive();