diff --git a/Assets/ChargementJSONStructure.cs b/Assets/ChargementJSONStructure.cs index 04a06bccd7bf13a1d550c38798661fee9b928275..eee6c3e4aa095897371d54cfae482099cb978d85 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 2d843fc0c363ebbb24080ef3d53591d47888a400..0b1e2ac32f9c34cd5cb66810f7c54adcf2848a53 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 16c56d921e9fd8dff43e8db9574e410ece6d0962..c705d9e09567c5501a0fa026a6adcc3619a988ac 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);