Files
coa-omen/README-CoA.md
T

116 lines
4.4 KiB
Markdown

# coa-omen
CoA-patched fork of [Omen3](https://www.curseforge.com/wow/addons/omen-threat-meter)
3.0.9 (the version Ascension's Bronzebeard realm ships in
`Interface/AddOns/Omen/`). Adds class-color entries for the 21
Ascension custom classes plus the HERO archetype, so the threat-meter
bars render in a class-tinted color instead of falling back to the
generic neutral fill.
## What we changed
| File | Type | Why |
|-----------------------|--------|-----|
| `CoAClassColors.lua` | new | Merges 22 CoA `file_string` entries into `_G.RAID_CLASS_COLORS` (and `_G.CUSTOM_CLASS_COLORS` if `!ClassColors` is loaded). Vanilla 10 are left untouched. |
| `Omen.toc` | edit | Loads `CoAClassColors.lua` before `Omen.lua`. Version bumped to `3.0.9-coa1`. |
| `.gitattributes` | new | `* -text` — preserves upstream CRLF so future merges from Curse stay tidy. |
`Omen.lua` itself is unchanged. The bug we're fixing is in
`Omen.lua:1629`
```lua
(dbBar.UseClassColors and (RAID_CLASS_COLORS[class] or (class == "PET" and dbBar.PetBarColor))) or
```
— where `class` is the second return of `UnitClass(unit)`, i.e. the
ChrClasses.dbc `file_string`. For CoA classes that's `PROPHET` /
`MONK` / `FLESHWARDEN` / etc., none of which exist in stock
`RAID_CLASS_COLORS`, so the lookup is `nil`, the `and/or` chain
collapses, and every CoA-class bar gets `dbBar.BarColor` regardless
of `UseClassColors`. We just populate the table — no Omen logic
changes needed.
## Class color table
The 22 added file-strings are below. The CoA names on the right are
the in-game display names (slugs at `db.exil.es/class/<slug>`); the
file-strings on the left are what `UnitClass()` actually returns.
| file_string | CoA class | Hex |
|----------------|------------------|----------|
| HERO | (all-class) | #FFD100 |
| BARBARIAN | Barbarian | #C1666B |
| WITCHDOCTOR | Witch Doctor | #80C7B1 |
| DEMONHUNTER | Felsworn | #A330C9 |
| WITCHHUNTER | Witch Hunter | #B8B0A0 |
| STORMBRINGER | Stormbringer | #4ED9FF |
| FLESHWARDEN | Knight of Xoroth | #5C2E73 |
| GUARDIAN | Guardian | #4A9D59 |
| MONK | Templar | #00FFBA |
| SONOFARUGAL | Bloodmage | #AA1F1F |
| RANGER | Ranger | #5E8C3A |
| CHRONOMANCER | Chronomancer | #D68A3A |
| NECROMANCER | Necromancer | #4D7A5A |
| PYROMANCER | Pyromancer | #FF6A00 |
| CULTIST | Cultist | #7A40B8 |
| STARCALLER | Starcaller | #79C8D6 |
| SUNCLERIC | Sun Cleric | #F2C14E |
| TINKER | Tinker | #C47C4F |
| PROPHET | Venomancer | #B8D246 |
| REAPER | Reaper | #6E3A8A |
| WILDWALKER | Primalist | #8B6F47 |
| SPIRITMAGE | Runemaster | #6FB6E0 |
The colors are sensible thematic defaults, not extracted from the
client. To override them for one player, drop a `!ClassColors` config
in (the addon is already an OptionalDep of Omen). To override globally
in this fork, edit `CoAClassColors.lua`.
## Deploying
```bash
rsync -a --delete --exclude=.git --exclude='README*.md' \
/home/sub/repos/coa/coa-omen/ \
/srv/add01/wow-ascension/Interface/AddOns/Omen/
```
Then in-game: `/reload` (or full client restart). Confirm with the
Bartender4-style version check — open Omen options, the title bar
should read `Omen3 3.0.9-coa1`.
## Verifying in-game
`/run print(RAID_CLASS_COLORS["PROPHET"] and RAID_CLASS_COLORS["PROPHET"].colorStr or "missing")`
Should print `ff` followed by the hex of `#B8D246` (i.e.
`ffb8d246`). Repeat for any custom class. If a key prints `missing`,
either `CoAClassColors.lua` didn't load (check the addon list) or
the file-string was different from what's in the table.
To dump every class color the client knows about:
```
/run for k,v in pairs(RAID_CLASS_COLORS) do print(k, v.colorStr) end
```
## Merging upstream
Stock upstream Omen has a `* text=auto` `.gitattributes` that
normalises CRLF; we override with `* -text` so future merges don't
produce noise diffs.
```bash
git remote add upstream https://github.com/Nevcairiel/Omen.git
git fetch upstream
git merge --no-ff upstream/master
```
…then resolve `Omen.toc` (preserve our `## CoA patches ##` block at
the bottom) and commit.
## Repo
- Gitea: <https://git.sub-net.at/Exiles/coa-omen>
- Default branch: `master` (Sub-Net Gitea pre-receive hook rejects
`main`).