"""Chup HUD Path of Exile 2 + OCR vitals (winocr) de doi chuan RAM."""
from __future__ import annotations

import sys
from datetime import datetime
from pathlib import Path

ROOT = Path(__file__).resolve().parent.parent
sys.path.insert(0, str(ROOT / "src"))

from assistant_tool.optical_hp_sensor import OpticalHPSensor  # noqa: E402


def main() -> int:
    cap_dir = ROOT / "captures"
    cap_dir.mkdir(parents=True, exist_ok=True)
    stamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    out = cap_dir / f"{stamp}_HUD_CI_VITALS.png"

    sensor = OpticalHPSensor()
    hwnd = sensor.find_poe2_window()
    print(f"hwnd={hwnd}")
    if not hwnd:
        print("[MISS] Khong thay cua so Path of Exile 2")
        return 2

    try:
        import ctypes
        user32 = ctypes.windll.user32
        user32.ShowWindow(hwnd, 9)  # SW_RESTORE
        user32.SetForegroundWindow(hwnd)
    except Exception as exc:
        print(f"[WARN] SetForeground: {exc}")

    img = sensor.capture_full_screen(hwnd)
    if img is None:
        print("[MISS] capture_full_screen tra None (D3D12?)")
        return 3
    img.save(out)
    print(f"saved={out} size={img.size}")

    vitals = OpticalHPSensor._detect_via_winocr(img)
    if vitals is None:
        print("[OCR] winocr khong tra ve vitals")
        return 0
    print("ocr_method", vitals.detection_method)
    print("raw_text", vitals.raw_text)
    print(
        "HP", vitals.current_hp, "/", vitals.max_hp,
        "ES", vitals.current_shield, "/", vitals.max_shield,
        "Ward", vitals.current_ward, "/", vitals.max_ward,
        "Mana", vitals.current_mana, "/", vitals.max_mana,
        "Spirit", vitals.current_spirit, "/", vitals.max_spirit,
    )
    return 0


if __name__ == "__main__":
    raise SystemExit(main())
