Musica, vecchietti con sprite, nuove scene del paese e generatore degli sfondi

Lavoro della sessione precedente: colonna sonora (titolo, paese, ricordi) con muto e volume,
vecchietta e vecchietto sulla panchina, scene di Pieve, oratorio, Via de' Medici, Villa Adami,
salita, campeggio, Bosco ai Frati e viale dei cipressi, panorama dell'introduzione,
tools/genera.py per gli sfondi dalle foto.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UdeKd62opy9PKgpQXtVctF
This commit is contained in:
2026-10-23 12:59:57 +02:00
co-authored by Claude Opus 5.5
parent 5eeb634ceb
commit 33e2598718
45 changed files with 1556 additions and 78 deletions
+10 -1
View File
@@ -1,6 +1,6 @@
import test from 'node:test';
import assert from 'node:assert/strict';
import { readSave, writeSave, clearSave } from '../src/engine/storage.js';
import { readSave, writeSave, clearSave, readAudio, writeAudio } from '../src/engine/storage.js';
import { memoryStorage } from './helpers.mjs';
test('scrive, rilegge e cancella il salvataggio', () => {
@@ -21,3 +21,12 @@ test('un archivio rotto o bloccato non fa cadere il gioco', () => {
garbage.setItem('leggenda-regolo-save', '{non è json');
assert.equal(readSave(garbage), null);
});
test('volume e muto della musica si ricordano', () => {
const s = memoryStorage();
assert.equal(readAudio(s), null);
assert.ok(writeAudio(s, { volume: 0.3, muted: true }));
assert.deepEqual(readAudio(s), { volume: 0.3, muted: true });
s.setItem('leggenda-regolo-audio', '{rotto');
assert.equal(readAudio(s), null);
});