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:
1 parent
0f370ec089
commit
f85c27a742
42 files changed
+3490
-134
No files matched your search
+151
@@ -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.
|
||||
Reference in new issue
Block a user