Add WoW Midnight 12.0.1 support#106
Closed
Timikana wants to merge 1 commit into
Closed
Conversation
511e5e1 to
7979f5b
Compare
Adds a new Core.lua loaded only on retail/Midnight that enhances Blizzard's native Floating Combat Text instead of replacing it. Classic/TBC/Wrath/Cata/Mists continue to load the original code unchanged (zero regression). Philosophy: Blizzard's FCT already filters source perfectly (only your damage shows). Rather than fight CLEU taint on Midnight, we let Blizzard handle damage numbers and provide font/CVar controls plus (WIP) spell icons on nameplates. Features: - Font selector with live preview (Blizzard + LibSharedMedia) - Text scale, gravity, ramp duration, ramp power sliders - Animation style dropdown (Scroll Up / Scroll Down / Arc) - Font outline (Outline/Thick/Monochrome/None) and shadow - Separate UI/SCT font option - All FCT display toggles (Dodge/Parry/Miss, Spell Mechanics, Auras, Auto-attacks, Combo Points, Reactives, Damage Reduction, Low Mana/Health, Rep Changes, Honor Gains) - Standalone draggable options panel (/nsct) + WoW Settings menu - French + English localization (auto-detect via GetLocale) - /nsctdebug for diagnostics - NiceDamage conflict detection and warning ALPHA (not production-ready): - Spell icons on nameplates (UNIT_COMBAT + spell tracking) — works partially but has limitations on Midnight. Disabled by default; can be enabled via /nsct > Alpha Function section. Midnight API workarounds: - Secret values: spellIDs and GUIDs wrapped in pcall, no == 0 compares, never used as table keys (tostring stays secret) - UNIT_COMBAT only processes nameplateX tokens (avoids party/raid GetNamePlateForUnit rejections and target duplicates) - Settings.RegisterCanvasLayoutCategory wrapped in pcall with standalone frame fallback - MinimalSliderTemplate wrapped in pcall with basic slider fallback - Font applied at file parse, ADDON_LOADED, PLAYER_LOGIN, and PLAYER_ENTERING_WORLD (NiceDamage approach) with path validation and LSM fallback Files: - Core.lua (new, ~940 lines) — single-file Midnight code - NameplateSCT.toc — loads Core.lua on retail (11.0/12.0) - CHANGELOG.md (new) - README.md — updated documentation
7979f5b to
803946d
Compare
Owner
|
I have no interest in trying to support this with workarounds. Feel free to use it for personal use. (leaving it open if others want to try, but it wont be merged.) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds WoW Midnight (12.0.1) compatibility via a new
Core.luafile loaded only on retail. Classic/TBC/Wrath/Cata/Mists continue to load the original code unchanged — zero regression on any pre-Midnight client.Philosophy
On Midnight, CLEU has intermittent taint issues and
UNIT_COMBATdoesn't exposesourceGUID— making classic source filtering unreliable. Rather than fight this,Core.luaenhances Blizzard's native Floating Combat Text (which already filters perfectly to show only your damage) by providing font/CVar controls and (alpha) spell icons on nameplates.Inspired by NiceDamage and MikScrollingBattleText.
Features (stable)
/nsct+ entry in WoW's AddOns settings menuGetLocale)/nsctdebugfor diagnosticsDAMAGE_TEXT_FONT)UNIT_COMBAT+ spell tracking) — works partially but has known limitations on Midnight. Disabled by default; can be enabled in/nsct> Alpha Function - Spell Icons section. Clearly labeled as alpha in the UI.Midnight API workarounds
pcall, never compared with== 0directly, never used as table keys (tostringstays secret on Midnight)UNIT_COMBATonly processesnameplateXtokens (avoids party/raid rejections inGetNamePlateForUnitand target/nameplateX duplicates)Settings.RegisterCanvasLayoutCategorywrapped inpcallwith standalone frame fallbackMinimalSliderTemplatewrapped inpcallwith bare slider fallbackADDON_LOADED,PLAYER_LOGIN, andPLAYER_ENTERING_WORLD(matching NiceDamage's timing) with path validation and LSM fallbackFiles
Core.lua(new, ~940 lines) — single-file Midnight codeNameplateSCT.toc— loadsCore.luaon retail (11.0 / 12.0)CHANGELOG.md(new)README.md— updated documentationClassic TOC files (
_Vanilla,_TBC,_Wrath,_Cata,_Mists),NameplateSCT.lua,Locales/,Libs/, andembeds.xmlare not touched.Test plan
/nsctopens options panel (standalone draggable frame)/nsctdebugprints full diagnostic info