diff --git a/src/main/java/bitFight/Attack.java b/src/main/java/bitFight/Attack.java index 748b03cd0ef4fd84ac4f5f114aceb06ed942763a..589b73a634ca6e3bd531af2725be018af545b00b 100644 --- a/src/main/java/bitFight/Attack.java +++ b/src/main/java/bitFight/Attack.java @@ -1,11 +1,13 @@ package bitFight; public enum Attack implements Action { - PUNCH(10); + PUNCH(10, "punch"); private int damage; + private String name; - Attack(int damage) { + Attack(int damage, String name) { this.damage = damage; + this.name = name; } public int getDamage() { return damage; @@ -18,4 +20,7 @@ public enum Attack implements Action { public String getActionTypeToString() { return "Attack"; } + public String getName() { + return name; + } } \ No newline at end of file diff --git a/src/main/java/bitFight/Level.java b/src/main/java/bitFight/Level.java index bc7fbf8e1c31a502774270c007a8712f27192269..2e56c1b5ad582ccc08739c0326bd66ac383300de 100644 --- a/src/main/java/bitFight/Level.java +++ b/src/main/java/bitFight/Level.java @@ -1,5 +1,7 @@ package bitFight; +import java.util.Scanner; + public class Level{ int nbLevel=1; @@ -26,5 +28,42 @@ public class Level{ this.difficulty = difficulty; } + public void display() { + System.out.println("Level " + this.nbLevel); + System.out.println("Difficulty = " + this.difficulty); + } + + public boolean check() { + Scanner sc = new Scanner(System.in); + String c = sc.nextLine(); + if (c == null) { + sc.close(); + return false; + } + sc.close(); + return true; + } + + public void ennemyShowing(Enemy ennemy) { + System.out.println("An ennemy just appeared : " + ennemy.toString()); + } + + public void ennemyDying() { + System.out.println("The ennemy is dead!"); + } + + public void playerDying() { + + } + + public void fighting(Player p, Enemy ennemy) { + System.out.println(p.getName() + "'s life : " + p.getCurrentHealth()); + this.ennemyShowing(ennemy); + System.out.println("Press any key to attack and press enter"); + if (this.check()) { + this.ennemyDying(); + } + } + } diff --git a/src/main/java/bitFight/LevelDisplay.java b/src/main/java/bitFight/LevelDisplay.java deleted file mode 100644 index 5e4f7ea22a117dae7fd3c479789eaa7cceebd43b..0000000000000000000000000000000000000000 --- a/src/main/java/bitFight/LevelDisplay.java +++ /dev/null @@ -1,47 +0,0 @@ -package bitFight; - - -import java.util.Scanner; - -public class LevelDisplay { - private int levelNb = 1; - private String levelText = "New level : prepare to fight!"; - - public int getLevelNb() { - return levelNb; - } - - public void display() { - System.out.println("Niveau " + this.levelNb); - System.out.println(this.levelText); - } - - public boolean validate() { - Scanner sc = new Scanner(System.in); - String c = sc.nextLine(); - if (c == null) { - sc.close(); - return false; - } - sc.close(); - return true; - } - - public void ennemyShowing(Enemy ennemy) { - System.out.println("An ennemy just appeared : " + ennemy.toString()); - } - - public void ennemyDying() { - System.out.println("The ennemy is dead!"); - } - - public void fighting(Player p, Enemy ennemy) { - System.out.println(p.getName() + "'s life : " + p.getCurrentHealth()); - this.ennemyShowing(ennemy); - System.out.println("Press any key to attack and press enter"); - this.validate(); - if (this.validate()) { - this.ennemyDying(); - } - } -} diff --git a/src/main/java/bitFight/Main.java b/src/main/java/bitFight/Main.java index dc65d7cce4239be2639c685b752834ac97f6e49e..7994a8fc58af0164e7e4246f8473160025b15651 100644 --- a/src/main/java/bitFight/Main.java +++ b/src/main/java/bitFight/Main.java @@ -3,11 +3,19 @@ package bitFight; import java.time.Duration; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.Random; import java.util.Scanner; class Main { public static void main(String[] args) { + + // Récupère le nom de cahque attaque dans une ArrayList + ArrayList<String> attacksNames = new ArrayList<>(); + for (Attack a : Attack.values()) { + attacksNames.add(a.getName()); + } + Scanner in = new Scanner(System.in); Random rand = new Random(); @@ -20,7 +28,6 @@ class Main { System.out.println(JoueurEnnemi.getCurrentHealth()); while (!input.getInput().equals("q") && !JoueurEnnemi.isDead()) { - System.out.println("départ"); LocalDateTime timeBeforeAttack = LocalDateTime.now(); int attackTime = 8 - (int)(5 * rand.nextDouble()); //A garder au début de la boucle @@ -29,11 +36,21 @@ class Main { System.out.println("Error input invalid"); input.setInput(in.nextLine()); } - System.out.println("input valide"); + // Évènement après choisi d'attaquer if (input.getInput().equals("a")) { - JoueurEnnemi.damage(Attack.PUNCH.getDamage()); - System.out.println("Ennemi" + " health : " + JoueurEnnemi.getCurrentHealth()); + input.setInput(in.nextLine()); + // Boucle tant que le joueur n'a pas taper de nom d'une attaque valide + while (!attacksNames.contains(input.getInput())) { + if (!attacksNames.contains(input.getInput())){ + System.out.println("WARNING ! : Choose an attack in the list"); + input.setInput(in.nextLine()); + } + } + String attack = attacksNames.get(attacksNames.indexOf(input.getInput())).toUpperCase(); + JoueurEnnemi.damage(Attack.valueOf(attack).getDamage()); + + System.out.println(JoueurEnnemi.toString()); input.setInput(in.nextLine()); } diff --git a/src/test/java/attackTest.java b/src/test/java/attackTest.java index 9e3b2ce51ed2727b1b8b125345ed57da5c64d255..96beb0d5651462964080507a640ac0511dfd9477 100644 --- a/src/test/java/attackTest.java +++ b/src/test/java/attackTest.java @@ -5,7 +5,7 @@ import org.junit.jupiter.api.Test; public class attackTest { @Test void testGetDamage() { - assertEquals(attack.PUNCH.getDamage(),10); + assertEquals(Attack.PUNCH.getDamage(),10); } }