Add several boards per level, CM1/CM2 levels and the CE1 'plage des sons' pilot board (0.6.0)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Denis Defolie
2026-10-12 11:05:00 +02:00
parent 0e48b1995e
commit d0380a76af
118 changed files with 2421 additions and 111 deletions
+24
View File
@@ -0,0 +1,24 @@
class_name SchoolLevels
extends RefCounted
## Niveaux scolaires du jeu, dans l'ordre de progression. Code pur. La liste
## est fermee : elle est aussi celle des schemas (data/schemas/*.json), et
## un test verifie que les deux concordent.
const ALL: Array[String] = ["CE1", "CE2", "CM1", "CM2"]
static func is_valid(level: String) -> bool:
return ALL.has(level)
## Niveau juste avant `level` (celui que l'on peut « revoir »), ou "" pour
## le premier niveau ou une valeur inconnue.
static func previous(level: String) -> String:
var index := ALL.find(level)
return ALL[index - 1] if index > 0 else ""
## Rang du niveau (0 pour CE1), grand pour un niveau inconnu : sert au tri.
static func rank(level: String) -> int:
var index := ALL.find(level)
return index if index >= 0 else ALL.size()