Briscola all'oratorio: alle tavolate il giocatore di carte (segnaposto, sprite di Codex) sfida Andrea a briscola in due. Si sceglie il mazzo, toscane (cuori, mattoni, fiori, picche; gobbo, donna e regio) o napoletane, e il livello: «Alla bona», «Seria», «A fassi male» (conta le carte uscite, finale perfetto a mazzo finito, mai la mano altrui). Regole fedeli, conteggio delle prese a fine partita, rivincita, suoni di carte, comandi con mouse, tocco e tastiera. Carte e dorso col Regolo serpentello disegnati da Codex; motore e prove nel browser rivisti da Claude
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A1dxvtsZx8NE9fwjXUNDBr
This commit is contained in:
@@ -101,3 +101,14 @@ test('Web Audio mancante non interrompe la partita', () => {
|
||||
const s = new Soundscape({ createContext: () => { throw new Error('non disponibile'); } });
|
||||
assert.doesNotThrow(() => { s.unlock(); s.configure({ active: true }); s.update('paese', 'sera', 1); s.play('page'); });
|
||||
});
|
||||
|
||||
test('carte: fruscio, battuta e mescolata seguono volume effetti, muto e pausa', () => {
|
||||
const s = new Soundscape({ createContext: audioContext, random: () => 0.3 }); s.unlock();
|
||||
for (const kind of ['card-slide', 'card-tap', 'card-shuffle']) {
|
||||
s.configure({ active: true, muted: false, volume: 0.27 }); s.play(kind);
|
||||
assert.ok(s.nodes.size > 0, kind); assert.equal(s.master.gain.value, 0.27);
|
||||
s.configure({ muted: true }); assert.equal(s.nodes.size, 0); s.play(kind); assert.equal(s.nodes.size, 0);
|
||||
s.configure({ muted: false, volume: 0 }); s.play(kind); assert.equal(s.nodes.size, 0);
|
||||
s.configure({ active: false, volume: 0.5 }); s.play(kind); assert.equal(s.nodes.size, 0);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user