Add pluggable parser system, perception loop, and project infrastructure

Phase 0 (housekeeping):
- Add .gitignore to protect credentials and runtime files
- Track all project source code, docs, and config

Phase 1 (perception loop):
- Implement pluggable parser architecture (BaseMudParser ABC + ParserFactory)
- Add DeadSoulsParser with regex for HP/MP/SP prompt, room descriptions,
  exits (multiple formats), NPC/item detection, and combat events
- Add OutputBuffer for accumulating text between prompts
- Update GameState with SP support and update_from_prompt/room/combat methods
- Rewire main loop to use parser + buffer for real-time game state updates
- Add reconnection logic to TelnetClient (retry with backoff)
- Remove old TextParser (replaced by pluggable system)
- Add mud_type config field for selecting parser at runtime
- Add comprehensive test suite (50 tests, all passing)
This commit is contained in:
truetype committed 2026-02-08 19:08:59 +01:00
1 parent 0f370ec089
commit f85c27a742
42 files changed
+3490 -134

No files matched your search

+151
View File
@@ -0,0 +1,151 @@
# MUD Test Servers - Quick Start Guide
## ✅ L'applicazione funziona!
L'errore che vedi è **normale** - stai usando il config di esempio con `mud.example.com` che non esiste.
## MUD Pubblici per Testing
Ecco alcuni MUD pubblici che puoi usare per testare l'applicazione:
### 1. Aardwolf MUD (Consigliato per testing)
```yaml
mud:
host: "aardmud.org"
port: 23
username: "" # Crea account al primo login
password: ""
```
**Caratteristiche:**
- Molto popolare e stabile
- Accetta nuovi giocatori
- Buona documentazione
- Supporta ANSI colors
### 2. Discworld MUD
```yaml
mud:
host: "discworld.starturtle.net"
port: 23
username: ""
password: ""
```
### 3. Alter Aeon
```yaml
mud:
host: "alteraeon.com"
port: 3010
username: ""
password: ""
```
### 4. Materia Magica
```yaml
mud:
host: "materiamagica.com"
port: 4000
username: ""
password: ""
```
## Come Configurare
### Opzione 1: Modifica config.yaml
Apri `config.yaml` e modifica la sezione `mud`:
```yaml
mud:
host: "aardmud.org" # Cambia questo
port: 23 # E questo
username: "" # Lascia vuoto per nuovo account
password: ""
```
### Opzione 2: Crea config personalizzato
```powershell
# Copia il config di esempio
Copy-Item config.yaml test_config.yaml
# Modifica test_config.yaml con il tuo editor preferito
# Poi esegui con:
python -m src.main --config test_config.yaml
```
## Test Rapido con Aardwolf
1. **Modifica config.yaml**:
```yaml
mud:
host: "aardmud.org"
port: 23
username: ""
password: ""
```
2. **Esegui l'applicazione**:
```powershell
.\venv\Scripts\Activate.ps1
python -m src.main
```
3. **Cosa aspettarsi**:
- Connessione al server ✅
- Ricezione del messaggio di benvenuto
- Prompt per creazione personaggio
- (L'AI non è ancora implementata completamente, quindi vedrai solo i log)
## Modalità Debug
Per vedere più dettagli durante la connessione, modifica in `config.yaml`:
```yaml
logging:
level: "DEBUG" # Cambia da INFO a DEBUG
console: true
```
## Creazione Account Manuale
Se vuoi prima creare un account manualmente:
```powershell
# Usa telnet per connetterti
telnet aardmud.org 23
# Oppure usa un client MUD come MUSHclient o Mudlet
```
Poi inserisci le credenziali in `config.yaml`.
## Prossimi Passi
Una volta connesso con successo:
1. ✅ **Connessione funzionante** - Vedrai i log di connessione
2. ⏭️ **Implementare Character Creator** - Per creare automaticamente il personaggio
3. ⏭️ **Implementare Text Parser** - Per interpretare i comandi del MUD
4. ⏭️ **Implementare Explorer** - Per iniziare l'esplorazione
## Troubleshooting
### Firewall
Se hai problemi di connessione, verifica che il firewall non blocchi le connessioni Telnet (porta 23 o 4000).
### Timeout
Alcuni MUD potrebbero avere timeout. Aumenta il timeout in `telnet_client.py` se necessario.
### ANSI Colors
Se vedi caratteri strani, il parser ANSI potrebbe aver bisogno di aggiustamenti per quel MUD specifico.
## Note Importanti
⚠️ **Rispetta le regole del MUD**: Molti MUD hanno regole contro i bot. Usa questa applicazione solo per:
- Testing e sviluppo
- MUD che permettono bot
- Scopi educativi
⚠️ **Non abusare**: Implementa sempre i delay umani e non sovraccaricare il server.