From ae29ef983524f23d9596f803f3f1f7d523d1c5da Mon Sep 17 00:00:00 2001 From: CoudronJerome Date: Mon, 8 May 2023 20:57:09 +0200 Subject: [PATCH] Fixed course freezing and other course-ending bugs --- Assets/Common/Prefabs/Course Item.prefab | 2 +- Assets/Common/Scripts/CourseItem.cs | 2 +- Assets/Courses/Scenes/CourseScreen.unity | 2 +- Assets/Courses/Scripts/CoursesController.cs | 7 +++--- Assets/Courses/Scripts/PanelMultipleChoice.cs | 23 ++++++++++++------- Assets/NMLBuildCache.meta | 8 ------- Assets/NMLBuildCache/NatMLHub.asset | 20 ---------------- Assets/NMLBuildCache/NatMLHub.asset.meta | 8 ------- 8 files changed, 22 insertions(+), 50 deletions(-) delete mode 100644 Assets/NMLBuildCache.meta delete mode 100644 Assets/NMLBuildCache/NatMLHub.asset delete mode 100644 Assets/NMLBuildCache/NatMLHub.asset.meta diff --git a/Assets/Common/Prefabs/Course Item.prefab b/Assets/Common/Prefabs/Course Item.prefab index 1ea5dc0..4c496c3 100644 --- a/Assets/Common/Prefabs/Course Item.prefab +++ b/Assets/Common/Prefabs/Course Item.prefab @@ -216,7 +216,7 @@ MonoBehaviour: thumbnail: {fileID: 4959898009379617328} title: {fileID: 4959898009362012447} button: {fileID: 4959898007614330355} - slider: {fileID: 3971139188485731716} + slider: {fileID: 5742510687904928776} completed: {fileID: 8032316393302770855} --- !u!95 &5637671876400780781 Animator: diff --git a/Assets/Common/Scripts/CourseItem.cs b/Assets/Common/Scripts/CourseItem.cs index 27a2db7..f873c23 100644 --- a/Assets/Common/Scripts/CourseItem.cs +++ b/Assets/Common/Scripts/CourseItem.cs @@ -69,7 +69,7 @@ public class CourseItem : MonoBehaviour progress = Mathf.Clamp01(progress); completed.SetActive(1.0f <= progress); slider.SetActive(0.0f <= progress && progress < 1.0f); - slider.GetComponent().fillAmount = progress; + slider.GetComponentInChildren().fillAmount = progress; // Add click functionality button.onClick.AddListener(() => diff --git a/Assets/Courses/Scenes/CourseScreen.unity b/Assets/Courses/Scenes/CourseScreen.unity index 71fc22c..7e87976 100644 --- a/Assets/Courses/Scenes/CourseScreen.unity +++ b/Assets/Courses/Scenes/CourseScreen.unity @@ -1545,7 +1545,7 @@ MonoBehaviour: m_Calls: - m_Target: {fileID: 1122267056} m_TargetAssemblyTypeName: CoursesController, CourseScripts - m_MethodName: StartCourseController + m_MethodName: ReturnToActivityScreen m_Mode: 1 m_Arguments: m_ObjectArgument: {fileID: 0} diff --git a/Assets/Courses/Scripts/CoursesController.cs b/Assets/Courses/Scripts/CoursesController.cs index b583433..b7b6d17 100644 --- a/Assets/Courses/Scripts/CoursesController.cs +++ b/Assets/Courses/Scripts/CoursesController.cs @@ -196,6 +196,7 @@ public class CoursesController : AbstractFeedback /// public void StartCourseController() { + // Setting up course course = courselist.courses[courselist.currentCourseIndex]; maxWords = course.theme.learnables.Count; @@ -271,8 +272,8 @@ public class CoursesController : AbstractFeedback { // This function is also called (async) when pressing the 'Gebaar overslaan' button, // so check for condition so we don't skip multiple signs - if (isNextSignInTransit || maxWords <= progress.completedLearnables) - return; + //if (isNextSignInTransit || maxWords < progress.completedLearnables) + if (isNextSignInTransit) return; progress.progress = (float)progress.completedLearnables / (float)maxWords; progressBar.fillAmount = progress.progress; @@ -284,7 +285,7 @@ public class CoursesController : AbstractFeedback StartCoroutine(CRNextSign()); } // Finish course and record progress - if (progress.completedLearnables == maxWords) + else { FinishCourse(); } diff --git a/Assets/Courses/Scripts/PanelMultipleChoice.cs b/Assets/Courses/Scripts/PanelMultipleChoice.cs index 3a940a1..9def8d9 100644 --- a/Assets/Courses/Scripts/PanelMultipleChoice.cs +++ b/Assets/Courses/Scripts/PanelMultipleChoice.cs @@ -4,6 +4,7 @@ using TMPro; using UnityEngine; using UnityEngine.UI; using UnityEngine.Video; +using System.Linq; public class PanelMultipleChoice : MonoBehaviour @@ -95,15 +96,21 @@ public class PanelMultipleChoice : MonoBehaviour /// public List GetWrongOptions(int notThisIndex) { - List randomSigns = new List(); - // TODO: find more koosjer way to do this - while (randomSigns.Count < 3) + var test = progress.learnables.FindAll((l) => l.index != notThisIndex && l.inUse); + + for (int i = test.Count - 1; i > 0; i--) { - int index = progress.GetRandomLearnable().index; - if (index != notThisIndex && !randomSigns.Contains(signs[index])) - { - randomSigns.Add(signs[index]); - } + // Generate a random index between 0 and i (inclusive) + int j = UnityEngine.Random.Range(0, i + 1); + + // Swap the values at indices i and j + (test[j], test[i]) = (test[i], test[j]); + } + + List randomSigns = new List(); + foreach(var sign in test.Take(3)) + { + randomSigns.Add(signs[sign.index]); } return randomSigns; diff --git a/Assets/NMLBuildCache.meta b/Assets/NMLBuildCache.meta deleted file mode 100644 index 7654294..0000000 --- a/Assets/NMLBuildCache.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b0fcd1404d38ac94aace1c5b3564cc04 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/NMLBuildCache/NatMLHub.asset b/Assets/NMLBuildCache/NatMLHub.asset deleted file mode 100644 index c2c1314..0000000 --- a/Assets/NMLBuildCache/NatMLHub.asset +++ /dev/null @@ -1,20 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 63770b348488e4a3983eb57792523f54, type: 3} - m_Name: NatMLHub - m_EditorClassIdentifier: - accessKey: - user: - email: - username: - billing: - plan: diff --git a/Assets/NMLBuildCache/NatMLHub.asset.meta b/Assets/NMLBuildCache/NatMLHub.asset.meta deleted file mode 100644 index 7ababa8..0000000 --- a/Assets/NMLBuildCache/NatMLHub.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 327974eea6e413e418ae0fddd61a0e00 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: