No description
Find a file
Florian Berthold b6d42dfe5d Add OmenSync: addon-channel fallback for Vol'jin party threat
The CoA Vol'jin core does not push UnitDetailedThreatSituation data
for party-member units, so vanilla Omen draws only the local
player's bar in 5-mans. The same install on Bronzebeard/classic+
shows the whole party because that core does push the data. The gap
is server-side, not client-side, and there is no Omen flag that
fixes it.

OmenSync layers a tiny SendAddonMessage("OMSYNC", …, "PARTY"|"RAID")
relay on top:
- Each player's Omen broadcasts its own player+pet threat values
  (throttled, ~0.4s + 5% delta) every time updatethreat() succeeds
  via the API path.
- Receivers store incoming values keyed by senderGUID/mobGUID and
  serve them as a fallback in updatethreat() whenever
  UnitDetailedThreatSituation returns nil.

When the API does push data (Bronzebeard) the existing path still
wins; sync values are simply unused, so this is a no-op on healthy
realms. Both peers must run a fork that emits the OMSYNC prefix.

Wire format keeps each message under the 255-byte AddonMessage cap:
    <subjectGUID>|<mobGUID>|<threatValue>|<isTanking 0|1>
Sender's name comes from CHAT_MSG_ADDON's sender arg. Subject GUID
distinguishes the player and pet broadcasts each Omen instance
emits.

Hook in Omen.lua's local updatethreat():
- After UnitDetailedThreatSituation returns nil for any unit, try
  Omen:SyncGetThreat(guid, mobGUID).
- After it returns a value for "player" or "pet", call
  Omen:SyncBroadcastThreat to relay it to peers.
2026-05-08 23:40:17 +02:00
Libs ascension: v3.0.9 → vendored 3.0.9 (in-game AddOns dir) 2026-05-08 03:52:23 +02:00
Localization ascension: v3.0.9 → vendored 3.0.9 (in-game AddOns dir) 2026-05-08 03:52:23 +02:00
.gitattributes ci: preserve upstream line endings (CRLF) for clean upstream diffs 2026-05-08 03:52:23 +02:00
aoogah.ogg Readd Aoogah! sound from Omen2. 2008-10-28 23:53:10 +08:00
Bindings.xml ascension: v3.0.9 → vendored 3.0.9 (in-game AddOns dir) 2026-05-08 03:52:23 +02:00
Changelog-Omen-v3.0.9.txt ascension: v3.0.9 → vendored 3.0.9 (in-game AddOns dir) 2026-05-08 03:52:23 +02:00
CoAClassColors.lua CoAClassColors: mirror RAID_CLASS_COLORS into CUSTOM_CLASS_COLORS 2026-05-08 22:48:50 +02:00
icon.blp Initial commit of Omen3. 2008-10-01 21:30:47 +08:00
Omen.lua Add OmenSync: addon-channel fallback for Vol'jin party threat 2026-05-08 23:40:17 +02:00
Omen.toc Add OmenSync: addon-channel fallback for Vol'jin party threat 2026-05-08 23:40:17 +02:00
OmenSync.lua Add OmenSync: addon-channel fallback for Vol'jin party threat 2026-05-08 23:40:17 +02:00
README-CoA.md docs: point Gitea URL at Exiles org (now public) 2026-05-08 03:52:23 +02:00
README.md ascension: v3.0.9 → vendored 3.0.9 (in-game AddOns dir) 2026-05-08 03:52:23 +02:00
ResizeGrip.tga Initial commit of Omen3. 2008-10-01 21:30:47 +08:00

Omen

Omen is a threat meter.

Basically, enemies in WoW decide who to attack by deciding who is the most threatening based on the abilities you use. What Omen does is provide accurate values of your group's relative threat level on individual enemies, so that you can see when you're in danger of pulling aggro (or, if you're next on the snack list if your tank bites it). This info is usually only critical in raids, where only tanks can survive aggro, but it's useful for any multi-player situation.