diff --git a/Assets/Scenes/sceneRaffael.unity b/Assets/Scenes/sceneRaffael.unity
index 0261c0fb337313b2286d7038821867b7889aea66..514f2d0bc9bb6adf323f7afa49c1cef1d5a4d686 100644
--- a/Assets/Scenes/sceneRaffael.unity
+++ b/Assets/Scenes/sceneRaffael.unity
@@ -2538,6 +2538,10 @@ PrefabInstance:
       propertyPath: natureBar
       value: 
       objectReference: {fileID: 593755023}
+    - target: {fileID: -6286016664533736427, guid: a53c5cae22cca3445bbb7e30f12f7110, type: 3}
+      propertyPath: currentNature
+      value: 100
+      objectReference: {fileID: 0}
     - target: {fileID: 1206561506436264872, guid: a53c5cae22cca3445bbb7e30f12f7110, type: 3}
       propertyPath: m_SortingOrder
       value: 1000
@@ -2550,6 +2554,10 @@ PrefabInstance:
       propertyPath: m_Offset.y
       value: -0.17818928
       objectReference: {fileID: 0}
+    - target: {fileID: 1206561506436264875, guid: a53c5cae22cca3445bbb7e30f12f7110, type: 3}
+      propertyPath: player
+      value: 
+      objectReference: {fileID: 1925386457}
     - target: {fileID: 1206561506436264879, guid: a53c5cae22cca3445bbb7e30f12f7110, type: 3}
       propertyPath: m_RootOrder
       value: 0
@@ -16646,6 +16654,11 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 898c167cc2238f346bdccf7faa612453, type: 3}
+--- !u!1 &1925386457 stripped
+GameObject:
+  m_CorrespondingSourceObject: {fileID: 1206561506436264884, guid: a53c5cae22cca3445bbb7e30f12f7110, type: 3}
+  m_PrefabInstance: {fileID: 612936001}
+  m_PrefabAsset: {fileID: 0}
 --- !u!1001 &1928427715
 PrefabInstance:
   m_ObjectHideFlags: 0
diff --git a/Assets/Scripts/Game/GenerateMap.cs b/Assets/Scripts/Game/GenerateMap.cs
index f1ba2d2076c7f7fdf900a243907a718cf08d5038..d0716d7b8a11c4b2f3ccda005ffe597552c26523 100644
--- a/Assets/Scripts/Game/GenerateMap.cs
+++ b/Assets/Scripts/Game/GenerateMap.cs
@@ -19,10 +19,7 @@ public class GenerateMap : MonoBehaviour
     public List<GameObject> pUsine = new List<GameObject>();
     public int nb_of_plot = 8;
     public Object[,] plot=new Object[3,3];
-
-    private GameObject player = GameObject.FindGameObjectWithTag("Player");
-    
-
+   
 
     //Les coordonées x dans l'ordre
     private int[] xs=new int[]{-17,0,17}; //colonne
diff --git a/Assets/Scripts/Inventory/Border.cs b/Assets/Scripts/Inventory/Border.cs
index aa127050d5973456f2b7dfd027d6dfa43afa2e06..5df5a44c8d4c613b3f78472e494a957faa86afd6 100644
--- a/Assets/Scripts/Inventory/Border.cs
+++ b/Assets/Scripts/Inventory/Border.cs
@@ -6,6 +6,7 @@ public class Border : MonoBehaviour
 {
     public Item itemNeeded;
     public BoxCollider2D forestCollider;
+    private GameObject player = GameObject.FindGameObjectWithTag("Player");
 
     private void OnCollisionEnter2D(Collision2D collision)
     {
@@ -15,27 +16,31 @@ public class Border : MonoBehaviour
             Debug.Log("JE TOUCHE LA BORDEER");
             if (Inventory.instance.hasItem(itemNeeded))
             {
-                Debug.Log("Je possède l'item nécessaire");
+                Debug.Log("Je poss?de l'item n?cessaire");
                 forestCollider.enabled = false;
 
             }
             else
             {
-                Debug.Log("Je n'ai pas l'item nécessaire");
+                Debug.Log("Je n'ai pas l'item n?cessaire");
 
                 switch (itemNeeded.id)
                 {
                     case 1:
                         Dialog.instance.setSituation("borderChaussure");
+                        player.GetComponent<PlayerMovement>().ispassed[0] = true;
                         break;
                     case 2:
                         Dialog.instance.setSituation("borderBaton");
+                        player.GetComponent<PlayerMovement>().ispassed[1] = true;
                         break;
                     case 3:
                         Dialog.instance.setSituation("borderRechaud");
+                        player.GetComponent<PlayerMovement>().ispassed[2] = true;
                         break;
                     case 4:
                         Dialog.instance.setSituation("borderTente");
+                        player.GetComponent<PlayerMovement>().ispassed[3] = true;
                         break;
                 }
             }
diff --git a/Assets/Scripts/Player/PlayerMovement.cs b/Assets/Scripts/Player/PlayerMovement.cs
index 0fb6130e91d845176658ccaa7a8fe47724ad3c6d..1083a51822f0a5995c929f54f21092e572838f79 100644
--- a/Assets/Scripts/Player/PlayerMovement.cs
+++ b/Assets/Scripts/Player/PlayerMovement.cs
@@ -20,6 +20,7 @@ public class PlayerMovement : MonoBehaviour
     public PlayerState currentState;
     public int stage = 0;
     public GameObject player;
+    public bool[] ispassed;
 
     // Start is called before the first frame update
     void Start()
@@ -58,7 +59,7 @@ public class PlayerMovement : MonoBehaviour
             GenerateMap.instance.generateBoutique(0, 1, "chaussure");
             stage++;
         }
-        else if (stage == 1)
+        else if (stage == 1 && ispassed[0] == true)
         {
             GenerateMap.instance.generateUsine(1, 1);
             stage++;
@@ -68,7 +69,7 @@ public class PlayerMovement : MonoBehaviour
             GenerateMap.instance.generateBoutique(0, 2, "baton");
             stage++;
         }
-        else if (stage == 3)
+        else if (stage == 3 && ispassed[1] == true)
         {
             GenerateMap.instance.generateUsine(1, 2);
             stage++;
@@ -78,7 +79,7 @@ public class PlayerMovement : MonoBehaviour
             GenerateMap.instance.generateBoutique(2, 0, "rechaud");
             stage++;
         }
-        else if (stage == 5)
+        else if (stage == 5 && ispassed[2] == true)
         {
             GenerateMap.instance.generateUsine(2, 1);
             stage++;
@@ -88,7 +89,7 @@ public class PlayerMovement : MonoBehaviour
             GenerateMap.instance.generateBoutique(0, 0, "tente");
             stage++;
         }
-        else if (stage == 7)
+        else if (stage == 7 && ispassed[3] == true)
         {
             GenerateMap.instance.generateUsine(1, 0);
             stage++;