The Cyberpunk Monster Tamer PWA Experience
Benvenuti nell'universo di Neo-Mon Link, un gioco di addestramento creature in stile JRPG ambientato in un futuro distopico dominato da neon e realtà aumentata. Utilizza il tuo "Neo-Link" per sincronizzarti con entità digitali, gestisci la tua squadra e scala i ranghi del Nexus.
- Combat Engine Strategico: Una meccanica di battaglia basata sul "Flusso" (Velocità) e sulla gestione oculata della Stamina. Ogni mossa ha un costo e l'esaurimento delle energie ti rende vulnerabile.
- AI Avanzata: I nemici analizzano le tue debolezze elementali e scelgono tatticamente quando attaccare o riposare.
- Sistema di Cattura (Prismi): Indebolisci i Neo-Mon selvatici per aumentare le probabilità di successo. Animazioni dinamiche in Framer Motion con 'Shakes' di suspense.
- Neural Missions: Un sistema di obiettivi e ricompense per guadagnare Neo-Credits e sbloccare nuovi equipaggiamenti.
- Asset Ottimizzati: Sprite creature in formato WebP con sfondo trasparente per un'integrazione perfetta nel layout neon.
- Progressione Visiva: Barre XP azzurre nell'Hub per monitorare in tempo reale lo sviluppo della squadra e sistema di Level-Up con potenziamento statistiche.
- Save State & Backup: Integrazione con Dexie.js per il salvataggio locale e funzione di Esportazione/Importazione JSON nelle impostazioni.
- Estetica Neon UI/UX: Interfaccia ottimizzata per il mobile con effetti di glassmorphism e animazioni fluide.
- Team Swap Dinamico: Sostituisce uno slot della squadra attiva con un Neo-Mon direttamente dal Box, anche a squadra piena (4/4), tramite overlay di selezione con sincronizzazione atomica su IndexedDB.
- Deep Scan Report Unificato: Modale condiviso (
NeoMonDetailModal) usato sia nel Box che nella Squadra. Mostra statistiche con IV per ogni parametro, EV accumulati, barre colorate per tipologia di stat, moveset completo con potenza/costo/tipo, e barra XP precisa. - Heal Team Reale: Il riposo nell'Hub ora ripristina concretamente HP e Stamina al massimo per ogni membro del team, con aggiornamento immediato sia nello store Zustand che nel database Dexie.
- Coins Sincronizzati: Le monete guadagnate in battaglia vengono aggiornate istantaneamente nell'Hub senza richiedere reload.
- PWA Offline Completa: Tramite
vite-plugin-pwacon strategiagenerateSW, tutti gli asset (JS, CSS, WebP, JSON) vengono pre-cachati nel Service Worker. Il gioco è giocabile offline dopo il primo caricamento. - Sistema Profilo Linker: Profilo giocatore personalizzabile con Rank (Livello Giocatore), statistiche di vittoria, numero di catture e bacheca dei Badge collezionati.
- Zaino & Cure Fuori Lotta: Implementata la logica di utilizzo degli oggetti curativi (HP e Stamina) direttamente dallo zaino fuori battaglia, con selezione del bersaglio in squadra e salvataggio persistente dei dati.
- Dual Battle Modes: Differenziazione tra modalità "Lotte" (Combat Link) per allenamento intensivo (+50% EXP, x2 Coins, cattura disabilitata) e modalità "Cattura" (Freq. Scan) per completare la collezione.
- Link-Dex Dinamico: Enciclopedia automatizzata che supporta l'intera lista di Neo-Mon (36+ entries) con calcolo automatico delle debolezze (Neural Analysis) basato sulla tabella dei tipi.
- Ottimizzazione UI Terminale: Nuova griglia compatta a 3 colonne per le funzioni dell'Hub e ottimizzazione degli spazi per la visualizzazione di nomi lunghi e statistiche vitali.
- Daily Challenge & Streak (P24): Sistema di sfide quotidiane con ricompense in Crediti e Frammenti Nexus. Include un login streak con milestone premianti a 3, 7, 14 e 30 giorni.
- Link Quality System (P25): Ogni Neo-Mon possiede una "Qualità del Link" (es. Overclock, Berserker) che influenza permanentemente i modificatori delle statistiche, aggiungendo profondità alla personalizzazione.
- Team Synergy Bonus (P26): Meccanica di sinergia basata sui tipi. Avere più creature dello stesso elemento in squadra sblocca bonus passivi (HP, Attacco, Velocità) durante i combattimenti.
- Share Team Base64 (P27): Funzione di condivisione della propria squadra tramite codifica Base64. Permette di generare URL o codici testuali per mostrare il proprio team ad altri giocatori.
- Profilo & Hall of Fame (P28): Tracciamento avanzato delle statistiche (vittorie, KO subiti, danno massimo) e registro storico delle vittorie contro i Boss del Nexus.
- Rango Giocatore Dinamico (P29): Sistema di progressione del profilo da "Novice Link" a "Ghost Protocol" basato sui badge ottenuti e sul livello massimo raggiunto, con animazioni dedicate al cambio rango.
- Battle Log Avanzato: Registro di battaglia migliorato con colorazione dinamica per l'efficacia dei colpi (verde per superefficace, rosso per poco efficace, grigio per nessun effetto) e rimozione dei log ridondanti (STAB).
- Link-Dex Visuale: Ora il Dex mostra le immagini in bianco e nero dei Neo-Mon solo avvistati, sbloccando la versione a colori e il pallino azzurro solo dopo la cattura effettiva.
- Battaglia a squadra (multi-slot): In lotta l’ordine della squadra coincide con quello impostato nell’Hub/Box. Ogni slot tiene traccia di HP e Stamina in battaglia; se il Neo-Mon attivo va K.O., entra il successivo ancora valido senza fine partita immediata: la sconfitta arriva solo se tutti i membri sono esausti. Lo switch consuma il turno, salva chi esce nello slot e applica danni/costi coerenti al motore (
BattleEngine+DamageCalc). - Zaino da battaglia: Aprendo l’inventario durante uno scontro è disponibile il ritorno esplicito all’Arena (Indietro alla lotta, inclusa area fissa in basso), così non resti «bloccato» senza usare oggetti.
- Test automatici (Vitest): Oltre a EXP/cattura, il progetto include test su party di battaglia (
battleParty.ts), turni e danni (battle.turn.test.ts+BattleEngine). Comando:npm test. - Script di contenuti: In
scripts/(es.expand-moves-and-creatures.mjs) utility per generare o espandere dati increatures.json/ mosse — utile agli sviluppatori che aggiornano il Neo-Dex.
- HP: Punti Vita. Se scendono a zero, il Neo-Mon va K.O.
- Stamina: L'energia richiesta per le mosse. Se insufficiente, l'azione fallisce (Recupero Passivo).
- Azione 'Riposo': Sacrifica un turno per recuperare il 50% della Stamina massima.
- Catch System: Usa i Prismi (Base, Neon, Master) per aggiungere nuovi Neo-Mon alla tua collezione.
- Team Manager: Sposta i tuoi 4 Neo-Mon attivi, gestisci l'ordine e visualizza le statistiche vitali.
- Team Swap: Sostituisci qualsiasi membro della squadra con uno del Box direttamente dall'interfaccia, senza passare da schermate intermedie.
- Ordine e lotta: L’ordine salvato con swapPositions / Team Manager è quello usato anche in Arena per la panchina e il cambio Neo-Mon.
- Linker Box: Archivio digitale con ricerca e filtri avanzati per catalogare le tue creature.
- Link-Dex: Consulta l'enciclopedia tattica per studiare debolezze e tipi una volta catturati i Neo-Mon.
- Framework: React 18 + Vite
- Stato: Zustand (Persistenza inclusa)
- Database: Dexie.js (IndexedDB)
- Styling: Tailwind CSS + Custom Neon Layers
- PWA: vite-plugin-pwa + Workbox (generateSW, offline-first)
- Animazioni: Framer Motion
- Test: Vitest (
vitest.config.ts,npm test/npm run test:watch) - Deployment: GitHub Pages (con
404.htmlper SPA routing e.nojekyllper asset Vite)
- Esegui
npm run build - Copia il contenuto di
/distnel repository GitHub destinato alla pubblicazione - In Settings → Pages, seleziona il branch come sorgente
- Il file
public/404.htmlgestisce il routing SPA al refresh;.nojekyllpreviene l'interferenza di Jekyll sugli asset Vite