From 5b18ee7bc041491ef911c9bf1932c2884120d73f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A9o=20Eichhorn?= <leo.eichhorn@etu.unistra.fr>
Date: Fri, 20 Jan 2023 12:48:58 +0100
Subject: [PATCH] Fixed issue

---
 .../Assets/Scripts/Door_2/MainDoorController.cs   | 15 +++++++++++++--
 UnityGoesBruh/Assets/Scripts/Game/Logic.cs        | 13 ++++++++-----
 2 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/UnityGoesBruh/Assets/Scripts/Door_2/MainDoorController.cs b/UnityGoesBruh/Assets/Scripts/Door_2/MainDoorController.cs
index 772ead58..c1583d2e 100644
--- a/UnityGoesBruh/Assets/Scripts/Door_2/MainDoorController.cs
+++ b/UnityGoesBruh/Assets/Scripts/Door_2/MainDoorController.cs
@@ -3,8 +3,9 @@ using System.Collections.Generic;
 using UnityEngine;
 using TMPro;
 using Assets.Scripts.Simon_Say;
+using Game.MinigameScript;
 
-public class MainDoorController : MonoBehaviour
+public class MainDoorController : MonoBehaviour, MiniGameObserver
 {
     [SerializeField]
     private GameObject _console;
@@ -22,6 +23,16 @@ public class MainDoorController : MonoBehaviour
         set => this._isLocked = value;
     }
 
+    public void OnWin(MiniGame miniGame)
+    {
+        OnKeypadCorrect();
+    }
+
+    public void OnLose(MiniGame miniGame)
+    {
+        
+    }
+
     // Start is called before the first frame update
     void Start()
     {
@@ -31,7 +42,7 @@ public class MainDoorController : MonoBehaviour
         }
         if (this._keypad != null)
         {
-            this._keypad.GetComponent<keypadController>().OnCorrect(OnKeypadCorrect);
+            this._keypad.GetComponent<Keypad>().AddObserver(this);
         }
 
         this._animator = this.GetComponent<Animator>();
diff --git a/UnityGoesBruh/Assets/Scripts/Game/Logic.cs b/UnityGoesBruh/Assets/Scripts/Game/Logic.cs
index 138a4083..ad6d0f89 100644
--- a/UnityGoesBruh/Assets/Scripts/Game/Logic.cs
+++ b/UnityGoesBruh/Assets/Scripts/Game/Logic.cs
@@ -21,7 +21,9 @@ public class Logic : MonoBehaviour, MiniGameObserver
     {
         foreach (GameObject gameObject in _miniGames)
         {
-            gameObject.GetComponent<MiniGame>().AddObserver(this);
+            MiniGame miniGame = gameObject.GetComponent<MiniGame>();
+            miniGame.AddObserver(this);
+            miniGame.enabled = false;
         }
         ChooseRandomMiniGame();
     }
@@ -29,15 +31,16 @@ public class Logic : MonoBehaviour, MiniGameObserver
     //Choose a new random game on win
     public void OnWin(MiniGame miniGame)
     {
-        _curMiniGame.enabled = false;
-
-        ChooseRandomMiniGame();
+        if(_curMiniGame == miniGame){
+            _curMiniGame.enabled = false;
+            ChooseRandomMiniGame();
+        }
     }
 
     //Not implemented
     public void OnLose(MiniGame miniGame)
     {
-        _curMiniGame.enabled = false;
+        //_curMiniGame.enabled = false;
         //Quit Game / Lose Condition
     }
 
-- 
GitLab