116 lines
4.4 KiB
Markdown
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`).
|