Reverted back to my latest revision. If you want to make changes to IceHUD, make a branch - don't touch this unless it's a clear bug fix and I'm nowhere to be found

This commit is contained in:
iceroth
2006-10-02 23:47:15 +00:00
parent 5dc8d0b9ac
commit 86d03baa22
2 changed files with 13 additions and 172 deletions

View File

@ -5,13 +5,13 @@ local SpellCache = AceLibrary("SpellCache-1.0")
local CastBar = AceOO.Class(IceBarElement)
CastBar.Actions = { None = 0, Cast = 1, Channel = 2, Instant = 3, Success = 4, Failure = 5, AutoShot =6 }
CastBar.Actions = { None = 0, Cast = 1, Channel = 2, Instant = 3, Success = 4, Failure = 5 }
CastBar.prototype.action = nil
CastBar.prototype.actionStartTime = nil
CastBar.prototype.actionMessage = nil
IceHUDAutoCastLastStart = nil;
-- Constructor --
function CastBar.prototype:init()
@ -21,7 +21,6 @@ function CastBar.prototype:init()
self:SetDefaultColor("CastChanneling", 117, 113, 161)
self:SetDefaultColor("CastSuccess", 242, 242, 70)
self:SetDefaultColor("CastFail", 1, 0, 0)
self:SetDefaultColor("CastAutoshot", 0, 0, 1)
self.delay = 0
self.action = CastBar.Actions.None
@ -38,10 +37,6 @@ function CastBar.prototype:GetDefaultSettings()
settings["offset"] = 0
settings["flashInstants"] = "Caster"
settings["flashFailures"] = "Caster"
settings["lastInstant"] = nil;
settings["lastStart"] = nil;
settings["useLast"] = nil;
settings["showAutoCast"] = 1;
return settings
end
@ -82,23 +77,6 @@ function CastBar.prototype:GetOptions()
validate = { "Always", "Caster", "Never" },
order = 41
}
opts["showAutoCast"] = {
type = "toggle",
name = "Show Autocasts",
desc = "Show the your autoshots in cast bar",
get = function()
return self.moduleSettings.showAutoCast
end,
set = function(value)
self.moduleSettings.showAutoCast = value
self:Update(self.unit)
end,
disabled = function()
return not self.moduleSettings.enabled
end,
order = 42
}
return opts
end
@ -153,44 +131,12 @@ end
-- OnUpdate handler
function CastBar.prototype:OnUpdate()
-- safety catch
if (self.action == CastBar.Actions.None) then
IceHUD:Debug("Stopping action ", self.action)
self:StopBar()
self:StopBar()
return
end
if (self.action == CastBar.Actions.AutoShot) then
if (SpellStatus:IsAutoRepeating() == false) then
self:StopBar()
return
end
local spellCastDuration = UnitRangedDamage("player");
if (not self.moduleSettings.useLast) then
self.moduleSettings.lastStart = self.actionStartTime;
end
local remainingTime = self.moduleSettings.lastStart + spellCastDuration - GetTime();
local scale = 1 - (remainingTime / (spellCastDuration))
IceHUDAutoCastLastStart = self.moduleSettings.lastStart;
--DEFAULT_CHAT_FRAME:AddMessage("autoshot "..spellCastDuration.." - "..remainingTime);
if (remainingTime < 0 and remainingTime > -1.5) then -- lag compensation
remainingTime = 0
end
-- sanity check to make sure the bar doesn't over/underfill
scale = scale > 1 and 1 or scale
scale = scale < 0 and 0 or scale
self:UpdateBar(scale, "CastCasting")
self:SetBottomText1(string.format("%.1fs AutoShot", remainingTime))
return
end
local spellId, spellName, spellRank, spellFullName, spellCastStartTime, spellCastStopTime, spellCastDuration, spellAction = SpellStatus:GetActiveSpellData()
local time = GetTime()
@ -242,9 +188,7 @@ function CastBar.prototype:OnUpdate()
return
end
if (spellName) then
self:FlashBar("CastSuccess", 1-instanting, spellName .. spellRankShort)
end
self:FlashBar("CastSuccess", 1-instanting, (spellName or '') .. spellRankShort)
return
end
@ -285,8 +229,6 @@ end
function CastBar.prototype:FlashBar(color, alpha, text, textColor)
self.frame:SetAlpha(alpha)
--DEFAULT_CHAT_FRAME:AddMessage("flash");
local r, g, b = self.settings.backgroundColor.r, self.settings.backgroundColor.g, self.settings.backgroundColor.b
if (self.settings.backgroundToggle) then
@ -306,31 +248,23 @@ function CastBar.prototype:StartBar(action, message)
self.action = action
self.actionStartTime = GetTime()
self.actionMessage = message
self.frame:Show()
self.frame:SetScript("OnUpdate", function() self:OnUpdate() end)
end
function CastBar.prototype:CastAuto()
self.action = CastBar.Actions.AutoShot
self.actionStartTime = GetTime()
self.frame:Show()
self.frame:SetScript("OnUpdate", function() self:OnUpdate() end)
--DEFAULT_CHAT_FRAME:AddMessage("autocast now");
end
function CastBar.prototype:StopBar()
self.action = CastBar.Actions.None
self.actionStartTime = nil
self.actionStartTime = nil
self.frame:Hide()
self.frame:SetScript("OnUpdate", nil)
self.moduleSettings.lastInstant = nil;
IceHUDAutoCastLastStart = nil;
end
-------------------------------------------------------------------------------
-- INSTANT SPELLS --
-------------------------------------------------------------------------------
@ -346,22 +280,8 @@ function CastBar.prototype:SpellStatus_SpellCastInstant(sId, sName, sRank, sFull
return
end
end
if (self.moduleSettings.showAutoCast) and (SpellStatus:IsAutoRepeating() == true) and (sName) then
if (self.moduleSettings.lastInstant) and (self.moduleSettings.lastInstant ~= sName) then --instant spell in between autshots
self.moduleSettings.useLast = 1;
else
self.moduleSettings.useLast = nil;
end
self.moduleSettings.lastInstant = sName;
--DEFAULT_CHAT_FRAME:AddMessage("start inst "..sName);
self:CastAuto();
else
--if (sName) then
--DEFAULT_CHAT_FRAME:AddMessage("start inst "..sName);
--end
self:StartBar(CastBar.Actions.Instant)
end
self:StartBar(CastBar.Actions.Instant)
end
@ -373,13 +293,11 @@ end
function CastBar.prototype:SpellStatus_SpellCastCastingStart(sId, sName, sRank, sFullName, sCastStartTime, sCastStopTime, sCastDuration)
IceHUD:Debug("SpellStatus_SpellCastCastingStart", sId, sName, sRank, sFullName, sCastStartTime, sCastStopTime, sCastDuration)
self:StartBar(CastBar.Actions.Cast)
--DEFAULT_CHAT_FRAME:AddMessage("start cast");
end
function CastBar.prototype:SpellStatus_SpellCastCastingFinish (sId, sName, sRank, sFullName, sCastStartTime, sCastStopTime, sCastDuration, sCastDelayTotal)
IceHUD:Debug("SpellStatus_SpellCastCastingFinish ", sId, sName, sRank, sFullName, sCastStartTime, sCastStopTime, sCastDuration, sCastDelayTotal)
self:StartBar(CastBar.Actions.Success)
--DEFAULT_CHAT_FRAME:AddMessage("start finish");
end
function CastBar.prototype:SpellStatus_SpellCastFailure(sId, sName, sRank, sFullName, isActiveSpell, UIEM_Message, CMSFLP_SpellName, CMSFLP_Message)
@ -402,8 +320,6 @@ function CastBar.prototype:SpellStatus_SpellCastFailure(sId, sName, sRank, sFull
self:StartBar(CastBar.Actions.Fail, UIEM_Message)
--DEFAULT_CHAT_FRAME:AddMessage("start fail");
end
function CastBar.prototype:SpellStatus_SpellCastCastingChange(sId, sName, sRank, sFullName, sCastStartTime, sCastStopTime, sCastDuration, sCastDelay, sCastDelayTotal)
@ -419,7 +335,6 @@ end
function CastBar.prototype:SpellStatus_SpellCastChannelingStart(sId, sName, sRank, sFullName, sCastStartTime, sCastStopTime, sCastDuration, sAction)
IceHUD:Debug("SpellStatus_SpellCastChannelingStart", sId, sName, sRank, sFullName, sCastStartTime, sCastStopTime, sCastDuration, sAction)
self:StartBar(CastBar.Actions.Channel)
--DEFAULT_CHAT_FRAME:AddMessage("start channel");
end
function CastBar.prototype:SpellStatus_SpellCastChannelingFinish(sId, sName, sRank, sFullName, sCastStartTime, sCastStopTime, sCastDuration, sAction, sCastDisruptionTotal)