Skip to content
Snippets Groups Projects
Commit 88206905 authored by Mohamed Taarit's avatar Mohamed Taarit
Browse files

ajout de barre de vie

parents 3ebbb919 983d314d
No related branches found
No related tags found
No related merge requests found
________________________________________________________________________________________________________________________
......@@ -13,7 +13,7 @@ ________________________________________________________________________________
Commandes :
a - Attaquer
q - Quitter
a - Action
q - Quitter
________________________________________________________________________________________________________________________
\ No newline at end of file
......@@ -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();
......
......@@ -32,7 +32,7 @@ public class Enemy extends Character{
public String toString() {
return name + " LE " + characteristic.name() + " : level " + this.level + " - Current life level : " + (int)this.currentHealth;
return name + " LE " + characteristic.name() + " : level " + this.level;
}
public Characteristics getCharacteristic() {
......
package bitFight;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Input {
......@@ -39,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());
......
......@@ -59,38 +59,42 @@ 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
public void displayLifePoints (){
System.err.println();
System.out.println("\t \t " +this.player.getName());
System.out.print(Terminal.GREEN+" \t current health "+Terminal.GREEN);
System.out.print(Terminal.GREEN+" \t current health "+Terminal.RESET);
for (int indice = 0; indice < ((this.player.getCurrentHealth()/this.player.getMaxHealth())*100)/2; indice ++){
System.out.print(Terminal.GREEN+ "▬"+ Terminal.GREEN);
System.out.print(Terminal.GREEN+ "▬"+ Terminal.RESET);
}
System.out.print(" ");
System.err.println( (int) this.player.getCurrentHealth() + "/" + (int) this.player.getMaxHealth());
System.out.print(Terminal.YELLOW+"\t current energy "+Terminal.YELLOW);
System.out.print(Terminal.YELLOW+"\t current energy "+Terminal.RESET);
for (int indice = 0; indice < (this.player.getCurrentEnergy())/2; indice ++){
System.out.print(Terminal.YELLOW +"▬"+ Terminal.YELLOW);
System.out.print(Terminal.YELLOW +"▬"+ Terminal.RESET);
}
System.out.print(" ");
System.err.println(this.player.getCurrentEnergy() + "/" + this.player.getMaxEnergy());
}
// affiche la jauge de vie du joueur
public String displayPlayerHealth() {
return (int)this.player.getCurrentHealth() +"/" + (int)this.player.getMaxHealth();
public String displayPlayerHealth(){
return (int )this.ennemy.getCurrentHealth() +" / " + (int) this.ennemy.getMaxHealth();
}
// annonce la mort de l'ennemi
public void ennemyDying() {
System.out.println("The ennemy is dead!");
......@@ -122,14 +126,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
......@@ -201,5 +209,5 @@ public class Level{
}
......@@ -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();
......@@ -95,8 +95,6 @@ class Main {
Display.clearDialogBox();
level.invalidActionChoice();
input.newInput();
System.out.println(actionNames.toString());
System.out.println(input.getInput());
}
}
......@@ -112,7 +110,9 @@ class Main {
Display.newPrintln(enemy.toString());
//Display.clearDialogBox();
input.newInput();
if (enemy.isDead()){
level.ennemyDying();
player.revive();
......@@ -135,4 +135,5 @@ class Main {
Save.saveObject("res/gamedata", gamedata);
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment