Il flipper: chiuso il canale dietro la Pieve fra la parete e il dorso dei bersagli, dove la pallina scendeva dritta nell'uscita sinistra (Andrea: «a sinistra esce troppo facile»); due raccordi inclinati, disegnati come le altre sponde; test (Andrea)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
This commit is contained in:
+2
-1
@@ -70,7 +70,8 @@ Online su 50037.manzolo.it tutto fino agli effetti ambientali di Codex. Aperto,
|
||||
- Completare una serie di bersagli alza il moltiplicatore jackpot fino a ×3, azzerato alla perdita di una vita.
|
||||
Restano PONTI (+50.000 alternando le rampe entro 12 secondi), PALIO (+30.000), respingenti, bersagli e Regolo.
|
||||
Traguardi 60.000/120.000/200.000: una pallina premio una sola volta, vittoria acquisita anche uscendo prima.
|
||||
- Uscite laterali da 14/12 pixel, corsie di ritorno alle palette più ampie. Valvola inclinata alla corsia di
|
||||
- Uscite laterali da 14/12 pixel, corsie di ritorno alle palette più ampie. Il canale di 10 pixel dietro la
|
||||
Pieve, che portava la pallina dritta nell'uscita sinistra, è chiuso da due raccordi inclinati (1 novembre). Valvola inclinata alla corsia di
|
||||
lancio: il lancio passa, i ritorni dal campo vengono deviati a sinistra. Ogni pallina ha contatti, scia e
|
||||
anti-incastro propri; urti fra palline, palette mosse una sola volta per passo. Pausa ferma anche i timer.
|
||||
- Luci che scorrono sulle rampe attive, frecce e spie 1/3–2/3–LOCK, rampa SUPER che si alza, fasci luminosi,
|
||||
|
||||
@@ -54,6 +54,10 @@ export function layout() {
|
||||
walls.push(seg([404, 246], [404, 284]), seg([404, 284], [378, 290]), seg([404, 246], [378, 290], { sling: true }));
|
||||
// I bersagli a caduta: la Pieve a sinistra, la torre a destra, con la sponda dietro.
|
||||
walls.push(seg([210, 146], [210, 198]), seg([429, 146], [429, 198]));
|
||||
// Dietro la Pieve, fra la parete e la sponda, restavano 10 pixel: la pallina (larga 9) che scivolava lungo la
|
||||
// parete sinistra ci entrava e scendeva dritta nell'uscita laterale (Andrea: «a sinistra esce troppo facile»).
|
||||
// A destra il canale è di 3 pixel e non esiste. Due raccordi inclinati lo chiudono sopra e sotto.
|
||||
walls.push(seg([200, 136], [210, 146], { e: 0.5 }), seg([210, 198], [200, 208], { e: 0.5 }));
|
||||
const targets = [];
|
||||
for (const [bank, x] of [['pieve', 216], ['torre', 423]]) for (let i = 0; i < 3; i++) targets.push({ bank, i, a: [x, 150 + i * 16], b: [x, 162 + i * 16], down: false, touching: false });
|
||||
const bumpers = [[281, 120], [360, 120], [320, 153]].map(([x, y]) => ({ x, y, r: 12, hit: 0, touching: false }));
|
||||
|
||||
@@ -459,3 +459,13 @@ test('al River: un clic sul bar (o «Usa», «Apri»), il livello, la partita; u
|
||||
g.choose(g.options().findIndex(o => o.text === 'A fassi male.')); settle(g);
|
||||
assert.equal(g.closeup?.level, 'male');
|
||||
});
|
||||
|
||||
test('dietro la Pieve non c\'è più il canale che portava dritto all\'uscita sinistra (Andrea: «a sinistra esce troppo facile»)', () => {
|
||||
const c = m.newFlipper(31); m.launch(c, 0.8); c.saveUntil = 0;
|
||||
// Una pallina che scivola lungo la parete sinistra, sopra la Pieve: viene rimandata in campo, non nel canale.
|
||||
put(c, { x: 205, y: 120, vx: 0, vy: 150, ramp: null });
|
||||
let inChannel = false;
|
||||
for (let i = 0; i < 120; i++) { m.update(c, 1 / 60); if (c.ball.x < 210 && c.ball.y > 146 && c.ball.y < 198) inChannel = true; }
|
||||
assert.ok(!inChannel, 'mai fra la parete e il dorso dei bersagli');
|
||||
assert.ok(c.ball.x > 210 || c.ball.y < 146, `in campo (${Math.round(c.ball.x)}, ${Math.round(c.ball.y)})`);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user