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