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
from src.assistant_tool.config import Config
from src.assistant_tool.log_watcher import LogWatcher

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
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.5):
    user32.SetCursorPos(int(x), int(y))
    time.sleep(0.15)
    user32.mouse_event(0x0002, 0, 0, 0, 0)
    time.sleep(0.08)
    user32.mouse_event(0x0004, 0, 0, 0, 0)
    time.sleep(delay)

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

print("2. Clicking ENDGAME tab at (1532, 95)...")
click(1532, 95, delay=3.2)

p_atlas = capturer.capture_screenshot(event_name="TEST_ATLAS_OPENED", capture_ram=False)
print(f"Atlas opened: {p_atlas}")

print("3. Clicking Green Reachable Node at (1470, 1068)...")
click(1470, 1068, delay=1.2)

p_modal = capturer.capture_screenshot(event_name="TEST_NODE_MODAL", capture_ram=False)
print(f"Modal opened: {p_modal}")

print("4. Clicking TRAVERSE at (1075, 750)...")
click(1075, 750, delay=4.0)

p_after_traverse = capturer.capture_screenshot(event_name="TEST_AFTER_TRAVERSE_CLICK", capture_ram=False)
print(f"After traverse: {p_after_traverse}")

# Check Client.txt
log_path = Config.find_poe2_client_log()
lw = LogWatcher(log_path)
seeded = lw.seed_latest_playable_zone()
zone_name = seeded.area_name if seeded else "UNKNOWN"
print(f"Current zone after traverse: '{zone_name}'")
