# CẨM NANG ĐIỀU KHIỂN THỰC CHIẾN CHO AGENT (AUTONOMOUS CONTROL PLAYBOOK)
> **Hướng dẫn vận hành chuẩn hóa (SOP) để Antigravity Pro Player Agent điều khiển AutoPOE2**

---

## 1. KHỞI ĐỘNG & THIẾT LẬP PHIÊN CHƠI (SESSION INITIALIZATION)

Khi người dùng yêu cầu bắt đầu chu trình cày cuốc, Antigravity thực hiện các bước sau:

### Bước 1: Kiểm tra & Khởi chạy Game Client Standalone
```powershell
# Kiểm tra xem tiến trình game có đang chạy không
Get-Process -Name "PathOfExile*" -ErrorAction SilentlyContinue

# Nếu chưa chạy, khởi động thông qua ClientLauncher hoặc đường dẫn mặc định:
Start-Process -FilePath "C:\Program Files (x86)\Grinding Gear Games\Path of Exile 2\PathOfExile.exe"
```

### Bước 2: Khởi động C++ Core Engine với cấu hình tối ưu
```powershell
# Khởi chạy Core với các tham số tự động hóa chuẩn hóa (hỗ trợ cả float 0.6 lẫn int 60)
.\bin\Release\AutoPOE2_Core.exe `
    --autologin `
    --league "Forbidden Rites" `
    --character 1 `
    --move-mode wasd `
    --autododge `
    --burst-hp 22 `
    --autoflask `
    --flask-hp 60 `
    --mana-hp 25 `
    --kiting `
    --autoloot `
    --loot-radius 35.0 `
    --target-zone "Sandswept Marsh"
```

> **Phím nóng thực chiến (In-Game Realtime Control)**:
> - `F8` hoặc `F6`: Bật / Tạm dừng chế độ tự hành (Master Toggle).
> - `Pause/Break` hoặc `Ctrl + Shift + F12`: Dừng khẩn cấp toàn hệ thống (Panic Killswitch - Tuyệt đối không dùng F12 đơn lẻ để tránh xung đột Steam Screenshot).
> - `F11`: Kích hoạt tái định vị vi sai tọa độ XYZ tức thì trong RAM.

---

## 2. GIÁM SÁT THỜI GIAN THỰC & ĐIỀU KHIỂN TÁC CHIẾN

### 1. Đọc Dữ Liệu Viễn Trắc Từ Shared Memory
Antigravity sử dụng module Python `core_shm_bridge.py` để đọc trạng thái tức thời của nhân vật:
```python
from src.assistant_tool.core_shm_bridge import CoreSharedMemoryBridge

bridge = CoreSharedMemoryBridge()
if bridge.connect():
    snap = bridge.read_telemetry_snapshot()
    print(f"HP: {snap.player.current_hp}/{snap.player.max_hp}")
    print(f"Mana: {snap.player.current_mana}/{snap.player.max_mana}")
    print(f"XYZ: ({snap.player.pos_x:.1f}, {snap.player.pos_y:.1f}, {snap.player.pos_z:.1f})")
    print(f"Quái quanh người: {snap.monsters_count} con")
```

### 2. Xử Lý Khi Tọa Độ Bị Kẹt (> 4 Giây Đứng Im)
Nếu phát hiện tọa độ `(pos_x, pos_y)` không đổi quá 4 giây trong khi đang ở vùng chiến đấu:
1. Gửi lệnh tái định vị qua IPC Command Ring: `bridge.send_trigger_recalibrate()`.
2. Hoặc gửi phím Spacebar / lướt chuột Bézier để giải tỏa vật cản địa hình.

---

## 3. QUY TRÌNH THẨM ĐỊNH & THAY ĐỒ TỰ ĐỘNG (GEAR EVALUATION WORKFLOW)

Mỗi khi nhặt được trang bị hiếm (Rare) hoặc độc bản (Unique) từ quái vật rơi ra:

```mermaid
flowchart TD
    A[Auto-Loot nhặt trang bị vào túi đồ] --> B[LogSensor / OCR đọc chỉ số trang bị]
    B --> C{Đối chiếu với character_target/gear_stat_priorities.md}
    C -- Là Găng tay có Flat Phys/Cold cao --> D[Giữ lại làm phôi cho Way of the Stonefist]
    C -- Có Máu tối đa T1/T2 + Kháng >= 70% --> E[Đánh dấu món đồ Cải Thiện Sinh Tồn (Upgrade)]
    C -- Không đạt tiêu chuẩn --> F[Bán cho Vendor lấy Gold / Tinh thể chế tác]
    E --> G[Thông báo người dùng hoặc tự động thay trang bị khi ở Thành]
```

### Tiêu chuẩn đánh giá một món đồ "Nâng cấp vượt trội" (Upgrade):
- **Đối với Áo/Mũ/Giày**: Tổng lượng Máu $\ge$ Món đồ đang đeo $+20\text{ Life}$ VÀ có thêm dòng Kháng còn thiếu hoặc Spell Suppression.
- **Đối với Găng tay**: Có từ 2 dòng sát thương phẳng trở lên (*Flat Cold + Flat Physical*), sẵn sàng phục vụ kích hoạt *Thạch Quyền*.

---

## 4. QUY TRÌNH HẬU KHẢO SÁT KHI XẢY RA SỰ CỐ TỬ TRẬN (DEATH ROOT-CAUSE PROTOCOL)

Nếu nhật ký `LatestClient.txt` xuất hiện dòng thông báo: `: BEONGUSI has been slain`:
1. **Trích xuất ảnh chụp sự cố**: Truy cập thư mục `captures/`, tìm file ảnh `_BURST_DAMAGE.png` và metadata `_RAM.json` gần nhất trước thời điểm tử trận.
2. **Lập biên bản phân tích**:
   - Nhân vật bị chết bởi loại sát thương gì (Vật lý, Phép, hay Độc/DoT)?
   - Lúc đó có bao nhiêu quái vật bao vây?
   - Bình máu có còn Charges không?
   - Tọa độ XYZ lúc chết có bị kẹt vào góc tường không?
3. **Thực thi điều chỉnh khắc phục**:
   - Nếu chết do One-shot vật lý: Tăng ngưỡng né đòn Burst Threshold lên nhạy hơn ($15\%$).
   - Nếu chết do cạn mana không né được: Điều chỉnh ngưỡng uống bình Mana lên $50\%$.
   - Nếu chết do kẹt góc: Cập nhật lưới địa hình `TerrainGrid` tránh khu vực góc chết đó trong các lần chạy sau.
