Files

154 lines
5.3 KiB
Markdown

CoA Exporter
============
One Lua addon for Children of Ascension. Two jobs:
1. **Per-character export** — your character's talents, gear, mystic
enchants, and the full mystic-scroll tooltip DB. Output as JSON or
Wiki.js Markdown for guides on the guild wiki / exil.es.
2. **Game-data catalog dump** — every skill, level passive, dispel, and
talent-tree node for all 21 CoA classes. Feeds db.exil.es and the
talent calculator.
Built for **Ascension WotLK 3.3.5** and depends on Ascension's
`C_CharacterAdvancement` / `C_MysticEnchant` APIs.
This is the merged successor to:
- `ascension-char-exporter` (per-character, `/ascx`)
- `CoA_SkillExporter` (`/skilldump`, `/dispels`, `/passives`)
- `CoA_TalentExporter` (`/talentdumpall`)
Install
-------
Copy `CoaExporter/` into your AddOns directory:
```
<wow>/Interface/AddOns/CoaExporter/CoaExporter.toc
```
Or, on Sub-Net's setup with the addons path symlinked:
```bash
./scripts/install_addon_sub.sh
```
Reload (`/reload` or relog) so the .toc is picked up.
Slash commands
--------------
Primary slash: `/coae`. Aliases: `/coaexp`, `/ascx`, `/asxc`.
### Per-character export
```
/coae export all JSON of talents + spellbook + gear + mystic enchants
/coae export talents JSON, talents only
/coae export spellbook JSON, full spellbook (per tab, with spellID + rank + icon)
/coae export gear JSON, gear only
/coae export enchants JSON, mystic enchants only
/coae export mdgear Markdown gear table (Wiki.js)
/coae export mdenchants Markdown enchants table
/coae export mdspellbook Markdown spellbook (one section per tab)
/coae export md Full wiki page (header + gear + enchants + talents + spellbook)
```
### Mystic scroll catalog (per-account, slow scan)
```
/coae scrolls scan Resolve all 825 scrolls' tooltips (~20s, retries)
/coae scrolls export JSON of the resolved cache
/coae scrolls reset Clear the cache
/coae scrolls status How many scrolls have been resolved
```
The cache lives in `CoaExporterScrollCache` (SavedVariables). Run scan
once per account; results persist across sessions and characters.
### Game-data catalog (for db.exil.es / talent-calc)
```
/coae catalog all One pass: dump skills + talents + icons
/coae catalog skills Dump skills/dispels/passives only
/coae catalog talents Dump talent-tree nodes only
/coae catalog icons Dump server-resolved per-entry icons +
per-(class, spec) sidebar tab icons via
C_ClassInfo.GetSpecInfo (for db.exil.es)
/coae catalog dispels [class] Print dispel summary (or for one class)
/coae catalog passives [class]Print level-passive summary (or for one class)
/coae catalog status Last scan time and counts
```
The catalog dump walks `C_CharacterAdvancement.GetAllEntries()` once and
fans out to all registered collectors, so `catalog all` only walks the
list once. After it finishes, `/reload` to flush the SavedVariable
`CoaExporterCatalog` to disk; pick it up in
`WTF/Account/<acct>/SavedVariables/CoaExporter.lua`.
The legacy slashes still work as aliases: `/skilldump``catalog skills`,
`/talentdumpall``catalog talents`, `/dispels` and `/passives` map to
the catalog list helpers.
### Misc
```
/coae sv on|off Toggle SavedVariables snapshot of /coae export
/coae debug Show collector status
/coae help
```
UI
--
`/coae` (with no args) opens the export window. Two rows of buttons:
- Row 1 — character: `All / Talents / Gear / Enchants / MD Gear / MD Enchants / MD Full`
- Row 2 — catalogs: `Catalog: Skills / Catalog: Talents / Catalog: All / Scrolls: Scan`
The window is a plain copy-out box. `Ctrl+C` after it auto-selects the
text.
SavedVariables
--------------
| Key | Written by | Notes |
|---------------------------|-------------------------------|-------|
| `CoaExporterSaved` | `/coae export …` when sv = on | Latest character export, keyed by `realm:name` |
| `CoaExporterConfig` | `/coae sv on/off` | Just `enableSavedVariables` for now |
| `CoaExporterScrollCache` | `/coae scrolls scan` | Mystic scroll item tooltips |
| `CoaExporterCatalog` | `/coae catalog …` | `skills`, `dispels`, `levelPassives`, `talents`, `iconByEntryId`, `specInfoByClassSpec`, `_meta` |
Layout
------
```
CoaExporter/
├── CoaExporter.toc
├── Util/Json.lua
├── Data/ScrollCatalog.lua (auto-generated from AtlasLootAscension)
├── Collectors/ (per-character data)
│ ├── Talents.lua
│ ├── Spellbook.lua
│ ├── Gear.lua
│ ├── Enchants.lua
│ ├── MysticScrolls.lua
│ └── MysticScrollProbe.lua
├── Catalogs/ (game-data dumps for the wiki/calc)
│ ├── Common.lua (one entry-walk; fans out to collectors)
│ ├── Skills.lua
│ ├── Talents.lua
│ └── Icons.lua (entry.Icon + C_ClassInfo.GetSpecInfo)
├── UI/ExportFrame.lua
└── Core.lua (slash router)
```
Re-generate the scroll catalog from the latest AtlasLootAscension copy:
```
scripts/regen_scroll_catalog.py
```