From 1780231b42ec7508be8f3a57b3bed99eab1ed2b8 Mon Sep 17 00:00:00 2001 From: Taracque Date: Fri, 1 Mar 2013 12:47:23 +0100 Subject: [PATCH] Changed version to 0.7 Added Blood Charge tracker (visible on Runic Power tracker, on the outer ring) Added out of combat refreshes For unholy Raise Dead not shown if mounted. --- DKCrutch.lua | 34 +++++++++++++++++++++++++++++----- DKCrutch.toc | 4 ++-- DKCrutch_GUI.lua | 16 ++++++++++++++++ media/blood_charges.tga | Bin 0 -> 45544 bytes 4 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 media/blood_charges.tga diff --git a/DKCrutch.lua b/DKCrutch.lua index 37bbbb2..0852778 100755 --- a/DKCrutch.lua +++ b/DKCrutch.lua @@ -1,5 +1,5 @@ ------------------------------------------------------------------------------- --- DKCrutch 0.6.0 +-- DKCrutch 0.7.0 -- -- Death Knight rune tracker and ability advisor ------------------------------------------------------------------------------- @@ -8,9 +8,8 @@ DKCrutch = {Locals = {}} local L = DKCrutch.Locals -DKCrutch.versionNumber = '0.6.0' +DKCrutch.versionNumber = '0.7.0' DKCrutch.talent = "" -DKCrutch.isEnabled = false DKCrutch.talentUnsure = true DKCrutch.DebugMode = false DKCrutch.DebugChat = DEFAULT_CHAT_FRAME @@ -20,6 +19,7 @@ DKCrutch.runeTracker = {} DKCrutch.runesUp = {} DKCrutch.depletedCount = 0 DKCrutch.events = {} +DKCrutch.lastUpdate = GetTime(); DKCrutch.SpellList = { ["Outbreak"] = GetSpellInfo(77575), ["Icy Touch"] = GetSpellInfo(45477), @@ -60,6 +60,7 @@ DKCrutch.SpellList = { ["Freezing Fog"] = GetSpellInfo(59052), ["Blood Shield"] = GetSpellInfo(77513), ["Shadow Infusion"] = GetSpellInfo(91342), -- buff pet + ["Blood Charge"] = GetSpellInfo(114851), -- debuffs ["Frost Fever"] = GetSpellInfo(59921), @@ -68,6 +69,7 @@ DKCrutch.SpellList = { DKCrutch.lastSpell = "" DKCrutch.lastProc = "" DKCrutch.lastGlow = false +DKCrutch.lastBloodCharge = -1; DKCrutch.lastD1 = "" DKCrutch.lastD2 = "" -- FoF detection @@ -458,7 +460,7 @@ function DKCrutch:AdviseAbility( hasTarget ) end -- check pet status local cd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Raise Dead"]) - if (cd<=0) and (PetHasActionBar() ~= 1) then + if (cd<=0) and (PetHasActionBar() ~= 1) and (not IsMounted()) then return "Raise Dead" end end @@ -973,6 +975,19 @@ function DKCrutch:Update() size = (max / current) DKCrutch.runicFrame.texture:SetTexCoord( 1-size, 1-size, 1-size, size, size, 1-size, size, size); end + + local name ,_ , _, count = DKCrutch:hasBuff("player", DKCrutch.SpellList["Blood Charge"]); + if (name) and (count ~= DKCrutch.lastBloodCharge) then + local x,y + + DKCrutch.lastBloodCharge = count; + + y = math.floor(count / 4); + x = count - (y * 4); + + DKCrutch:Debug("X,Y: " .. x, y); + DKCrutch.bloodFrame.texture:SetTexCoord(x / 4, (x / 4) + 0.25, y / 4, (y / 4) + 0.25); + end end if (not DKCrutchDB.debuffDisabled) then local name, _, icon, _, _, d, e = DKCrutch:hasDeBuff("target", DKCrutch.SpellList["Frost Fever"], "player") @@ -1019,4 +1034,13 @@ function DKCrutch:Update() end end end -end \ No newline at end of file +end + +function DKCrutch:OnUpdate(elapsed) + if (DKCrutchDB.enabled) then + if (GetTime() - DKCrutch.lastUpdate > 0.5) then + DKCrutch.lastUpdate = GetTime(); + DKCrutch:Update(); + end + end +end diff --git a/DKCrutch.toc b/DKCrutch.toc index bf75cd2..f598004 100755 --- a/DKCrutch.toc +++ b/DKCrutch.toc @@ -1,8 +1,8 @@ -## Interface: 50001 +## Interface: 50100 ## Title: DKCrutch ## Notes: Death Knight rune tracker and rotation helper ## Author: Taracque, Dšgrov‡s of Arathor -## Version: 0.6.0 +## Version: 0.7.0 ## SavedVariables: DKCrutchDB ## OptionalDeps: ## Dependencies: diff --git a/DKCrutch_GUI.lua b/DKCrutch_GUI.lua index d5775c8..5cbe06f 100755 --- a/DKCrutch_GUI.lua +++ b/DKCrutch_GUI.lua @@ -668,6 +668,10 @@ function DKCrutch:CreateGUI() displayFrame:SetAlpha(DKCrutchDB.runes.alpha) displayFrame:SetPoint(DKCrutchDB.runes.relativePoint,DKCrutchDB.runes.x,DKCrutchDB.runes.y) + displayFrame:SetScript("OnUpdate", function(this, elapsed) + DKCrutch:OnUpdate(elapsed) + end) + local iconTexture = displayFrame:CreateTexture(nil,"BACKGROUND") iconTexture:SetTexture("Interface\\AddOns\\DKCrutch\\media\\icons.tga", true) iconTexture:SetWidth(16) @@ -799,6 +803,18 @@ function DKCrutch:CreateGUI() DKCrutch.runicFrame = runicFrame + local bloodFrame = CreateFrame("Frame", "DKCrutchRunicFrame", runicFrame); + bloodFrame:SetFrameStrata("BACKGROUND"); + bloodFrame:SetAllPoints( runicFrame ); + DKCrutch.bloodFrame = bloodFrame; + + t = bloodFrame:CreateTexture(nil,"MEDIUM") + t:SetTexture("Interface\\AddOns\\DKCrutch\\media\\blood_charges.tga", false); + t:SetTexCoord(0, 0.25, 0, 0.25); + t:SetAllPoints(bloodFrame) + t:SetPoint("CENTER", "DKCrutchRunicFrame", "CENTER", 0, 0); + bloodFrame.texture = t + local debuffFrame = CreateFrame("Frame", "DKCrutchDebuffFrame", UIParent) debuffFrame:SetFrameStrata("BACKGROUND") debuffFrame:SetWidth(64) diff --git a/media/blood_charges.tga b/media/blood_charges.tga new file mode 100644 index 0000000000000000000000000000000000000000..cb6a67899b28eb9f4dee5c2cc428e3cbd50fe8d3 GIT binary patch literal 45544 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