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()
ensure_window_focus(hwnd)
time.sleep(0.3)

user32 = ctypes.windll.user32
VK_ESCAPE = 0x1B
VK_U = 0x55
VK_SPACE = 0x20
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. Close the Escape menu currently open...")
press_key(VK_ESCAPE, 0x01, delay=0.6)

p0 = capturer.capture_screenshot(event_name="STEP0_AFTER_CLOSE_ESC_MENU", capture_ram=False)
print(f"Step 0: {p0}")

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

p1 = capturer.capture_screenshot(event_name="STEP1_AFTER_U", capture_ram=False)
print(f"Step 1: {p1}")

print("3. Click ENDGAME tab at (1547, 93)...")
click(1547, 93, delay=3.0)

p2 = capturer.capture_screenshot(event_name="STEP2_AFTER_ENDGAME", capture_ram=False)
print(f"Step 2: {p2}")

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

p3 = capturer.capture_screenshot(event_name="STEP3_AFTER_NODE_CLICK", capture_ram=False)
print(f"Step 3: {p3}")
