# Setup ADB para BlueStacks Air (Mac)

Guia rapida para que `evony_boss_scanner_adb.py` funcione.

## 1. Instalar adb

```bash
brew install android-platform-tools
adb version    # debe imprimir version
```

Si no tienes Homebrew:
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

## 2. Activar ADB en BlueStacks

1. Abre BlueStacks Air
2. Settings (rueda dentada arriba a la derecha)
3. Preferences (o "Advanced", segun version)
4. Busca "Android Debug Bridge (ADB)" y ponlo en **ON**
5. **Apunta el numero de puerto que aparece** (ej. 5555, 5565...)
6. Reinicia BlueStacks por si acaso

## 3. Conectar adb a BlueStacks

```bash
# Sustituye 5555 por el puerto que viste en BlueStacks
adb connect 127.0.0.1:5555

# Verifica
adb devices
# Deberias ver algo como:
# List of devices attached
# 127.0.0.1:5555    device
```

Si aparece `offline`:
- Reinicia BlueStacks
- `adb kill-server && adb start-server && adb connect 127.0.0.1:5555`

## 4. Probar el script

```bash
cd "/Users/danicosta/Desktop/Evony"

# Verifica conexion (sin abrir Evony hace falta, solo BlueStacks)
python3 evony_boss_scanner_adb.py --check
# Si va, genera adb_check.png con captura de la pantalla Android actual

# Si tu puerto NO es 5555:
python3 evony_boss_scanner_adb.py --check --device 127.0.0.1:5565
```

Abre `adb_check.png` y comprueba que ves la pantalla de BlueStacks correctamente. Esa es la resolucion Android (probablemente 1080x1920 o similar) — tus coordenadas de calibracion estaran en este espacio.

## 5. Calibrar

Abre Evony en BlueStacks, ve al mapa del reino, y:

```bash
python3 evony_boss_scanner_adb.py --calibrate
# Si tu puerto no es 5555, anade --device 127.0.0.1:PUERTO
```

El proceso:
1. Te pide que ABRAS el dialogo de busqueda de coords en el juego (manual).
2. Captura screenshot via ADB.
3. **Se abre una ventana de OpenCV con la captura. Clica sobre cada elemento que te pida** (campo X, campo Y, boton GO, etc.) y pulsa Enter para confirmar cada uno.
4. Despues te pide cerrar el dialogo y hace otra captura para marcar la lupa y la region del mapa.
5. Pregunta tiles visibles y area a escanear.

**Importante:** las coordenadas que clicas en la imagen SON las coordenadas Android. No tienen nada que ver con donde tengas la ventana de BlueStacks.

## 6. Probar jump

```bash
python3 evony_boss_scanner_adb.py --test-jump 458 567
```

3 segundos despues veras BlueStacks navegando a (458, 567) y se guarda `test_capture_adb.png` con lo que captura. Verifica que la captura esta centrada donde toca.

## 7. Plantillas

Esta version usa la misma carpeta `templates_bosses/` que la version pyautogui. **PERO las plantillas deben hacerse a partir de capturas ADB, no de screenshots del Mac**, porque son escalas distintas. Para recortar plantillas:

```bash
# Toma una captura
python3 evony_boss_scanner_adb.py --check
# Abre adb_check.png, recorta el icono del monstruo con Vista Previa,
# guarda como templates_bosses/cerbero.png (etc).
```

Si ya tenias plantillas hechas desde el host (la version pyautogui), no van a casar bien con las capturas ADB porque la resolucion cambia. Toca rehacerlas.

## 8. Ejecutar

```bash
# Una pasada
python3 evony_boss_scanner_adb.py --once

# Bucle (max 30 min)
python3 evony_boss_scanner_adb.py
```

**Puedes usar el Mac mientras corre.** El script controla Android dentro de BlueStacks, no tu cursor.

## Troubleshooting

**"adb no encontrado"**: `brew install android-platform-tools`. Verifica con `which adb`.

**"Device offline"**: en BlueStacks, desactiva y vuelve a activar ADB. Luego `adb kill-server && adb start-server && adb connect 127.0.0.1:PUERTO`.

**"No se pudo capturar pantalla"**: BlueStacks puede tener restringido el screencap si tienes activado "Optimal hardware" en graficos. Cambia a "Compatibility mode" en Settings > Graphics.

**Texto no se escribe en el campo X/Y**: en BlueStacks Settings > Preferences hay una opcion "Android Keyboard Input" o "ImE" — actívala. Sin esa opcion, `adb shell input text` no llega a los campos.

**Las coords del jump quedan descentradas**: recalibra. Es posible que cambiase el zoom del mapa entre la calibracion y el uso. La calibracion fija el zoom implicitamente; si lo cambias, hay que recalibrar.

**El script va MUY rapido y parece sospechoso**: aumenta `JUMP_DELAY` y `ACTION_DELAY` en el script. Por defecto son razonables pero puedes hacerlos mas lentos.
