# Configuració de la GameScene: timings i corbes de la FSM de sala # (ROOM_INTRO i ROOM_OUTRO). Tots els valors són ms i tota la geometria # i font del text es reutilitzen del tema UI (data/config/ui.yaml > # notification). Si manca el fitxer o alguna clau, GameScene cau als # fallbacks compilats; veure `readSceneConfig` a game_scene.cpp. room_intro: fade_in_ms: 500 # negre opac → món visible text_delay_ms: 500 # espera amb el món net abans de sortir el text text_enter_ms: 400 # text esquerra → centre text_hold_ms: 2000 # text quiet al centre text_exit_ms: 400 # text centre → fora per l'esquerra line_gap_px: -4 # px extra entre les dues línies (piràmide / sala) # Delays d'spawn aeri **mesurats des de la fi de la música d'INTRO** # (callback `Audio::setOnMusicEnded`). 0 = cau al moment exacte que # `room_intro.ogg` acaba; valors > 0 escalonen els jugadors. En mode # single-player s'usa només `player_spawn_delay_ms`. player_spawn_delay_ms: 0 player2_spawn_delay_ms: 300 # Preset de reverb (catàleg a `data/config/sounds.yaml`) aplicat al primer # LAND de cada jugador durant la cinemàtica d'entrada. La sala dona # "més detall" sonor a l'INTRO; els salts del joc i els respawns # post-mort cauen al so sec. Buit o absent = sense reverb. land_reverb: stone_hall room_outro: text_enter_ms: 400 text_hold_ms: 2000 text_exit_ms: 400 fade_out_ms: 500 # món visible → negre opac line_gap_px: -4 # px extra entre les dues línies (fase / completada) black_hold_ms: 500 # pausa en negre abans d'entrar a la pròxima sala text: # Noms d'easing tal com els resol UiConfig::curveByName (vegeu # `data/config/ui.yaml`). El text entra suau i surt accelerant. enter_curve: outCubic exit_curve: inCubic # Panel translúcid pintat sota el rètol de transició (INTRO i OUTRO). # Va centrat verticalment al centre del playfield i ocupa tota # l'amplada del canvas. Creix d'altura amb la mateixa enter_curve del # text i decreix amb l'exit_curve. `color` són tres canals RGB (0..255); # `alpha` és la transparència del blend (0 = invisible, 255 = opac). text_panel: # Violeta cerimonial: contrasta amb l'or del text (room_text), no # compite amb el blau del bloc P2 del HUD, i deixa la sorra de les # sales respirar al darrere. color: [72, 36, 85] alpha: 160 height_px: 32 # Sub-FSM de game over: dispara CONTINUE? quan tots els jugadors # queden fora de partida durant PLAYING, fa countdown, i si ningú # pulsa START acaba en GAME OVER + fade-to-black + transició a LOGO. # Tots els valors són ms (excepte `continue_count_steps`, que és el # nombre de tics visibles del countdown). Si manca el fitxer o alguna # clau, GameScene cau als fallbacks compilats (vegeu `GameOverFsm::Config`). game_over: # CONTINUE? — animació d'entrada i sortida idèntica al room text. continue_text_enter_ms: 400 # Hold del countdown: 10 s = (continue_count_start + 1) graons d'1 s. # La sèrie visible és [continue_count_start, ..., 1, 0]; el "0" es # manté l'últim segon abans del salt a GAME OVER. continue_text_hold_ms: 10000 continue_text_exit_ms: 400 continue_count_start: 9 # GAME OVER — apareix sense enter anim (panel ja amunt del CONTINUE?), # es manté un temps i marxa amb la mateixa exit anim del room text. game_over_text_hold_ms: 1500 game_over_text_exit_ms: 400 game_over_wait_ms: 400 # Fade final cap a LOGO. `black_hold_ms` és la pausa en negre opac # abans que el GameScene demani la transició d'escena. fade_out_ms: 500 black_hold_ms: 500 # Velocitat (frequency ratio) de la música mentre dura el countdown # de CONTINUE_PROMPT. 1.0 = sense canvi, 1.5 = un 50% més ràpid (i # amb el to més agut: efecte arcade clàssic). Es restableix a 1.0 al # sortir del prompt — tant si el jugador reviu com si entra GAME OVER. continue_music_speed: 1.05 # Pista de música que sona durant l'estat GAME_OVER (sense loop). # La fase de hold del text es sincronitza amb la durada real de la # pista, així que el rètol "Fi del Joc" es manté visible mentre dura # la música; després ve l'exit anim, el wait i el fade a LOGO. game_over_music_track: "game_over.ogg" # So que sona cada vegada que apareix un nou número del countdown # (al primer cop que es mostra `continue_count_start`, a cada canvi, # i quan apareix el 0 — però NO al saltar a GAME OVER). Buit = silenci. countdown_sound_key: "countdown.wav" # Llindar a partir del qual qualsevol botó de salt o atac de # qualsevol jugador avança al següent número del countdown. # 7 → skip habilitat mentre el número visible és 7..1 (no a 0). # -1 = mai. Útil per accelerar la decisió un cop la urgència ja # és evident al jugador. skip_below_or_equal: 7