La macchina del tempo: dall'Arcu («Bei tempi quando qui si faceva i pokerini…») al Barrettino del 10 luglio 1997 col viaggio sul cruscotto, Vannino e Pierino Parigi, e il pokerino a cinque carte col cambio; l'Arcu in Via Liguri Magelli più grande (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GiECd9KMfjthRUnujCGSzZ
This commit is contained in:
+25
-3
@@ -13,6 +13,8 @@ import * as biliardo from './engine/biliardo.js';
|
||||
import * as rinquarto from './engine/rinquarto.js';
|
||||
import * as micro from './engine/micro.js';
|
||||
import * as cerbottana from './engine/cerbottana.js';
|
||||
import * as poker from './engine/poker.js';
|
||||
import { cardAt as pokerAt } from './engine/poker-render.js';
|
||||
import * as basket from './engine/basket.js';
|
||||
import * as pesca from './engine/pesca.js';
|
||||
import * as gara from './engine/gara.js';
|
||||
@@ -604,6 +606,7 @@ const MINI = {
|
||||
bocce: { ...bocce, nudge: (c, dir) => bocce.aim(c, c.aim.u, c.aim.w + dir * 0.3), back: 'Torna al pallaio', label: 'Bocce: tocca il campo o il dettaglio per mirare. Regola la forza e premi Lancia.' },
|
||||
biliardo: { ...biliardo, back: 'Torna al bar', label: 'Biliardo: clic o tocco fissa la mira. Frecce per affinarla, Maiusc per passi più piccoli. Regola la forza e premi Tira.' },
|
||||
rinquarto: { ...rinquarto, back: 'Torna da Trappizzio Berti', label: 'I rinquarti di Trappizzio Berti: clic o tocco fissa la mira, frecce o pulsanti Mira per girare la stecca (Maiusc per i passi fini), Tira per tirare. Dopo l’esito, Prossima.' },
|
||||
poker: { ...poker, back: 'Torna al Barrettino', label: 'Il pokerino: tocca le carte da cambiare, poi Cambia; nei giri di puntate Lascio, Vedo o Parola, Apro o Rilancio. Dopo la mostra un tocco va avanti.' },
|
||||
cerbottana: { ...cerbottana, back: 'Torna in piazza', label: 'La cerbottana: muovi il mouse o tocca il muro per mirare, tieni premuto per prendere fiato e lascia per sparare; oppure regola il fiato e premi Spara. Frecce per spostare il mirino.' },
|
||||
micro: { ...micro, back: 'Torna dal Chiaru', label: 'La pista col gesso: muovi il mouse o tocca il parcheggio per mirare, tieni premuto per caricare la spinta e lascia; oppure regola la forza e premi Spingi. Frecce o pulsanti Mira per girare.' },
|
||||
basket: { ...basket, back: 'Torna in strada', label: 'Fai due tiri: muovi il mouse o tocca per mirare, tieni premuto per caricare la forza, lascia per tirare.' },
|
||||
@@ -648,7 +651,12 @@ $('bocce-throw').addEventListener('pointerdown', e => {
|
||||
for (const ev of ['pointerup', 'pointercancel', 'lostpointercapture']) $('bocce-throw').addEventListener(ev, () => { const c = miniState(); if (holdGas(c)) gara.release(c, 'gas-button'); });
|
||||
$('bocce-throw').addEventListener('contextmenu', e => { if (holdGas(miniState())) e.preventDefault(); });
|
||||
// Le carte da gioco: dove si tocca la carta sul tavolo, gioco per gioco.
|
||||
const CARD_AT = { briscola: cardAt, tressette: tressetteAt, scopa: scopaAt };
|
||||
const CARD_AT = { briscola: cardAt, tressette: tressetteAt, scopa: scopaAt, poker: pokerAt };
|
||||
// Il pokerino: tre pulsanti fissi (su iPhone un pulsante rifatto a ogni fotogramma perde il tocco), la scritta cambia.
|
||||
for (let i = 0; i < 3; i++) $('poker-move-' + i).addEventListener('click', e => {
|
||||
const c = game?.closeup; if (!c || story.closeups[c.id].type !== 'poker' || game.speech) return;
|
||||
if (c.step === 'show') poker.advance(c); else poker.choose(c, e.currentTarget.dataset.move);
|
||||
});
|
||||
for (let i = 0; i < 3; i++) {
|
||||
const button = $('scopa-card-' + i);
|
||||
button.addEventListener('click', () => game?.closeupPlay(i));
|
||||
@@ -946,7 +954,7 @@ function updateUi() {
|
||||
updateChoices();
|
||||
updateSpeech();
|
||||
const mg = miniState() && mini(), def = mg && story.closeups[c.id];
|
||||
const cards = ['briscola', 'tressette', 'scopa'].includes(def?.type);
|
||||
const cards = ['briscola', 'tressette', 'scopa', 'poker'].includes(def?.type);
|
||||
// La presentazione dei piloti del GP a tutto schermo: i comandi arrivano col semaforo (Andrea, 29 ottobre).
|
||||
const presenta = !!mg && story.closeups[c.id].type === 'gara' && c.step === 'intro';
|
||||
$('app').classList.toggle('presenta', presenta);
|
||||
@@ -956,6 +964,20 @@ function updateUi() {
|
||||
setProp($('briscola-controls'), 'inert', !running);
|
||||
setProp($('scopa-controls'), 'hidden', def?.type !== 'scopa');
|
||||
setProp($('scopa-controls'), 'inert', !running);
|
||||
setProp($('poker-controls'), 'hidden', def?.type !== 'poker');
|
||||
setProp($('poker-controls'), 'inert', !running);
|
||||
if (def?.type === 'poker') {
|
||||
setProp($('panel'), 'hidden', true); setProp($('choices'), 'hidden', true);
|
||||
setText($('poker-status'), poker.status(c));
|
||||
const moves = c.step === 'show' ? [{ id: 'avanti', label: 'Prossima mano' }] : poker.moves(c);
|
||||
for (let i = 0; i < 3; i++) {
|
||||
const b = $('poker-move-' + i), m = moves[i];
|
||||
setProp(b, 'hidden', !m);
|
||||
if (!m) continue;
|
||||
setText(b, m.label); b.dataset.move = m.id;
|
||||
setProp(b, 'disabled', !!m.disabled || !!game.speech);
|
||||
}
|
||||
}
|
||||
if (def?.type === 'scopa') {
|
||||
setProp($('panel'), 'hidden', true); setProp($('choices'), 'hidden', true);
|
||||
const line = scopa.status(c, def.names);
|
||||
@@ -1055,7 +1077,7 @@ function updateUi() {
|
||||
setProp($('gara-help'), 'hidden', def.type !== 'gara');
|
||||
if (mg.aimFree?.(c) ?? !mg.canThrow(c)) c.aimLocked = false; // a ogni nuovo tiro la mira torna libera
|
||||
}
|
||||
if (mg) for (const event of c.events.splice(0)) ambience.play(event.kind, { pan: 0, strength: event.power });
|
||||
if (mg || c?.events) for (const event of c.events.splice(0)) ambience.play(event.kind, { pan: 0, strength: event.power });
|
||||
// Il pulsante della mappa c'è solo in partita, fuori dai dialoghi, e quando c'è almeno un altro posto dove andare.
|
||||
setProp($('map-button'), 'hidden', !running || !!game.dialogue || !!game.closeup || game.mapPlaces().length < 2);
|
||||
setProp($('pause-button'), 'hidden', !running);
|
||||
|
||||
Reference in New Issue
Block a user