GP di Fortezza: la presentazione dei piloti a tutto schermo (i comandi arrivano col semaforo); nella guida semplice il pulsante Gas si tiene premuto, più alto e con la scritta fissa (sul telefono prendeva male) (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GiECd9KMfjthRUnujCGSzZ
This commit is contained in:
+16
-2
@@ -634,7 +634,17 @@ for (const ev of ['pointerup', 'pointercancel', 'lostpointercapture']) $('gara-p
|
||||
padPointer = null; $('gara-pad').classList.remove('active');
|
||||
});
|
||||
$('gara-pad').addEventListener('contextmenu', e => e.preventDefault());
|
||||
$('bocce-throw').addEventListener('click', () => { const c = miniState(); if (c && !game.speech) mini().shoot?.(c); });
|
||||
// GP, guida semplice: il pulsante Gas si tiene premuto (giù gas, su freno) invece di accendersi e spegnersi al clic;
|
||||
// sul telefono, alla bona, il clic arrivava solo alzando il dito (Andrea, 29 ottobre).
|
||||
const holdGas = c => !!c && story.closeups[c.id].type === 'gara' && gara.simple(c) && c.step !== 'intro' && c.step !== 'result';
|
||||
$('bocce-throw').addEventListener('click', () => { const c = miniState(); if (c && !game.speech && !holdGas(c)) mini().shoot?.(c); });
|
||||
$('bocce-throw').addEventListener('pointerdown', e => {
|
||||
const c = miniState(); if (!holdGas(c) || game.speech) return;
|
||||
e.preventDefault();
|
||||
if (gara.press(c, 'gas-button')) try { $('bocce-throw').setPointerCapture(e.pointerId); } catch { /* un tocco sintetico: va bene lo stesso */ }
|
||||
});
|
||||
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 };
|
||||
for (let i = 0; i < 3; i++) {
|
||||
@@ -935,7 +945,10 @@ function updateUi() {
|
||||
updateSpeech();
|
||||
const mg = miniState() && mini(), def = mg && story.closeups[c.id];
|
||||
const cards = ['briscola', 'tressette', 'scopa'].includes(def?.type);
|
||||
setProp($('bocce-controls'), 'hidden', !mg || cards);
|
||||
// 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);
|
||||
setProp($('bocce-controls'), 'hidden', !mg || cards || presenta);
|
||||
setProp($('bocce-controls'), 'inert', !running);
|
||||
setProp($('briscola-controls'), 'hidden', def?.type !== 'briscola');
|
||||
setProp($('briscola-controls'), 'inert', !running);
|
||||
@@ -1027,6 +1040,7 @@ function updateUi() {
|
||||
setText($('bocce-left'), def.type === 'gara' ? '← Sterza' : '← Mira');
|
||||
setText($('bocce-right'), def.type === 'gara' ? 'Sterza →' : 'Mira →');
|
||||
setProp($('gara-brake'), 'hidden', def.type !== 'gara' || easy);
|
||||
$('bocce-throw').classList.toggle('hold', easy);
|
||||
setProp($('gara-brake'), 'disabled', !(mg.canAdjust?.(c) ?? false) || !!game.speech);
|
||||
setText($('bocce-throw'), mg.button?.(c) ?? (c.step === 'result' ? 'Finita' : c.step === 'rolling' ? 'In movimento…' : c.current === 'cpu' ? `Tira ${def.names.cpu}…` : def.type === 'bocce' ? 'Lancia' : 'Tira'));
|
||||
setProp($('bocce-help'), 'hidden', def.type !== 'bocce');
|
||||
|
||||
Reference in New Issue
Block a user