Quantcast

7.0 compatible version, major code rewrite and cleanup…

Taracque [08-28-16 - 19:35]
7.0 compatible version, major code rewrite and cleanup…
Filename
Change_log.txt
Ele_GUI.lua
Elementarist.lua
Elementarist.toc
Localization_enUS.lua
modules/elemental.lua
diff --git a/Change_log.txt b/Change_log.txt
index a86578f..e22ddd6 100755
--- a/Change_log.txt
+++ b/Change_log.txt
@@ -1,3 +1,6 @@
+** v3.8.0
+* 7.0 compatibility
+
 ***v3.7.0   Code optimization and pre-release testing

 ***V3.6.6
diff --git a/Ele_GUI.lua b/Ele_GUI.lua
index 82f09b1..146bae8 100755
--- a/Ele_GUI.lua
+++ b/Ele_GUI.lua
@@ -694,42 +694,6 @@ function Elementarist:CreateGUI()
 	t:SetText("")
 	Elementarist.textList["dps"] = t

-	 t = displayFrame_next:CreateFontString("$parent_nextText","OVERLAY","GameFontHighlightLarge");
-	 t:SetAllPoints(displayFrame_next)
-	 t:SetAlpha(1);
-	 t:SetText("");
-	 t:SetJustifyH("RIGHT");
-	 t:SetJustifyV("BOTTOM");
-	 t:SetTextHeight(16);
-	 Elementarist.textList["next"] = t
-
-	 t = displayFrame_next1:CreateFontString("$parent_nextText","OVERLAY","GameFontHighlightLarge");
-	 t:SetAllPoints(displayFrame_next1)
-	 t:SetAlpha(1);
-	 t:SetText("");
-	 t:SetJustifyH("RIGHT");
-	 t:SetJustifyV("BOTTOM");
-	 t:SetTextHeight(16);
-	 Elementarist.textList["next1"] = t
-
-	 t = displayFrame_next2:CreateFontString("$parent_nextText","OVERLAY","GameFontHighlightLarge");
-	 t:SetAllPoints(displayFrame_next2)
-	 t:SetAlpha(1);
-	 t:SetText("");
-	 t:SetJustifyH("RIGHT");
-	 t:SetJustifyV("BOTTOM");
-	 t:SetTextHeight(16);
-	 Elementarist.textList["next2"] = t
-
-	 t = displayFrame_int:CreateFontString("$parent_intText","OVERLAY","GameFontHighlightLarge");
-	 t:SetAllPoints(displayFrame_int)
-	 t:SetAlpha(1);
-	 t:SetText("");
-	 t:SetJustifyH("RIGHT");
-	 t:SetJustifyV("BOTTOM");
-	 t:SetTextHeight(16);
-	 Elementarist.textList["int"] = t
-
 	displayFrame:SetScript("OnUpdate", function(this, elapsed)
 		Elementarist:OnUpdate(elapsed)
 	end)
diff --git a/Elementarist.lua b/Elementarist.lua
index c9881d9..ddd0830 100755
--- a/Elementarist.lua
+++ b/Elementarist.lua
@@ -1,5 +1,5 @@
 -------------------------------------------------------------------------------
--- Elementarist 3.7.0 Release
+-- Elementarist 3.8.0 Release
 --
 -- 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.7.0';
+Elementarist.versionNumber = '3.8.0';
 Elementarist.enabled = true;
 Elementarist.playerName = UnitName("player")
 Elementarist.playerGUID = UnitGUID("player")
@@ -49,12 +49,6 @@ Elementarist.role = ""
 Elementarist.faction = nil
 Elementarist.talentUnsure = true
 Elementarist.callbacks = {};
-Elementarist.tier4Talent = nil
-Elementarist.tier6Talent = nil
-Elementarist.tier7Talent = nil
-Elementarist.hasT17_4pcs = false
-Elementarist.hasT18_4pcs = false
-Elementarist.hasT18_Class_Trinket = false
 Elementarist.lastSpell = ""
 Elementarist.lastCastTime = 0
 Elementarist.CustomIDs = {
@@ -71,7 +65,6 @@ Elementarist.CustomIDs = {
 }
 Elementarist.SpellList = {
 	["Ghost Wolf"] = GetSpellInfo(2645),
-	["Flame Shock"] = GetSpellInfo(8050),
 	["Lightning Bolt"] = GetSpellInfo(403),
 	["Lava Burst"] = GetSpellInfo(51505),
 	["Chain Lightning"] = GetSpellInfo(421),
@@ -132,9 +125,6 @@ Elementarist.ArmorSets = {
 }

 Elementarist.textList = {
-	["next"] = nil,
-	["next1"] = nil,
-	["next2"] = nil,
 	["dps"] = nil,
 	["debuff"] = nil,
 	["shield"] = nil
@@ -204,9 +194,6 @@ function Elementarist.events.PLAYER_ALIVE()
 	-- check anything
 	Elementarist:detectTalent()
 	Elementarist:detectiLevel();
-	Elementarist.hasT17_4pcs = Elementarist:HasSetBonus( 165580, 4 );
-	Elementarist.hasT18_4pcs = Elementarist:HasSetBonus( 185872, 4 );
-	Elementarist.hasT18_Class_Trinket = Elementarist:HasTrinket(124521);
 	Elementarist:ApplySettings()

 	-- Elementarist.eventFrame:UnregisterEvent("PLAYER_ALIVE")
@@ -216,9 +203,6 @@ function Elementarist.events.PLAYER_ENTERING_WORLD()
 	Elementarist:detectTalent();
 	if Elementarist.isEnabled() then
 		Elementarist:detectiLevel();
-		Elementarist.hasT17_4pcs = Elementarist:HasSetBonus( 165580, 4 );
-		Elementarist.hasT18_4pcs = Elementarist:HasSetBonus( 185872, 4 );
-		Elementarist.hasT18_Class_Trinket = Elementarist:HasTrinket(124521);
 		Elementarist.faction = UnitFactionGroup("player");
 		if (ElementaristDB.DebugMode) then
 			Elementarist.DebugChat = Elementarist:GetDebugFrame()
@@ -231,10 +215,6 @@ end

 function Elementarist.events.PLAYER_EQUIPMENT_CHANGED()
 	Elementarist:detectiLevel();
-	Elementarist.hasT17_4pcs = Elementarist:HasSetBonus( 165580, 4 );
-	Elementarist.hasT18_4pcs = Elementarist:HasSetBonus( 185872, 4 );
-	Elementarist.hasT18_Class_Trinket = Elementarist:HasTrinket(124521);
-
 end

 function Elementarist.events.PLAYER_LOGIN()
@@ -281,9 +261,6 @@ function Elementarist.events.ADDON_LOADED(addon)
 	-- check class specializations and load any files with that name from modules folder
 	Elementarist:detectTalent()

-	-- get current buff statuses
-	Elementarist:TrackAuraSaveBuffStatus ()
-
 	-- detect equiped item level
 	Elementarist:detectiLevel()

@@ -367,10 +344,7 @@ function Elementarist:InitSettings()
 	if ElementaristDB.enableEQ == nil then ElementaristDB.enableEQ = false end
 	if ElementaristDB.advisordisabled == nil then ElementaristDB.advisordisabled = false end
 	if ElementaristDB.DebugMode == nil then ElementaristDB.DebugMode = false end
-	if ElementaristDB.trackAuraBuffs == nil then ElementaristDB.trackAuraBuffs = true end
 	if ElementaristDB.DpsTxtDisabled == nil then ElementaristDB.DpsTxtDisabled = false end
-	if ElementaristDB.maximizeFS == nil then ElementaristDB.maximizeFS = false end
-	if ElementaristDB.doFSThreshold == nil then ElementaristDB.doFSThreshold = 12 end
 	if ElementaristDB.disableLM == nil then ElementaristDB.disableLM = false end
 	if ElementaristDB.showHealingStream == nil then ElementaristDB.showHealingStream = false end
 end
@@ -434,9 +408,6 @@ function Elementarist:detectTalent()
 		-- for first spec use restoration file
 		talent = "restoration"
 	end
-	_, Elementarist.tier4Talent = GetTalentRowSelectionInfo(4);
-	_, Elementarist.tier6Talent = GetTalentRowSelectionInfo(6);
-	_, Elementarist.tier7Talent = GetTalentRowSelectionInfo(7);

 	-- check there is a registed module for the specicilisation and configuration infomration is saved in the ElemenatlistDB varriables
 	if (talent ~= "") and (talent ~= Elementarist.talent) then
@@ -562,7 +533,6 @@ function Elementarist.events.COMBAT_LOG_EVENT_UNFILTERED(timestamp, event, hideC
 		if srcName == Elementarist.playerName then
 			if (srcGUID == Elementarist.playerGUID) and (spellName==Elementarist.trackAura) and (Elementarist.auraCooldowns[dstGUID]) then
 				Elementarist.auraCooldowns[dstGUID]["action"] = GetTime()
-				Elementarist:TrackAuraSaveBuffStatus()
 			end
 			if (event=="SPELL_CAST_START") then
 				Elementarist.SFHistory.spell = nil
@@ -582,9 +552,6 @@ function Elementarist.events.COMBAT_LOG_EVENT_UNFILTERED(timestamp, event, hideC
 					Elementarist.auraCooldowns[dstGUID]["start"] = GetTime()
 					Elementarist.auraCooldowns[dstGUID]["duration"] = Elementarist.trackDuration;
 					Elementarist.auraCooldowns[dstGUID]["action"] = GetTime()
-					-- add saved status of buffs to the auraCooldowns table for this target
-					Elementarist.auraCooldowns[dstGUID]["BuffCount1"] = Elementarist.trackAuraBuffCount1
-					Elementarist.auraCooldowns[dstGUID]["BuffCount2"] = Elementarist.trackAuraBuffCount2
 				end;
 			end
 			-- main Aura track if needed
@@ -730,26 +697,6 @@ function Elementarist:UpdateShieldTracker()
 	end
 end

-
-function Elementarist:TrackAuraSaveBuffStatus()
-	if (Elementarist.trackAuraBuffSpell1) then
-		buffname, _, _,Elementarist.trackAuraBuffCount1 = Elementarist:hasBuff("player",Elementarist.trackAuraBuffSpell1)
-		if Elementarist.trackAuraBuffCount1 == nil then Elementarist.trackAuraBuffCount1 = 0 end
-		if buffname and (Elementarist.trackAuraBuffCount1 == 0) then Elementarist.trackAuraBuffCount1 = 1 end
-	else
-		Elementarist.trackAuraBuffCount1 = ""
-	end
-	if (Elementarist.trackAuraBuffSpell2) then
-		buffname, _, _,Elementarist.trackAuraBuffCount2 = Elementarist:hasBuff("player",Elementarist.trackAuraBuffSpell2)
-		if Elementarist.trackAuraBuffCount2 == nil then Elementarist.trackAuraBuffCount2 = 0 end
-		if buffname and (Elementarist.trackAuraBuffCount2 == 0) then Elementarist.trackAuraBuffCount2 = 1 end
-		local spellInCast, _, _, _, sICstartTime, sICendTime = UnitCastingInfo("player")
-		if spellInCast==Elementarist.trackAuraBuffSpell2 then Elementarist.trackAuraBuffCount2 = Elementarist.trackAuraBuffCount2 +1 end
-	else
-		Elementarist.trackAuraBuffCount2 = ""
-	end
-end
-
 function Elementarist:UpdateAuraTracker()
 	if (not Elementarist.trackAura) then
 		return;
@@ -806,8 +753,12 @@ function Elementarist:UpdateAuraTracker()
 			-- Set text string and format it on mainain frame
 			trackAura_txt = " "
 			if (ElementaristDB.trackAuraBuffs) then
-				if Elementarist.auraCooldowns[tguid]["BuffCount1"] then trackAura_txt = Elementarist.auraCooldowns[tguid]["BuffCount1"] end
-				if Elementarist.auraCooldowns[tguid]["BuffCount2"] then trackAura_txt = trackAura_txt .. ":" .. Elementarist.auraCooldowns[tguid]["BuffCount2"] end
+				if Elementarist.auraCooldowns[tguid]["BuffCount1"] then
+					trackAura_txt = Elementarist.auraCooldowns[tguid]["BuffCount1"]
+				end
+				if Elementarist.auraCooldowns[tguid]["BuffCount2"] then
+					trackAura_txt = trackAura_txt .. ":" .. Elementarist.auraCooldowns[tguid]["BuffCount2"]
+				end
 			end
 			if (not Elementarist.OmniCC) and (not GetCVarBool("countdownForCooldowns")) then
 				trackAura_txt=  "|n" .. (format('%.1f', (e - GetTime())).. "|n" .. trackAura_txt)
@@ -987,10 +938,6 @@ function Elementarist:EmptyFrames()
 	Elementarist:SetTexture(Elementarist.textureList["next"],"")
 	Elementarist:SetTexture(Elementarist.textureList["next1"],"")
 	Elementarist:SetTexture(Elementarist.textureList["next2"],"")
-	Elementarist.textList["next"]:SetText("")
-	Elementarist.textList["next1"]:SetText("")
-	Elementarist.textList["next2"]:SetText("")
-	Elementarist.textList["int"]:SetText("")
 	Elementarist:SetTexture(Elementarist.textureList["misc"],"")
 	Elementarist:SetTexture(Elementarist.textureList["int"],"")
 end
@@ -1029,15 +976,6 @@ function Elementarist:DecideSpells()
 		end
 		Elementarist:SetTexture(Elementarist.textureList["next"],GetSpellTexture(spell))

-		local count = GetSpellCharges(spell)
-		if spell == Elementarist.SpellList["Earth Shock"] then 	_, _, _, count = Elementarist:hasBuff("player",Elementarist.SpellList["Lightning Shield"]) end
-		if spell == Elementarist.trackAura and (ElementaristDB.trackAuraBuffs) then count = Elementarist.trackAuraBuffCount1 .. ":" .. Elementarist.trackAuraBuffCount2 end
- 		if count then
- 			Elementarist.textList["next"]:SetText(count)
- 		else
- 			Elementarist.textList["next"]:SetText("")
- 		end
-
 		local _,_,_,ct1=GetSpellInfo(spell)
 		if (not ct1) then
 			ct1 = 0
@@ -1050,15 +988,6 @@ function Elementarist:DecideSpells()
 		local spell1 = Elementarist:NextSpell(ct1,spell)
 		Elementarist:SetTexture(Elementarist.textureList["next1"],GetSpellTexture(spell1))

-		count = GetSpellCharges(spell1)
-		if spell1 == Elementarist.SpellList["Earth Shock"] then 	_, _, _, count = Elementarist:hasBuff("player",Elementarist.SpellList["Lightning Shield"]) end
-		if spell1 == Elementarist.trackAura and (ElementaristDB.trackAuraBuffs) then count = Elementarist.trackAuraBuffCount1 .. ":" .. Elementarist.trackAuraBuffCount2 end
-		if count then
-			Elementarist.textList["next1"]:SetText(count)
-		else
-			Elementarist.textList["next1"]:SetText("")
-		end
-
 		local _,_,_,ct2=GetSpellInfo(spell1)
 		if (not ct2) then
 			ct2 = 0
@@ -1071,14 +1000,6 @@ function Elementarist:DecideSpells()
 		local spell2 = Elementarist:NextSpell(ct1+ct2,spell,spell1)
 		Elementarist:SetTexture(Elementarist.textureList["next2"],GetSpellTexture(spell2))

-		count = GetSpellCharges(spell2)
-		if spell2 == Elementarist.SpellList["Earth Shock"] then 	_, _, _, count = Elementarist:hasBuff("player",Elementarist.SpellList["Lightning Shield"]) end
-		if spell2 == Elementarist.trackAura and (ElementaristDB.trackAuraBuffs) then count = Elementarist.trackAuraBuffCount1 .. ":" .. Elementarist.trackAuraBuffCount2 end
-		if count then
-			Elementarist.textList["next2"]:SetText(count)
-		else
-			Elementarist.textList["next2"]:SetText("")
-		end
 --		Elementarist:Debug(GetTime(), "LastCast " .. Elementarist.lastSpell ..  "1:" .. spell .. " 2:" .. spell1 .. " 3:" .. spell2 )
 	end

@@ -1099,12 +1020,6 @@ function Elementarist:DecideSpells()
 		spell = Elementarist:IntSpell()
 		Elementarist:FlashSpell(spell,"int")
 		Elementarist:SetTexture(Elementarist.textureList["int"],GetSpellTexture(spell))
-		count = GetSpellCharges(spell)
-		if count then
-			Elementarist.textList["int"]:SetText(count)
-		else
-			Elementarist.textList["int"]:SetText("")
-		end
 	end
 end

@@ -1113,7 +1028,6 @@ function Elementarist:OnUpdate(elapsed)
 		Elementarist.timeSinceLastUpdate = Elementarist.timeSinceLastUpdate + elapsed

 		if (Elementarist.timeSinceLastUpdate > (1.5 - (1.5 * Elementarist.spellHaste * .01)) * 0.3) then
-			Elementarist:TrackAuraSaveBuffStatus()
 			Elementarist:DecideSpells()

 		end
diff --git a/Elementarist.toc b/Elementarist.toc
index 9e23b50..35e5a97 100755
--- a/Elementarist.toc
+++ b/Elementarist.toc
@@ -1,8 +1,8 @@
-## Interface: 60200
+## Interface: 70000
 ## Title: Elementarist
 ## Notes: Elemental shaman spell rotation helper
 ## Author: Taracque, Felmosórongy of Arathor
-## Version: 3.5.3
+## Version: 3.8.0
 ## SavedVariables: ElementaristDB
 ## OptionalDeps: OmniCC, SpellFlash
 ## Dependencies:
diff --git a/Localization_enUS.lua b/Localization_enUS.lua
index ea22d6b..16f1dc8 100755
--- a/Localization_enUS.lua
+++ b/Localization_enUS.lua
@@ -40,7 +40,4 @@ if GetLocale() then
 	L.LAYOUT_SINGLE = "Single spell"
 	L.LAYOUT_UPSIDE_DOWN = "Right to left, upside down"
 	L.CONFIG_DISABLE_LM_SPELL = "Disable Liquid Magma in rotation"
-	L.CONFIG_DOFS_THRESHOLD = "Prioritize Buffing Flameshock with\r seconds remaining on the DOT"
-	L.CONFIG_DOFS = "Prioritize Buffing Flameshock when\r current DOT is not fully buffed"
-	L.CONFIG_DEBUFF_TRACKER_SHOW_BUFFS = "Debuff tracker shows buffs applied to DOT"
 end
\ No newline at end of file
diff --git a/modules/elemental.lua b/modules/elemental.lua
index 4b6a3f6..433d209 100755
--- a/modules/elemental.lua
+++ b/modules/elemental.lua
@@ -14,12 +14,6 @@ Elementarist.elemental = {
 				{text	=	L.BEHAVIOR_FS_BEFORE_LVB}
 			}
 		},
-		["trackAuraBuffs"] = {
-			["type"]	=	"CheckBox",
-			["vposition"] =  -155,
-			["hposition"] =  10,
-			["label"]	=	L.CONFIG_DEBUFF_TRACKER_SHOW_BUFFS
-		},
 		["enableEQ"] = {
 			["type"]	=	"CheckBox",
 			["vposition"] =  -215,
@@ -38,21 +32,6 @@ Elementarist.elemental = {
 			["hposition"] =  10,
 			["label"]	=	L.CONFIG_DISABLE_LM_SPELL
 		},
-		["maximizeFS"] = {
-			["type"]	=	"CheckBox",
-			["vposition"] =  -110,
-			["hposition"] =  10,
-			["label"]	=	L.CONFIG_DOFS
-		},
-		["doFSThreshold"] = {
-			["type"]	=	"Slider",
-			["vposition"] =  -135,
-			["hposition"] =  350,
-			["label"]	=	L.CONFIG_DOFS_THRESHOLD,
-			["low"]		=	1,
-			["high"]	=	30,
-			["step"]	=	1
-		},
 	};
 	Initialize = function(self)
 		Elementarist:LoadSpells({
@@ -62,7 +41,8 @@ Elementarist.elemental = {
 			["Healing Stream Totem"] = GetSpellInfo(5394),
 			["Liquid Magma"] = GetSpellInfo(152255),
 			["Enhanced Chain Lightning"]  = GetSpellInfo(157766),
-			["Storm Elemental Totem"] = GetSpellInfo(152256)
+			["Storm Elemental Totem"] = GetSpellInfo(152256),
+			["Flame Shock"] = GetSpellInfo(188389)
 		});

 		Elementarist.role = "DPS";
@@ -85,7 +65,7 @@ Elementarist.elemental = {
 		local lastSpell
 		local boostFSpriority = false
 		local _
-		local EBTalent = (Elementarist.tier6Talent == 19267)
+		local EBTalent = (Elementarist.tier4Talent == 1)
 		local UFTalent = (Elementarist.tier6Talent == 21773)
 		local EFTalent = (Elementarist.tier7Talent == 21198)
 		local LMTalent = (Elementarist.tier7Talent == 21200)
@@ -113,17 +93,7 @@ Elementarist.elemental = {
 		-- Timing calulatutions
 		-----------------------------------------------------

-		-- check Shock CD
-		s, d = GetSpellCooldown(Elementarist.SpellList["Flame Shock"])
-		if (d) and (d>0) and (s == 0) then
-			Elementarist.lastShockCD = d
-		end
-		s, d = GetSpellCooldown(Elementarist.SpellList["Earth Shock"])
-		if (d) and (d>0) and (s == 0) then
-			Elementarist.lastShockCD = d
-		end
-
-		-- set minimuim amount of flameshock remaining for a lava burst
+		-- set minimum amount of flameshock remaining for a lava burst
 		local LvBct = 2 - (2 * Elementarist.spellHaste * .01)

 		--  Set Global Coolodown
@@ -161,17 +131,19 @@ Elementarist.elemental = {
 		-- buffs and debuff status
 		-----------------------------------------------------

-		-- set lightning shield count
-		local _, _, _, lscount = Elementarist:hasBuff("player",Elementarist.SpellList["Lightning Shield"])
-
 		-- get targets flame shock debuff information
 		name, _, _, _, _, fsDuration,fsExpiration, unitCaster = Elementarist:hasDeBuff("target", Elementarist.SpellList["Flame Shock"], "player");
-		if (not fsExpiration) then fsExpiration = 0 fsDuration = 0 end
+		if (not fsExpiration) then
+			fsExpiration = 0
+			fsDuration = 0
+		end

 		-- get lava burst charges and adjust Charges based on timeshift
 		local lvbCharges, maxLvbCharges, cdStart, cdLength  = GetSpellCharges(Elementarist.SpellList["Lava Burst"]);
 		lvbCharges = lvbCharges - Elementarist:Count(Elementarist.SpellList["Lava Burst"], spellInCast,exspell1,exspell2);
-		if (((cdStart + cdLength)- GetTime()) - timeshift <= 0) then lvbCharges = lvbCharges + 1 end
+		if (((cdStart + cdLength)- GetTime()) - timeshift <= 0) then
+			lvbCharges = lvbCharges + 1
+		end

 		-- check if assendance active
 		local ascendance, _, _, _, _, _, ascendanceExp = Elementarist:hasBuff("player",Elementarist.SpellList["AscendanceElementalBuff"]);
@@ -179,31 +151,6 @@ Elementarist.elemental = {
 			ascendanceExp = 0
 		end

-		-- Set elemental fussion buff count
-		local _, _, _, efCount = Elementarist:hasBuff("player",Elementarist.SpellList["Elemental Fusion"])
-		if (efCount == nil) then efCount = 0 end
-		if (efCount < 2)and (EFTalent) then efCount = efCount +(Elementarist:Count(Elementarist.SpellList["Lava Burst"],spellInCast,exspell1,exspell2) ) end
-		if (efCount > 2) then efCount = 2 end
-
-		-- get Unleashed Flame buff Status
-		local ufCount=0
-		if (Elementarist:hasBuff("player",Elementarist.SpellList["Unleash Flame"]) or  (spellInCast == Elementarist.SpellList["Unleash Flame"])) and
-		    (Elementarist:Count(Elementarist.SpellList["Lava Burst"],spellInCast,exspell1,exspell2) == 0)
-			then ufCount =1
-		elseif exspell1 == Elementarist.SpellList["Unleash Flame"] and exspell1 ~= Elementarist.SpellList["Lava Burst"]  then
-				ufCount=1
-		end
-		Elementarist.ufCount= ufCount
-
-		-- Determine if  Flameshock is to be boosted in Priority
-		-- which occurs if the Boosting checking based on configuration and if they have the relevant talent to boost the DOT,
-		-- boost if any available boost is missing or if the  time remaining is less than the configured threshold
-		if (ElementaristDB.maximizeFS) and (UFTalent) and (Elementarist.auraCooldowns[tguid] and Elementarist.auraCooldowns[tguid]["BuffCount1"] ~= 1 ) then boostFSpriority = true end
-		if (ElementaristDB.maximizeFS) and (EFTalent) and (Elementarist.auraCooldowns[tguid] and Elementarist.auraCooldowns[tguid]["BuffCount2"] ~= 2 ) then boostFSpriority = true end
-		if ElementaristDB.doFSThreshold > (fsExpiration - currentTime - timeshift) then boostFSpriority = true end
-		if boostFSpriority then Elementarist:Debug("boostFSpriority    ufCount:" .. ufCount, " efCount"..efCount)	else Elementarist:Debug("-----    ufCount:" .. ufCount, " efCount"..efCount)	end
-
-
 		-----------------------------------------------------
 		-- Spell Priorities for Next Spell to be recommeneded
 		-----------------------------------------------------
@@ -217,8 +164,10 @@ Elementarist.elemental = {

 		if 	Elementarist.inCombat == false then
 		    -- confirm out of combat
-			if UnitAffectingCombat ("player") then Elementarist.inCombat = true end
-				if 	Elementarist.inCombat == false then
+			if UnitAffectingCombat ("player") then
+				Elementarist.inCombat = true
+			end
+			if 	Elementarist.inCombat == false then

 				-- Searing Totem
 				if (Elementarist:ZeroCount(Elementarist.SpellList["Searing Totem"],spellInCast,exspell1,exspell2) ) then
@@ -238,57 +187,36 @@ Elementarist.elemental = {
 			end
 		end

-
-		-- Priority 1
-		-- if Tier7 talent is Liquid Magma and fire totem has 10 sec or more, use it
-		if (LMTalent) and (not ElementaristDB.disableLM) then
-			if (Elementarist:ZeroCount(Elementarist.SpellList["Liquid Magma"],spellInCast,exspell1,exspell2) ) then
-				haveFireTotem,fireTotemName,fireTotemStart,fireTotemDuration = GetTotemInfo(1);
-				if ((fireTotemName ~= "") and (fireTotemDuration and (fireTotemStart + fireTotemDuration - GetTime() ) >= timeshift + 15)) or
-					(Elementarist:ZeroCount(Elementarist.SpellList["Searing Totem"],spellInCast,exspell1,exspell2) ~= 0) then
-					d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Liquid Magma"])
-					if (d-timeshift <= 0) then
-						return Elementarist.SpellList["Liquid Magma"]
-					end
-				else
-					if (Elementarist:ZeroCount(Elementarist.SpellList["Searing Totem"],spellInCast,exspell1,exspell2) ) and
-						((fireTotemName == "") or (fireTotemDuration and (fireTotemStart + fireTotemDuration - GetTime() ) <= timeshift))
-					then
-						return Elementarist.SpellList["Searing Totem"];
-					end
+		-- Flame Shock
+		if (Elementarist:ZeroCount(Elementarist.SpellList["Flame Shock"],spellInCast,exspell1,exspell2)) then
+			d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Flame Shock"])
+			if ((d - timeshift) <= 0) then
+				if ((fsExpiration - currentTime - timeshift) < 1) then
+					return Elementarist.SpellList["Flame Shock"]
 				end
 			end
 		end

-		-- Priority 2
-		-- Earth shock if Lightning Shield count >=20
-		-- earth_shock,if=buff.lightning_shield.react=buff.lightning_shield.max_stack
-		if (Elementarist:ZeroCount(Elementarist.SpellList["Flame Shock"],spellInCast,exspell1,exspell2)  and
-			Elementarist:ZeroCount(Elementarist.SpellList["Earth Shock"],spellInCast,exspell1,exspell2)) then
+		-- Earth Shock if Maelstrom capped
+		if (UnitPower("player",11)>=100) and (Elementarist:ZeroCount(Elementarist.SpellList["Earth Shock"],spellInCast,exspell1,exspell2)) then
 			d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Earth Shock"])
-			if ( (d) and ((d-timeshift) <= 0) and (lscount) and (lscount>=20)) then
+			if ((d - timeshift) <= 0) then
 				return Elementarist.SpellList["Earth Shock"]
 			end
 		end
-
-		-- Priority 3
-		-- Flame shock if 2 stacks Elemental Fussion and Unleashed Flame buff active
-		-- flame_shock,cycle_targets=1,if=(talent.elemental_fusion.enabled&buff.elemental_fusion.stack=2&buff.unleash_flame.up&dot.flame_shock.remains<(dot.flame_shock.duration*(0.3+t18_class_trinket*(0.48+talent.unleashed_fury.enabled*0.22))))
-		if (Elementarist:ZeroCount(Elementarist.SpellList["Flame Shock"],spellInCast,exspell1,exspell2)  and
-			Elementarist:ZeroCount(Elementarist.SpellList["Earth Shock"],spellInCast,exspell1,exspell2))  then
-			d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Flame Shock"])
-			if ((d - timeshift) <= 0) then
-				if (efCount==2) and (ufCount==1)then
-						if (fsExpiration - currentTime - timeshift) < (fsDuration * fsRefreshPercentage ) then
-							return Elementarist.SpellList["Flame Shock"]
-					end
+
+		-- Elemental Blast if available
+		if (EBTalent) then
+			if ((Elementarist:ZeroCount(Elementarist.SpellList["Elemental Blast"],spellInCast,exspell1,exspell2) ) and
+				(IsSpellInRange(Elementarist.SpellList["Elemental Blast"], "target") == 1) ) then
+				d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Elemental Blast"])
+				if ((d - timeshift) <= 0) then
+					return Elementarist.SpellList["Elemental Blast"]
 				end
 			end
 		end
-
-		-- Priority 4
-		-- Lava Burst if not on Cooldown
-		-- lava_burst,if=dot.flame_shock.remains>cast_time
+
+		-- Lava Burst
 		if ( (lvbCharges > 0) or((ascendanceExp-GetTime()-timeshift) > 0)  ) and
 			Elementarist:SpellAvailable(Elementarist.SpellList["Lava Burst"])
 		then
@@ -303,105 +231,17 @@ Elementarist.elemental = {
 				end
 			end
 		end
-
-		-- Priority 5
-		-- Earth shock if Lightning Shield count >=15 and not on cd, and FS debuff remaining > FS cooldown, or FS debuff remaining between FS and FS cd + 2sec and LS count>=13, or has T17 4pcs and LS Count >= 12
-		-- Earth_shock,if=(set_bonus.tier17_4pc&buff.lightning_shield.react>=12&!buff.lava_surge.up)|(!set_bonus.tier17_4pc&buff.lightning_shield.react>15)
-		-- Only allow this if we are not boosting Flameshock priority
-		if (Elementarist:ZeroCount(Elementarist.SpellList["Flame Shock"],spellInCast,exspell1,exspell2)  and
-			Elementarist:ZeroCount(Elementarist.SpellList["Earth Shock"],spellInCast,exspell1,exspell2)) and
-			not (boostFSpriority) then
-			if ( (fsExpiration - GetTime() - timeshift) > Elementarist.lastShockCD ) then
-				d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Earth Shock"])
-				if (
-					( (d) and ((d-timeshift) <= 0) and (lscount) ) and (	-- Earth Shock is available, and has lightning shield
-						(lscount>=15) or 														-- Lightning shield has 17 charge
-						( (lscount>=13) and ( (fsExpiration - GetTime() - timeshift) < Elementarist.lastShockCD + 2 ) ) or	-- or, has 13 or more charges but FS expiration within 2 secs to FS CD
-						( (lscount>=12) and Elementarist.hasT17_4pcs) -- or has T17 4pcs bonus, and 12 or more charges on LS
-					)
-				) then
-					return Elementarist.SpellList["Earth Shock"]
-				end
-			end
-		end
-
-		-- Priority 6
-		-- Flameshock if not present or at less than 30% duration
-		-- lame_shock,cycle_targets=1,if=dot.flame_shock.remains<=(dot.flame_shock.duration*0.3)
-		if (ElementaristDB.Behavior == Elementarist.Behaviors["1"]) or (lvbCharges > 0)	then
-			if 	(Elementarist:ZeroCount(Elementarist.SpellList["Flame Shock"],spellInCast,exspell1,exspell2) ) and
-				(Elementarist:ZeroCount(Elementarist.SpellList["Earth Shock"],spellInCast,exspell1,exspell2) ) then
-				d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Flame Shock"])
-				if ((d - timeshift) <= 0) then
-					if ((fsExpiration - GetTime() - timeshift) < (9) ) then
-						return Elementarist.SpellList["Flame Shock"]
-					end
-				end
-			end
-		end
-		-- Priority 6b
-		-- Lava Burst if Ascendance but not able to flame shock..you should never get here!!.. Flameshock before you Assend!
-		if ( (ascendanceExp-GetTime()-timeshift) > 0)  and
-			Elementarist:SpellAvailable(Elementarist.SpellList["Lava Burst"])then
-			return Elementarist.SpellList["Lava Burst"]
-		end
-
-		-- Priority 7
-		-- if Tier6 talent is Elemental Blast use it
-		-- elemental_blast
-		if (EBTalent) then
-			if ((Elementarist:ZeroCount(Elementarist.SpellList["Elemental Blast"],spellInCast,exspell1,exspell2) ) and
-				(IsSpellInRange(Elementarist.SpellList["Elemental Blast"], "target") == 1) ) then
-				d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Elemental Blast"])
-				if ((d - timeshift) <= 0) then
-					return Elementarist.SpellList["Elemental Blast"]
-				end
-			end
-		end
-
-		-- Priority 8
-		-- If Tier6 talent is Unleashed Fury cast Unleash Flame or (buffs & cooldowns & reamaining time are correct)
-		-- Unleash_flame,if=talent.unleashed_fury.enabled&!buff.ascendance.up|(talent.elemental_fusion.enabled&buff.elemental_fusion.stack=2&(dot.flame_shock.remains)<(dot.flame_shock.duration*(0.3+t18_class_trinket*(0.48+talent.unleashed_fury.enabled*0.22)))&cooldown.flame_shock.remains<gcd)
-		if ((UFTalent) and not (boostFSpriority))or
-		   (efCount==2 and ( (fsExpiration - currentTime - timeshift) < (fsDuration * fsRefreshPercentage )  and (fsExpiration - currentTime - timeshift) > Elementarist.lastShockCD)    ) then
-			if (Elementarist:ZeroCount(Elementarist.SpellList["Unleash Flame"],spellInCast,exspell1,exspell2) ) then
-				d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Unleash Flame"])
-				if (d-timeshift <= 0) then
-					return Elementarist.SpellList["Unleash Flame"];
-				end
-			end
-		end
-
-		-- Priority 9
-		-- Searing Totem
-		if  (Elementarist:ZeroCount(Elementarist.SpellList["Searing Totem"],spellInCast,exspell1,exspell2) ) then
-			local haveFireTotem,fireTotemName,fireTotemStart,fireTotemDuration = GetTotemInfo(1);
-			if (fireTotemName == "") or (fireTotemDuration and (fireTotemStart + fireTotemDuration - GetTime() ) <= timeshift) then
-				return Elementarist.SpellList["Searing Totem"];
-			end
-		end
-
-		-- Priority 9b (optional)
-		-- if item level >575 and Earthquake is enabled
-		if (ElementaristDB.enableEQ) and Elementarist:SpellAvailable(Elementarist.SpellList["Earthquake"])then
-			if (Elementarist.iLvl>=575) or (Elementarist.person["foeCount"]>1) then
-				local eqCharges, maxEqCharges, cdStart, cdLength  = GetSpellCharges(Elementarist.SpellList["Earthquake"]);
-				if (eqCharges<maxEqCharges) and (((cdStart + cdLength)- GetTime()) - timeshift <= 0) then
-					eqCharges = eqCharges + 1;
-				end
-				eqCharges = eqCharges - Elementarist:Count(Elementarist.SpellList["Earthquake"],spellInCast,exspell1,exspell2);
-				eclBuff, _, _, _, _, _, eclExp = Elementarist:hasBuff("player",Elementarist.SpellList["Enhanced Chain Lightning"]);
-						if (eqCharges > 0) and (eclBuff) then
-					d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Earthquake"])
-					if (d) and (d<0.5) then
-						return Elementarist.SpellList["Earthquake"]
-					end
-				end
-			end
+
+		-- Earthquake if 3 or more targets
+
+		-- Earth Shock if Maelstrom > 90
+
+		-- Chain Lightning for more than 1 targets
+		if (Elementarist.person["foeCount"]>1) and Elementarist:SpellAvailable(Elementarist.SpellList["Chain Lightning"]) then
+			return Elementarist.SpellList["Chain Lightning"]
 		end
-
-		-- Priority 10
-		-- otherwise lightning bolt
+
+		-- Lightning Bolt
 		if IsSpellInRange(Elementarist.SpellList["Lightning Bolt"], "target") == 1 and
 			Elementarist:SpellAvailable(Elementarist.SpellList["Lightning Bolt"])then
 			return Elementarist.SpellList["Lightning Bolt"]
@@ -514,14 +354,6 @@ Elementarist.elemental = {
 			end
 		end

-		-- Elemental Mastery
-		if Elementarist:SpellAvailable(Elementarist.SpellList["Elemental Mastery"]) then
-			d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Elemental Mastery"])
-			if d <= 0.5 then
-				return Elementarist.SpellList["Elemental Mastery"]
-			end
-		end
-
 		-- Ascendance
 		if Elementarist:SpellAvailable(Elementarist.SpellList["Ascendance"]) then
 			name = Elementarist:hasBuff("player",Elementarist.SpellList["AscendanceElementalBuff"])
@@ -533,6 +365,14 @@ Elementarist.elemental = {
 			end
 		end

+		-- Elemental Mastery
+		if Elementarist:SpellAvailable(Elementarist.SpellList["Elemental Mastery"]) then
+			d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Elemental Mastery"])
+			if d <= 0.5 then
+				return Elementarist.SpellList["Elemental Mastery"]
+			end
+		end
+
 		-- Berserking
 		if Elementarist:SpellAvailable(Elementarist.SpellList["Berserking"]) then
 			d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Berserking"])
@@ -612,23 +452,6 @@ Elementarist.elemental = {
 				end
 			end

-			---- Earth shock if Lightning Shield count >=17 and not on cd
-			if Elementarist:SpellAvailable(Elementarist.SpellList["Earth Shock"]) then
-				d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Earth Shock"])
-				if (d) and (d<0.5) then
-					local _, _, _, lscount = Elementarist:hasBuff("player",Elementarist.SpellList["Lightning Shield"])
-					if (lscount) then
-						lscount= lscount + (Elementarist:Count(Elementarist.SpellList["Lightning Bolt"],spellInCast,exspell1,exspell2));
-						lscount= lscount + (Elementarist:Count(Elementarist.SpellList["Lava Burst"],spellInCast,exspell1,exspell2));
-					else
-						lscount=0;
-					end
-					if (lscount>=17) then
-						return Elementarist.SpellList["Earth Shock"]
-					end
-				end
-			end
-
 			---- Chain Lightning as filler
 			if Elementarist:SpellAvailable(Elementarist.SpellList["Chain Lightning"]) then
 				return Elementarist.SpellList["Chain Lightning"]
@@ -650,7 +473,7 @@ Elementarist.elemental = {
 		return ""
 	end;
 	ShieldName = function(self)
-		return "Lightning Shield";
+		return "";
 	end;

 };