feat(level-manager): HUD i text d'INTRO segueixen el LevelManager

HUD: la GameScene crida hud_->setPyramidRoom amb els valors del
LevelManager al ctor i a cada loadRoom — el marcador deixa de
mostrar 1/1 fix i s'actualitza en avançar de sala, en saltar amb
[/] i en arrencar amb starting_level del debug.yaml.

INTRO a dues línies: substitueix la clau game.room_intro per
game.room_intro_pyramid ("Piramide {p}") i game.room_intro_room
("Sala {r}") als locale ca/en. RoomFsm::formatRoomTitle(int)
desapareix i el reemplacen formatIntroPyramidLine(int) +
formatIntroRoomLine(int). renderRoomText es refactoritza per
dibuixar les dues línies (piràmide damunt, sala davall) amb
writeDX independents — comparteixen animació ara mateix però el
disseny ja les deixa preparades per ser desacoblades en el futur.

Drive-by: elimina el membre room_index_ de GameScene; les tres
ubicacions que el sincronitzaven amb el LevelManager (ctor,
advanceToNextRoom, salt debug) ja no fan falta — renderRoomText
i el HUD pregunten directament al singleton, evitant qualsevol
mirror local desincronitzable.

Test: T9/T10 actualitzats per a les dues noves formatadores.
This commit is contained in:
JailDesigner committed 2026-04-26 15:25:22 +02:00
1 parent b18bd4d021
commit e2f6d326aa
7 files changed
+149 -99

No files matched your search

+6 -3
View File
@@ -37,10 +37,13 @@ hud:
room: "Sala"
# Textos de la transició d'entrada/sortida de sala (FSM de GameScene).
# `room_intro` accepta el placeholder `{n}` que es substitueix amb
# l'índex de sala actual; veure `GameScene::formatRoomTitle`.
# Les dues primeres claus es renderitzen com a línies separades durant
# l'INTRO (preparades per ser animades de manera independent en el
# futur). Accepten els placeholders `{p}` (piràmide) i `{r}` (sala) que
# es substitueixen amb els valors actuals del LevelManager.
game:
room_intro: "Sala {n}"
room_intro_pyramid: "Piramide {p}"
room_intro_room: "Sala {r}"
room_complete: "Fase completada"
menu: