# PlayerGuide — клиентский пакет (3.3.5a / MoonWellClient) Это материалы для интеграции вкладки **«Путеводитель»** в существующий ретропортированный Encounter Journal. Реализация соответствует требованиям из `uploads/player-guide-requirements.md` и опирается на канон-визуал WotLK (Friz Quadrata, тёмно-синий фон EJ, золотые акценты). ## Структура ``` MoonWellClient/ ├── EncounterJournal/ │ ├── Utils/ │ │ └── C_PlayerGuide.lua ← хранилище + API │ ├── Custom_EncounterJournal/ │ │ ├── Custom_EncounterJournal.xml ← патч: новая вкладка │ │ ├── Custom_EncounterJournal.lua ← патч: routing вкладки │ │ ├── PlayerGuide.xml ← фреймы и шаблоны (НОВОЕ) │ │ └── PlayerGuide.lua ← рендер и логика (НОВОЕ) │ └── Localization/ │ └── ruRU.lua ← патч: MW_PLAYER_GUIDE и др. ├── AIO/ │ └── MoonWellPlayerGuide.lua ← AIO-handler (клиентская часть) └── MoonWellClient.toc ← патч: подключение файлов ``` ## Порядок интеграции 1. **Скопируйте новые файлы** в проект: * `client-export/PlayerGuide.xml` → `EncounterJournal/Custom_EncounterJournal/PlayerGuide.xml` * `client-export/PlayerGuide.lua` → `EncounterJournal/Custom_EncounterJournal/PlayerGuide.lua` * `client-export/C_PlayerGuide.lua` → `EncounterJournal/Utils/C_PlayerGuide.lua` * `client-export/MoonWellPlayerGuide.lua` → `AIO/MoonWellPlayerGuide.lua` 2. **Примените патчи** из `client-export/patches/` к существующим файлам (см. ниже — `Custom_EncounterJournal.xml`, `Custom_EncounterJournal.lua`, `MoonWellClient.toc`, `Localization/ruRU.lua`). 3. **Перезагрузите интерфейс** (`/reload`). Если AIO ещё не передал payload — увидите «пустое» состояние с кнопкой «Обновить». ## Что вошло в MVP (по требованиям) | MVP-пункт | Где | | ----------------------------- | ------------------------------------------- | | вкладка `Путеводитель` | `Custom_EncounterJournal.xml` патч | | пустой `PlayerGuideFrame` | `PlayerGuide.xml` | | `C_PlayerGuide.lua` + статика | `C_PlayerGuide.lua` | | заголовок этапа + цели | `PlayerGuide.lua → PlayerGuide_Refresh` | | tab switching / hide-show | `Custom_EncounterJournal.lua → EJ_ContentTab_OnClick` хук | | AIO `SetData` | `MoonWellPlayerGuide.lua → handlers.SetData` | | Обновить (RequestRefresh) | `PlayerGuide.lua → PlayerGuide_RefreshButton_OnClick` | ## Что отложено (см. «Later UI» в требованиях) * Фильтры (все / активные / завершённые) * Pinning отслеживаемой цели * **Награды** — блок временно отключён (`SHOW_REWARDS = false`) * Серверные уведомления (`Notify`) ## Сноска по визуалу Текстуры в XML — это встроенные ресурсы 3.3.5a-клиента. Если у вас есть атлас MoonWell — замените пути в блоке `-- TEXTURE_ATLAS` на свои. Биом-обложки рекомендаций (`Interface\AddOns\MoonWellClient\EncounterJournal\Textures\Biome-*`) надо создать отдельно — это плейсхолдеры (см. таблицу в `PlayerGuide.lua`).