Initial publication

This commit is contained in:
dfj
2026-06-04 00:04:49 +02:00
commit 5284007998
6 changed files with 1597 additions and 0 deletions

98
README.md Normal file
View File

@@ -0,0 +1,98 @@
# Amibis
*Beware this is AI slop. I don't usually work with LUA and haven't really done any verification beyond making sure there aren't rogue loops running calculations constantly*
A World of Warcraft: The Burning Crusade Classic addon that compares your equipped gear against Best-in-Slot lists sourced from [wowtbc.gg](https://wowtbc.gg).
## Features
- **Gear Comparison** — See at a glance which slots are BIS and which can be upgraded
- **Auto-Detection** — Automatically detects your class and active talent spec
- **Stats Comparison** — Side-by-side stat breakdown (Healing, Spell Power, Intellect, Spirit, MP5, Haste, Crit)
- **Upgrade Highlight** — Identifies your biggest available upgrade
- **Persistent Settings** — Window position and spec overrides saved per character
## Usage
| Command | Description |
|---|---|
| `/amibis` | Toggle the comparison window |
| `/amibis spec <SpecName>` | Override auto-detected spec (e.g. `/amibis spec Holy`) |
| `/amibis spec clear` | Reset spec override to auto-detection |
### Interacting with the window
- **Drag** the title bar to reposition (position is saved)
- **Shift+Click** a row to link the BIS item in chat
- **Ctrl+Click** a row to open the dress-up preview
- **Hover** a row to see the item tooltip
## Adding BIS Lists
BIS data lives in `Amibis/Data/BISLists.lua`. Each list follows this structure:
### 1. Define a class table
```lua
local WARRIOR_T5 = {
["Head"] = {
itemID = 12345,
name = "Helm of the Fallen Defender",
source = "SSC - Lady Vashj",
enchant = { id = 35445, name = "Glyph of Renewal" }, -- optional
},
-- ... repeat for each slot
}
```
### 2. Supported slots
`Head`, `Neck`, `Shoulder`, `Back`, `Chest`, `Wrist`, `Hands`, `Waist`, `Legs`, `Feet`, `Finger0`, `Finger1`, `Trinket0`, `Trinket1`, `MainHand`, `SecondaryHand`, `Ranged`
### 3. Register in BIS_DATA
```lua
local BIS_DATA = {
["PRIEST"] = {
["Discipline"] = { ["T5"] = PRIEST_T5 },
["Holy"] = { ["T5"] = PRIEST_T5 },
},
["WARRIOR"] = {
["Protection"] = { ["T5"] = WARRIOR_T5 },
},
}
```
### Field reference
| Field | Required | Description |
|---|---|---|
| `itemID` | Yes | WoW item ID (number) |
| `name` | Yes | Display name |
| `source` | Yes | Where it drops (e.g. `"TK - Kael'thas Sunstrider"`) |
| `enchant` | No | `{ id = <spellID>, name = "<Enchant Name>" }` |
### Important
- Class keys must match WoW's English class constants: `"WARRIOR"`, `"PRIEST"`, `"MAGE"`, etc. (all caps)
- Spec names must match the values in `Amibis:GetPlayerSpec()` (e.g. `"Discipline"`, `"Holy"`, `"Arms"`)
- Phase keys are strings like `"T5"`, `"T6"` — the default phase is set in `Amibis.lua` under `DEFAULT_AMIBIS_DB.selectedPhase`
## Installation
Copy the `Amibis` folder into your WoW addon directory:
```
World of Warcraft/Interface/AddOns/Amibis/
```
Required files:
```
Amibis/
├── Amibis.toc
├── Amibis.lua
├── Data/
│ └── BISLists.lua
└── UI/
└── ComparisonFrame.lua
```