Schermo intero (pulsante accanto ai volumi e tasto F) e gioco fino a 2560 px; nei minigiochi la scena lascia lo spazio vero dei comandi; flipper: «Solo tavola», sul telefono senza pulsantiera e «Lascia stare» in alto, molla toccando al centro con «TIENI PREMUTO QUI», ponti rifatti da Codex; prove più salde (tressette)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
This commit is contained in:
@@ -13,18 +13,32 @@ async function tap(page, mode, selector) {
|
||||
if (mode === 'touch') { const r = await page.locator(selector).boundingBox(); await page.touchscreen.tap(r.x + r.width / 2, r.y + r.height / 2); }
|
||||
else await page.click(selector);
|
||||
}
|
||||
// Una battuta che compare proprio in quell'istante (le battute del giocatore partono dal ciclo del gioco) si prende il
|
||||
// tasto e la salta, come nel gioco: allora, come un giocatore, si ripreme. Al più tre volte.
|
||||
async function pressUntil(page, key, done, arg) {
|
||||
for (let i = 0; i < 3; i++) {
|
||||
await page.keyboard.press(key);
|
||||
if (await page.evaluate(done, arg)) return;
|
||||
await page.waitForFunction(() => !game.speech);
|
||||
}
|
||||
}
|
||||
async function playCard(page, mode, index, signal) {
|
||||
// Un tasto premuto mentre qualcuno parla salta la battuta e basta (come nel gioco): si aspetta che abbia finito.
|
||||
if (mode === 'keyboard') await page.waitForFunction(() => !game.speech);
|
||||
// Un tasto premuto mentre qualcuno parla salta la battuta e basta, e il segnale si sceglie solo quando tocca a noi
|
||||
// (come nel gioco): si aspetta che la battuta sia finita e che si possa giocare.
|
||||
if (mode === 'keyboard') {
|
||||
await page.evaluate(async () => { window.tressetteRules ??= await import('/src/engine/tressette.js'); });
|
||||
await page.waitForFunction(() => !game.speech && tressetteRules.canPlay(game.closeup));
|
||||
}
|
||||
if (signal) {
|
||||
if (mode === 'keyboard') await page.keyboard.press(signal[0]);
|
||||
if (mode === 'keyboard') await pressUntil(page, signal[0], s => game.closeup.signal === s, signal);
|
||||
else await tap(page, mode, `#tressette-${signal}`);
|
||||
assert.equal(await page.evaluate(() => game.closeup.signal), signal);
|
||||
}
|
||||
if (mode === 'keyboard') {
|
||||
await page.keyboard.press(String((index + 1) % 10));
|
||||
await pressUntil(page, String((index + 1) % 10), i => game.closeup.selected === i, index);
|
||||
assert.equal(await page.evaluate(() => game.closeup.selected), index);
|
||||
await page.keyboard.press('Enter');
|
||||
const held = await page.evaluate(() => game.closeup.hands[0].length);
|
||||
await pressUntil(page, 'Enter', n => game.closeup.hands[0].length < n || !!game.closeup.refused, held);
|
||||
return;
|
||||
}
|
||||
const at = await page.evaluate(async i => {
|
||||
|
||||
Reference in New Issue
Block a user