Commit Graph

148 Commits

Author SHA1 Message Date
florian.berthold 76d441e409 fix(libs): pcall AceGUI OnGamePadButtonDown (3.3.5 has no gamepad script type)
release / release (push) Successful in 3s
3.0.9-coa.2
2026-05-29 20:23:33 +02:00
florian.berthold 7c5fb74e20 fix(sync): register OMSYNC addon-message prefix so the threat relay receives on 3.3.5 2026-05-29 10:43:54 +02:00
florian.berthold 1287d50d45 ci: respect GITHUB_REPOSITORY + tolerate per-asset upload failures
release / release (push) Successful in 3s
3.0.9-coa.1
2026-05-25 12:16:43 +02:00
florian.berthold 737361a29e ci: tolerate 404 on release-tag existence check (set -e safety)
release / release (push) Successful in 3s
2026-05-25 11:57:40 +02:00
florian.berthold 84f045c724 ci: replace release-action with curl (no go/action dep, fewer moving parts) 2026-05-25 11:56:56 +02:00
florian.berthold adccfdec30 ci: point release-action at gitea.com (github mirror doesn't exist) 2026-05-25 11:55:59 +02:00
florian.berthold c64e0baf75 ci: use per-job auto GITHUB_TOKEN (Gitea reserves GITEA_TOKEN) 2026-05-25 11:51:46 +02:00
florian.berthold 6aa3d3e221 ci: add .gitea/workflows/release.yml (tag -> per-addon zip release) 2026-05-25 11:13:44 +02:00
florian.berthold b06644e58d ci: add tools/build_zip.sh (git-archive per addon folder) 2026-05-25 11:13:44 +02:00
florian.berthold ceabd8f31b chore: align with Exiles fork-layout convention (standard .gitignore + .gitattributes) 2026-05-25 10:59:30 +02:00
florian.berthold 038931fcfb chore: move Omen addon files into Omen/ subfolder
Match the layout convention used by every other multi-addon-shape fork
in Exiles/ (Bagnon/, Kui_Nameplates/, ShadowedUnitFrames/, etc.) — the
addon's own files live in a subfolder named after the addon, with only
the repo-level README files at the root.

All moves are pure git renames (history preserved). Toc references are
relative to the toc location so nothing inside the addon changes.
2026-05-24 23:00:48 +02:00
florian.berthold 5de0660c7f fix(libs): pick up coa-ace3 9583952 (AceDB falsy-defaults PR #10 backport)
Re-sync after coa-ace3 9583952 backported WoWUIDev/Ace3 PR #10 which fixes
the AceDB-3.0 simple-value defaults metatable: previously falsy defaults
like ["*"] = false read back as nil because of `k2~=nil and v or nil`
short-circuiting. Now they round-trip correctly.
2026-05-24 19:31:43 +02:00
florian.berthold ae98c7a545 fix(libs): pick up coa-ace3 3ec2009 (BlizOptionsGroup + Settings.* CoA-compat)
Re-sync after coa-ace3 3ec2009 added two CoA-compat patches:
  - AceGUI-3.0/widgets/AceGUIContainer-BlizOptionsGroup.lua: parent
    falls back to UIParent when InterfaceOptionsFramePanelContainer is nil
  - AceConfig-3.0/AceConfigDialog-3.0: Settings.* block guarded with
    fallback to InterfaceOptions_AddCategory on WotLK-era clients

Without these, every addon registering a Blizzard Interface Options
panel via AceConfigDialog errors on load on the CoA client.
2026-05-24 17:41:30 +02:00
florian.berthold 876f5f77a9 chore(libs): bump LibDataBroker-1.1 to v4 (from canonical) 2026-05-24 17:08:20 +02:00
florian.berthold 1d5c28fb56 chore(libs): sync shared LibStub-registered libs to canonical highest
Bumps in this fork:
  - LibSharedMedia-3.0

Brings these libs in line with the highest version any Exiles fork currently
bundles, so LibStub resolution is predictable regardless of load order.
2026-05-24 17:07:52 +02:00
florian.berthold d8f3240218 fix(libs): pick up coa-ace3 d422ad3 (FileDataID → string paths)
Re-sync after coa-ace3 d422ad3 which converted 42 numeric FileDataIDs in
Set*Texture() calls back to string paths. Upstream Ace3 uses FDIDs which
silently fail on WoW 3.3.5 / CoA, rendering color swatches, checkboxes
and window chrome as solid-red placeholders.
2026-05-23 14:03:44 +02:00
florian.berthold b2cf327cd9 chore(libs): sync Ace3 to coa-ace3 (WoWUIDev master @ 52e5f2c)
Bring every embedded Ace3 / CallbackHandler / LibStub copy in line with the
canonical Exiles/coa-ace3 bundle so LibStub resolution is predictable across
all Exiles forks regardless of which addons are enabled.

Libraries updated in this fork:
  AceAddon-3.0           13  (5 → 13)
  AceConfig-3.0          3  (2 → 3)
  AceConfigCmd-3.0       14  (12 → 14)
  AceConfigDialog-3.0    92  (43 → 92)
  AceConfigRegistry-3.0  22  (11 → 22)
  AceConsole-3.0         7
  AceDB-3.0              33  (19 → 33)
  AceDBOptions-3.0       15  (11 → 15)
  AceEvent-3.0           4  (3 → 4)
  AceGUI-3.0             41  (30 → 41)
  AceLocale-3.0          6  (2 → 6)
  AceTimer-3.0           17  (5 → 17)
  CallbackHandler-1.0    8  (3 → 8)
  LibStub                2
2026-05-23 13:42:18 +02:00
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
florian.berthold 7b318475e8 CoAClassColors: mirror RAID_CLASS_COLORS into CUSTOM_CLASS_COLORS
The previous file augmented _G.RAID_CLASS_COLORS with hand-picked
placeholder colors. On both the Voljin/CoA and Ascension classic+
clients the table is already populated by FrameXML
(SharedXML/SharedConstants.lua) with all 32 class tokens, so the
augmentation was dead code (only-set-if-nil never triggered) and the
hand-picked palette diverged from what the realm itself ships.

The path that DOES still need fixing is !ClassColors. When that addon
is loaded it injects a separate _G.CUSTOM_CLASS_COLORS populated only
with the vanilla 10, and Omen.lua:914-917 prefers CUSTOM_CLASS_COLORS
over RAID_CLASS_COLORS. So on a !ClassColors-equipped client the 22
CoA tokens silently fall through and the bar reverts to
dbBar.BarColor.

Rewritten to: when CUSTOM_CLASS_COLORS exists, copy missing entries
from RAID_CLASS_COLORS — same nil-only policy. RAID_CLASS_COLORS is
left untouched (the client is authoritative). No more divergence
between Omen and the realm palette.
2026-05-08 22:48:50 +02:00
florian.berthold 5e00afc363 docs: point Gitea URL at Exiles org (now public) 2026-05-08 03:52:23 +02:00
florian.berthold b7445fc4c1 feat: CoA class colors for the 21 Ascension custom classes
Adds CoAClassColors.lua which merges 22 entries (HERO + 21 custom) into _G.RAID_CLASS_COLORS at file-load time, before Omen.lua takes its local snapshot. Vanilla 10 are left untouched. !ClassColors is also folded in if loaded.

Fixes: Omen bars rendering generic dbBar.BarColor for all CoA classes because Omen.lua:1629 looks up RAID_CLASS_COLORS[class] keyed on the file_string returned by UnitClass(), and PROPHET / MONK / FLESHWARDEN / etc. don't exist in stock Blizzard tables.
2026-05-08 03:52:23 +02:00
florian.berthold 7181066855 ascension: v3.0.9 → vendored 3.0.9 (in-game AddOns dir)
Imported from /srv/add01/wow-ascension/Interface/AddOns/Omen — the
build Ascension's WotLK 3.3.5 client ships.

Single vendored drop: Ascension's build process bundles their custom
patches with the standard CurseForge packager output (62 embedded
Libs/), and the individual patches aren't published separately.

Net delta vs upstream v3.0.9, excluding bundled libs and CRLF
normalization: 11 files, 2284+/34- — Ascension-specific adaptations
for WotLK 3.3.5.

License: All rights reserved (per .toc).
2026-05-08 03:52:23 +02:00
florian.berthold 7db36b3f0c ci: preserve upstream line endings (CRLF) for clean upstream diffs 2026-05-08 03:52:23 +02:00
Xinhuan 9f3e83e7bd Update TOC and version. 2009-12-24 05:22:19 +08:00
Xinhuan 2bb095b4ba Add an option to make Omen click-through (non-interactive), defaults off. 2009-12-24 05:12:03 +08:00
Xinhuan 32a9369e18 Optimized the bar animation code significantly. 2009-08-09 15:10:19 +08:00
Xinhuan 46bdf6cc48 Fix bar backgrounds not being set to the inverted color on login if the "Invert Bar/Text Colors" setting is on. This wasn't noticable if the bar label color was the default white text with 100% alpha. 2009-08-09 13:03:09 +08:00
Xinhuan 4d8c03b773 Minor ConfigMode behavior change. 2009-08-08 18:17:02 +08:00
Xinhuan 245b70ff43 Omen will now update its bars immediately on showing from a hidden state instead of updating on the next threat event. 2009-08-08 18:16:22 +08:00
Xinhuan 5f69963719 Update version to 3.0.8, Interface number to 30200, and repackage all the new translations contributed by users. Add libdatabroker-1-1 to tools-used in pkgmeta file. 2009-08-08 17:54:13 +08:00
Xinhuan 98d138a111 GC away some one-use initialization functions after they are run. 2009-08-08 17:36:33 +08:00
Xinhuan 5f8a470f48 Add ConfigMode support (see addon OneButtonConfig). 2009-08-08 17:27:22 +08:00
Xinhuan e2f4ee8678 Remove the LoadAddOn workaround for loading disembedded libraries which was broken before patch 3.1. 2009-08-08 16:49:10 +08:00
Xinhuan 421cd8d86b Fix GetShapeShiftFormInfo() error that occurs for DKs when they aren't in any presence. This occurs when they respec between their primary/secondary specs and the game drops them out of all presences and subsequently enter combat presence-less. 2009-07-13 02:30:23 +08:00
Xinhuan c1b3a7a9ed Update version to 3.0.7, Interface number to 30100, and repackage all the new translations contributed by users. 2009-04-15 12:34:44 +08:00
Xinhuan a0a73b55af Add "Invert Bar/Text Colors" option (default off) which swaps the bar background and text colors. 2009-04-02 05:28:06 +08:00
Xinhuan 3f0379ca14 Add /omen show and /omen hide slash commands. 2009-03-02 16:11:58 +08:00
Xinhuan 26eeb1d240 Omen now generates the config tables on demand. Omen now provides better error feedback if AceGUI-3.0-SharedMediaWidgets is not found and will continue to function (but without any config). 2009-03-02 15:58:48 +08:00
Xinhuan 623c47c922 Upvalue Omen's menu and quick menu functions. 2009-03-02 11:38:27 +08:00
Xinhuan 246181fc55 Make all 7 non-enUS locales use the localization app at http://www.wowace.com/projects/omen-threat-meter/localization/ 2009-02-15 07:39:00 +08:00
Xinhuan 869412d537 Show Omen's version number in some config strings. 2009-02-15 06:07:59 +08:00
Xinhuan 740ef06a5a Add optional !ClassColors support. 2009-02-15 06:07:09 +08:00
Xinhuan ea923fbede Update Omen version to v3.0.6 2009-01-09 11:02:22 +08:00
Xinhuan 8cdf4fa702 Update zhTW/zhCN/deDE localization. 2009-01-03 18:19:45 +08:00
Xinhuan f88be07553 Add Fade/MI Color to the options. This color is used on players under the effects of MI/Fade. 2009-01-02 10:45:34 +08:00
Xinhuan 4c06c56dea Add 410065408 threat to all players with negative threat for display purposes. English translation: You can now see the "un-Faded/un-MIed threat" of players under the effects of Fade and Mirror Image. 2009-01-02 08:28:08 +08:00
Xinhuan 7c60567b81 Omen will now remember its visible state when you log out (applicable only if auto-show/hide is off). 2008-12-19 02:58:00 +08:00
Xinhuan fc32721fef Undo LibStub OptDep change, since it comes with Ace3. Update Omen's version to 3.0.5. 2008-12-18 13:38:27 +08:00
Xinhuan 30e462095f Add LibStub to OptionalDeps, as LS/CBH external tags are no longer treated special by the packager (they are no longer in the -nolib zip). 2008-12-18 13:32:43 +08:00
Xinhuan 18c0419696 Set a player's threat to 0 (for display purposes) if the player's threat is less than 0. This occurs on Fade and Mirror Image, which gives the caster a temporary threat reduction of 410057408 (or 4.1m threat in Omen's terms). Previously Omen ignored players with negative threat. 2008-12-18 13:13:44 +08:00