diff --git a/src/main/java/re/forestier/edu/rpg/Adventurer.java b/src/main/java/re/forestier/edu/rpg/Adventurer.java index 170247d1ac4d984b84c298077a2a086006f28def..254162e196b5cae705d5832d4efbddb17bf614b0 100644 --- a/src/main/java/re/forestier/edu/rpg/Adventurer.java +++ b/src/main/java/re/forestier/edu/rpg/Adventurer.java @@ -3,8 +3,7 @@ package re.forestier.edu.rpg; import java.util.ArrayList; import java.util.HashMap; -public class Adventurer extends player{ - +public class Adventurer extends player { public Adventurer(String playerName, String avatar_name, int money, ArrayList<String> inventory) { @@ -13,7 +12,6 @@ public class Adventurer extends player{ } - @Override protected void levelUp() { super.levelUp(); @@ -51,4 +49,19 @@ public class Adventurer extends player{ abilities.put(ability, newAbilities.get(ability)); }); } + + @Override + public void majFinDeTour() { + super.majFinDeTour(); + + if (currenthealthpoints < healthpoints / 2) { + currenthealthpoints+=2; + if(getLevel() < 3) { + currenthealthpoints-=1; + } + } + if(currenthealthpoints >= healthpoints) { + currenthealthpoints = healthpoints; + } + } } diff --git a/src/main/java/re/forestier/edu/rpg/Archer.java b/src/main/java/re/forestier/edu/rpg/Archer.java index 665a5315bb2f815107ef042b29e3218ce0e8da48..7d7b4be998ad01e4a50a9db8145492b0d6e4c9ff 100644 --- a/src/main/java/re/forestier/edu/rpg/Archer.java +++ b/src/main/java/re/forestier/edu/rpg/Archer.java @@ -44,4 +44,20 @@ public class Archer extends player { }); } + @Override + public void majFinDeTour() { + super.majFinDeTour(); + + if (currenthealthpoints < healthpoints / 2) { + + currenthealthpoints += 1; + if (inventory.contains("Magic Bow")) { + currenthealthpoints += currenthealthpoints / 8 - 1; + } + } + + if (currenthealthpoints >= healthpoints) { + currenthealthpoints = healthpoints; + } + } } diff --git a/src/main/java/re/forestier/edu/rpg/Dwarf.java b/src/main/java/re/forestier/edu/rpg/Dwarf.java index 52cdcf6892aed605d3c24e67f85f87e54a3ce637..05ff508f3728f4c4fd3d8878390fc2809c05d6b7 100644 --- a/src/main/java/re/forestier/edu/rpg/Dwarf.java +++ b/src/main/java/re/forestier/edu/rpg/Dwarf.java @@ -43,4 +43,23 @@ public class Dwarf extends player{ }); } + + + @Override + public void majFinDeTour() { + super.majFinDeTour(); + + if(currenthealthpoints < healthpoints/2) { + + if(inventory.contains("Holy Elixir")) { + currenthealthpoints+=1; + } + currenthealthpoints+=1; + } + + + if(currenthealthpoints >= healthpoints) { + currenthealthpoints = healthpoints; + } + } } diff --git a/src/main/java/re/forestier/edu/rpg/UpdatePlayer.java b/src/main/java/re/forestier/edu/rpg/UpdatePlayer.java index 2c749d5ee557d8038796d217dc5bfaa14ec70ce2..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/src/main/java/re/forestier/edu/rpg/UpdatePlayer.java +++ b/src/main/java/re/forestier/edu/rpg/UpdatePlayer.java @@ -1,54 +0,0 @@ -package re.forestier.edu.rpg; - -import java.util.HashMap; -import java.util.Random; - -public class UpdatePlayer { - - - - // majFinDeTour met à jour les points de vie - public static void majFinDeTour(player player) { - if(player.currenthealthpoints == 0) { - System.out.println("Le joueur est KO !"); - return; - } - - if(player.currenthealthpoints < player.healthpoints/2) { - if(!player.getAvatarClass().equals("ADVENTURER")) { - if(player.getAvatarClass().equals("DWARF")) { - if(player.inventory.contains("Holy Elixir")) { - player.currenthealthpoints+=1; - } - player.currenthealthpoints+=1; - } else if(player.getAvatarClass().equals("ADVENTURER")) { - player.currenthealthpoints+=2; - } - - - if(player.getAvatarClass().equals("ARCHER")) { - player.currenthealthpoints+=1; - if(player.inventory.contains("Magic Bow")) { - player.currenthealthpoints+=player.currenthealthpoints/8-1; - } - } - } else { - player.currenthealthpoints+=2; - if(player.getLevel() < 3) { - player.currenthealthpoints-=1; - } - } - } else if(player.currenthealthpoints >= player.healthpoints/2){ - if(player.currenthealthpoints >= player.healthpoints) { - player.currenthealthpoints = player.healthpoints; - return; - } - } - - - if(player.currenthealthpoints >= player.healthpoints) { - player.currenthealthpoints = player.healthpoints; - } - } -} - diff --git a/src/main/java/re/forestier/edu/rpg/player.java b/src/main/java/re/forestier/edu/rpg/player.java index 1b42af6d3dc4fedc16f37d50be8d01115df4e503..1093ea81db5eddf8a1da4bee1f010ded28cd0cc3 100644 --- a/src/main/java/re/forestier/edu/rpg/player.java +++ b/src/main/java/re/forestier/edu/rpg/player.java @@ -71,6 +71,14 @@ public abstract class player { } + protected void majFinDeTour() { + if(currenthealthpoints == 0) { + System.out.println("Le joueur est KO !"); + return; + } + //The rest of the method is implemented in the subclasses + } + public Integer getLevel() { return this.level; diff --git a/src/test/java/re/forestier/edu/GlobalTest.java b/src/test/java/re/forestier/edu/GlobalTest.java index 417ed8762d9010aae39a749323ee7cbb252f936e..1568ad80a992c237e7e5b09505e91428b5a13ed4 100644 --- a/src/test/java/re/forestier/edu/GlobalTest.java +++ b/src/test/java/re/forestier/edu/GlobalTest.java @@ -4,8 +4,6 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import re.forestier.edu.rpg.Adventurer; import re.forestier.edu.rpg.Affichage; -import re.forestier.edu.rpg.UpdatePlayer; -import re.forestier.edu.rpg.player; import java.util.ArrayList; diff --git a/src/test/java/re/forestier/edu/UnitTests.java b/src/test/java/re/forestier/edu/UnitTests.java index 6e0af10859916fd5c19711746be0fec31929e227..c8b7393495540d31181bf9face374a1356e77386 100644 --- a/src/test/java/re/forestier/edu/UnitTests.java +++ b/src/test/java/re/forestier/edu/UnitTests.java @@ -73,9 +73,10 @@ public class UnitTests { void testDeath() { Archer deadPlayer = new Archer("Florian", "Gnognak le Barbare", 200, new ArrayList<>()); + deadPlayer.healthpoints = 50; deadPlayer.currenthealthpoints = 0; - UpdatePlayer.majFinDeTour(deadPlayer); + deadPlayer.majFinDeTour(); } @Test @@ -92,8 +93,8 @@ public class UnitTests { holyElixirPlayer.inventory.add("Holy Elixir"); - UpdatePlayer.majFinDeTour(holyElixirPlayer); - UpdatePlayer.majFinDeTour(normalPlayer); + holyElixirPlayer.majFinDeTour(); + normalPlayer.majFinDeTour(); assertEquals(normalPlayer.currenthealthpoints, holyElixirPlayer.currenthealthpoints - 1); } @@ -113,8 +114,8 @@ public class UnitTests { magicBowArcher.inventory.add("Magic Bow"); - UpdatePlayer.majFinDeTour(magicBowArcher); - UpdatePlayer.majFinDeTour(normalArcher); + magicBowArcher.majFinDeTour(); + normalArcher.majFinDeTour(); assertEquals(normalArcher.currenthealthpoints, magicBowArcher.currenthealthpoints - 2); } @@ -138,8 +139,8 @@ public class UnitTests { adventurer1.addXp( 200); - UpdatePlayer.majFinDeTour(adventurer1); - UpdatePlayer.majFinDeTour(adventurer2); + adventurer1.majFinDeTour(); + adventurer2.majFinDeTour(); assertEquals(26,adventurer1.currenthealthpoints); @@ -160,8 +161,8 @@ public class UnitTests { adventurer1.currenthealthpoints = adventurer1.healthpoints + 2; adventurer2.currenthealthpoints = adventurer2.healthpoints - 2; - UpdatePlayer.majFinDeTour(adventurer1); - UpdatePlayer.majFinDeTour(adventurer2); + adventurer1.majFinDeTour(); + adventurer2.majFinDeTour(); assertEquals(adventurer1.currenthealthpoints, adventurer1.healthpoints); assertEquals(48, adventurer2.currenthealthpoints);