4 Commits
Author SHA1 Message Date
Brues d4931b1ba7 defeats the purpose of the addon and confuses users 2026-07-20 15:37:53 -05:00
Brues 73fd6803ab Replace Babble-Spell library with Nampower GetSpellRecField
Drop the bundled Babble-Spell-2.2 localization library and resolve spell
names from their IDs via Nampower's GetSpellRecField(id, "name"). Adds a
shared MikSBT.SpellName(id, fallback) helper that returns the client's
localized name when Nampower is present and falls back to the English name
otherwise, so DEFAULT_CONFIG still builds without a Lua error when Nampower
is absent.

Also removes the now-redundant BS:GetSpellIcon fallback in the icon
resolver (the Nampower spellIconID path already covers it) and drops the
lib from the .toc.
2026-07-19 02:46:43 -05:00
Brues 496979f486 Add BigWigs packager config to bundle both addons in one zip
Add .pkgmeta (package-as MikScrollingBattleText, move-folders pulling both addon folders to top-level siblings) and a tag-triggered GitHub Actions workflow using BigWigsMods/packager that attaches the single zip to an auto-created GitHub release. Switch both TOCs' Version to the @project-version@ substitution token so the packager stamps the git tag version.
2026-06-23 13:26:13 -05:00
Brues a5e46a62b8 Change nampower school table to sequential index keys
nampowerSchoolToType now uses sequential keys (0=Physical, then implicit 1-6 for Holy/Fire/Nature/Frost/Shadow/Arcane) instead of the previous power-of-two bitmask keys (0,1,2,4,8,16,32).
2026-06-23 13:25:13 -05:00
8 changed files with 71 additions and 10363 deletions
+23
View File
@@ -0,0 +1,23 @@
name: Package and release
on:
push:
tags:
- '**'
permissions:
contents: write
jobs:
package:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Package and create GitHub release
uses: BigWigsMods/packager@v2
env:
GITHUB_OAUTH: ${{ secrets.GITHUB_TOKEN }}
+10
View File
@@ -0,0 +1,10 @@
package-as: MikScrollingBattleText
enable-nolib-creation: no
move-folders:
MikScrollingBattleText/MikScrollingBattleText: MikScrollingBattleText
MikScrollingBattleText/MikScrollingBattleTextOptions: MikScrollingBattleTextOptions
ignore:
- README.md
File diff suppressed because it is too large Load Diff
@@ -705,15 +705,17 @@ end
-- Nampower / SuperWoW / UnitXP Infrastructure. -- Nampower / SuperWoW / UnitXP Infrastructure.
------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------
-- Spell school bitmask (Nampower) to MikCEH damage type mapping. -- Spell school index (Nampower) to MikCEH damage type mapping.
-- Nampower reports the school as a sequential index (0 = Physical, 1 = Holy,
-- 2 = Fire, ...), not the power-of-two bitmask the comment previously assumed.
local nampowerSchoolToType = { local nampowerSchoolToType = {
[0] = MikCEH.DAMAGETYPE_PHYSICAL, -- Physical [0] = MikCEH.DAMAGETYPE_PHYSICAL,
[1] = MikCEH.DAMAGETYPE_HOLY, -- Holy MikCEH.DAMAGETYPE_HOLY,
[2] = MikCEH.DAMAGETYPE_FIRE, -- Fire MikCEH.DAMAGETYPE_FIRE,
[4] = MikCEH.DAMAGETYPE_NATURE, -- Nature MikCEH.DAMAGETYPE_NATURE,
[8] = MikCEH.DAMAGETYPE_FROST, -- Frost MikCEH.DAMAGETYPE_FROST,
[16] = MikCEH.DAMAGETYPE_SHADOW, -- Shadow MikCEH.DAMAGETYPE_SHADOW,
[32] = MikCEH.DAMAGETYPE_ARCANE, -- Arcane MikCEH.DAMAGETYPE_ARCANE,
} }
-- Nampower SpellMissInfo to MikCEH action type mapping. -- Nampower SpellMissInfo to MikCEH action type mapping.
@@ -802,7 +804,7 @@ end
-- ********************************************************************************** -- **********************************************************************************
-- Converts a Nampower spell school bitmask to a MikCEH damage type. -- Converts a Nampower spell school index to a MikCEH damage type.
-- ********************************************************************************** -- **********************************************************************************
local function SchoolToDamageType(school) local function SchoolToDamageType(school)
if not school then return MikCEH.DAMAGETYPE_PHYSICAL end if not school then return MikCEH.DAMAGETYPE_PHYSICAL end
@@ -133,9 +133,6 @@ NO_ICON_CACHE = {}
-- Cache for spellId-based icon lookups (bypasses Babble-Spell and tooltip scanning). -- Cache for spellId-based icon lookups (bypasses Babble-Spell and tooltip scanning).
local spellIdIconCache = {} local spellIdIconCache = {}
-- Babble-Spell pour les icones des spells de classe
local BS = AceLibrary("Babble-Spell-2.2")
-- Damage type → color prefix lookup (lazily initialized after globals are available). -- Damage type → color prefix lookup (lazily initialized after globals are available).
local damageTypeColors local damageTypeColors
local function GetDamageTypeColor(dt) local function GetDamageTypeColor(dt)
@@ -1343,7 +1340,7 @@ function MikSBT.UpdateProfiles()
if (profile.CreationVersion < 4.1) then if (profile.CreationVersion < 4.1) then
if profile.Triggers.MSBT_TRIGGER_WINDFURY then -- Fix Windfury Trigger if profile.Triggers.MSBT_TRIGGER_WINDFURY then -- Fix Windfury Trigger
profile.Triggers.MSBT_TRIGGER_WINDFURY.TriggerSettings.SearchPatterns[1] = string.format(AURAADDEDSELFHELPFUL, string_gsub(BS["Windfury Totem"], "-", "%%-")) profile.Triggers.MSBT_TRIGGER_WINDFURY.TriggerSettings.SearchPatterns[1] = string.format(AURAADDEDSELFHELPFUL, string_gsub(MikSBT.SpellName(8512, "Windfury Totem"), "-", "%%-"))
end end
if profile.Triggers.MSBT_TRIGGER_HAND_OF_JUSTICE then -- Delete Hand of Justice Trigger if profile.Triggers.MSBT_TRIGGER_HAND_OF_JUSTICE then -- Delete Hand of Justice Trigger
@@ -1870,7 +1867,6 @@ function MikSBT.AddAnimation(animationEvent)
local name = string_gsub(animationEvent.EffectName, " %(%d+%)", "") local name = string_gsub(animationEvent.EffectName, " %(%d+%)", "")
-- DEFAULT_CHAT_FRAME:AddMessage(animationEvent.EffectName) -- DEFAULT_CHAT_FRAME:AddMessage(animationEvent.EffectName)
-- DEFAULT_CHAT_FRAME:AddMessage(name) -- DEFAULT_CHAT_FRAME:AddMessage(name)
-- texture = BS:GetSpellIcon(name)
if ICON_CACHE[strlower(name)] then if ICON_CACHE[strlower(name)] then
texture = ICON_CACHE[strlower(name)] texture = ICON_CACHE[strlower(name)]
elseif not texture and MikSBT.FindBuff(name) then elseif not texture and MikSBT.FindBuff(name) then
@@ -1897,8 +1893,6 @@ function MikSBT.AddAnimation(animationEvent)
if ok3 and tex then texture = tex; ICON_CACHE[strlower(name)] = tex end if ok3 and tex then texture = tex; ICON_CACHE[strlower(name)] = tex end
end end
end end
elseif not texture and BS and BS.GetSpellIcon and BS:GetSpellIcon(name) then
texture = BS:GetSpellIcon(name)
elseif not texture and MikSBT.FindItemIcon(name) then elseif not texture and MikSBT.FindItemIcon(name) then
texture = MikSBT.FindItemIcon(name) texture = MikSBT.FindItemIcon(name)
ICON_CACHE[strlower(name)] = MikSBT.FindItemIcon(name) ICON_CACHE[strlower(name)] = MikSBT.FindItemIcon(name)
@@ -1,5 +1,5 @@
## Interface: 11200 ## Interface: 11200
## Version: 4.43 ## Version: @project-version@
## Title: Mik's Scrolling Battle Text ## Title: Mik's Scrolling Battle Text
## Notes: Scrolls battle information around the character model. ## Notes: Scrolls battle information around the character model.
## Notes-ruRU: Прокрутка информации боя вокруг модели персонажа. ## Notes-ruRU: Прокрутка информации боя вокруг модели персонажа.
@@ -8,7 +8,6 @@
Libs\AceLibrary\AceLibrary.lua Libs\AceLibrary\AceLibrary.lua
Libs\AceLocale-2.2\AceLocale-2.2.lua Libs\AceLocale-2.2\AceLocale-2.2.lua
Libs\BabbleSpell-2.2\Babble-Spell-2.2.lua
MikScrollingBattleText-enUS.lua MikScrollingBattleText-enUS.lua
MikScrollingBattleText-frFR.lua MikScrollingBattleText-frFR.lua
+24 -13
View File
@@ -18,9 +18,20 @@ MikSBT.WINDOW_TITLE = "Mik's Scrolling Battle Text " .. MikSBT.VERSION_STRING ..
MikSBT.COMMAND = "/msbt"; MikSBT.COMMAND = "/msbt";
local BS = AceLibrary("Babble-Spell-2.2")
local L = AceLibrary("AceLocale-2.2"):new(MikSBT.MOD_NAME) local L = AceLibrary("AceLocale-2.2"):new(MikSBT.MOD_NAME)
-- Resolves a spell's localized name from its ID via Nampower's GetSpellRecField,
-- replacing the old Babble-Spell library. Falls back to the given English name when
-- Nampower is absent (vanilla has no built-in spellId->name lookup). Shared across
-- files via the MikSBT namespace; localization.lua loads first per the .toc.
function MikSBT.SpellName(id, fallback)
if GetSpellRecField then
local ok, n = pcall(GetSpellRecField, id, "name")
if ok and n and n ~= "" then return n end
end
return fallback
end
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
-- English (Default) -- English (Default)
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
@@ -205,7 +216,7 @@ MikSBT.DEFAULT_CONFIG = {
CreationVersion = MikSBT.VERSION_NUMBER, CreationVersion = MikSBT.VERSION_NUMBER,
ShowPartialEffects = true, ShowPartialEffects = true,
ShowOverheals = true, ShowOverheals = true,
ShowGameDamage = true, ShowGameDamage = false,
UseStickyCrits = true, UseStickyCrits = true,
ShowAllManaGains = false, ShowAllManaGains = false,
LowHealthSound = true, LowHealthSound = true,
@@ -1134,7 +1145,7 @@ MikSBT.DEFAULT_CONFIG = {
MSBT_TRIGGER_EXECUTE = { MSBT_TRIGGER_EXECUTE = {
EventSettings = { EventSettings = {
Show = true, Show = true,
Message = BS["Execute"].."!", Message = MikSBT.SpellName(5308, "Execute").."!",
IsSticky = true, IsSticky = true,
FontSettings = { FontSettings = {
Color = {r=1, g=1, b=0}, Color = {r=1, g=1, b=0},
@@ -1151,7 +1162,7 @@ MikSBT.DEFAULT_CONFIG = {
MSBT_TRIGGER_HAMMER_OF_WRATH = { MSBT_TRIGGER_HAMMER_OF_WRATH = {
EventSettings = { EventSettings = {
Show = true, Show = true,
Message = BS["Hammer of Wrath"].."!", Message = MikSBT.SpellName(24275, "Hammer of Wrath").."!",
IsSticky = true, IsSticky = true,
FontSettings = { FontSettings = {
Color = {r=1, g=1, b=0}, Color = {r=1, g=1, b=0},
@@ -1168,7 +1179,7 @@ MikSBT.DEFAULT_CONFIG = {
MSBT_TRIGGER_COUNTER_ATTACK = { MSBT_TRIGGER_COUNTER_ATTACK = {
EventSettings = { EventSettings = {
Show = true, Show = true,
Message = BS["Counterattack"].."!", Message = MikSBT.SpellName(19306, "Counterattack").."!",
IsSticky = true, IsSticky = true,
FontSettings = { FontSettings = {
Color = {r=1, g=1, b=0}, Color = {r=1, g=1, b=0},
@@ -1187,7 +1198,7 @@ MikSBT.DEFAULT_CONFIG = {
MSBT_TRIGGER_MONGOOSE_BITE = { MSBT_TRIGGER_MONGOOSE_BITE = {
EventSettings = { EventSettings = {
Show = true, Show = true,
Message = BS["Mongoose Bite"].."!", Message = MikSBT.SpellName(1495, "Mongoose Bite").."!",
IsSticky = true, IsSticky = true,
FontSettings = { FontSettings = {
Color = {r=1, g=1, b=0}, Color = {r=1, g=1, b=0},
@@ -1206,7 +1217,7 @@ MikSBT.DEFAULT_CONFIG = {
MSBT_TRIGGER_CLEARCAST = { MSBT_TRIGGER_CLEARCAST = {
EventSettings = { EventSettings = {
Show = true, Show = true,
Message = BS["Clearcasting"].."!", Message = MikSBT.SpellName(16246, "Clearcasting").."!",
IsSticky = true, IsSticky = true,
FontSettings = { FontSettings = {
Color = {r=1, g=1, b=0}, Color = {r=1, g=1, b=0},
@@ -1217,14 +1228,14 @@ MikSBT.DEFAULT_CONFIG = {
Classes = {MAGE=true,SHAMAN=true}, Classes = {MAGE=true,SHAMAN=true},
TriggerType = 6, TriggerType = 6,
TriggerEvents = {"CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS"}, TriggerEvents = {"CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS"},
SearchPatterns = {string.format(AURAADDEDSELFHELPFUL, BS["Clearcasting"])}, SearchPatterns = {string.format(AURAADDEDSELFHELPFUL, MikSBT.SpellName(16246, "Clearcasting"))},
}, },
Texture = "Interface\\Icons\\spell_shadow_manaburn" Texture = "Interface\\Icons\\spell_shadow_manaburn"
}, },
MSBT_TRIGGER_RIPOSTE = { MSBT_TRIGGER_RIPOSTE = {
EventSettings = { EventSettings = {
Show = true, Show = true,
Message = BS["Riposte"].."!", Message = MikSBT.SpellName(14251, "Riposte").."!",
IsSticky = true, IsSticky = true,
FontSettings = { FontSettings = {
Color = {r=1, g=1, b=0}, Color = {r=1, g=1, b=0},
@@ -1253,14 +1264,14 @@ MikSBT.DEFAULT_CONFIG = {
TriggerSettings = { TriggerSettings = {
TriggerType = 6, TriggerType = 6,
TriggerEvents = {"CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS"}, TriggerEvents = {"CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS"},
SearchPatterns = {string.format(AURAADDEDSELFHELPFUL, string.gsub(BS["Windfury Totem"], "-", "%%-"))}, --"Vous gagnez Totem Furie-des-vents" -- escape char ! SearchPatterns = {string.format(AURAADDEDSELFHELPFUL, string.gsub(MikSBT.SpellName(8512, "Windfury Totem"), "-", "%%-"))}, --"Vous gagnez Totem Furie-des-vents" -- escape char !
}, },
Texture = "Interface\\Icons\\spell_nature_cyclone" Texture = "Interface\\Icons\\spell_nature_cyclone"
}, },
MSBT_TRIGGER_NIGHTFALL = { MSBT_TRIGGER_NIGHTFALL = {
EventSettings = { EventSettings = {
Show = true, Show = true,
Message = BS["Nightfall"].."!", Message = MikSBT.SpellName(18094, "Nightfall").."!",
IsSticky = true, IsSticky = true,
FontSettings = { FontSettings = {
Color = {r=0.709, g=0, b=0.709}, Color = {r=0.709, g=0, b=0.709},
@@ -1271,14 +1282,14 @@ MikSBT.DEFAULT_CONFIG = {
Classes = {WARLOCK=true}, Classes = {WARLOCK=true},
TriggerType = 6, TriggerType = 6,
TriggerEvents = {"CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS"}, TriggerEvents = {"CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS"},
SearchPatterns = {string.format(AURAADDEDSELFHELPFUL, BS["Shadow Trance"])}, SearchPatterns = {string.format(AURAADDEDSELFHELPFUL, MikSBT.SpellName(17941, "Shadow Trance"))},
}, },
Texture = "Interface\\Icons\\spell_shadow_twilight" Texture = "Interface\\Icons\\spell_shadow_twilight"
}, },
MSBT_TRIGGER_OVERPOWER = { MSBT_TRIGGER_OVERPOWER = {
EventSettings = { EventSettings = {
Show = true, Show = true,
Message = BS["Overpower"].."!", Message = MikSBT.SpellName(7384, "Overpower").."!",
IsSticky = true, IsSticky = true,
FontSettings = { FontSettings = {
Color = {r=1, g=1, b=0}, Color = {r=1, g=1, b=0},
@@ -1,5 +1,5 @@
## Interface: 11200 ## Interface: 11200
## Version: 4.43 ## Version: @project-version@
## Title: Mik's Scrolling Battle Text Options ## Title: Mik's Scrolling Battle Text Options
## Notes: Load on demand options for Mik's Scrolling Battle Text ## Notes: Load on demand options for Mik's Scrolling Battle Text
## Notes-ruRU: Настройки для Mik's Scrolling Battle Text ## Notes-ruRU: Настройки для Mik's Scrolling Battle Text