From f272f80fd527240a215c64017271086d3d474c79 Mon Sep 17 00:00:00 2001 From: Taracque Date: Wed, 15 Oct 2014 18:47:21 +0200 Subject: [PATCH] **v3.3.0** * Change: 6.0 compatibility --- Change_log.txt | 3 +++ Elementarist.lua | 26 +++-------------------- Elementarist.toc | 4 ++-- modules/elemental.lua | 54 ++++++++++++++++------------------------------- modules/restoration.lua | 28 +++++------------------- 5 files changed, 31 insertions(+), 84 deletions(-) diff --git a/Change_log.txt b/Change_log.txt index 4e84543..b5e1b08 100755 --- a/Change_log.txt +++ b/Change_log.txt @@ -1,3 +1,6 @@ +**v3.3.0** +* Change: 6.0 compatibility + **v3.2.7** * Fixed: Low level shaman doesn't crash at Lava Burst diff --git a/Elementarist.lua b/Elementarist.lua index 074b9fc..84fc2f7 100755 --- a/Elementarist.lua +++ b/Elementarist.lua @@ -1,5 +1,5 @@ ------------------------------------------------------------------------------- --- Elementarist 3.2.6 +-- Elementarist 3.3.0 -- -- Shows the advised spell for an elemental shaman for optimal DPS output. ------------------------------------------------------------------------------- @@ -8,7 +8,7 @@ Elementarist = {Locals = {}} local L = Elementarist.Locals -Elementarist.versionNumber = '3.2.6'; +Elementarist.versionNumber = '3.3.0'; Elementarist.enabled = true; Elementarist.playerName = UnitName("player") Elementarist.playerGUID = UnitGUID("player") @@ -55,6 +55,7 @@ Elementarist.CustomIDs = { ["Crystal of Insanity Spell"] = 127230 } Elementarist.SpellList = { + ["Ghost Wolf"] = GetSpellInfo(2645), ["Flame Shock"] = GetSpellInfo(8050), ["Lightning Bolt"] = GetSpellInfo(403), ["Lava Burst"] = GetSpellInfo(51505), @@ -62,7 +63,6 @@ Elementarist.SpellList = { ["Thunderstorm"] = GetSpellInfo(51490), ["Purge"] = GetSpellInfo(370), ["Wind Shear"] = GetSpellInfo(57994), - ["Flametongue Weapon"] = GetSpellInfo(8024), ["Elemental Mastery"] = GetSpellInfo(16166), ["Earth Shock"] = GetSpellInfo(8042), ["Searing Totem"] = GetSpellInfo(3599), @@ -72,8 +72,6 @@ Elementarist.SpellList = { ["Earthquake"] = GetSpellInfo(61882), ["Elemental Blast"] = GetSpellInfo(117014), ["Ascendance"] = GetSpellInfo(114049), - ["Stormlash Totem"] = GetSpellInfo(120668), - ["Stormlash Totem Buff"] = GetSpellInfo(120676), -- racials ["Berserking"] = GetSpellInfo(26297), -- Troll racial @@ -467,16 +465,6 @@ end function Elementarist.events.COMBAT_LOG_EVENT_UNFILTERED(timestamp, event, hideCaster, srcGUID, srcName, srcFlags, srcRaidFlags, dstGUID, dstName, dstFlags, dstRaidFlags, spellId, spellName, spellSchool, damage, ...) if Elementarist.isEnabled() then - if (Elementarist.StormlashID~=nil) and (ElementaristDB.AnnounceStormlash) then - if (event == "SPELL_AURA_REMOVED") and (srcGUID == Elementarist.StormlashID) and (spellName == Elementarist.SpellList["Stormlash Totem Buff"]) then - if ( Elementarist:PlayerInParty() >0 ) then - SendChatMessage( spellName .. " expired!!!", "RAID" ) - else - SendChatMessage( spellName .. " expired!!!", "SAY" ) - end - Elementarist.StormlashID=nil - end - end if srcName == Elementarist.playerName then if (srcGUID == Elementarist.playerGUID) and (spellName==Elementarist.trackAura) and (Elementarist.auraCooldowns[dstGUID]) then Elementarist.auraCooldowns[dstGUID]["action"] = GetTime() @@ -488,14 +476,6 @@ function Elementarist.events.COMBAT_LOG_EVENT_UNFILTERED(timestamp, event, hideC end Elementarist:DecideSpells() -- calculate DPS - if (event=="SPELL_SUMMON") and (ElementaristDB.AnnounceStormlash) and (spellName==Elementarist.SpellList["Stormlash Totem"]) then - Elementarist.StormlashID = dstGUID - if ( Elementarist:PlayerInParty() >0 ) then - SendChatMessage( spellName .. " activated!!!", "RAID" ) - else - SendChatMessage( spellName .. " activated!!!", "SAY" ) - end - end if (event=="SPELL_CAST_SUCCESS") then Elementarist.lastSpell = spellName -- aura track if needed diff --git a/Elementarist.toc b/Elementarist.toc index 1324bd4..d5df100 100755 --- a/Elementarist.toc +++ b/Elementarist.toc @@ -1,8 +1,8 @@ -## Interface: 50400 +## Interface: 60000 ## Title: Elementarist ## Notes: Elemental shaman spell rotation helper ## Author: Taracque, Felmosórongy of Arathor -## Version: 3.2.7 +## Version: 3.3.0 ## SavedVariables: ElementaristDB ## OptionalDeps: OmniCC, SpellFlash ## Dependencies: diff --git a/modules/elemental.lua b/modules/elemental.lua index 0c4ac17..627fffb 100755 --- a/modules/elemental.lua +++ b/modules/elemental.lua @@ -85,11 +85,11 @@ Elementarist.elemental = { end timeshift = timeshift + (sICendTime / 1000) - GetTime() else - -- no spell in cast, check global cd via Flametongue Weapon - if (Elementarist.SpellList["Flametongue Weapon"]) then - local ftcd = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Flametongue Weapon"]) + -- no spell in cast, check global cd via Ghost Wolf + if (Elementarist.SpellList["Ghost Wolf"]) then + local ftcd = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Ghost Wolf"]) if (ftcd) then - timeshift = timeshift + Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Flametongue Weapon"]) + timeshift = timeshift + Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Ghost Wolf"]) else timeshift = timeshift + Elementarist.lastBaseGCD end @@ -135,15 +135,13 @@ Elementarist.elemental = { if (Elementarist.tier6Talent == 16) then name, _, _, _, _, _, e, unitCaster = Elementarist:hasDeBuff("target", Elementarist.SpellList["Unleashed Fury"], "player"); if (name == nil) or (e - GetTime() - timeshift) then - if (GetWeaponEnchantInfo()) and (exspell1 ~= Elementarist.SpellList["Unleash Elements"]) and (exspell2 ~= Elementarist.SpellList["Unleash Elements"]) and (IsSpellInRange(Elementarist.SpellList["Unleash Elements"], "target") == 1) then - e = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Unleash Elements"]) - if (e-timeshift <= 0) then - return Elementarist.SpellList["Unleash Elements"]; - end + e = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Unleash Elements"]) + if (e-timeshift <= 0) then + return Elementarist.SpellList["Unleash Elements"]; end end end - + -- Lava Burst if not on Cooldown local ascendance, _, _, _, _, _, ascendanceExp = Elementarist:hasBuff("player",Elementarist.SpellList["AscendanceElementalBuff"]); if (ascendance == nil) then @@ -154,12 +152,13 @@ Elementarist.elemental = { or ((ascendanceExp-GetTime()-timeshift) > 0) ) then - if (IsSpellInRange(Elementarist.SpellList["Lava Burst"], "target") == 1) and + if (IsSpellInRange(Elementarist.SpellList["Flame Shock"], "target") == 1) and ( ((fsExpiration~=0) and ((fsExpiration-GetTime()-timeshift) > LvBct)) or (exspell1 == Elementarist.SpellList["Flame Shock"]) or (exspell2 == Elementarist.SpellList["Flame Shock"]) ) then + Elementarist:Debug('in range','LvB') if (((Elementarist.SpellList["Lava Burst"]) ~= spellInCast) or (ascendance ~= nil)) then d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Lava Burst"]) if ((d-timeshift) <= 0) or ((ascendanceExp-GetTime()-timeshift) > 0) then @@ -214,7 +213,6 @@ Elementarist.elemental = { end; MiscSpell = function(self) -- Miscelaneous spell order: - -- Flametongoue weapon -- Lightning Shield -- Searing Totem -- Elemental Mastery @@ -250,15 +248,7 @@ Elementarist.elemental = { end end end - - -- Flametongue weapon - if Elementarist:SpellAvailable(Elementarist.SpellList["Flametongue Weapon"]) then - local hasMainHandEnchant, mainHandExpiration, _, _, _, _ = GetWeaponEnchantInfo() - if (hasMainHandEnchant == nil) or ((mainHandExpiration / 60000) < 1) then - return Elementarist.SpellList["Flametongue Weapon"] - end - end - + -- Lightning Shield if Elementarist:SpellAvailable(Elementarist.SpellList["Lightning Shield"]) then name, _, _, _, _, _, expirationTime = Elementarist:hasBuff("player", Elementarist.SpellList["Lightning Shield"]); @@ -266,7 +256,7 @@ Elementarist.elemental = { return Elementarist.SpellList["Lightning Shield"] end end - + -- Searing Totem if Elementarist:SpellAvailable(Elementarist.SpellList["Searing Totem"]) then local haveFireTotem,fireTotemName,_,_ = GetTotemInfo(1) @@ -306,14 +296,6 @@ Elementarist.elemental = { end end - -- Stormlash Totem - if Elementarist:SpellAvailable(Elementarist.SpellList["Stormlash Totem"]) then - d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Stormlash Totem"]) - if d <= 0.5 then - return Elementarist.SpellList["Stormlash Totem"] - end - end - -- Berserking if Elementarist:SpellAvailable(Elementarist.SpellList["Berserking"]) then d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Berserking"]) @@ -362,7 +344,7 @@ Elementarist.elemental = { end end end - + -- check if mana is below 70% and Thunderstorm available if Elementarist:SpellAvailable(Elementarist.SpellList["Thunderstorm"]) then d = GetSpellCooldown(Elementarist.SpellList["Thunderstorm"]) @@ -370,7 +352,7 @@ Elementarist.elemental = { return Elementarist.SpellList["Thunderstorm"] end end - + -- if >=4 foes are available, and Earthquake not on cd if (ElementaristDB.EnableEQ) then if (Elementarist.person["foeCount"]>=4) then @@ -380,7 +362,7 @@ Elementarist.elemental = { end end end - + -- check if purgeable buff is on target (not sure if this is ok) if Elementarist:SpellAvailable(Elementarist.SpellList["Purge"]) then if IsSpellInRange(Elementarist.SpellList["Purge"], "target") == 1 then @@ -392,7 +374,7 @@ Elementarist.elemental = { end end end - + -- Lava Beam if there are multiple targets, (count in a dirty way from combat log, not to accurate!!!) if Elementarist:SpellAvailable(Elementarist.SpellList["Lava Beam"]) then if (Elementarist.person["foeCount"]>2) then @@ -404,7 +386,7 @@ Elementarist.elemental = { end end end - + -- CL if there are multiple targets, (count in a dirty way from combat log, not to accurate!!!) if (exspell1 ~= Elementarist.SpellList["Chain Lightning"]) and (exspell2 ~= Elementarist.SpellList["Chain Lightning"]) then if (Elementarist.person["foeCount"]>2) then @@ -424,5 +406,5 @@ Elementarist.elemental = { ShieldName = function(self) return "Lightning Shield"; end; - + }; diff --git a/modules/restoration.lua b/modules/restoration.lua index 52389ed..837d9af 100755 --- a/modules/restoration.lua +++ b/modules/restoration.lua @@ -11,11 +11,9 @@ Elementarist.restoration = { }; Initialize = function(self) Elementarist:LoadSpells({ - ["Healing Wave"] = GetSpellInfo(331), - ["Greater Healing Wave"] = GetSpellInfo(77472), + ["Healing Wave"] = GetSpellInfo(77472), ["Healing Surge"] = GetSpellInfo(8004), ["Riptide"] = GetSpellInfo(61295), - ["Earthliving Weapon"] = GetSpellInfo(51730), ["Water Shield"] = GetSpellInfo(52127), ["Tidal Waves"] = GetSpellInfo(53390), @@ -151,11 +149,11 @@ Elementarist.restoration = { end timeshift = timeshift + (sICendTime / 1000) - GetTime() else - -- no spell in cast, check global cd via Flametongue Weapon - if (Elementarist.SpellList["Flametongue Weapon"]) then - local ftcd = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Flametongue Weapon"]) + -- no spell in cast, check global cd via Ghost Wolf + if (Elementarist.SpellList["Ghost Wolf"]) then + local ftcd = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Ghost Wolf"]) if (ftcd) then - timeshift = timeshift + Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Flametongue Weapon"]) + timeshift = timeshift + Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Ghost Wolf"]) else timeshift = timeshift + Elementarist.lastBaseGCD end @@ -246,14 +244,6 @@ Elementarist.restoration = { end end - -- Earthliving weapon - if Elementarist:SpellAvailable(Elementarist.SpellList["Earthliving Weapon"]) then - local hasMainHandEnchant, mainHandExpiration, _, _, _, _ = GetWeaponEnchantInfo() - if (hasMainHandEnchant == nil) or ((mainHandExpiration / 60000) < 1) then - return Elementarist.SpellList["Earthliving Weapon"] - end - end - -- Water Shield if Elementarist:SpellAvailable(Elementarist.SpellList["Water Shield"]) then name, _, _, _, _, _, expirationTime = Elementarist:hasBuff("player", Elementarist.SpellList["Water Shield"]); @@ -282,14 +272,6 @@ Elementarist.restoration = { end end - -- Stormlash Totem - if Elementarist:SpellAvailable(Elementarist.SpellList["Stormlash Totem"]) then - d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Stormlash Totem"]) - if (d) and (d <= 0.5) then - return Elementarist.SpellList["Stormlash Totem"] - end - end - return "" end; IntSpell = function(self) -- 1.7.9.5