import os
import sys
import time
import ctypes
from pathlib import Path

WORKSPACE_ROOT = str(Path(__file__).resolve().parent.parent)
sys.path.insert(0, WORKSPACE_ROOT)

from src.assistant_tool.screen_capturer import ScreenCapturer
from src.common.win32_window import find_poe2_window, ensure_window_focus

capturer = ScreenCapturer(output_dir="captures")
hwnd = find_poe2_window()
if not hwnd:
    print("Could not find POE2 window")
    sys.exit(1)

ensure_window_focus(hwnd)
time.sleep(0.3)

user32 = ctypes.windll.user32
VK_ESCAPE = 0x1B
VK_U = 0x55
KEYEVENTF_KEYUP = 0x0002

def press_key(vk, scan=0, delay=0.3):
    user32.keybd_event(vk, scan, 0, 0)
    time.sleep(0.05)
    user32.keybd_event(vk, scan, KEYEVENTF_KEYUP, 0)
    time.sleep(delay)

def click(x, y, delay=0.4):
    user32.SetCursorPos(int(x), int(y))
    time.sleep(0.12)
    user32.mouse_event(0x0002, 0, 0, 0, 0)
    time.sleep(0.06)
    user32.mouse_event(0x0004, 0, 0, 0, 0)
    time.sleep(delay)

print("1. Dismiss any open dialogs with ESC...")
press_key(VK_ESCAPE, 0x01, delay=0.4)

print("2. Open World Map with 'U'...")
press_key(VK_U, 0x16, delay=0.8)

print("3. Click ENDGAME tab at (1547, 93)...")
click(1547, 93, delay=3.0)  # Wait 3.0s for spinning gears to finish loading!

p_loaded = capturer.capture_screenshot(event_name="ATLAS_FULLY_LOADED", capture_ram=False)
print(f"Atlas loaded capture: {p_loaded}")

print("4. Click Green Reachable Node at (1458, 828)...")
click(1458, 828, delay=1.2)

p_node = capturer.capture_screenshot(event_name="ATLAS_NODE_CLICKED", capture_ram=False)
print(f"Atlas node clicked capture: {p_node}")
