Quantcast

Signed-off-by: BillLive <bill@live.com.au>

BillLive [01-28-16 - 12:44]
Signed-off-by: BillLive <bill@live.com.au>
* Updated:  Include Unleash Flame and Elemental Fussion stack display to main Debuff Tracker Icon
* Updated:  Options to disable DPS and Threat text plus disable new Buff dispaly in Main Debuff Tracker Icon
* Updated:  Added new "UpsideDown" layout for arrangement of Icons
* Updated:  Saves Debug mode between sessions and displays status on Entering World
* Fixed:    Windshear now shows only on interuptable spells
Filename
Change_log.txt
Ele_GUI.lua
Elementarist.lua
Localization_enUS.lua
Localization_frFR.lua
Localization_zhCN.lua
modules/elemental.lua
modules/enhancement.lua
diff --git a/Change_log.txt b/Change_log.txt
index f7d3f46..c71c1e8 100755
--- a/Change_log.txt
+++ b/Change_log.txt
@@ -1,3 +1,11 @@
+***V3.6.5
+* Updated:  Include Unleash Flame and Elemental Fussion stack display to main Debuff Tracker Icon
+* Updated:  Options to disable DPS and Threat text plus disable new Buff dispaly in Main Debuff Tracker Icon
+* Updated:  Added new "UpsideDown" layout for arrangement of Icons
+* Updated:  Saves Debug mode between sessions and displays status on Entering World
+* Fixed:    Windshear now shows only on interuptable spells
+
+
 ***V3.6.4
 * Updated:  Spell usability checks before recommending spells to support lower level shamans
 * Updated:  Elemental shaman 2nd prompt for Flameshock from 30% of duration to 9 Seconds
diff --git a/Ele_GUI.lua b/Ele_GUI.lua
index 43191de..3155762 100755
--- a/Ele_GUI.lua
+++ b/Ele_GUI.lua
@@ -259,6 +259,24 @@ function Elementarist:ApplySettings()
 		Elementarist.displayFrame_int:SetWidth(40);
 		Elementarist.displayFrame_int:SetHeight(40);
 	end
+	if (ElementaristDB.Layout == L.LAYOUT_UPSIDE_DOWN) then
+		Elementarist.displayFrame_next:SetPoint("TOPLEFT", 0, -80)
+		Elementarist.displayFrame_next1:SetPoint("TOPLEFT", 50, -80)
+		Elementarist.displayFrame_next2:SetPoint("TOPLEFT", 100, -80)
+		Elementarist.displayFrame_misc:SetPoint("TOPLEFT",0, -20);
+		Elementarist.displayFrame_int:SetPoint("TOPLEFT",120, -20);
+		Elementarist.displayFrame_dps:SetPoint("TOPLEFT", 45, -20)
+		Elementarist.displayFrame_next:SetHeight(50);
+		Elementarist.displayFrame_next:SetWidth(50);
+		Elementarist.displayFrame_next1:SetHeight(50);
+		Elementarist.displayFrame_next1:SetWidth(50);
+		Elementarist.displayFrame_next2:SetHeight(50);
+		Elementarist.displayFrame_next2:SetWidth(50);
+		Elementarist.displayFrame_misc:SetHeight(30);
+		Elementarist.displayFrame_misc:SetWidth(30);
+		Elementarist.displayFrame_int:SetWidth(30);
+		Elementarist.displayFrame_int:SetHeight(30);
+	end
 end

 function Elementarist:StoreUIValues()
@@ -412,7 +430,11 @@ function Elementarist:CreateConfig()
 	local ThreatWarnBtn = Elementarist:CreateCheckButton(L.CONFIG_THREAT_WARNING, Elementarist.configPanel, ElementaristDB, "ThreatWarning", false)
 	ThreatWarnBtn:SetPoint('TOPLEFT', 10, -278)

-	local EleLayout = Elementarist:CreateDropDownMenu(L.CONFIG_LAYOUT, Elementarist.configPanel, ElementaristDB, "Layout", {{text = L.LAYOUT_GROW},{text = L.LAYOUT_RIGHTTOLEFT},{text = L.LAYOUT_GROW_TOP},{text = L.LAYOUT_RIGHTTOLEFT_WIDE},{text = L.LAYOUT_SINGLE}}, 200)
+	local DpsTxtDisableBtn = Elementarist:CreateCheckButton(L.CONFIG_DISABLE_DPSTXT, Elementarist.configPanel, ElementaristDB, "DpsTxtDisabled", false)
+	DpsTxtDisableBtn:SetPoint('TOPLEFT', 200, -278)
+
+
+	local EleLayout = Elementarist:CreateDropDownMenu(L.CONFIG_LAYOUT, Elementarist.configPanel, ElementaristDB, "Layout", {{text = L.LAYOUT_GROW},{text = L.LAYOUT_RIGHTTOLEFT},{text = L.LAYOUT_GROW_TOP},{text = L.LAYOUT_RIGHTTOLEFT_WIDE},{text = L.LAYOUT_SINGLE},{text=L.LAYOUT_UPSIDE_DOWN}}, 200)
 	EleLayout:SetPoint('TOPLEFT', 10, -308)

 	local ResetBtn = Elementarist:CreateButton(L.CONFIG_RESET_POSITIONS, Elementarist.configPanel)
@@ -488,7 +510,7 @@ function Elementarist:CreateConfig()
 					ElementaristDB.modules[i] = {};
 					ElementaristDB.modules[i].enabled = true;
 				end
-				-- Create a checkBox to enable/disable each module and save it within ElemenatistDB
+				-- Create a checkBox to enable/disable each module and save it within ElementaristDB
 				local checkBox = Elementarist:CreateCheckButton(childPanel.name .. " enabled", childPanel, ElementaristDB.modules, i, false);
 				checkBox:SetPoint('TOPLEFT', 10, vposition);
 				vposition = vposition - 40;
diff --git a/Elementarist.lua b/Elementarist.lua
index 10376e6..71684de 100755
--- a/Elementarist.lua
+++ b/Elementarist.lua
@@ -173,9 +173,9 @@ Elementarist.events = {}
 function Elementarist:Debug(statictxt,msg)
 	if (ElementaristDB.DebugMode) and (Elementarist.DebugChat) then
 		if (msg) then
-			Elementarist.DebugChat:AddMessage( date("%I:%M:%S:  ") .. " " .. statictxt  .. " : " .. msg)
+			Elementarist.DebugChat:AddMessage( date("Elementarist - %I:%M:%S:  ") .. " " .. statictxt  .. " : " .. msg)
 		else
-			Elementarist.DebugChat:AddMessage( date("%I:%M:%S:  ") .. statictxt  .. " : " .. "<nil>")
+			Elementarist.DebugChat:AddMessage( date("Elementarist - %I:%M:%S:  ") .. statictxt  .. " : " .. "<nil>")
 		end
 	end
 end
@@ -218,8 +218,13 @@ function Elementarist.events.PLAYER_ENTERING_WORLD()
 	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()
+		DEFAULT_CHAT_FRAME:AddMessage ("Elementarist ".. Elementarist.talent .. " module registered - Debug Mode",1,0,1)
+	else
+		DEFAULT_CHAT_FRAME:AddMessage ("Elementarist ".. Elementarist.talent .. " module registered",.7,.2,.2)
+	end
 end

 function Elementarist.events.PLAYER_EQUIPMENT_CHANGED()
@@ -262,7 +267,7 @@ function Elementarist.events.ADDON_LOADED(addon)
 				debugStatus = "enabled. Using frame: " .. Elementarist.DebugChat:GetID()
 				Elementarist:Debug("Debug started", "")
 			end
-			DEFAULT_CHAT_FRAME:AddMessage("Elementarist Debug " .. debugStatus)
+			DEFAULT_CHAT_FRAME:AddMessage("Elementarist Debug " .. debugStatus,.7,.2,.2)
 		else
 			InterfaceOptionsFrame_OpenToCategory(getglobal("ElementaristConfigPanel"))
 			InterfaceOptionsFrame_OpenToCategory(getglobal("ElementaristConfigPanel"))
@@ -271,23 +276,17 @@ function Elementarist.events.ADDON_LOADED(addon)
 	SLASH_Elementarist1 = "/Elementarist"
 	SLASH_Elementarist2 = "/ele"

-	-- check if talent is elemental
+	-- 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()

 	Elementarist.playerLevel = UnitLevel("player")

-	-- Setup behaviors
-	Elementarist.Behaviors["1"] = L.BEHAVIOR_KEEP_FS_UP
-	Elementarist.Behaviors["2"] = L.BEHAVIOR_FS_BEFORE_LVB
-	Elementarist.CLBehaviors["0"] = L.CLSTBEHAVIOR_NONE
-	Elementarist.CLBehaviors["1"] = L.CLSTBEHAVIOR_CL_AFTER_LVB
-	Elementarist.CLBehaviors["2"] = L.CLSTBEHAVIOR_CL_ON_CD
-	Elementarist.EleLayout["1"] = L.LAYOUT_GROW
-	Elementarist.EleLayout["2"] = L.LAYOUT_RIGHTTOLEFT
-
 	-- Coop with other addons
 	Elementarist.OmniCC = _G['OmniCC']
 	Elementarist.SpellFlash = _G['SpellFlashAddon']
@@ -315,7 +314,6 @@ end
 function Elementarist:RegisterModule(talent)
 	-- save the registration of the module for each specialization file in modules folder
 	Elementarist.modules[talent] = true;
-	print (talent .. " Elementarist module registered");
 end;

 function Elementarist:CallModule( funcName, ... )
@@ -334,10 +332,18 @@ function Elementarist:LoadSpells(spellList)
 end;

 function Elementarist:InitSettings()
-	if not ElementaristDB then
+	--initalize saved varriables if no value set for them
+	if not ElementaristDB then
 		ElementaristDB = {} -- fresh start
 	end
 	if (not ElementaristDB.modules) then ElementaristDB.modules = {} end
+	if not ElementaristDB.x then ElementaristDB.x = -200 end
+	if not ElementaristDB.y then ElementaristDB.y = -200 end
+	if not ElementaristDB.relativePoint then ElementaristDB.relativePoint = "CENTER" end
+	if not ElementaristDB.debuffx then ElementaristDB.debuffx = -200 end
+	if not ElementaristDB.debuffy then ElementaristDB.debuffy = -100 end
+	if not ElementaristDB.debuffrelativePoint then ElementaristDB.debuffrelativePoint = "CENTER" end
+	if not ElementaristDB.shieldrelativePoint then ElementaristDB.shieldrelativePoint = "CENTER" end
 	if not ElementaristDB.scale then ElementaristDB.scale = 1 end
 	if not ElementaristDB.debuffscale then ElementaristDB.debuffscale = 1 end
 	if not ElementaristDB.shieldscale then ElementaristDB.shieldscale = 1 end
@@ -350,19 +356,12 @@ function Elementarist:InitSettings()
 	if ElementaristDB.alpha == nil then ElementaristDB.alpha = 0.8 end
 	if ElementaristDB.debuffalpha == nil then ElementaristDB.debuffalpha = 1 end
 	if ElementaristDB.shieldalpha == nil then ElementaristDB.shieldalpha = 1 end
-	if ElementaristDB.Behavior == nil then ElementaristDB.Behavior = Elementarist.Behaviors["1"] end
-	if ElementaristDB.CLBehavior == nil then ElementaristDB.CLBehavior = Elementarist.CLBehaviors["0"] end
 	if ElementaristDB.ThreatWarning == nil then ElementaristDB.ThreatWarning = true end
 	if ElementaristDB.EnableEQ == nil then ElementaristDB.EnableEQ = false end
 	if ElementaristDB.advisordisabled == nil then ElementaristDB.advisordisabled = false end
-	if not ElementaristDB.x then ElementaristDB.x = -200 end
-	if not ElementaristDB.y then ElementaristDB.y = -200 end
-	if not ElementaristDB.relativePoint then ElementaristDB.relativePoint = "CENTER" end
-	if not ElementaristDB.debuffx then ElementaristDB.debuffx = -200 end
-	if not ElementaristDB.debuffy then ElementaristDB.debuffy = -100 end
-	if not ElementaristDB.debuffrelativePoint then ElementaristDB.debuffrelativePoint = "CENTER" end
-	if not ElementaristDB.shieldrelativePoint then ElementaristDB.shieldrelativePoint = "CENTER" end
-	if not ElementaristDB.DebugMode then ElementaristDB.DebugMode = 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
 end

 function Elementarist:HasSetBonus(spellID,minCount)
@@ -563,9 +562,12 @@ 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 neede
+			-- main Aura track if needed
 			if (Elementarist.callbacks.COMBAT_LOG) then
 				Elementarist.callbacks:COMBAT_LOG(event,spellName,srcGUID,dstGUID);
 			end;
@@ -577,33 +579,34 @@ function Elementarist.events.COMBAT_LOG_EVENT_UNFILTERED(timestamp, event, hideC
 						["amount"] = 0,
 					}
 				end
-
-				Elementarist.DPSTable[dstGUID]["amount"] = Elementarist.DPSTable[dstGUID]["amount"] + damage
-				local dps_txt = ""
-				if (dstGUID == Elementarist.targetGUID) and (Elementarist.DPSTable[Elementarist.targetGUID]) then
-					local dps_sec = GetTime() - Elementarist.DPSTable[dstGUID]["time"]
-					if (dps_sec > 5) then
-						dps_txt = format('%.f',(Elementarist.DPSTable[dstGUID]["amount"] / dps_sec))
-					end
-					local threat_txt = ""
-					local _, status, threatpct, _, _ = UnitDetailedThreatSituation("player", "target")
-					if (status) then
-						if (threatpct<80) then
-							threat_txt = format("%.f",threatpct) .. " %"
-							Elementarist.cooldownFrame:SetReverse(false)
-							if (ElementaristDB.ThreatWarning) and (Elementarist.inParty>0) and (threatpct>70) then
-								RaidNotice_AddMessage(RaidBossEmoteFrame, L.THREAT_WARNING_PREFIX .. format("%.f",threatpct) .. L.THREAT_WARNING_SUFFIX, ChatTypeInfo["RAID_WARNING"])
-							end
-						else
-							threat_txt = "|cffff0000" .. format("%.f",threatpct) .. " %|r"
-							if (ElementaristDB.ThreatWarning) and (Elementarist.inParty>0) then
-								RaidNotice_AddMessage(RaidBossEmoteFrame, "|cffff0000" .. L.THREAT_WARNING_PREFIX .. format("%.f",threatpct) ..  L.THREAT_WARNING_SUFFIX .. "|r", ChatTypeInfo["RAID_WARNING"])
+				if not (ElementaristDB.DpsTxtDisabled ) then
+					Elementarist.DPSTable[dstGUID]["amount"] = Elementarist.DPSTable[dstGUID]["amount"] + damage
+					local dps_txt = ""
+					if (dstGUID == Elementarist.targetGUID) and (Elementarist.DPSTable[Elementarist.targetGUID]) then
+						local dps_sec = GetTime() - Elementarist.DPSTable[dstGUID]["time"]
+						if (dps_sec > 5) then
+							dps_txt = format('%.f',(Elementarist.DPSTable[dstGUID]["amount"] / dps_sec))
+						end
+						local threat_txt = ""
+						local _, status, threatpct, _, _ = UnitDetailedThreatSituation("player", "target")
+						if (status) then
+							if (threatpct<80) then
+								threat_txt = format("%.f",threatpct) .. " %"
+								Elementarist.cooldownFrame:SetReverse(false)
+								if (ElementaristDB.ThreatWarning) and (Elementarist.inParty>0) and (threatpct>70) then
+									RaidNotice_AddMessage(RaidBossEmoteFrame, L.THREAT_WARNING_PREFIX .. format("%.f",threatpct) .. L.THREAT_WARNING_SUFFIX, ChatTypeInfo["RAID_WARNING"])
+								end
+							else
+								threat_txt = "|cffff0000" .. format("%.f",threatpct) .. " %|r"
+								if (ElementaristDB.ThreatWarning) and (Elementarist.inParty>0) then
+									RaidNotice_AddMessage(RaidBossEmoteFrame, "|cffff0000" .. L.THREAT_WARNING_PREFIX .. format("%.f",threatpct) ..  L.THREAT_WARNING_SUFFIX .. "|r", ChatTypeInfo["RAID_WARNING"])
+								end
+								Elementarist.cooldownFrame:SetReverse((Elementarist.person["friendCount"]>1) and (Elementarist.inParty>0))
 							end
-							Elementarist.cooldownFrame:SetReverse((Elementarist.person["friendCount"]>1) and (Elementarist.inParty>0))
 						end
+						dps_txt = dps_txt .. "|n" .. threat_txt
+						Elementarist.textList["dps"]:SetText(dps_txt)
 					end
-					dps_txt = dps_txt .. "|n" .. threat_txt
-					Elementarist.textList["dps"]:SetText(dps_txt)
 				end
 			end
 		else
@@ -707,11 +710,26 @@ 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
+	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
+	end
+end
+
 function Elementarist:UpdateAuraTracker()
 	if (not Elementarist.trackAura) then
 		return;
 	end;

+	-- if there is a UPdateAuraTracker fucntion in the specialization modulle run it here
 	Elementarist:CallModule( "UpdateAuraTracker" );

 	local name,tguid,icon,d,e;
@@ -759,15 +777,27 @@ function Elementarist:UpdateAuraTracker()
 	if (Elementarist.callbacks.COMBAT_LOG == nil) then
 		if (name) then
 			Elementarist:SetTexture(Elementarist.textureList["debuff"],icon)
+			-- 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
+			end
 			if (not Elementarist.OmniCC) and (not GetCVarBool("countdownForCooldowns")) then
-				Elementarist.textList["debuff"]:SetText(format('%.1f', (e - GetTime())))
+				trackAura_txt=  "|n" .. (format('%.1f', (e - GetTime())).. "|n" .. trackAura_txt)
+			else
+				Elementarist.auraCooldownFrame["main"]:SetCooldown( e-d, d)
+				Elementarist.textList["debuff"]:SetJustifyV("BOTTOM")
+				Elementarist.textList["debuff"]:SetJustifyH("RIGHT")
+--				Elementarist.textList["debuff"]:SetTextColor(.7, .7, .7, 1)
 			end
-			Elementarist.auraCooldownFrame["main"]:SetCooldown( e-d, d)
+			Elementarist.textList["debuff"]:SetText(trackAura_txt)
 		else
+			-- no target clear window
 			Elementarist:SetTexture(Elementarist.textureList["debuff"],"")
-			Elementarist.textList["debuff"]:SetText("")
 			Elementarist.auraCooldownFrame["main"]:SetCooldown(0, 0)
 			Elementarist.auraCooldownFrame["main"]:SetDrawBling(false)
+			Elementarist.textList["debuff"]:SetText("")
 			m = m - 1
 		end
 	end;
@@ -1055,6 +1085,7 @@ function Elementarist:OnUpdate(elapsed)

 		if (Elementarist.timeSinceLastUpdate > (1.5 - (1.5 * Elementarist.spellHaste * .01)) * 0.3) then
 			Elementarist:DecideSpells()
+			Elementarist:TrackAuraSaveBuffStatus()
 		end
 		if (not ElementaristDB.debuffdisabled) then
 			Elementarist.AuraTrackerUpdate = Elementarist.AuraTrackerUpdate + elapsed
diff --git a/Localization_enUS.lua b/Localization_enUS.lua
index c42b5e3..f3dea1a 100755
--- a/Localization_enUS.lua
+++ b/Localization_enUS.lua
@@ -5,8 +5,6 @@
 if GetLocale() then
 	local L = Elementarist.Locals

-	L.BEHAVIOR_KEEP_FS_UP = "Keep Flame Shock up"
-	L.BEHAVIOR_FS_BEFORE_LVB = "Flame Shock before Lava"
 	L.THREAT_WARNING_SUFFIX = "% threat!"
 	L.THREAT_WARNING_PREFIX = ""
 	L.CONFIG_ENABLED = "Enabled"
@@ -17,34 +15,27 @@ if GetLocale() then
 	L.CONFIG_DISABLE_DEBUFF_TRACKER = "Disable debuff tracker"
 	L.CONFIG_DEBUFF_TRACKER_SCALE = "Debuff tracker scale"
 	L.CONFIG_DEBUFF_TRACKER_ALPHA = "Debuff tracker alpha"
-	L.CONFIG_BEHAVIOR = "Flame Shock behavior:"
+	L.CONFIG_DEBUFF_TRACKER_SHOW_BUFFS = "Debuff tracker shows buffs"
 	L.CONFIG_THREAT_WARNING = "Threat warning"
 	L.CONFIG_RESET_POSITIONS = "Reset frame positions"
-	L.CONFIG_CLSTBEHAVIOR = "Chain Lightning single target behavior"
-	L.CLSTBEHAVIOR_CL_AFTER_LVB = "Chain Lightning after Lava"
-	L.CLSTBEHAVIOR_CL_ON_CD = "Chain Lightning on Cooldown"
 	L.CLSTBEHAVIOR_NONE = "None"
--- new for 1.9
 	L.CONFIG_SHIELD_TRACKER_SCALE = "Shield tracker scale"
 	L.CONFIG_SHIELD_TRACKER_ALPHA = "Shield tracker alpha"
 	L.CONFIG_DISABLE_SHIELD_TRACKER = "Disable shield tracker"
--- new for 2.0
 	L.CONFIG_ENABLE_EQ_SPELL = "Enable Earthquake in rotation"
--- new for 2.1.4
 	L.CONFIG_DISABLE_MINI = "Disable mini frames"
--- new for 3.0.0
 	L.CONFIG_LAYOUT = "Layout:"
 	L.LAYOUT_GROW = "Growing icons"
-	L.LAYOUT_RIGHTTOLEFT = "Right to left"
 	L.CONFIG_ENABLE_HS_TOTEM = "Show Healing Stream Totem"
 	L.CONFIG_ENABLE_SEARING_TOTEM = "Show Searing Totem"
 	L.CONFIG_ANNOUNCE_STORMLASH = "Announce Stormlash Totem in Raid/Party chat"
--- new for 3.3.3
 	L.CONFIG_DISABLE_ADVISOR = "Disable spell advisor"
 	L.CONFIG_DISABLE_SHIELD_TRACKER_CD = "Disable shield cooldown tracker"
+	L.CONFIG_DISABLE_DPSTXT = "Disable Damage and Threat text"
+	L.LAYOUT_RIGHTTOLEFT = "Right to left"
 	L.LAYOUT_GROW_TOP = "Growing icons, misc. on top"
 	L.LAYOUT_RIGHTTOLEFT_WIDE = "Right to left, wide"
 	L.LAYOUT_SINGLE = "Single spell"
--- new for 3.4.3
+	L.LAYOUT_UPSIDE_DOWN = "Right to left, upside down"
 	L.CONFIG_DISABLE_LM_SPELL = "Disable Liquid Magma in rotation"
 end
\ No newline at end of file
diff --git a/Localization_frFR.lua b/Localization_frFR.lua
index 123c1f7..3a70a1b 100755
--- a/Localization_frFR.lua
+++ b/Localization_frFR.lua
@@ -6,21 +6,18 @@ end
 if GetLocale() then
 	local L = Elementarist.Locals

-	L["BEHAVIOR_FS_BEFORE_LVB"] = "Horion de flammes avant lave"
-	L["BEHAVIOR_KEEP_FS_UP"] = "Gardez Horion de flammes Up !"
-	L["CLSTBEHAVIOR_CL_AFTER_LVB"] = "Chain Lightning after Lava" -- Requires localization
-	L["CLSTBEHAVIOR_CL_ON_CD"] = "Temps de recharge de Chaîne d'éclairs"
-	L["CLSTBEHAVIOR_NONE"] = "None" -- Requires localization
 	L["CONFIG_ANNOUNCE_STORMLASH"] = "Announce Stormlash Totem in Raid/Party chat" -- Requires localization
 	L["CONFIG_BEHAVIOR"] = "Flame Shock behavior:" -- Requires localization
 	L["CONFIG_CLSTBEHAVIOR"] = "Chain Lightning single target behavior" -- Requires localization
 	L["CONFIG_DEBUFF_TRACKER_ALPHA"] = "Suivi des débuffs alpha"
 	L["CONFIG_DEBUFF_TRACKER_SCALE"] = "échelle du suivi des Debuff"
+	L["CONFIG_DEBUFF_TRACKER_SHOW_BUFFS"] = "Suivi des débuffs montre buffs"
 	L["CONFIG_DISABLE_ADVISOR"] = "Disable spell advisor" -- Requires localization
 	L["CONFIG_DISABLE_DEBUFF_TRACKER"] = "Désactiver le suivi des débuffs"
 	L["CONFIG_DISABLE_MINI"] = "Désactiver les mini cadres"
 	L["CONFIG_DISABLE_SHIELD_TRACKER"] = "Désactiver le suivi du bouclier"
 	L["CONFIG_DISABLE_SHIELD_TRACKER_CD"] = "Disable shield cooldown tracker" -- Requires localization
+	L["CONFIG_DISABLE_DPSTXT"] = "Désactiver les nombers des blessures et menace"
 	L["CONFIG_ENABLED"] = "Activé"
 	L["CONFIG_ENABLE_EQ_SPELL"] = "Active Tremblement de terre en rotation"
 	L["CONFIG_ENABLE_HS_TOTEM"] = "Show Healing Stream Totem" -- Requires localization
diff --git a/Localization_zhCN.lua b/Localization_zhCN.lua
index c8c382a..45aa495 100755
--- a/Localization_zhCN.lua
+++ b/Localization_zhCN.lua
@@ -16,9 +16,11 @@ if GetLocale() then
 	L["CONFIG_CLSTBEHAVIOR"] = "单目标闪电链行为"
 	L["CONFIG_DEBUFF_TRACKER_ALPHA"] = "Debuff 追踪器透明度"
 	L["CONFIG_DEBUFF_TRACKER_SCALE"] = "Debuff 追踪器尺寸"
+	L["CONFIG_DEBUFF_TRACKER_SHOW_BUFFS"] = "火焰冲击跟踪显示爱好者"
 	L["CONFIG_DISABLE_ADVISOR"] = "Disable spell advisor" -- Requires localization
 	L["CONFIG_DISABLE_DEBUFF_TRACKER"] = "禁用 debuff 追踪器"
-	L["CONFIG_DISABLE_MINI"] = "禁用迷你框体"
+	L["CONFIG_DISABLE_DPSTXT"] = "Désactiver les nombers des DPS et menace"
+	L["CONFIG_DISABLE_MINI"] = "禁用迷你禁止损害和威胁号框体"
 	L["CONFIG_DISABLE_SHIELD_TRACKER"] = "禁用护盾追踪器"
 	L["CONFIG_DISABLE_SHIELD_TRACKER_CD"] = "Disable shield cooldown tracker" -- Requires localization
 	L["CONFIG_ENABLED"] = "启用"
diff --git a/modules/elemental.lua b/modules/elemental.lua
index c22428f..73020fb 100755
--- a/modules/elemental.lua
+++ b/modules/elemental.lua
@@ -4,13 +4,9 @@ Elementarist:RegisterModule("elemental");

 Elementarist.elemental = {
 	["Configuration"] = {
-		["Behavior"] = {
-			["type"]	= "DropDown",
-			["label"]	=	L.CONFIG_BEHAVIOR,
-			["options"]	= {
-				{text	=	L.BEHAVIOR_KEEP_FS_UP},
-				{text	=	L.BEHAVIOR_FS_BEFORE_LVB}
-			}
+		["TrackAuraBuffs"] = {
+			["type"]	=	"CheckBox",
+			["label"]	=	L.CONFIG_DEBUFF_TRACKER_SHOW_BUFFS
 		},
 		["EnableEQ"] = {
 			["type"]	=	"CheckBox",
@@ -37,7 +33,9 @@ Elementarist.elemental = {
 		});

 		Elementarist.role = "DPS";
-		Elementarist.trackAura = Elementarist.SpellList["Flame Shock"];
+		Elementarist.trackAura = Elementarist.SpellList["Flame Shock"]  -- Spell used in Aura Tracking window
+		Elementarist.trackAuraBuffSpell1 = Elementarist.SpellList["Unleash Flame"]  -- buff charge count to display in Aura Tracking Window
+		Elementarist.trackAuraBuffSpell2 = Elementarist.SpellList["Elemental Fusion"] -- buff charge count to display in Aura Tracking Window
 		Elementarist.trackFilter = "PLAYER|HARMFUL";
 		Elementarist.trackDuration = 39;
 	end;
@@ -239,7 +237,6 @@ Elementarist.elemental = {
 				if (efCount>=2) then
 					if (Elementarist:hasBuff("player",Elementarist.SpellList["Unleash Flame"]) or Elementarist:Count(Elementarist.SpellList["Unleash Flame"],spellInCast,exspell1,exspell2) > 0)then
 						if (fsExpiration - currentTime - timeshift) < (fsDuration * fsRefreshPercentage ) then
-							Elementarist:Debug(GetTime()..' Priority 3: EFCount=', efCount)
 							return Elementarist.SpellList["Flame Shock"]
 						end
 					end
@@ -296,7 +293,6 @@ Elementarist.elemental = {
 				d = Elementarist:GetSpellCooldownRemaining(Elementarist.SpellList["Flame Shock"])
 			if ((d - timeshift) <= 0) then
 				if ((fsExpiration - GetTime() - timeshift) < (9) ) then
-					Elementarist:Debug(GetTime()..' Priority 6: EFCount=', efCount)
 					return Elementarist.SpellList["Flame Shock"]
 				end
 			end
@@ -559,13 +555,13 @@ Elementarist.elemental = {

 				--- windshear to interupt channel spell
 				_, _, _, _, _, _, _, notInterruptible = UnitChannelInfo("target")
-				if (not notInterruptible) then
+				if (notInterruptible==false) then
 					return Elementarist.SpellList["Wind Shear"]
 				end

 				--- windshear to interupt cast spell
 				_, _, _, _, _, _, _, _, notInterruptible = UnitCastingInfo("target")
-				if if (not notInterruptible) then then
+				if (notInterruptible==false)  then
 					return Elementarist.SpellList["Wind Shear"]
 				end
 			end
diff --git a/modules/enhancement.lua b/modules/enhancement.lua
index 808820b..2d15901 100755
--- a/modules/enhancement.lua
+++ b/modules/enhancement.lua
@@ -35,6 +35,8 @@ Elementarist.enhancement = {

 		Elementarist.role = "DPS";
 		Elementarist.trackAura = Elementarist.SpellList["Flame Shock"];
+		Elementarist.trackAuraBuffSpell1 = Elementarist.SpellList["Unleash Flame"]  -- buff charge count to display in Aura Tracking Window
+		Elementarist.trackAuraBuffSpell2 = Elementarist.SpellList["Elemental Fusion"] -- buff charge count to display in Aura Tracking Window
 		Elementarist.trackFilter = "PLAYER|HARMFUL";
 		Elementarist.trackDuration = 39;
 		Elementarist.trackSpread = false;