Roguelike italiano di gratta-e-vinci. Sei un ludopatico di periferia con 5 unghie e un sogno: battere il Boss del Tabacchi.
Play online: https://brrucelean.github.io/grattini/ (attivo dopo il primo deploy)
Un roguelike a nodi (tipo Slay the Spire) dove invece di carte giochi gratta-e-vinci. Ogni run:
- 4 biomi (Tabacchitalia Nord, Sud, Quartiere Cinese, Boss Arena)
- 5 unghie come "HP" — degradano grattando, muoiono se ferite troppo
- 15 tipi di grattino, da Il Poveraccio (€0.50) a Il Maledetto (€100)
- Meccaniche diverse per tipo: match-3, Sette e Mezzo, collect-or-bust, slot, labirinto, mahjong, doppio-o-nulla...
- Eventi: ladri, mendicanti, chirurghi-macellai, streamer, polizia
- Grattatori (equipaggiabili): Bottone, Plettro, Moneta d'Oro, Porta-Chiavi Leggendario
- Reliquie con effetto permanente: Malocchio, Cornetto Rosso, Maneki Neko
- Economia calibrata: EV negativo come un vero gratta (t1 ≈ -10%, t2 ≈ -20%, t3 ≈ -30%, t4 ≈ neutro ma varianza enorme)
npm install
npm run dev # vite dev server → http://localhost:5173
npm run build # produce dist/
npm run preview # serve dist/ localmentesrc/scratchlite.jsx— root component, screen router, tutti gli hooksrc/hooks/use*Handlers.js— logica di dominio spezzata per area (scratch, shop, event, node, combat, item)src/data/cards.js— definizione grattini +CARD_BALANCE(single-source-of-truth per winChance / EV)src/data/items.js— consumabili, grattatori, reliquie, impiantisrc/data/biomes.js— palette, nemici, perk di startsrc/utils/card.js—generateCard()legge CARD_BALANCE e tira premio/win/symbolssrc/audio.js— SFX procedurali via WebAudio (niente asset audio)
In dev, apri la console e lancia:
simEV("miliardario", 10000) // Monte Carlo 10k run, stampa ROI medioUsato per validare l'EV di ogni carta prima di shippare.
React 18 · Vite 5 · Zero dipendenze runtime oltre a React. Build ~470 kB (148 kB gzip).
Da decidere. Per ora: tutti i diritti riservati, progetto personale.