mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 22:51:53 -05:00
Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
b467af21c0
|
|||
acc400de6e
|
|||
cac0deeb3c
|
|||
e951d40b12
|
|||
46883e355b
|
|||
004df582ef
|
|||
b8cf6e90b0
|
|||
d0c06c7b55
|
|||
8858459b10
|
|||
86e40187a2
|
|||
62bcc17ed6
|
|||
52c9b51e8d
|
|||
aa03a0b332
|
|||
3017b5dd18
|
|||
1f54f7d41d
|
5
.pkgmeta
5
.pkgmeta
@ -37,6 +37,9 @@ externals:
|
||||
libs/AceLocale-3.0:
|
||||
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceLocale-3.0
|
||||
tag: latest
|
||||
libs/AceHook-3.0:
|
||||
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceHook-3.0
|
||||
tag: latest
|
||||
libs/LibRangeCheck-2.0:
|
||||
url: https://github.com/WeakAuras/LibRangeCheck-2.0/
|
||||
libs/LibSharedMedia-3.0:
|
||||
@ -65,6 +68,8 @@ tools-used:
|
||||
|
||||
ignore:
|
||||
- readme.md
|
||||
- FUNDING.yml
|
||||
- this_version.md
|
||||
|
||||
manual-changelog: this_version.md
|
||||
|
||||
|
3
FUNDING.yml
Normal file
3
FUNDING.yml
Normal file
@ -0,0 +1,3 @@
|
||||
github: parnic
|
||||
ko_fi: parnic
|
||||
custom: "https://www.paypal.me/parnic"
|
@ -284,6 +284,8 @@ function IceCore.prototype:Enable(userToggle)
|
||||
self.IceHUDFrame:RegisterEvent("ZONE_CHANGED")
|
||||
end
|
||||
self.IceHUDFrame:RegisterEvent("UNIT_AURA")
|
||||
self.IceHUDFrame:RegisterEvent("PLAYER_REGEN_ENABLED", IceHUD.PLAYER_REGEN_ENABLED)
|
||||
self.IceHUDFrame:RegisterEvent("PLAYER_REGEN_DISABLED", IceHUD.PLAYER_REGEN_DISABLED)
|
||||
self.IceHUDFrame:SetScript("OnEvent", function(self, event, ...)
|
||||
if (event == "PET_BATTLE_OPENING_START") then
|
||||
if IceHUD.IceCore.settings.bHideDuringPetBattles then
|
||||
|
52
IceHUD.lua
52
IceHUD.lua
@ -1,5 +1,5 @@
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||
IceHUD = LibStub("AceAddon-3.0"):NewAddon("IceHUD", "AceConsole-3.0")
|
||||
IceHUD = LibStub("AceAddon-3.0"):NewAddon("IceHUD", "AceConsole-3.0", "AceHook-3.0")
|
||||
|
||||
local IceHUD = IceHUD
|
||||
|
||||
@ -963,3 +963,53 @@ UIDropDownMenu_Initialize(IceHUD_UnitFrame_DropDown, function()
|
||||
UnitPopup_ShowMenu(IceHUD_UnitFrame_DropDown, menu, IceHUD.DropdownUnit, nil, id)
|
||||
end
|
||||
end, "MENU", nil)
|
||||
|
||||
function IceHUD:OutOfCombatWrapper(func)
|
||||
return function(...)
|
||||
return IceHUD:RunOnLeaveCombat(func, ...)
|
||||
end
|
||||
end
|
||||
|
||||
do
|
||||
local in_combat = false
|
||||
local in_lockdown = false
|
||||
local actions_to_perform = {}
|
||||
local pool = setmetatable({}, {__mode='k'})
|
||||
function IceHUD:PLAYER_REGEN_ENABLED()
|
||||
in_combat = false
|
||||
in_lockdown = false
|
||||
for i, t in ipairs(actions_to_perform) do
|
||||
t.f(unpack(t, 1, t.n))
|
||||
actions_to_perform[i] = nil
|
||||
wipe(t)
|
||||
pool[t] = true
|
||||
end
|
||||
end
|
||||
function IceHUD:PLAYER_REGEN_DISABLED()
|
||||
in_combat = true
|
||||
end
|
||||
function IceHUD:RunOnLeaveCombat(func, ...)
|
||||
if not in_combat then
|
||||
-- out of combat, call right away and return
|
||||
func(...)
|
||||
return
|
||||
end
|
||||
if not in_lockdown then
|
||||
in_lockdown = InCombatLockdown() -- still in PLAYER_REGEN_DISABLED
|
||||
if not in_lockdown then
|
||||
func(...)
|
||||
return
|
||||
end
|
||||
end
|
||||
local t = next(pool) or {}
|
||||
pool[t] = nil
|
||||
|
||||
t.f = func
|
||||
local n = select('#', ...)
|
||||
t.n = n
|
||||
for i = 1, n do
|
||||
t[i] = select(i, ...)
|
||||
end
|
||||
actions_to_perform[#actions_to_perform+1] = t
|
||||
end
|
||||
end
|
||||
|
@ -1,5 +1,5 @@
|
||||
## Interface: 90207
|
||||
## Interface-Retail: 90207
|
||||
## Interface: 100000
|
||||
## Interface-Retail: 100000
|
||||
## Interface-Classic: 11403
|
||||
## Interface-BCC: 20504
|
||||
## Interface-Wrath: 30400
|
||||
|
@ -1,5 +1,5 @@
|
||||
## Interface: 90207
|
||||
## Interface-Retail: 90207
|
||||
## Interface: 100000
|
||||
## Interface-Retail: 100000
|
||||
## Interface-Classic: 11403
|
||||
## Interface-BCC: 20504
|
||||
## Interface-Wrath: 30400
|
||||
|
2
LICENSE
2
LICENSE
@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 parnic
|
||||
Copyright (c) 2021-2022 parnic
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
13
changelog.md
13
changelog.md
@ -1,5 +1,18 @@
|
||||
# Changelog
|
||||
|
||||
v1.14.2:
|
||||
|
||||
- Fix CC and Invuln modules not showing immediately when they should.
|
||||
|
||||
v1.14.1:
|
||||
|
||||
- Fix Hide Party feature on pre-10.0 clients.
|
||||
|
||||
v1.14.0:
|
||||
|
||||
- 10.0 compatibility
|
||||
- Renamed Anima Charged combo points to Charged, and removed specific references to Kyrian.
|
||||
|
||||
v1.13.17.3:
|
||||
|
||||
- Packaged latest LibDogTag-Unit to work around crash in Wrath Classic client.
|
||||
|
@ -11,6 +11,7 @@
|
||||
<Include file="libs\AceConsole-3.0\AceConsole-3.0.xml"/>
|
||||
<Include file="libs\AceAddon-3.0\AceAddon-3.0.xml"/>
|
||||
<Include file="libs\AceLocale-3.0\AceLocale-3.0.xml"/>
|
||||
<Include file="libs\AceHook-3.0\AceHook-3.0.xml"/>
|
||||
<Include file="libs\LibDogTag-3.0\lib.xml"/>
|
||||
<Include file="libs\LibDogTag-Unit-3.0\lib.xml"/>
|
||||
<Script file="libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua"/>
|
||||
|
@ -3,6 +3,11 @@ local CastBar = IceCore_CreateClass(IceCastBar)
|
||||
|
||||
local IceHUD = _G.IceHUD
|
||||
|
||||
local CastingBarFrame = CastingBarFrame
|
||||
if not CastingBarFrame then
|
||||
CastingBarFrame = PlayerCastingBarFrame
|
||||
end
|
||||
|
||||
CastBar.prototype.spellCastSent = nil
|
||||
|
||||
-- Constructor --
|
||||
|
@ -468,6 +468,9 @@ function IceClassPowerCounter.prototype:DisplayCounter()
|
||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateRunePower")
|
||||
self:RegisterEvent("UNIT_DISPLAYPOWER", "UpdateRunePower")
|
||||
self:RegisterEvent("PLAYER_ENTERING_WORLD", "EnteringWorld")
|
||||
if IceHUD.EventExistsUnitMaxPower then
|
||||
self:RegisterEvent("UNIT_MAXPOWER", "UpdateRunePower")
|
||||
end
|
||||
|
||||
if (self.moduleSettings.hideBlizz) then
|
||||
self:HideBlizz()
|
||||
@ -497,8 +500,22 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
||||
if IceHUD.WowVer >= 70000 then
|
||||
local numMax = UnitPowerMax(self.unit, self.unitPower)
|
||||
if numMax ~= self.numRunes then
|
||||
local oldMax = self.numRunes
|
||||
self.numRunes = numMax
|
||||
self:CreateFrame()
|
||||
self:SetDisplayMode()
|
||||
|
||||
for i=self.numRunes+1, oldMax do
|
||||
if self.frame.graphical[i] then
|
||||
self.frame.graphical[i]:Hide()
|
||||
end
|
||||
end
|
||||
for i=oldMax+1, self.numRunes do
|
||||
if self:GetRuneMode() ~= "Numeric" then
|
||||
self.frame.graphical[i]:Show()
|
||||
end
|
||||
self:HideRune(i)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -567,11 +584,7 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
||||
end
|
||||
end
|
||||
else
|
||||
if self.moduleSettings.inactiveDisplayMode == "Darkened" then
|
||||
self.frame.graphical[i].rune:SetVertexColor(0, 0, 0)
|
||||
elseif self.moduleSettings.inactiveDisplayMode == "Hidden" then
|
||||
self.frame.graphical[i]:Hide()
|
||||
end
|
||||
self:HideRune(i)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -592,6 +605,19 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
||||
end
|
||||
end
|
||||
|
||||
function IceClassPowerCounter.prototype:HideRune(i)
|
||||
if self:GetRuneMode() == "Numeric" then
|
||||
self.frame.graphical[i].Hide()
|
||||
return
|
||||
end
|
||||
|
||||
if self.moduleSettings.inactiveDisplayMode == "Darkened" then
|
||||
self.frame.graphical[i].rune:SetVertexColor(0, 0, 0)
|
||||
elseif self.moduleSettings.inactiveDisplayMode == "Hidden" then
|
||||
self.frame.graphical[i]:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
function IceClassPowerCounter.prototype:StartRunesFullAnimation()
|
||||
if not self.AnimUpdate then
|
||||
self.AnimUpdate = function() self:UpdateRuneAnimation() end
|
||||
@ -717,6 +743,9 @@ function IceClassPowerCounter.prototype:CreateRuneFrame()
|
||||
for i=1, self.numRunes do
|
||||
self:CreateRune(i)
|
||||
end
|
||||
for i=self.numRunes+1, #self.frame.graphical do
|
||||
self.frame.graphical[i]:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
function IceClassPowerCounter.prototype:CreateRune(i)
|
||||
@ -758,7 +787,13 @@ function IceClassPowerCounter.prototype:CreateRune(i)
|
||||
end
|
||||
end
|
||||
|
||||
function IceClassPowerCounter.prototype:SetupNewRune(rune)
|
||||
end
|
||||
|
||||
function IceClassPowerCounter.prototype:SetupRuneTexture(rune)
|
||||
if rune > #self.runeCoords then
|
||||
self:SetupNewRune(rune)
|
||||
end
|
||||
if not rune or rune < 1 or rune > #self.runeCoords then
|
||||
return
|
||||
end
|
||||
|
@ -21,7 +21,7 @@ function ComboPoints.prototype:init()
|
||||
if AnticipationExists then
|
||||
self:SetDefaultColor("AnticipationPoints", 1, 0, 1)
|
||||
end
|
||||
self:SetDefaultColor("KyrianAnimaComboPoint", 0.3137254901960784, 0.3725490196078432, 1)
|
||||
self:SetDefaultColor("ChargedComboPoint", 0.3137254901960784, 0.3725490196078432, 1)
|
||||
self.scalingEnabled = true
|
||||
end
|
||||
|
||||
@ -222,16 +222,16 @@ function ComboPoints.prototype:GetOptions()
|
||||
order = 35
|
||||
}
|
||||
|
||||
opts["bShowAnimaCharged"] = {
|
||||
opts["bShowCharged"] = {
|
||||
type = 'toggle',
|
||||
width = 'double',
|
||||
name = L["Show Anima-charged points"],
|
||||
desc = L["Whether or not to color an anima-charged combo point a separate color. Set the KyrianAnimaComboPoint color to the color you would like it to be."],
|
||||
name = L["Show Charged points"],
|
||||
desc = L["Whether or not to color a charged combo point a separate color. Set the ChargedComboPoint color to the color you would like it to be."],
|
||||
get = function()
|
||||
return self.moduleSettings.bShowAnimaCharged
|
||||
return self.moduleSettings.bShowCharged
|
||||
end,
|
||||
set = function(info, v)
|
||||
self.moduleSettings.bShowAnimaCharged = v
|
||||
self.moduleSettings.bShowCharged = v
|
||||
self:UpdateChargedComboPoints()
|
||||
end,
|
||||
disabled = function()
|
||||
@ -261,7 +261,7 @@ function ComboPoints.prototype:GetDefaultSettings()
|
||||
defaults["comboGap"] = 0
|
||||
defaults["showAnticipation"] = true
|
||||
defaults["bShowWithNoTarget"] = true
|
||||
defaults["bShowAnimaCharged"] = true
|
||||
defaults["bShowCharged"] = true
|
||||
return defaults
|
||||
end
|
||||
|
||||
@ -440,8 +440,8 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
||||
g = g - ((1 / maxComboPoints)*i)
|
||||
end
|
||||
|
||||
if self.moduleSettings.bShowAnimaCharged and self:IsAnimaChargedPoint(i) then
|
||||
self.frame.graphical[i].texture:SetVertexColor(self:GetColor("KyrianAnimaComboPoint"))
|
||||
if self.moduleSettings.bShowCharged and self:IsChargedPoint(i) then
|
||||
self.frame.graphical[i].texture:SetVertexColor(self:GetColor("ChargedComboPoint"))
|
||||
else
|
||||
self.frame.graphical[i].texture:SetVertexColor(r, g, b)
|
||||
end
|
||||
@ -489,7 +489,7 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
||||
end
|
||||
end
|
||||
|
||||
function ComboPoints.prototype:IsAnimaChargedPoint(point)
|
||||
function ComboPoints.prototype:IsChargedPoint(point)
|
||||
if not self.chargedPowerPoints then
|
||||
return false
|
||||
end
|
||||
|
@ -142,7 +142,9 @@ function ComboPointsBar.prototype:UpdateComboPoints(...)
|
||||
end
|
||||
|
||||
self:SetBottomText1(points or "0")
|
||||
self:SetBottomText2(self.chargedPowerPointIndex)
|
||||
if self.chargedPowerPointIndex then
|
||||
self:SetBottomText2(self.chargedPowerPointIndex)
|
||||
end
|
||||
end
|
||||
|
||||
function ComboPointsBar.prototype:Update()
|
||||
|
@ -10,6 +10,7 @@ PlayerHealth.prototype.absorbAmount = 0
|
||||
local configMode = false
|
||||
local HealComm
|
||||
local incomingHealAmt = 0
|
||||
local groupEvent = IceHUD.EventExistsGroupRosterUpdate and "GROUP_ROSTER_UPDATE" or "PARTY_MEMBERS_CHANGED"
|
||||
|
||||
-- Constructor --
|
||||
function PlayerHealth.prototype:init()
|
||||
@ -81,11 +82,7 @@ function PlayerHealth.prototype:Enable(core)
|
||||
self:RegisterEvent("PLAYER_REGEN_DISABLED", "CheckCombat")
|
||||
|
||||
self:RegisterEvent("PARTY_LEADER_CHANGED", "CheckLeader")
|
||||
if IceHUD.EventExistsGroupRosterUpdate then
|
||||
self:RegisterEvent("GROUP_ROSTER_UPDATE", "CheckLeader")
|
||||
else
|
||||
self:RegisterEvent("PARTY_MEMBERS_CHANGED", "CheckLeader")
|
||||
end
|
||||
self:RegisterEvent(groupEvent, "CheckLeader")
|
||||
if GetLFGProposal then
|
||||
self:RegisterEvent("LFG_PROPOSAL_UPDATE", "CheckPartyRole")
|
||||
self:RegisterEvent("LFG_PROPOSAL_FAILED", "CheckPartyRole")
|
||||
@ -1421,43 +1418,78 @@ function PlayerHealth.prototype:HideBlizz()
|
||||
PlayerFrame:SetParent(self.PlayerFrameParent)
|
||||
end
|
||||
|
||||
local parents = {}
|
||||
local hide_frame = IceHUD:OutOfCombatWrapper(function(self) self:Hide() end)
|
||||
|
||||
local function hook_frames(...)
|
||||
for i = 1, select("#", ...) do
|
||||
local frame = select(i, ...)
|
||||
frame:UnregisterAllEvents()
|
||||
if not IceHUD:IsHooked(frame, "OnShow") then
|
||||
IceHUD:SecureHookScript(frame, "OnShow", hide_frame)
|
||||
end
|
||||
frame:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
local function unhook_frame(frame)
|
||||
if IceHUD:IsHooked(frame, "OnShow") then
|
||||
IceHUD:Unhook(frame, "OnShow")
|
||||
local parent = parents[frame]
|
||||
if parent then
|
||||
frame:SetParent(parent)
|
||||
end
|
||||
elseif IceHUD:IsHooked(frame, "Show") then
|
||||
IceHUD:Unhook(frame, "Show")
|
||||
IceHUD:Unhook(frame, "SetPoint")
|
||||
end
|
||||
end
|
||||
|
||||
local function unhook_frames(...)
|
||||
for i = 1, select("#", ...) do
|
||||
local frame = select(i, ...)
|
||||
unhook_frame(frame)
|
||||
local handler = frame:GetScript("OnLoad")
|
||||
if handler then
|
||||
handler(frame)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function PlayerHealth.prototype:HideBlizzardParty()
|
||||
if self.combat then
|
||||
self.pendingBlizzardPartyHide = true
|
||||
return
|
||||
end
|
||||
|
||||
-- Both Pitbull 4 and Xperl use these exact code, so we use it too.
|
||||
for i = 1, MAX_PARTY_MEMBERS do
|
||||
local party = _G['PartyMemberFrame'..i]
|
||||
party:UnregisterAllEvents()
|
||||
party:Hide()
|
||||
party.Show = function() end
|
||||
if PartyFrame then
|
||||
PartyFrame:Hide()
|
||||
PartyFrame:UnregisterEvent(groupEvent)
|
||||
else
|
||||
for i = 1, MAX_PARTY_MEMBERS do
|
||||
local frame = _G["PartyMemberFrame" .. i]
|
||||
frame:SetAttribute("statehidden", true)
|
||||
hook_frames(frame)
|
||||
end
|
||||
UIParent:UnregisterEvent(groupEvent)
|
||||
end
|
||||
|
||||
UIParent:UnregisterEvent('RAID_ROSTER_UPDATE')
|
||||
|
||||
end
|
||||
|
||||
|
||||
function PlayerHealth.prototype:ShowBlizzardParty()
|
||||
-- Both Pitbull 4 and Xperl use these exact code, so we use it too.
|
||||
for i = 1, MAX_PARTY_MEMBERS do
|
||||
local frame = _G["PartyMemberFrame"..i]
|
||||
if frame then
|
||||
frame.Show = nil
|
||||
frame:GetScript("OnLoad")(frame)
|
||||
if IceHUD.WowVer >= 50000 then
|
||||
frame:GetScript("OnEvent")(frame, "GROUP_ROSTER_UPDATE")
|
||||
else
|
||||
frame:GetScript("OnEvent")(frame, "PARTY_MEMBERS_CHANGED")
|
||||
end
|
||||
|
||||
PartyMemberFrame_UpdateMember(frame)
|
||||
if PartyFrame then
|
||||
PartyFrame:Show()
|
||||
PartyFrame:Layout()
|
||||
PartyFrame:RegisterEvent(groupEvent)
|
||||
else
|
||||
for i = 1, MAX_PARTY_MEMBERS do
|
||||
local frame = _G["PartyMemberFrame" .. i]
|
||||
frame:SetAttribute("statehidden", nil)
|
||||
unhook_frames(frame)
|
||||
frame:GetScript("OnEvent")(frame, groupEvent)
|
||||
end
|
||||
UIParent:RegisterEvent(groupEvent)
|
||||
end
|
||||
|
||||
UIParent:RegisterEvent("RAID_ROSTER_UPDATE")
|
||||
end
|
||||
|
||||
--function PlayerHealth.prototype:ShowBlizzParty()
|
||||
|
@ -115,7 +115,9 @@ end
|
||||
|
||||
function PlayerInfo.prototype:ShowBlizz()
|
||||
BuffFrame:Show()
|
||||
TemporaryEnchantFrame:Show()
|
||||
if TemporaryEnchantFrame then
|
||||
TemporaryEnchantFrame:Show()
|
||||
end
|
||||
|
||||
BuffFrame:GetScript("OnLoad")(BuffFrame)
|
||||
end
|
||||
@ -123,7 +125,9 @@ end
|
||||
|
||||
function PlayerInfo.prototype:HideBlizz()
|
||||
BuffFrame:Hide()
|
||||
TemporaryEnchantFrame:Hide()
|
||||
if TemporaryEnchantFrame then
|
||||
TemporaryEnchantFrame:Hide()
|
||||
end
|
||||
|
||||
BuffFrame:UnregisterAllEvents()
|
||||
end
|
||||
|
@ -274,7 +274,7 @@ end
|
||||
function RollTheBones.prototype:MyOnUpdate()
|
||||
RollTheBones.super.prototype.MyOnUpdate(self)
|
||||
if self.bUpdateRtb then
|
||||
self:UpdateRollTheBones(nil, self.unit, true)
|
||||
self:UpdateRollTheBones("internal", self.unit)
|
||||
end
|
||||
if self.target or self.moduleSettings.bShowWithNoTarget then
|
||||
self:UpdateDurationBar()
|
||||
@ -296,13 +296,14 @@ local function ShouldHide()
|
||||
return not HasSpell(193316)
|
||||
end
|
||||
|
||||
function RollTheBones.prototype:UpdateRollTheBones(event, unit, fromUpdate)
|
||||
function RollTheBones.prototype:UpdateRollTheBones(event, unit)
|
||||
if unit and unit ~= self.unit then
|
||||
return
|
||||
end
|
||||
|
||||
local now = GetTime()
|
||||
local remaining = nil
|
||||
local fromUpdate = event == "internal"
|
||||
|
||||
if not fromUpdate then
|
||||
rtbDuration, remaining, rtbCount = self:GetBuffDuration(self.unit, RtBSet)
|
||||
|
@ -134,6 +134,9 @@ function Runes.prototype:GetOptions()
|
||||
disabled = function()
|
||||
return not self.moduleSettings.enabled
|
||||
end,
|
||||
hidden = function()
|
||||
return not PlayerFrame_HideVehicleTexture
|
||||
end,
|
||||
order = 32
|
||||
}
|
||||
|
||||
@ -581,6 +584,10 @@ local function hook_playerframe()
|
||||
end
|
||||
|
||||
function Runes.prototype:HideBlizz()
|
||||
if not PlayerFrame_HideVehicleTexture then
|
||||
return
|
||||
end
|
||||
|
||||
RuneFrame:Hide()
|
||||
RuneFrame:UnregisterAllEvents()
|
||||
|
||||
|
@ -277,7 +277,7 @@ end
|
||||
function SliceAndDice.prototype:MyOnUpdate()
|
||||
SliceAndDice.super.prototype.MyOnUpdate(self)
|
||||
if self.bUpdateSnd then
|
||||
self:UpdateSliceAndDice(nil, self.unit, true)
|
||||
self:UpdateSliceAndDice("internal", self.unit)
|
||||
end
|
||||
if self.target or self.moduleSettings.bShowWithNoTarget then
|
||||
self:UpdateDurationBar()
|
||||
@ -312,13 +312,14 @@ local function ShouldHide()
|
||||
-- with different durations
|
||||
end
|
||||
|
||||
function SliceAndDice.prototype:UpdateSliceAndDice(event, unit, fromUpdate)
|
||||
function SliceAndDice.prototype:UpdateSliceAndDice(event, unit)
|
||||
if unit and unit ~= self.unit then
|
||||
return
|
||||
end
|
||||
|
||||
local now = GetTime()
|
||||
local remaining = nil
|
||||
local fromUpdate = event == "internal"
|
||||
|
||||
if not fromUpdate or IceHUD.WowVer < 30000 then
|
||||
sndDuration, remaining = self:GetBuffDuration(self.unit, sndBuffName)
|
||||
|
@ -375,11 +375,12 @@ end
|
||||
|
||||
function TargetCC.prototype:MyOnUpdate()
|
||||
TargetCC.super.prototype.MyOnUpdate(self)
|
||||
self:UpdateTargetDebuffs(nil, self.unit, true)
|
||||
self:UpdateTargetDebuffs("internal", self.unit)
|
||||
end
|
||||
|
||||
function TargetCC.prototype:UpdateTargetDebuffs(event, unit, isUpdate)
|
||||
function TargetCC.prototype:UpdateTargetDebuffs(event, unit)
|
||||
local name, duration, remaining
|
||||
local isUpdate = event == "internal"
|
||||
|
||||
if not isUpdate or not self.lastUpdateTime then
|
||||
self.debuffName, self.debuffDuration, self.debuffRemaining = self:GetMaxDebuffDuration(self.unit, self.debuffList)
|
||||
|
@ -191,11 +191,12 @@ end
|
||||
|
||||
function TargetInvuln.prototype:MyOnUpdate()
|
||||
TargetInvuln.super.prototype.MyOnUpdate(self)
|
||||
self:UpdateTargetBuffs(nil, self.unit, true)
|
||||
self:UpdateTargetBuffs("internal", self.unit)
|
||||
end
|
||||
|
||||
function TargetInvuln.prototype:UpdateTargetBuffs(event, unit, isUpdate)
|
||||
function TargetInvuln.prototype:UpdateTargetBuffs(event, unit)
|
||||
local name, duration, remaining
|
||||
local isUpdate = event == "internal"
|
||||
|
||||
if not isUpdate or not self.lastUpdateTime then
|
||||
self.buffName, self.buffDuration, self.buffRemaining = self:GetMaxbuffDuration(self.unit, self.buffList)
|
||||
|
@ -1,22 +1,14 @@
|
||||
# Changelog
|
||||
|
||||
v1.13.17.3:
|
||||
v1.14.2:
|
||||
|
||||
- Packaged latest LibDogTag-Unit to work around crash in Wrath Classic client.
|
||||
- Fix CC and Invuln modules not showing immediately when they should.
|
||||
|
||||
v1.13.17.2:
|
||||
v1.14.1:
|
||||
|
||||
- Fixed Runes disappearing for Death Knights on Wrath Classic when using the dual spec feature.
|
||||
- Fix Hide Party feature on pre-10.0 clients.
|
||||
|
||||
v1.13.17.1:
|
||||
v1.14.0:
|
||||
|
||||
- Fixed Priests hanging on login on the retail client.
|
||||
|
||||
v1.13.17:
|
||||
|
||||
- Internal maintainability updates. There are so many versions of the game now, updates need to be as easy and safe as possible.
|
||||
- Improved reliability of Slice-n-Dice predicted length when changing talents.
|
||||
- Improved various modules's ability to respond to the player's maximum power type changing (going from 5 max combo points to 6, for example).
|
||||
- Fixed invalid texture layers specified on a variety of textures (10.0 fix).
|
||||
- Removed HolyPowerNumeric text from the configuration options of several modules that it didn't belong with.
|
||||
- Fixed combo points in Classic Era clients.
|
||||
- 10.0 compatibility
|
||||
- Renamed Anima Charged combo points to Charged, and removed specific references to Kyrian.
|
||||
|
Reference in New Issue
Block a user