# 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/`); 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: - Default branch: `master` (Sub-Net Gitea pre-receive hook rejects `main`).