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)