Files
Nanami-DPS/Tooltip.lua
rucky 5c3f2243c4 更新发送到功能
更新仇恨计算方式 还在开发
更新其他细节
2026-03-23 10:26:31 +08:00

70 lines
2.3 KiB
Lua

local NanamiDPS = NanamiDPS
local DataStore = NanamiDPS.DataStore
local L = NanamiDPS.L
local Tooltip = {}
NanamiDPS.Tooltip = Tooltip
function Tooltip:ShowBar(bar, window)
if not bar or not bar.barData then return end
local data = bar.barData
local moduleName = window.activeModuleName
local mod = NanamiDPS.modules[moduleName]
GameTooltip:SetOwner(bar, "ANCHOR_RIGHT")
if mod and mod.GetTooltip then
local seg = DataStore:GetSegment(window.segmentIndex or 1)
mod:GetTooltip(data.id or data.name, seg, GameTooltip)
else
GameTooltip:AddLine(data.name or L["Unknown"])
if data.value then
GameTooltip:AddDoubleLine("|cffffffff" .. L["Total Amount"], "|cffffffff" .. NanamiDPS.formatNumber(data.value))
end
if data.perSecond then
GameTooltip:AddDoubleLine("|cffffffff" .. L["Per Second"], "|cffffffff" .. NanamiDPS.round(data.perSecond, 1))
end
end
GameTooltip:AddLine(" ")
GameTooltip:AddLine("|cff888888" .. L["Click to view details"])
GameTooltip:Show()
end
function Tooltip:Hide()
GameTooltip:Hide()
end
function Tooltip:ShowSpellDetail(playerName, spells, effectiveSpells, totalSum, effectiveSum, tooltip)
tooltip = tooltip or GameTooltip
if not spells then return end
tooltip:AddLine(" ")
tooltip:AddLine("|cffffd100" .. L["Details"] .. ":")
local sorted = {}
for spell, amount in pairs(spells) do
table.insert(sorted, { spell = spell, amount = amount })
end
table.sort(sorted, function(a, b) return a.amount > b.amount end)
for _, entry in ipairs(sorted) do
local pct = totalSum > 0 and NanamiDPS.round(entry.amount / totalSum * 100, 1) or 0
local rightStr
if effectiveSpells and effectiveSpells[entry.spell] then
local eff = effectiveSpells[entry.spell]
local overheal = entry.amount - eff
rightStr = string.format("|cffcc8888+%s |cffffffff%s (%.1f%%)",
NanamiDPS.formatNumber(overheal),
NanamiDPS.formatNumber(eff), pct)
else
rightStr = string.format("|cffffffff%s (%.1f%%)",
NanamiDPS.formatNumber(entry.amount), pct)
end
tooltip:AddDoubleLine("|cffffffff" .. entry.spell, rightStr)
end
end