- si salva solo a sequenza finita: uscire a metà di una risposta o della casetta riporta a prima; la squama presa resta salvata anche senza cambiare scena; test di interruzione su soluzione e catena del ghiacciolo - «Salva su file» nella pausa e «Carica» nel titolo, con controllo di versione e contenuto prima di sostituire il salvataggio del browser - cursore del volume delle voci («bla»), 50% di partenza; il muto zittisce subito la voce, la pausa la riprende - col dito un oggetto mancato di poco si prende, e i piccoli vincono sui grandi che li contengono (la squama); verbi su due colonne nel telefono in orizzontale - sfondi caricati per vicinanza alla scena di partenza, con tentativi limitati se falliscono; a gioco fermo non si ridisegna - modalità ?debug per scrivere le scene: area calpestabile, hotspot, punti, coordinate copiabili - corretto: i crediti dal titolo restavano dietro il titolo Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ApqNBvNbNCwXqR2RLo8QJh
19 lines
848 B
JavaScript
19 lines
848 B
JavaScript
// Fa avanzare il gioco come farebbe un giocatore impaziente: tempo che scorre e battute saltate.
|
|
export function settle(game, { maxSteps = 20000 } = {}) {
|
|
const said = [];
|
|
for (let i = 0; i < maxSteps; i++) {
|
|
if (game.speech) {
|
|
said.push(game.speech);
|
|
game.skip();
|
|
}
|
|
// Un ultimo fotogramma, come nel gioco vero: a sequenza finita il motore prende il punto fermo e salva.
|
|
if (!game.busy && !game.walking && !game.queue.length && !game.task) { game.update(0); return said; }
|
|
game.update(0.05);
|
|
}
|
|
throw new Error('Il gioco non si ferma: ' + JSON.stringify(game.snapshot()));
|
|
}
|
|
|
|
export function memoryStorage() {
|
|
return { data: {}, getItem(k) { return this.data[k] ?? null; }, setItem(k, v) { this.data[k] = String(v); }, removeItem(k) { delete this.data[k]; } };
|
|
}
|