36 lines
1.8 KiB
Markdown
36 lines
1.8 KiB
Markdown
# Amibis — WoW TBC Classic Addon
|
|
|
|
## What it is
|
|
World of Warcraft addon (TBC Classic, Interface 20505) that compares the player's equipped gear against Best-in-Slot lists sourced from wowtbc.gg.
|
|
|
|
## Project structure
|
|
```
|
|
Amibis/
|
|
├── Amibis.toc # Addon manifest — defines load order
|
|
├── Amibis.lua # Core: DB init, item scanning, stat aggregation, gear comparison, slash commands
|
|
├── Data/
|
|
│ └── BISLists.lua # BIS data store (class → spec → phase → slot)
|
|
└── UI/
|
|
└── ComparisonFrame.lua # Main UI frame, slot rows, stats panel
|
|
```
|
|
|
|
## Key facts
|
|
- **Load order** is defined in `Amibis.toc`: `Amibis.lua` → `Data/BISLists.lua` → `UI/ComparisonFrame.lua`
|
|
- **Slash command**: `/amibis` toggles the UI; `/amibis spec <SpecName>` overrides auto-detected spec; `/amibis spec clear` resets override
|
|
- **SavedVariables**: `AmibisDB` (account-wide, stores selected phase), `AmibisCharDB` (per-character, stores frame position + spec override)
|
|
- **Namespace pattern**: `local addonName, ns = ...` — all modules attach to `ns`
|
|
- **No build/test/lint tooling** — tested in-game via WoW client
|
|
- **Currently**: Only T5 data populated
|
|
|
|
## Adding new BIS data
|
|
1. Add a `local CLASS_T5 = { ... }` table in `Data/BISLists.lua` following the existing `PRIEST_T5` structure
|
|
2. Register it in `BIS_DATA` under the appropriate class/spec/phase key
|
|
3. Each slot entry: `{ itemID, name, source, enchant? }`
|
|
4. Ensure class name matches WoW's English class constant (e.g. `"WARRIOR"`, not `"Warrior"`)
|
|
|
|
## UI conventions
|
|
- ElvUI-style dark backdrop (`{0.07, 0.07, 0.07}`, alpha 0.95)
|
|
- Color coding: green = BIS, yellow = upgrade available, gray = empty slot
|
|
- Max 17 visible rows; rows are clickable (Shift+click = chat link, Ctrl+click = dress-up)
|
|
- Stats panel shows: Healing, Spell Power, Intellect, Spirit, MP5, Haste, Crit
|