From 40e60b5a4ac7e93cb14e3735284f605c989abcb9 Mon Sep 17 00:00:00 2001 From: Guillaume Meinesz <guillaume.meinesz@gmail.com> Date: Fri, 10 Nov 2023 16:25:08 +0100 Subject: [PATCH] random et item max sur les epreuves --- Assets/ChargementJSONStructure.cs | 2 ++ Assets/Resources/C.Ph_rimes.json | 3 ++- Assets/mainManager.cs | 38 +++++++++++++++++++++++-------- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/Assets/ChargementJSONStructure.cs b/Assets/ChargementJSONStructure.cs index 04a06bcc..eee6c3e4 100644 --- a/Assets/ChargementJSONStructure.cs +++ b/Assets/ChargementJSONStructure.cs @@ -62,6 +62,8 @@ public class ChargementJSONStructure : MonoBehaviour public string desc; public string modalite; public string consigne; + public bool randomiser; + public int nbItemsMax; public List<EpreuveItem> items; } diff --git a/Assets/Resources/C.Ph_rimes.json b/Assets/Resources/C.Ph_rimes.json index 2d843fc0..0b1e2ac3 100644 --- a/Assets/Resources/C.Ph_rimes.json +++ b/Assets/Resources/C.Ph_rimes.json @@ -1311,7 +1311,8 @@ "desc": "Le sujet entend un mot et choisit celui qui rime avec parmi les propositions", "fond": "M.K.BlKtchn", "consigne": "consRime", - "randomiser": false, + "randomiser": true, + "nbItemsMax":2, "items": [ { "id": "tuto_rime", diff --git a/Assets/mainManager.cs b/Assets/mainManager.cs index 16c56d92..c705d9e0 100644 --- a/Assets/mainManager.cs +++ b/Assets/mainManager.cs @@ -213,6 +213,8 @@ public class mainManager : MonoBehaviour } } + private bool epreuveitemscurrentSet = false; + private List<EpreuveItem> epreuvesitemsCurrent; public void playSteps() { // boutonnext cheat @@ -227,7 +229,24 @@ public class mainManager : MonoBehaviour s = jsonStructureScript.data.sessions[currentSession]; e = s.epreuves[currentEpreuve]; - i = e.items[currentItem]; + + if (!epreuveitemscurrentSet) + { + Debug.Log("A"); + epreuvesitemsCurrent = e.items; + //int rand = UnityEngine.Random.Range(-1, 2); + epreuvesitemsCurrent.Sort((a, b) => UnityEngine.Random.Range(-1, 2)); + epreuveitemscurrentSet = true; + if(e.nbItemsMax == 0) + { + e.nbItemsMax = e.items.Count; + Debug.Log("B"); + + } + Debug.Log("C" + e.nbItemsMax); + + } + i = epreuvesitemsCurrent[currentItem]; if (e.modalite == "GD") { @@ -244,8 +263,10 @@ public class mainManager : MonoBehaviour { Destroy(posScript.currentlyInstanciatedImageEpreuveCentered.gameObject); } - if (currentItem >= e.items.Count - 1) + Debug.Log("currentItem=" + currentItem + " e.nbItemsMax=" + e.nbItemsMax); + if ((currentItem >= epreuvesitemsCurrent.Count - 1) ||(currentItem>=e.nbItemsMax-1) ) { + Debug.Log("end"); // 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 (currentEpreuve >= s.epreuves.Count - 1) @@ -257,12 +278,11 @@ public class mainManager : MonoBehaviour { currentItem = 0; currentEpreuve++; + epreuveitemscurrentSet = false; epreuveConsignebeenPlayed = false; current_step = -1; - e = s.epreuves[currentEpreuve]; - i = e.items[currentItem]; - Debug.LogError("reinit with new epreuve"); - Debug.Log("i=" + i + " currentItem=" + currentItem + " current_step=" + current_step); + + resetItem(); playSteps(); } @@ -273,7 +293,7 @@ public class mainManager : MonoBehaviour // il y a une autre liste d'items dans cette epreuve, on la charge Debug.LogError("reinit with new item"); currentItem++; - i = e.items[currentItem]; + i = epreuvesitemsCurrent[currentItem]; Debug.Log("i=" + i+ " currentItem="+ currentItem+ " current_step="+ current_step); current_step = -1; resetItem(); @@ -575,9 +595,7 @@ public class mainManager : MonoBehaviour currentSession++; epreuveConsignebeenPlayed = false; current_step = -1; - s = jsonStructureScript.data.sessions[currentSession]; - e = s.epreuves[currentEpreuve]; - i = e.items[currentItem]; + playSteps(); gameObjFin.SetActive(false); -- GitLab