Quantcast

***v3.4.0

Taracque [03-09-15 - 15:04]
***v3.4.0
* Change: 6.1 compatibility
* Added: Liquid Magma
* Fixed: Lava Burst charges now calculated correctly
Filename
Change_log.txt
Elementarist.lua
Elementarist.toc
modules/elemental.lua
diff --git a/Change_log.txt b/Change_log.txt
index 2b55015..0322ffb 100755
--- a/Change_log.txt
+++ b/Change_log.txt
@@ -1,3 +1,8 @@
+***v3.4.0
+* Change: 6.1 compatibility
+* Added: Liquid Magma
+* Fixed: Lava Burst charges now calculated correctly
+
 ***v3.3.7
 * Added: 3 new layout
 * Added: Shield tracker cooldown can be disabled
diff --git a/Elementarist.lua b/Elementarist.lua
index f072562..0c6439d 100755
--- a/Elementarist.lua
+++ b/Elementarist.lua
@@ -1,5 +1,5 @@
 -------------------------------------------------------------------------------
--- Elementarist 3.3.7
+-- Elementarist 3.4.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.3.7';
+Elementarist.versionNumber = '3.4.0';
 Elementarist.enabled = true;
 Elementarist.playerName = UnitName("player")
 Elementarist.playerGUID = UnitGUID("player")
@@ -48,6 +48,7 @@ Elementarist.role = ""
 Elementarist.talentUnsure = true
 Elementarist.callbacks = {};
 Elementarist.tier6Talent = nil
+Elementarist.tier7Talent = nil
 Elementarist.lastSpell = nil
 Elementarist.CustomIDs = {
 	["Alchemist's Flask Item"] = 75525,
@@ -345,7 +346,8 @@ function Elementarist:detectTalent()
 		talent = "restoration"
 	end

-	_, Elementarist.tier6Talent = GetTalentRowSelectionInfo(6)
+	_, Elementarist.tier6Talent = GetTalentRowSelectionInfo(6);
+	_, Elementarist.tier7Talent = GetTalentRowSelectionInfo(7);

 	if (talent ~= "") and (talent ~= Elementarist.talent) then
 		if (Elementarist.modules) and (ElementaristDB.modules) and (Elementarist.modules[talent]) and (ElementaristDB.modules[talent]) and (Elementarist[talent].Initialize) then
diff --git a/Elementarist.toc b/Elementarist.toc
index 286b4e6..b9ed95e 100755
--- a/Elementarist.toc
+++ b/Elementarist.toc
@@ -1,8 +1,8 @@
-## Interface: 60000
+## Interface: 60100
 ## Title: Elementarist
 ## Notes: Elemental shaman spell rotation helper
 ## Author: Taracque, Felmosórongy of Arathor
-## Version: 3.3.7
+## Version: 3.4.0
 ## SavedVariables: ElementaristDB
 ## OptionalDeps: OmniCC, SpellFlash
 ## Dependencies:
diff --git a/modules/elemental.lua b/modules/elemental.lua
index 66600c5..0153e19 100755
--- a/modules/elemental.lua
+++ b/modules/elemental.lua
@@ -25,6 +25,7 @@ Elementarist.elemental = {
 		Elementarist:LoadSpells({
 			["Glyph of Flame Shock"] = GetSpellInfo(55447),
 			["Healing Stream Totem"] = GetSpellInfo(5394),
+			["Liquid Magma"] = GetSpellInfo(152255)
 		});

 		Elementarist.role = "DPS";
@@ -106,6 +107,14 @@ Elementarist.elemental = {
 				end
 			end
 		end
+
+		-- if Tier7 talent is Liquid Magma and fire totem has 10 sec or more, use it
+		if (Elementarist.tier7Talent == 21200) then
+			local haveFireTotem,fireTotemName,d,_ = GetTotemInfo(1);
+			if (fireTotemName ~= "") and (d-timeshift > 10) then
+				return Elementarist.SpellList["Liquid Magma"]
+			end
+		end

 		-- if Tier6 talent is Unleashed Fury Unleash Flame
 		if (Elementarist.tier6Talent == 21773) then
@@ -150,28 +159,23 @@ Elementarist.elemental = {
 			end
 		end

-		-- Echo of the Elements
-		-- if precvious spell is Lava Burst, add it once more
-		local eoeBuff, _, _, _, _, _, eoeExp = Elementarist:hasBuff("player",Elementarist.SpellList["Echo of the Elements"]);
-		if (eoeExp == nil) then
-			eoeExp = 0
-		end
-		if (eoeBuff) and ((eoeExp-GetTime()-timeshift) > 0) then
-			if (exspell2 == Elementarist.SpellList["Lava Burst"] and (exspell1 ~= Elementarist.SpellList["Lava Burst"])) or
-				((exspell1 == Elementarist.SpellList["Lava Burst"]) and (spellInCast ~= Elementarist.SpellList["Lava Burst"]) and not(exspell2)) or
-				((spellInCast == Elementarist.SpellList["Lava Burst"]) and not(exspell1))
-			then
-    			return Elementarist.SpellList["Lava Burst"]
-			end
-		end
-
 		-- Lava Burst if not on Cooldown
 		local ascendance, _, _, _, _, _, ascendanceExp = Elementarist:hasBuff("player",Elementarist.SpellList["AscendanceElementalBuff"]);
 		if (ascendance == nil) then
 			ascendanceExp = 0
 		end
+		local lvbCharges, maxLvbCharges, cdStart, cdLength  = GetSpellCharges(Elementarist.SpellList["Lava Burst"]);
+		if (lvbCharges<maxLvbCharges) and (((cdStart + cdLength)- GetTime()) - timeshift <= 0) then
+			lvbCharges = lvbCharges + 1;
+		end
+		if (exspell1 == Elementarist.SpellList["Lava Burst"]) then
+			lvbCharges = lvbCharges - 1;
+		end
+		if (exspell2 == Elementarist.SpellList["Lava Burst"]) then
+			lvbCharges = lvbCharges - 1;
+		end
 		if (
-			((exspell1 ~= Elementarist.SpellList["Lava Burst"]) and (exspell2 ~= Elementarist.SpellList["Lava Burst"]))
+			(lvbCharges > 0)
 			or
 			((ascendanceExp-GetTime()-timeshift) > 0)
 		) then
@@ -181,11 +185,9 @@ Elementarist.elemental = {
 				(exspell1 == Elementarist.SpellList["Flame Shock"]) or
 				(exspell2 == Elementarist.SpellList["Flame Shock"])
 			) then
-				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
-						return Elementarist.SpellList["Lava Burst"]
-					end
+				d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Lava Burst"])
+				if ((d-timeshift) <= 0) or ((ascendanceExp-GetTime()-timeshift) > 0) then
+					return Elementarist.SpellList["Lava Burst"]
 				end
 			end
 		end