_ptr_ 進行 Aura 顯示、聲音、Forbidden Aspect、taint 與戰鬥行為簽收。68914 已確認以下公開契約:
| 能力 | 68914 契約 | EAM 使用方式 |
|---|---|---|
| 容器 | CreateFrame("AuraContainer", nil, UIParent, "CustomAuraContainerTemplate") |
只在脫戰建立 |
| 單格 | AddAuraSlot(slotKey, filterString, options) |
player/target 各保留第一條穩定規則 |
| 群組 | AddAuraGroup(groupKey, filterString, options) |
合併相同 unit/filter/caster 規則 |
| 佈局 | SetAuraGroupLayout(groupKey, layout) |
脫戰一次套用 |
| 排序 | AuraContainerSortMethod.Default、AuraContainerSortDirection.Normal |
FrameXML 全域表,不使用 Enum.* |
| 外觀 | CustomAuraButtonTemplate 與 initializeFrame |
在存取限制套用前綁定 Region |
| 名稱 | AuraButton:SetSpellName(FontString) |
由 Blizzard 寫入文字,不讀 AuraData |
| 倒數 | SetDurationCooldown、SetDurationText |
由 Blizzard/DurationObject 更新 |
| 層數 | SetApplicationCount(FontString) |
不由 Lua 讀取 applications |
| 音效 | C_UnitAuras.AddAuraSound / RemoveAuraSound |
管理三種 trigger 的註冊 ID |
公開 API 沒有 RemoveAuraSlot 或 RemoveAuraGroup。刪除規則時,EAM 會建立新容器、成功後才停用舊容器;不修改 Blizzard 私有 mixin。
Native 路徑不得建立 AuraState,不得送出 EAM_AURA_STATE_CHANGED,不得進入 AlertManager、一般 Renderer、IconPool 或 Scheduler expiration token。
12.0.7 的 Legacy 路徑仍保留:
Readable AuraData -> AuraService -> AlertManager -> Renderer -> IconPool
12.1 若 Native API 不完整,後端狀態為 UNSUPPORTED;不得偷偷回退到可能讀取 Secret AuraData 的 Legacy 路徑。
| 模組 | 責任 | 禁止事項 |
|---|---|---|
AuraCapabilityService |
Interface 初篩、feature detection、後端選擇 | 只看版號就宣稱 Native |
AuraRuleCompiler |
設定轉 NATIVE_SLOT/GROUP、READABLE_LEGACY、DISPLAY_UNSUPPORTED |
讀即時 AuraData、操作 UI |
AuraContainerService |
脫戰建立、revision/fingerprint、pending rebuild | 戰鬥中改容器結構 |
NativeAuraRenderer |
initializeFrame Region 綁定與靜態錨點 |
OnUpdate、OnShow/OnHide 狀態推導 |
AuraSoundService |
註冊與解除 Sound ID | 從 AuraData 推導事件 |
alertID 產生,格式為 EAM_SLOT_* 或 EAM_GROUP_*。includeSpellIDs 僅使用玩家設定中的普通正整數 Spell ID。HELPFUL、target 推導為 HARMFUL,並記錄 auraFilterInferred limitation。secretIdentityFilterMayBeRejected,須 PTR 驗證。68914 FrameXML 已允許 AddOn 在戰鬥中建立 AuraContainer;EAM 仍採「只在脫戰改結構」的保守工程政策。這是 EAM 政策,不應誤寫成 68914 API 限制事實。
showSound 在 Native backend 預設只註冊 Added,沿用既有音效選單資產。added、applicationsIncreased、removed 設定。RemoveAuraSound。schemaVersion = 2。migrationBackups.auraSchemaV1 的可序列化 Aura 設定。unchanged,不增加 revision。離線:
powershell -NoProfile -ExecutionPolicy Bypass -File .\Tools\Run-FlowValidation.ps1 -Suite aura121
powershell -NoProfile -ExecutionPolicy Bypass -File .\Tools\Run-FlowValidation.ps1 -Suite all
遊戲內:
/eam test aura121
流程面板亦提供「12.1 Aura」按鈕。報告寫入 EAM_FLOW_TEST_REPORT_JSON,可用 Tools/Import-EAMFlowReport.ps1 回灌。
_ptr_ build 與 SymbolicLink 前檢通過。EA_* SavedVariables 保留。完成以上簽收前,只能稱為「68914 契約實作與離線流程通過」,不得稱為「12.1 PTR 實機通過」。
_ptr_ 進行 Aura 顯示、聲音、Forbidden Aspect、taint 與戰鬥行為簽收。68914 已確認以下公開契約:
| 能力 | 68914 契約 | EAM 使用方式 |
|---|---|---|
| 容器 | CreateFrame("AuraContainer", nil, UIParent, "CustomAuraContainerTemplate") |
只在脫戰建立 |
| 單格 | AddAuraSlot(slotKey, filterString, options) |
player/target 各保留第一條穩定規則 |
| 群組 | AddAuraGroup(groupKey, filterString, options) |
合併相同 unit/filter/caster 規則 |
| 佈局 | SetAuraGroupLayout(groupKey, layout) |
脫戰一次套用 |
| 排序 | AuraContainerSortMethod.Default、AuraContainerSortDirection.Normal |
FrameXML 全域表,不使用 Enum.* |
| 外觀 | CustomAuraButtonTemplate 與 initializeFrame |
在存取限制套用前綁定 Region |
| 名稱 | AuraButton:SetSpellName(FontString) |
由 Blizzard 寫入文字,不讀 AuraData |
| 倒數 | SetDurationCooldown、SetDurationText |
由 Blizzard/DurationObject 更新 |
| 層數 | SetApplicationCount(FontString) |
不由 Lua 讀取 applications |
| 音效 | C_UnitAuras.AddAuraSound / RemoveAuraSound |
管理三種 trigger 的註冊 ID |
公開 API 沒有 RemoveAuraSlot 或 RemoveAuraGroup。刪除規則時,EAM 會建立新容器、成功後才停用舊容器;不修改 Blizzard 私有 mixin。
Native 路徑不得建立 AuraState,不得送出 EAM_AURA_STATE_CHANGED,不得進入 AlertManager、一般 Renderer、IconPool 或 Scheduler expiration token。
12.0.7 的 Legacy 路徑仍保留:
Readable AuraData -> AuraService -> AlertManager -> Renderer -> IconPool
12.1 若 Native API 不完整,後端狀態為 UNSUPPORTED;不得偷偷回退到可能讀取 Secret AuraData 的 Legacy 路徑。
| 模組 | 責任 | 禁止事項 |
|---|---|---|
AuraCapabilityService |
Interface 初篩、feature detection、後端選擇 | 只看版號就宣稱 Native |
AuraRuleCompiler |
設定轉 NATIVE_SLOT/GROUP、READABLE_LEGACY、DISPLAY_UNSUPPORTED |
讀即時 AuraData、操作 UI |
AuraContainerService |
脫戰建立、revision/fingerprint、pending rebuild | 戰鬥中改容器結構 |
NativeAuraRenderer |
initializeFrame Region 綁定與靜態錨點 |
OnUpdate、OnShow/OnHide 狀態推導 |
AuraSoundService |
註冊與解除 Sound ID | 從 AuraData 推導事件 |
alertID 產生,格式為 EAM_SLOT_* 或 EAM_GROUP_*。includeSpellIDs 僅使用玩家設定中的普通正整數 Spell ID。HELPFUL、target 推導為 HARMFUL,並記錄 auraFilterInferred limitation。secretIdentityFilterMayBeRejected,須 PTR 驗證。68914 FrameXML 已允許 AddOn 在戰鬥中建立 AuraContainer;EAM 仍採「只在脫戰改結構」的保守工程政策。這是 EAM 政策,不應誤寫成 68914 API 限制事實。
showSound 在 Native backend 預設只註冊 Added,沿用既有音效選單資產。added、applicationsIncreased、removed 設定。RemoveAuraSound。schemaVersion = 2。migrationBackups.auraSchemaV1 的可序列化 Aura 設定。unchanged,不增加 revision。離線:
powershell -NoProfile -ExecutionPolicy Bypass -File .\Tools\Run-FlowValidation.ps1 -Suite aura121
powershell -NoProfile -ExecutionPolicy Bypass -File .\Tools\Run-FlowValidation.ps1 -Suite all
遊戲內:
/eam test aura121
流程面板亦提供「12.1 Aura」按鈕。報告寫入 EAM_FLOW_TEST_REPORT_JSON,可用 Tools/Import-EAMFlowReport.ps1 回灌。
_ptr_ build 與 SymbolicLink 前檢通過。EA_* SavedVariables 保留。完成以上簽收前,只能稱為「68914 契約實作與離線流程通過」,不得稱為「12.1 PTR 實機通過」。