# De dónde salen los datos

> Origen y precisión de cada tipo de dato. Si pasa algo que "parece raro", mira primero esta página.

Fuente: https://war3ai.com/es/docs/data-sources/

| Dato | Origen | Precisión |
|---|---|---|
| Unidades, recursos, órdenes, habilidades, buffs, inventario | Bloque del mundo que el runtime publica cada 50 ms | Ciclo de publicación (ajustable a 16 ms) |
| Eventos de daño y de muerte | El runtime los registra en el hilo del juego, golpe a golpe | Inmediata |
| Otros eventos (aparición, muerte, cambio de orden, subida de nivel…) | Comparación entre dos publicaciones consecutivas | Ciclo de publicación |
| Tabla de producción (entrenamiento / investigación / construcción / mejora) | Campos de temporizador de las habilidades de producción del motor + tiempo transcurrido que acumula el runtime | Aprox. ±0.2 segundos de juego |
| Estadísticas de combate, tabla de tipos | Tablas de datos del propio juego (extraídas de tu copia local) | Sin los modificadores de objetos, auras ni buffs |
| Rutas | Transitabilidad del terreno del motor (celdas de 128) + árboles + huella de los edificios, A* en el lado del SDK | Una celda; los huecos más estrechos que una celda se consideran bloqueados |
| Hora del juego | JASS `GetFloatGameState(GAME_STATE_TIME_OF_DAY)` | Ciclo de publicación |
| Visibilidad | Máscara de visibilidad por jugador que el runtime calcula para cada unidad | Ciclo de publicación |
| Niveles de tecnología, viabilidad, oro restante en la mina | Consultas por el carril rápido, directamente al motor | Inmediata |

## Los datos del juego no se distribuyen con el código

Las tablas de unidades, habilidades, objetos, héroes, buffs, tipos de daño y armadura, etc., proceden de los archivos del juego de Blizzard y **no están en el repositorio**. Cuando configuras el directorio del juego en el "Centro de control" de Farsight, se extraen automáticamente de tu propia copia del juego; también puedes ejecutarlo a mano:

```bash
python data/tools/extract_game_data.py
```

El resultado se guarda en `data/game/` (fuera de git): los `.slk` / `.txt` originales y, ya procesados, `units.json`, `names.json`, `skills.json`, `items.json`, `heroes.json` y `buffs.json`.

## Algunas cifras concretas

| Magnitud | Valor |
|---|---|
| Un día | 480 segundos de juego (240 de día y 240 de noche); una hora = 20 segundos de juego; la partida empieza a las 8 de la mañana |
| Día | 6:00 ~ 18:00 |
| Coeficiente de armadura | 0.06 (de las tablas de datos del juego) |
| Capacidad del bloque del mundo | 16 jugadores, 1024 unidades, 256 detalles de unidad, 256 objetos en el suelo, 128 producciones |
| Árboles | Hasta 4096 destructibles, actualizados cada 2 segundos |
| Anillo de eventos | 8192 entradas; si lees demasiado lento se pierden (el SDK lo detecta) |
| Celdas del mapa | 128 unidades de juego por celda, como máximo 256 × 256 |

## Ejemplos calibrados con mediciones

- Tiempos de producción: campesino 14.9, granja 34.9 y Espadas de hierro forjado 59.9 segundos de juego, idénticos a lo que publica el runtime (error inferior a 0.2 s);
- Estadísticas de combate comprobadas contra el panel del juego: Paladín con 650 de vida, 255 de maná, 3.9 de armadura y ataque 24 ~ 34; un soldado con la mejora de ataque de nivel 1, 13 ~ 15;
- El daño antes de armadura de los eventos de daño del motor (14 / 15 / 15) cae dentro del rango que calcula `stats()`;
- Rutas: Echo Isles, 116 × 88 celdas; distancia por tierra hasta el ayuntamiento rival 10642 (en línea recta 9856); construir la malla lleva 18 ms y un A*, aprox. 1 ms.
