Files
dcc-rpg/docs/game-mechanics.md
truetype eacc946868 fix: JSON repair, WS thread pool, switch to DeepSeek V4 Flash, funnel Lv0
LLM fixes:
- _try_repair_json() — ripara JSON malformato (apici, virgole trailing)
- _strip_json_from_text() — rimuove residui JSON dalla narration
- parse_tool_call() — rimuove troncamento 200 caratteri dal fallback

DM fixes:
- Fallback euristico quando params vuoti (dm.py)
- Estrazione narrazione da dm_override/narrate params.params.text

Prompt (prompts.py):
- Vietati termini tecnici/scientifici/anacronistici (HPLC, laser, ...)
- Aggiunto vocabolario fantasy obbligatorio

Server (server.py):
- dm_cycle in ThreadPoolExecutor per non bloccare WS ping
- WebSocketDisconnect gestiti
- Rimosso import inesistente db_schema

Frontend (index.html):
- Nascosti tool name dalla chat
- Personaggio -> PG, connessioni aree con nomi

Infrastruttura:
- Switch da openrouter/free a DeepSeek V4 Flash via OpenCode Go
- pyproject.toml, Dockerfile, docker-compose.yml, start.sh
- .env auto-load (start.sh)
- Funnel Lv0 (funnel.py) — creazione PG livello 0

Docs: architecture, database, setup, game mechanics, codebase ref
2026-06-28 08:18:24 +02:00

3.0 KiB

Game Mechanics (DCC RPG)

Sistema Base

D20 + CD

  • CD 12 = facile, CD 15 = media, CD 18 = difficile
  • Tiro = d20 + modificatore ≥ CD → successo
  • 20 naturale = critico (successo automatico)
  • 1 naturale = fumble (fallimento automatico)

Dadi del Gioco (DCC Dice Chain)

d3 → d4 → d5 → d6 → d7 → d8 → d10 → d12 → d14 → d16 → d20 → d24 → d30

Usata per progressioni e meccaniche speciali.

Classi Implementate (7)

Classe Dado Vita Dado Cimento Abilità Speciale Critico
Guerriero d8 d3→d5 Mighty Deed (d3→d5+), bonus attacco IV/V
Nano d10 d3→d5 Resistenza veleno,感知 trappole III/IV/V
Elfo d6 d4→d7 Infravisione, percezione porte segrete II
Halfling d6 d4→d7 Resistenza, abilità nascondersi III
Ladro d6 d4→d7 Abilità ladro (furtivo, scassinare, ecc.) II
Chierico d8 d4→d7 Scacciare non-morti, incantesimi divini III
Mago d4 d4→d7 Incantesimi arcani, familiar I
Lv0 d4 — Nessuna I

Mighty Deed (Guerriero)

Prima dell'attacco, dichiara un'impresa (es. "sbalzare lo scudo", "accecare"). Tira d3 (lv1-4), poi d4/d5 a lv superiori. Se deed ≥ 3, attacco colpisce automaticamente SE l'attacco normale colpisce. Se deed = risultato massimo, effetto speciale narrativo.

Combattimento

Flusso

  1. Iniziativa: d20 (più alto → primo)
  2. Attacco: d20 + bonus attacco vs CA bersaglio
  3. Danno: dado arma + bonus (modificatori)
  4. PF: sottratti, mostro morto se PF ≤ 0

CA e Armature

Armatura CA Dado Fumble
Nessuna 10 d4
Leggera (cuoio) 12 d8
Media (maglia) 14 d12
Pesante (piastre) 16 d16
Scudo +1 CA —

Tiri Salvezza

  • Tempra: veleno, malattia, resistenza fisica
  • Riflessi: trappole, esplosioni, schivare
  • Volontà: magia, paura, illusione

Incantesimi

Spell Check

Tiro = d20 + bonus (non modificatore Intelligenza — è un tiro speciale)

Tiro Tier Effetto
1 Corruzione Fallimento critico + corruzione/ritorsione
< CD Fallimento Nessun effetto
≤ 11 Minore Effetto base
≤ 17 Moderato Effetto migliorato
≤ 19 Maggiore Effetto potente
20+ Massimo Effetto devastante

Corruzione

  • Su tiro 1 (sempre)
  • Su tiro ≥ 12 se d20 subsequente = 1
  • Può causare: mutazioni, danni, follia

PE e Avanzamento

Risultato PE
Sconfiggere nemico 50-75
Superare prova difficile 10-20
Soluzione creativa 25-50
Sopravvivenza area 30-50
Avanzamento lv0 → lv1 10 PE (automatico)

Classi e Abilità Speciali

Abilità Ladro (dado dedicato)

  • Furtività, Scassinare, Percezione, Acrobazia
  • Uso dado abilità (d4→d7 a seconda del livello)

Scacciare Non-Morti (Chierico)

Tiro d20 + bonus (Volontà ?) vs dado vita del non-morto. Successo: fuga o distruzione.

Infravisione (Nano, Elfo, Halfling)

Vedere nel buio fino a 18m (Nano), 9m (Elfo/Halfling).