v1.2.0
What's new
# EUI_Kdtool 更新日志 / Changelog
本文件为发布更新说明的单一来源(中英双语),CurseForge / Wago 的版本说明自动取自这里(见 `.pkgmeta` 的 `manual-changelog`)。
This file is the single source of release notes (bilingual zh-CN / en-US). CurseForge / Wago notes are taken from here automatically (see `manual-changelog` in `.pkgmeta`).
格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
新版本条目请**顶头追加**(newest-first),每个版本先中文后英文,并与游戏内「更新内容」页(`Core/Changelog/Changelog.lua` 的 `DEFAULT_PATCHES`)保持同步。
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), versions follow [Semantic Versioning](https://semver.org/).
Append new entries **at the top** (newest-first), Chinese first then English, and keep them in sync with the in-game "What's New" page (`DEFAULT_PATCHES` in `Core/Changelog/Changelog.lua`).
## [Unreleased]
## [1.2.0] - 2026-09-16
### 新增 / Added
- **鼠标增强 › 显示 GCD**:光标处新增**公共冷却(GCD)环形进度**——环随冷却逐渐填满,填满即可再次施法;不在公共冷却时不显示。环直径 16~80px(默认 28,刚好落在十字线的留空间距外侧)、填充透明度均可调,**与十字线开关相互独立**,可以只开这一个(不要十字线、只要 GCD 环)。
实现上按参考法术查公共冷却,并**过滤掉时长超过 1.6 秒的冷却**(否则真实技能冷却会被误当成 GCD);读取链对 12.x 保密值做了三层保护(`SafeCall` → table 字段筛查 → 类型检查),任一层不过就静默不显示,不会抛错。
**Mouse Enhance › Show GCD**: adds a **global cooldown (GCD) ring** at the cursor — it fills up as the GCD elapses, and a full ring means you can cast again; hidden whenever no GCD is running. The diameter is adjustable from 16 to 80px (default 28, sitting just outside the crosshair's centre gap) and so is the fill opacity. It is **independent of the crosshair toggle**, so you can enable only the ring without the lines.
Under the hood it reads the cooldown of a reference spell and **filters out anything longer than 1.6s** (otherwise a real ability cooldown would be mistaken for a GCD); the whole read chain is triple-guarded against 12.x secret values (`SafeCall` → table field check → type check) and simply draws nothing if any layer fails, instead of throwing.
- **大秘境 › 队友目标一览**:在大秘境内逐行显示每名队友当前的目标,用来判断大家是不是都在打同一只怪。队友名按职业色,**目标名按 EUI 姓名版的配色着色**——玩家(队友 / 敌方玩家)按职业色,友方 NPC 用姓名版的「友方 NPC」色,怪物按类型(读条怪蓝 / 小 Boss·Boss 紫 / 副本迷你怪 / 普通怪红);颜色直接读取 EllesmereUI 姓名版里的设置,你在那里改、这里跟着变(不套脱战变暗)。另有「仅大秘境 / 任意小队」显示范围、**面板字体大小(默认 14,面板宽度与行高跟着等比变化)**、整面板缩放、是否包含自己。**面板文字的字号以外,轮廓与阴影也跟随 EllesmereUI 的全局字体设置**(有轮廓就不加阴影,与 EUI 自己的控件观感一致)。**面板位置继承 EllesmereUI 的解锁模式**(设置面板 → 解锁模式 → Kdtool工具箱 → 队友目标一览),与「Kd 属性面板」同一套做法;面板常驻不吃鼠标,模块内不再自带「解锁拖动」开关。
⚠ **只做展示**:12.x 起**副本内生物的单位名 / GUID / ID 是保密值**。插件可以把目标名绑到文字上显示,但**不能比较**——所以没有「自动集火判断 / 谁掉队高亮」,而且现有 API 下也做不出来。判断仍靠眼睛。
**Mythic+ › Party Targets**: Lists each party member's current target, one row per member, so you can tell whether everyone is on the same mob. Party names use class colors; **target names are colored with your EUI nameplate palette** — players (party members and enemy players) use class colors, friendly NPCs use the nameplate "Friendly NPC" color, and mobs use their type color (casters blue / mini-bosses & bosses purple / dungeon mini enemies / normal enemies red). Colors are read straight from EUI's nameplate settings, so they follow whatever you change there (out-of-combat darkening is not applied). Also includes a "Mythic+ only / Any party" scope, **panel font size (default 14; panel width and row height scale with it)**, panel scale and an include-self toggle. Besides size, the panel text's **outline and shadow follow EllesmereUI's global font settings** (outline and shadow are mutually exclusive, matching EUI's own widgets). The panel's **position is handled by EllesmereUI's Unlock Mode** (Settings panel → Unlock Mode → Kdtool工具箱 → Party Targets), exactly like the Kd attribute panel; it never captures mouse input and the module no longer ships its own unlock-drag toggle.
⚠ **Display only**: since 12.x, creature unit names / GUIDs / IDs are **secret values inside instances**. An addon may bind a target name to text for display, but **cannot compare it** — so there is no automatic focus-fire detection or "who is off-target" highlight, and the current API makes one impossible. The judgement stays with your eyes.
### 变更 / Changed
- **「鼠标十字线」改名为「鼠标增强」**:模块现在含**十字线**与 **GCD 环**两个独立功能,设置项由 3 项增至 6 项(启用十字线 / 线条粗细 / 线条透明度 + 显示 GCD / GCD 环直径 / GCD 环透明度)。十字线本身的行为与原有设置项均不变,旧存档自动沿用,**无需重设**。
⚠ 与本插件早期移除的「鼠标增强(提示框增强)」**不是同一个东西**——那个模块已删除,与本模块无关。
**Renamed "Mouse Crosshair" to "Mouse Enhance"**: the module now holds two independent features — the **crosshair** and the **GCD ring** — and its options grew from 3 to 6 (Enable Crosshair / Line Thickness / Line Opacity + Show GCD / GCD Ring Diameter / GCD Ring Opacity). The crosshair itself is unchanged and your saved settings carry over — **no need to reconfigure**.
⚠ This is **not** the same thing as the "Mouse Enhance (tooltip)" module that was removed earlier — that one is gone for good and unrelated.
### 修复 / Fixed
- **内部修复(无可见症状)**:属性面板(Kd 属性面板)的字号 / 轮廓等设置原先不会立即生效——局部变量被前向引用(声明在文件后段),导致「面板可见就刷新」的三处守卫永远不成立、`ApplyPanelFont()` 成了空函数(实际靠 0.4s 刷新计时器兜住,所以一直没被发现);另有一处设置弹窗辅助函数读取了尚未声明的常量,调用即会算术报错(该函数当前无调用方,属埋着的雷)。两处均已修正,并新增自动检查脚本。
**Internal fixes (no visible symptom)**: the attribute panel's font size / outline settings did not apply immediately — the "refresh if the panel is visible" guards and `ApplyPanelFont()` referenced locals declared later in the file, so they resolved to globals and never ran (a 0.4s refresh ticker masked it); another settings-popup helper read a constant declared further down, which would have thrown on use (no caller yet). Both fixed, plus a new automated check script.
### 移除 / Removed
- **「额外任务按钮」模块整体移除**(原位置:实用功能 → 任务追踪 → 额外任务按钮):任务物品一键使用按钮、追踪距离、艺术品风格、按钮缩放等全部设置一并删除,随附的 HereBeDragons-2.0 / LibStub / CallbackHandler 三份库文件副本也一起清掉了(`Core/Libs/` 下本就有 LibStub 与 CallbackHandler,不受影响)。该模块日常使用频率很低、实际作用有限。⚠ 存档里 `KdtoolAccountDB.questButton` 的残留键无害,**无需清档**。
**Removed the "Extra Quest Button" module** (was under Utility → Quest Tracker → Extra Quest Button): the one-click quest-item button plus all of its options (tracking distance, art style, button scale, …) are gone, along with its bundled copies of HereBeDragons-2.0 / LibStub / CallbackHandler (`Core/Libs/` already ships LibStub and CallbackHandler, so nothing else is affected). The module saw little use. ⚠ A leftover `KdtoolAccountDB.questButton` key in saved variables is harmless — **no settings wipe needed**.
## [1.1.3] - 2026-09-16
### 新增 / Added
- **「字体大小」新增四组预设**:EUI 原生 / 紧凑 / 舒适 / 大字,一键套用整套字号。四组均按 1440p + UI 缩放 0.53(像素完美,1 点字号 ≈ 1 物理像素)校准,**只改字号、不动 UI 缩放**。页面顶部会实时显示你当前的「每点字号 ≈ 多少物理像素」,便于判断预设是否适用于自己的分辨率。
**Font Sizes gains four presets**: EUI Default / Compact / Comfort / Large, each applying a whole set of sizes in one click. All four are calibrated for 1440p at UI scale 0.53 (pixel-perfect, 1pt of font ≈ 1 physical pixel); they **only change font sizes and never the UI scale**. The top of the page shows your current pixels-per-point so you can tell whether the presets fit your resolution.
- **「字体大小」细分为 12 项可控文字**:除原有的好友列表 / 槽位标签 / 统计区外,新增 **顶部页签**(角色 / 头衔 / 装备,EUI 自绘的三个切换按钮)、**底部页签**(角色 / 声望 / 货币)、**升级计算页签**、**头衔列表**、**头衔搜索与提示**,以及装备方案里的 **「套装」标题 / 新建·装备·保存 / 方案名称**。此前的「页签文字」「称号面板文字」「装备方案文字」三项实际只覆盖到其中一部分文字。
**Font Sizes now exposes 12 separately controlled text groups**: alongside the existing Friends List / Slot Labels / Stats Panel, it adds **Top Tabs** (Character / Titles / Equipment — the three buttons EUI draws itself), **Bottom Tabs** (Character / Reputation / Currency), the **Upgrade Calc Tab**, the **Titles list**, the **Titles search box & hint**, and within Equipment Sets the **"Gear Sets" header / New·Equip·Save links / set name**. The previous "Tab Text", "Titles Panel Text" and "Equipment Sets Text" entries only reached part of those texts.
### 变更 / Changed
- **移除「描边与阴影」六项开关,改由 EllesmereUI 自身的框架默认值决定**:EllesmereUI 从未为这六个键提供设置界面,其读取处一律以 `false` 兜底。本插件不再写入 `charSheet*Outline` / `charSheet*Shadow`,行为与 EUI 原生一致。
**Removed the six Outline & Shadow toggles; EllesmereUI's own framework defaults now apply**: EllesmereUI never exposed a settings UI for those six keys and always falls back to `false` when reading them. The addon no longer writes `charSheet*Outline` / `charSheet*Shadow`, matching native EUI behaviour.
- **字体大小存档结构调整**:原 `fontSize.stats.{tabs,titles,equip}` 拆分为 `fontSize.tabs.* / titles.* / equip.*`。旧键不再读取(残留无害),这三项会回到 EllesmereUI 原生默认值 —— 套用一次预设即可覆盖。
**Font size saved data restructured**: the old `fontSize.stats.{tabs,titles,equip}` keys split into `fontSize.tabs.* / titles.* / equip.*`. The old keys are no longer read (harmless if left behind) and those three return to EllesmereUI's native defaults — applying a preset once overwrites them.
### 修复 / Fixed
- **「延迟容限」页专精延迟填不进去**:在数值框里输入后回车,会抛 `attempt to index global 'box' (a nil value)` 并中断保存,各职业 / 专精的自定义延迟实际无法修改。根因是 Lua 局部变量的作用域——控件在自己的初始化表达式里被回调引用,那里局部名尚未生效,闭包读到的是全局 nil;已改为「先声明、再赋值」。
**"Spell Queue Window" per-spec values could not be saved**: Pressing Enter in a number box threw `attempt to index global 'box' (a nil value)` and aborted the save, so per-class / per-spec latency values were effectively uneditable. The cause is a Lua scoping rule — the widget was referenced inside its own initializer, where the local name is not yet in scope, so the closure read a global nil; it now declares first and assigns second.
- **多处滑条右侧数值框不跟着更新**:拖动滑条时数值不再同步(同样源于「控件在自己的初始化表达式里被引用」),因回调里带了 nil 判断所以不报错、只是静默失效;涉及界面与信息、战斗与团队、实用功能三个域下的多个页面,现已全部修正。
**Slider value boxes stopped tracking the slider**: Dragging a slider no longer updated the number box next to it (same root cause — the widget referenced inside its own initializer). A nil check inside the callback kept it from erroring, so it failed silently instead; fixed across the pages in all three domains.
- **「焦点标记」启用即报错**:生成焦点标记宏文本时引用了未定义的变量,导致启用后立即抛错。已改为正确的 `/tm` 宏指令。
**"Focus Marker" errored as soon as it was enabled**: The macro text was built from an undefined variable, throwing an error the moment the feature was turned on. It now uses the proper `/tm` macro command.
## [1.1.2] - 2026-09-14
### 变更 / Changed
- **设置界面重组为三个功能域**:原先按「通用 / 高级」这类抽象层级分页,标准无法复用(同属界面类,地图增强在「通用」而商人 / 宏界面在「高级」),且体量失衡——「高级」页 93 个设置项,「材质包」页 0 项。现按「你想做什么」重划为三个域:**界面与信息**(暴雪界面增强 / 界面扩展 / 材质包 / 字体大小 / 鼠标十字线 / 属性面板 / 大秘境)、**战斗与团队**(施法提醒 / 延迟容限 / 焦点标记 / 自动误导 / 掷点增强 / 血沸监控 / 奥法之魂)、**实用功能**(地图增强 / 任务追踪 / 捕猎追踪 / 自动功能合集 / 社交 / 聊天)。原「职业工具」按功能性质拆入各域,「材质包」「字体大小」由顶层页降为子标签。旧存档无需处理,仅「上次打开到哪页」的记忆会重置。
**Settings reorganized into three functional domains**: Pages were previously split by abstract tier ("General" vs "Advanced") with no reusable criterion — the map enhancement sat under General while the merchant and macro UIs sat under Advanced — and the sizes were lopsided (93 settings under "Advanced" against zero under "Media Pack"). They are now divided by intent into three domains: **Interface & Info** (Blizzard UI Enhance / Interface Extensions / Media Pack / Font Size / Mouse Crosshair / Stats Panel / Mythic+), **Combat & Party** (Spell Alerts / Spell Queue Window / Focus Marker / Auto Misdirect / Roll Enhance / Blood Boil Monitor / Arcane Soul), and **Utility** (Map Enhance / Quest Tracker / Prey Hunt / Automation / Social / Chat). The former "Class Tools" domain is dissolved into these three, and Media Pack / Font Size step down from top-level pages to sub-tabs. Saved data needs no cleanup — only the "last page opened" memory resets.
- **「杂项」垃圾桶拆解**:原「高级 › 杂项」一个标签里挤着属性面板、掷点增强、捕猎追踪、鼠标十字线四个互不相干的模块,现各自独立成子标签。
**"Misc" dumping ground dissolved**: The single "Advanced › Misc" tab held four unrelated modules (stats panel, roll enhance, prey hunt, mouse crosshair); each now has its own sub-tab.
- **大秘境功能集中**:战绩面板、悬停信息、图标增强收进同一个「大秘境」子标签,不再散落。
**Mythic+ features consolidated**: The record panel, hover tooltip and icon enhancement now live together under a single "Mythic+" sub-tab.
- **鼠标十字线独立成子标签**:「鼠标增强」移除后,十字线的设置项迁到「界面与信息 › 鼠标十字线」,功能与三项设置(启用 / 线宽 / 透明度)不变。
**Mouse Crosshair gets its own sub-tab**: With Mouse Enhance removed, the crosshair settings move to "Interface & Info › Mouse Crosshair", with the same three options (enable / thickness / opacity).
- **本地化补全**:补齐 78 条此前缺失的英文翻译(DK 血沸监控约 45 条,另有延迟容限 / 目标施法提醒 / 地图标记 / 聊天 / 字体大小等),英文客户端不再显示中文;社交模块 15 处硬编码文案也改走本地化表,中英两表各 581 条一一对应。
**Localization completed**: Added 78 previously missing English translations (about 45 for the DK Blood Boil monitor, plus spell queue window / targeted spells / map markers / chat / font size), so English clients no longer show Chinese; 15 hard-coded strings in the social module now go through the localization table as well, and both tables hold 581 matching entries.
### 移除 / Removed
- **通用 › 鼠标增强**:提示框的等级 / 种族 / 公会 / 装等 / 大秘境评分增强整体移除。
**General › Mouse Enhance**: The tooltip enhancement for level / race / guild / item level / Mythic+ rating is removed.
- **角色面板(整页)**:观察他人 + 槽位叠加 + 快速插宝石三个子模块一并移除。
**Character Sheet (whole page)**: Inspect others, slot overlay and quick socket are all removed.
- **大秘境 › 传送喊话**:施放副本传送法术时自动喊话的功能移除。
**Mythic+ › Teleport Shout**: The auto-shout when casting a dungeon teleport is removed.
- **标记条**:顶部团队标记 / 世界光柱工具条及其按键绑定移除(「快速焦点标记」保留)。
**Marks Bar**: The raid marker / world beacon toolbar and its key bindings are removed (the Focus Marker stays).
### 修复 / Fixed
- **地图标记说明文字换行异常**:地图增强里 NPC 标记的说明把换行写成了字面反斜杠 `\n`,tooltip 中会原样显示出「\n\n-来自roymapguide」;已改为真正的换行。
**Map marker description line break**: The NPC marker description in Map Enhance wrote its line break as a literal `\n`, so the tooltip printed "…\n\n-from roymapguide" verbatim; it now breaks the line properly.
## [1.1.1] - 2026-09-12
### 新增 / Added
- **通用 › 鼠标增强 › 鼠标十字线**:移植自 OldManCursor(作者 Chrotesque)的「贯穿屏幕十字线」,按要求精简为「一个指针 + 粗细 + 透明度」——光标处四条准线(上 / 下 / 左 / 右)跟随鼠标移动,线宽 1~10px、透明度 0~100% 即时生效;未移植多层贴图、多档 profile、战斗内外双档、可见性模式、颜色 / 混合 / 旋转与设置页预览。
**General › Mouse Enhance › Mouse Crosshair**: Ported from OldManCursor (by Chrotesque). The screen-spanning crosshair is trimmed down to "one pointer + thickness + opacity" — four guide lines meeting at the cursor, with line width (1–10px) and opacity (0–100%) adjustable live. Multi-layer textures, profiles, in/out-of-combat pairs, visibility modes, color/blend/rotation and the options preview are intentionally not ported.
- **通用 › 聊天 › 按 Tab 切换频道**(新子标签):移植自 EUI_Kogotool 的 Chat 模块 —— 在聊天输入框里按 Tab 正向循环、Shift+Tab 反向循环切换频道(说 → 队伍 → 团队 → 副本 → 公会 → 官员),不在对应场景的频道自动跳过,以「/」开头的命令输入不受影响;另可开启「记住上次频道」,关闭聊天框后下次打开仍停在该频道。
**General › Chat › Tab cycles channels** (new sub-tab): Ported from EUI_Kogotool's Chat module — in the chat edit box, Tab cycles channels forward and Shift+Tab backward (Say → Party → Raid → Instance → Guild → Officer). Channels that don't apply are skipped, and slash commands are left untouched. An optional "remember the last channel" keeps the channel after you close the chat box.
### 修复 / Fixed
- **「目标施法提醒」页构建失败**:该页 8 个滑条漏传数值格式化函数,导致构建页面时抛 `attempt to call a nil value` 并中断整页渲染;已补齐全部滑条配置,并在滑条控件内部增加参数兜底与数值渲染保护,单个异常数值不再中断整页。
**"Targeted Spells" page failed to build**: All 8 sliders on that page omitted the value formatter, throwing `attempt to call a nil value` during page construction and aborting the whole page. The sliders are fixed, and the slider widget now has a parameter fallback plus safe value rendering, so a single bad value can no longer abort a page.
- **奥法之魂提醒战斗中报错 / 不触发**:模块直接读取光环数据,而 12.x 战斗中光环对插件不可读(保密值机制),会抛出 `Auras cannot be accessed when secret ... ForceTaint_Strong` 并让提醒静默失效;现已按项目既有做法加固(`pcall` 包裹 + 保密值判定 + 战斗中完全不读),并把计时依据改为设置项「涌动窗口时长」—— 战斗中读不到增益是预期路径而非依赖项。
**Arcane Soul reminder errored / never fired in combat**: The module read aura data directly, but auras are unreadable by addons during combat in Midnight (secret values), throwing `Auras cannot be accessed when secret ... ForceTaint_Strong` and silently killing the alert. It now follows the project's existing pattern (pcall + secret-value check + no aura reads in combat), and timing is driven by the new "Surge window duration" setting — reading the buff in combat is an expected dead end, not a dependency.
- **保密值加固**:目标施法提醒与 DK 血沸监控里读取单位施法 / 引导 / 光环数据的调用,统一改走安全调用(pcall 包裹 + 逐位保密值筛查),战斗中数据被保密值拦截时不再弹错,按「读不到」处理并跳过本次提醒。
**Secret-value hardening**: Spell-cast, channel and aura reads in Targeted Spells and the DK Blood Boil monitor now go through a single safe-call helper (pcall + per-value secret check), so combat-time secret values no longer throw errors — they are treated as "no data" and that alert is simply skipped.
- **好友列表字体忽大忽小**:社交模块与「字体大小」页各管一套好友行字号且取值不同,跨帧互相覆盖导致字体来回跳;现已同源(「字体大小」页把字号同步写入社交模块存档,登录时同步一次)。
**Friends-list font jumping**: The social module and the Font Size page each set the friend-row font sizes from their own store with different values, overwriting each other across frames. They now share one source — the Font Size page writes the sizes into the social module's saved data (and re-syncs on login).
## [1.1.0] - 2026-09-11
### 新增 / Added
- **职业工具 › 目标施法提醒**:移植自 TargetedSpells(作者 Xephyris-Blackrock-EU,MIT)。敌人施放指向自己 / 队友的法术时,在屏幕上弹出高亮图标或进度条;支持图标 / 进度条 / 图标+时长三种模板、按目标过滤(自己 / 队友 / 无人指向)、按内容类型与职责显示、多种发光样式、打断者提示,以及按 NPC 类型分级的 TTS 语音播报。精简版以「锚点 + X/Y」定位(未移植可视化编辑器与拖拽摆放),分组样式在职业工具页内配置,带 5 秒测试预览。
**Class Tools › Targeted Spells**: Ported from TargetedSpells (by Xephyris-Blackrock-EU, MIT). Pops up a highlighted icon or cast bar when enemies cast spells targeted at you / your party; supports three templates (icon / bar / icon+duration), target filtering (self / party / untargeted), per-content-type and per-role conditions, multiple glow styles, interrupter indication, and TTS announcements graded by NPC type. The trimmed port anchors via "anchor + X/Y" (the visual editor and drag placement are not ported); group styles are configured on the Class Tools page with a 5-second test preview.
- **职业工具 › 奥法之魂提醒**:模仿独立插件「准备奥术之魂」(作者 CN-无尽之海-简繁丶)。法师施放奥术涌动后,在其增益结束前提前数秒播放提示音,提醒准备衔接「奥术之魂」输出窗口;提前秒数可调(原插件固定 4.1 秒),音效走材质包可更换 / 试听,播报前校验奥术涌动增益仍在与角色存活。
**Class Tools › Arcane Soul Reminder**: Modeled after the standalone addon "Ready Arcane Soul" (by 简繁丶). After a Mage casts Arcane Surge, plays an alert sound a few seconds before the buff ends to prepare the "Arcane Soul" damage window; adjustable lead time (the original is fixed at 4.1s), swappable / previewable sound via the media pack, and pre-announcement checks for the Arcane Surge buff and player alive state.
- **字体大小**(新顶层页):基于 EllesmereUI 各模块字号实现的集中调整面板,含三个子标签——好友列表(名字 / 信息 / 状态 / 游戏文字四处字号)、角色面板槽位标签(装等 / 附魔 / 升级轨迹的字号、描边与阴影)、统计区与其他命名框体文字;调整即时生效,无需重载。
**Font Size** (new top-level page): A centralized font-size panel based on EUI module font implementations, with three sub-tabs — friends list (four font slots: name / info / status / game text), character sheet slot labels (item level / enchant / upgrade track size, outline and shadow), and the stats area & other named frame texts; changes apply immediately without reload.
### 变更 / Changed
- **常驻 OnUpdate 性能治理**:新增共享 Ticker 驱动(Core/Ticker.lua,订阅空闲自解除);DK血沸倒计时、大秘境菜单平滑滚动与点击外部关闭轮询、拾取条状态计时、路点追踪缩放 / 光柱写入全部改走「空闲即解绑」订阅,隐藏帧不再每帧空转。
**Resident OnUpdate performance overhaul**: Adds a shared Ticker driver (Core/Ticker.lua, self-releasing idle subscriptions); the DK Blood Boil countdown, M+ menu smooth scrolling and click-outside polling, loot roll bar status timers, and waypoint tracking scale / beacon writes all now use self-releasing subscriptions, eliminating per-frame idle work on hidden frames.
## [1.0.0] - 2026-09-11
### 亮点 / Highlights
- **Kdtool工具箱 · 首发**:在 EllesmereUI 设置面板注入独立分组,承载 Kdtool 自己的功能页;框架沿用已验证的 EUI 拓展方案,不修改 EllesmereUI 源码。
**Kdtool Toolbox · First release**: Injects an independent group into the EllesmereUI settings panel hosting Kdtool's own feature pages; built on the proven EUI extension approach, without modifying EllesmereUI source code.
- **职业工具**:移植自 SeUI(作者 semage):全职业延迟容限 + DK血沸监控。
**Class Tools**: Ported from SeUI (by semage): global spell queue tolerance + DK Blood Boil monitor.
### 新增 / Added
- **全职业延迟容限**:接管 SpellQueueWindow,可按职业与专精分别指定延迟;关闭后自动还原启用前的游戏原值。
**Global spell queue tolerance**: Takes over SpellQueueWindow with per-class and per-spec latency values; the original game value is restored automatically when disabled.
- **DK血沸监控**:鲜血死亡骑士的血沸可用提醒:图标 / 横条 / 饼状三种形式,首次与重复触发分色,支持边框与光效高亮、初次音效。
**DK Blood Boil monitor**: Blood Death Knight Blood Boil availability alert in three styles (icon / bar / pie), distinct coloring for first vs. repeated triggers, with border and glow highlighting and a first-time sound cue.
- **职业工具统一入口**:两个功能合并进侧栏「职业工具」页,用顶部标签栏切换。
**Unified Class Tools entry**: Both features merged into the sidebar "Class Tools" page, switched via a top tab bar.
### 变更 / Changed
- **皮肤模块未随迁移**:原「皮肤」页(暴雪界面皮肤 / 专精图标替换 / 第三方插件皮肤)整体不迁移。
**Skin module not migrated**: The original "Skins" page (Blizzard UI skins / spec icon replacement / third-party addon skins) is intentionally not carried over.
### 修复 / Fixed
- **设置页预览不再改写偏好**:DK血沸监控的实时预览改为页面级开关,关闭设置页后不会把「预览效果」偏好写成关闭。
**Preview no longer overwrites preference**: The DK Blood Boil monitor's live preview is now page-scoped; closing the settings page no longer writes the "preview effect" preference off.
[Unreleased]: https://github.com/unix-cc/EUI_Kdtool/compare/v1.2.0...HEAD
[1.2.0]: https://github.com/unix-cc/EUI_Kdtool/releases/tag/v1.2.0
[1.1.3]: https://github.com/unix-cc/EUI_Kdtool/releases/tag/v1.1.3
[1.1.2]: https://github.com/unix-cc/EUI_Kdtool/releases/tag/v1.1.2
[1.1.1]: https://github.com/unix-cc/EUI_Kdtool/releases/tag/v1.1.1
[1.1.0]: https://github.com/unix-cc/EUI_Kdtool/releases/tag/v1.1.0
[1.0.0]: https://github.com/unix-cc/EUI_Kdtool/releases/tag/v1.0.0
This mod has no additional files

