diff --git a/Assets/ChargementJSONStructure.cs b/Assets/ChargementJSONStructure.cs index e0b5e78f99c6f499944d009e14b3fc8c651327ff..dd8c7a96f88a97076559b2b71a035a19fb15f21e 100644 --- a/Assets/ChargementJSONStructure.cs +++ b/Assets/ChargementJSONStructure.cs @@ -63,6 +63,9 @@ public class ChargementJSONStructure : MonoBehaviour public string modalite; public string consigne; public string fond; + public string condition; + public DateTime debut; + public DateTime fin; public bool randomiser; public int nbItemsMax; public List<EpreuveItem> items; diff --git a/Assets/EpreuveCondition.cs b/Assets/EpreuveCondition.cs new file mode 100644 index 0000000000000000000000000000000000000000..0a401bbead3b3f44268887c69a6a1a26cfc09d26 --- /dev/null +++ b/Assets/EpreuveCondition.cs @@ -0,0 +1,29 @@ +using System; +using UnityEngine; + +using static ChargementJSONStructure; + +class EpreuveCondition +{ + public string text_condition; + public DateTime start; + public DateTime end; + public ChargementJSONStructure test; + + public EpreuveCondition(Epreuve ep, ChargementJSONStructure jsonStructureScript) + { + text_condition = ep.condition; + start = ep.debut; + end = ep.fin; + Debug.Log("instance début" + start); + Debug.Log("instance fin" + end); + test = jsonStructureScript; + } + + public bool eval() + { + DateTime now = DateTime.Now ; + //un jour il faudra traiter la condition aussi + return (((start == null) || (start <= now)) && ((now <= end) || (end == null))); + } +} diff --git a/Assets/EpreuveCondition.cs.meta b/Assets/EpreuveCondition.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0272a1000c8f755c35f6dac1d58bc1bb11964672 --- /dev/null +++ b/Assets/EpreuveCondition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f09accaefe401f623bf1fce5d4035764 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/one_for_all.json b/Assets/Resources/one_for_all.json index 4467a4f2611cf656cab5c9130e72cc5ff67ada4e..37b02cae515aa21e96e68b38363f56001c89bada 100644 --- a/Assets/Resources/one_for_all.json +++ b/Assets/Resources/one_for_all.json @@ -8543,6 +8543,7 @@ "desc": null, "consigne": "C.1.Xplc°_xrcc", "randomiser": false, + "fin": "2023-12-31", "items": [ { "id": "tuto1_lapin", diff --git a/Assets/mainManager.cs b/Assets/mainManager.cs index 1ef6f98b5d6c74cfe2a12b2ca805c50ea2014f7d..4c9c183904681817ab7926e04380f7d7ec9598b0 100644 --- a/Assets/mainManager.cs +++ b/Assets/mainManager.cs @@ -7,6 +7,7 @@ using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; using static ChargementJSONStructure; +using static EpreuveCondition; public class mainManager : MonoBehaviour { @@ -68,7 +69,7 @@ public class mainManager : MonoBehaviour // Vérifier si la clé existe dans le dictionnaire clefPourSauvegardeUtilisateur = "gm2024E"; - + if (HM_DataController.currentTeacherAccount != null && HM_DataController.currentChildUser!=null) { clefPourSauvegardeUtilisateur = HM_DataController.currentTeacherAccount.teacherCode.ToString() + HM_DataController.currentChildUser.userID.ToString(); @@ -336,7 +337,7 @@ public class mainManager : MonoBehaviour epreuvesitemsCurrent = ShuffleList(epreuvesitemsCurrent); } epreuveitemscurrentSet = true; - + } @@ -373,6 +374,43 @@ public class mainManager : MonoBehaviour return shuffled; } + public void nextEpreuve(bool addOne) + { + Debug.Log("nextEpreuve"); + // on regarde s'il y a une autre epreuve dans la m�me session � lancer + if (s!=null && currentEpreuve >= s.epreuves.Count - 1) + { + //pas d'autre epreuve dans cette session, on clot la session + Debug.Log("pas d'autre epreuve dans cette session, on clot la session currentEpreuve="+ currentEpreuve+ " s.epreuves.Count="+ s.epreuves.Count); + ouvrirMenu(true); + } + else + { + Debug.Log("il y a une autre epreuve dans cette session, on voit si on la lance"); + currentEpreuve++; + if (playableEpreuve(s.epreuves[currentEpreuve])) + { + currentItem = 0; + epreuveConsignebeenPlayed = false; + current_step = -1; + resetItem(); + playSteps(); + } + else + { + nextEpreuve(); + } + } + } + + public bool playableEpreuve(Epreuve test_ep) + { + EpreuveCondition cond = new EpreuveCondition(test_ep, jsonStructureScript); + return cond.eval(); + } + + + public void endItem() { Debug.Log("endItem"); @@ -385,23 +423,7 @@ public class mainManager : MonoBehaviour { Debug.Log("pas d'autre item dans cette epreuve currentItem=" + currentItem + " epreuvesitemsCurrent.Count= " + epreuvesitemsCurrent.Count); // pas d'autre liste d'items dans cette epreuve - // on regarde s'il y a une autre epreuve dans la m�me session � lancer - if (s!=null && currentEpreuve >= s.epreuves.Count - 1) - { - //pas d'autre epreuve dans cette session, on clot la session - Debug.Log("pas d'autre epreuve dans cette session, on clot la session currentEpreuve="+ currentEpreuve+ " s.epreuves.Count="+ s.epreuves.Count); - ouvrirMenu(true); - } - else - { - Debug.Log("il y a une autre epreuve dans cette session, on la lance"); - currentItem = 0; - currentEpreuve++; - epreuveConsignebeenPlayed = false; - current_step = -1; - resetItem(); - playSteps(); - } + nextEpreuve(); //s.epreuves[currentEpreuve]; } else @@ -504,7 +526,7 @@ public class mainManager : MonoBehaviour while (audioIsPaused || (!boutonCheatNext && mainAudioSource.isPlaying)) { - + if (Time.timeScale != 0) { // Si le Time.timeScale n'est pas zéro et que l'AudioSource est en pause, le reprendre @@ -736,11 +758,11 @@ public class mainManager : MonoBehaviour } else { - + boutonSessionEnCours.SetActive(true); } gameObjFin.SetActive(true); - + if (findesession) { @@ -765,7 +787,7 @@ public class mainManager : MonoBehaviour boutonDeconnexion.SetActive(true); } } - + } public void clicRetourSessionEnCOurs() @@ -814,7 +836,7 @@ public class mainManager : MonoBehaviour if (deconnexionPlusRAZ) { gestionProg.SauveProgression(0, true); - + } Time.timeScale = 1.0f; Debug.Log("terminateScene"); diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 65f0d78740cb0eee7960c40a5aac01f5f2fe9f3c..dffbd1d53c9489d516ea0c6007deba47dc3da5c3 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -21,16 +21,16 @@ EditorUserSettings: value: 5057510250560c5d5d0a0a7312225d44424e4d737e7b246928781f61b6e4373c flags: 0 RecentlyUsedSceneGuid-5: - value: 025701560657515e545d0926447508454e474f2f797820647b7d4c35e1b93661 + value: 51530603000d5e0a5c0c5a7044705c44404f1a7d7b2d20607a714d66b4b9626a flags: 0 RecentlyUsedSceneGuid-6: - value: 51530603000d5e0a5c0c5a7044705c44404f1a7d7b2d20607a714d66b4b9626a + value: 515250075c0c595e5f5a5e71122159444e4e4a2f7a7d7f602f284d66b4b76661 flags: 0 RecentlyUsedSceneGuid-7: - value: 515250075c0c595e5f5a5e71122159444e4e4a2f7a7d7f602f284d66b4b76661 + value: 52045152560d5d025858542140750e44404f4d2b74797431292b1f66b1e5373c flags: 0 RecentlyUsedSceneGuid-8: - value: 52045152560d5d025858542140750e44404f4d2b74797431292b1f66b1e5373c + value: 025701560657515e545d0926447508454e474f2f797820647b7d4c35e1b93661 flags: 0 vcSharedLogLevel: value: 0d5e400f0650