Difficoltà alle bocce e al biliardo, scelta nel dialogo con l'avversario: «Alla bona», «Seria», «A fassi male». Tarata con partite simulate contro un giocatore attento: al biliardo vince 9 su 12, circa 4 su 10 e quasi mai; alle bocce 72%, 50% e 35% delle mani. Battute nuove per Mariano e l'Ingegnere, test
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
This commit is contained in:
+14
-1
@@ -1,6 +1,6 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import { newBocce, press, release, update, powerAt, score, thrower, left, project, SWING, LANE, BALLS } from '../src/engine/bocce.js';
|
||||
import { LEVELS, newBocce, press, release, update, powerAt, score, thrower, left, project, SWING, LANE, BALLS } from '../src/engine/bocce.js';
|
||||
import { story } from '../src/story/story.js';
|
||||
import { Game } from '../src/engine/game.js';
|
||||
import { settle } from './helpers.mjs';
|
||||
@@ -83,7 +83,11 @@ test('al pallaio: Mariano sfida, la mano si gioca nel primo piano; vincere vale
|
||||
g.choose(g.options().findIndex(o => o.text.startsWith('Mariano! Facciamo')));
|
||||
const before = settle(g).map(s => s.text);
|
||||
assert.ok(before.some(t => t.includes('Brento Sanico')), 'la posta la dice prima');
|
||||
assert.deepEqual(g.options().map(o => o.text), ['Alla bona.', 'Seria.', 'A fassi male.'], 'prima si sceglie quanto fa sul serio');
|
||||
g.choose(g.options().findIndex(o => o.text === 'Seria.'));
|
||||
settle(g);
|
||||
assert.equal(g.closeup?.id, 'bocce');
|
||||
assert.equal(g.closeup.level, 'seria');
|
||||
assert.equal(g.act('look', 'pallaio'), false, 'durante la partita la scena non risponde');
|
||||
// Si gioca la mano (le bocce di Andrea mirano al pallino); a mano finita il risultato si forza a favore.
|
||||
const c = g.closeup;
|
||||
@@ -108,7 +112,16 @@ test('al pallaio: Mariano sfida, la mano si gioca nel primo piano; vincere vale
|
||||
assert.ok(g.options().some(o => o.text === 'La rivincita?') && g.options().some(o => o.text === 'Allora, Brento Sanico?'));
|
||||
g.choose(g.options().findIndex(o => o.text === 'La rivincita?'));
|
||||
settle(g);
|
||||
g.choose(g.options().findIndex(o => o.text === 'A fassi male.'));
|
||||
settle(g);
|
||||
assert.equal(g.closeup?.id, 'bocce');
|
||||
assert.equal(g.closeup.level, 'male');
|
||||
assert.ok(g.closeupClose());
|
||||
assert.ok(settle(g).some(s => s.text.startsWith('Già stanco?')));
|
||||
});
|
||||
|
||||
test('i livelli di Mariano: alla bona si allarga, a fassi male boccia spesso', () => {
|
||||
assert.equal(newBocce(1).level, 'seria');
|
||||
assert.ok(LEVELS.bona.spread > LEVELS.seria.spread && LEVELS.seria.spread > LEVELS.male.spread);
|
||||
assert.ok(LEVELS.male.attack > LEVELS.bona.attack);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user