import "Turbine.UI";
import "Turbine.UI.Lotro";
import "Turbine.Gameplay";
import "KragenPlugs.Utils";
import "KragenPlugs.KragenBars";
MiniBars = class( KragenPlugs.KragenBars.ClassBar );
function MiniBars:Constructor()
KragenPlugs.KragenBars.ClassBar.Constructor( self );
-- CLASS SPECIFIC VARIABLES
self.t1active = { state = false, buffid = 0 };
self.t2active = { state = false, buffid = 0 };
self.t3active = { state = false, buffid = 0 };
self.effectlist["BalladofVigour"] = Effect();
self.effectlist["BalladofSteel"] = Effect();
self.effectlist["BalladofResonance"] = Effect();
self.effectlist["BalladofSwiftness"] = Effect();
self.effectlist["BalladofBalance"] = Effect();
self.effectlist["BalladoftheStout"] = Effect();
self.effectlist["BalladofWar"] = Effect();
self.effectlist["BalladofUnshakeableWill"] = Effect();
self.effectlist["BalladofFlame"] = Effect();
self.effectlist["AnthemoftheFreePeoples"] = Effect();
self.effectlist["AnthemofCompassion"] = Effect();
self.effectlist["BalladTier1"] = Effect();
self.effectlist["BalladTier2"] = Effect();
self.effectlist["BalladTier3"] = Effect();
self.effectlist["Warspeech"] = Effect();
self.effectlist["Silenced"] = Effect();
self.effectlist["TaleofHeroism"] = Effect();
self.effectlist["TaleofBattle"] = Effect();
self.effectlist["TaleofWarding"] = Effect();
self.effectlist["TaleofFrostandFlame"] = Effect();
self.effectlist["TaleofWardingandHeroism"] = Effect();
self.effectlist["TaleofFrostandFlamesBattle"] = Effect();
self.effectlist["LuteStrings"] = Effect();
-- DEFINE THE EFFECT LIST BASED ON CLIENT LANGUAGE
self.DefineEffectList = function()
-- ENGLISH CLIENT
if (settings.language == 1) then
self.effectlist["BalladofVigour"] :SetName("Ballad of Vigour");
self.effectlist["BalladofSteel"] :SetName("Ballad of Steel");
self.effectlist["BalladofResonance"] :SetName("Ballad of Resonance");
self.effectlist["BalladofSwiftness"] :SetName("Ballad of Swiftness");
self.effectlist["BalladofBalance"] :SetName("Ballad of Balance");
self.effectlist["BalladoftheStout"] :SetName("Ballad of the Stout");
self.effectlist["BalladofWar"] :SetName("Ballad of War");
self.effectlist["BalladofUnshakeableWill"] :SetName("Ballad of Unshakeable Will");
self.effectlist["BalladofFlame"] :SetName("Ballad of Flame");
self.effectlist["AnthemoftheFreePeoples"] :SetName("Anthem of the Free Peoples");
self.effectlist["AnthemofCompassion"] :SetName("Anthem of Compassion");
self.effectlist["BalladTier1"] :SetName("Ballad Tier 1");
self.effectlist["BalladTier2"] :SetName("Ballad Tier 2");
self.effectlist["BalladTier3"] :SetName("Ballad Tier 3");
self.effectlist["Warspeech"] :SetName("War-speech");
self.effectlist["Silenced"] :SetName("Silenced");
self.effectlist["TaleofHeroism"] :SetName("Tale of Heroism");
self.effectlist["TaleofBattle"] :SetName("Tale of Battle");
self.effectlist["TaleofWarding"] :SetName("Tale of Warding");
self.effectlist["TaleofFrostandFlame"] :SetName("Tale of Frost and Flame");
self.effectlist["TaleofWardingandHeroism"] :SetName("Tale of Warding and Heroism");
self.effectlist["TaleofFrostandFlamesBattle"] :SetName("Tale of Frost and Flame's Battle");
self.effectlist["LuteStrings"] :SetName("Lute Strings");
elseif (settings.language == 2) then
self.effectlist["BalladofVigour"] :SetName("Ballad of Vigour");
self.effectlist["BalladofSteel"] :SetName("Ballad of Steel");
self.effectlist["BalladofResonance"] :SetName("Ballad of Resonance");
self.effectlist["BalladofSwiftness"] :SetName("Ballad of Swiftness");
self.effectlist["BalladofBalance"] :SetName("Ballad of Balance");
self.effectlist["BalladoftheStout"] :SetName("Ballad of the Stout");
self.effectlist["BalladofWar"] :SetName("Ballad of War");
self.effectlist["BalladofUnshakeableWill"] :SetName("Ballad of Unshakeable Will");
self.effectlist["BalladofFlame"] :SetName("Ballad of Flame");
self.effectlist["AnthemoftheFreePeoples"] :SetName("Anthem of the Free Peoples");
self.effectlist["AnthemofCompassion"] :SetName("Anthem of Compassion");
self.effectlist["BalladTier1"] :SetName("Ballad Tier 1");
self.effectlist["BalladTier2"] :SetName("Ballad Tier 2");
self.effectlist["BalladTier3"] :SetName("Ballad Tier 3");
self.effectlist["Warspeech"] :SetName("War-speech");
self.effectlist["Silenced"] :SetName("Silenced");
self.effectlist["TaleofHeroism"] :SetName("Tale of Heroism");
self.effectlist["TaleofBattle"] :SetName("Tale of Battle");
self.effectlist["TaleofWarding"] :SetName("Tale of Warding");
self.effectlist["TaleofFrostandFlame"] :SetName("Tale of Frost and Flame");
self.effectlist["TaleofWardingandHeroism"] :SetName("Tale of Warding and Heroism");
self.effectlist["TaleofFrostandFlamesBattle"] :SetName("Tale of Frost and Flame's Battle");
self.effectlist["LuteStrings"] :SetName("Lute Strings");
Turbine.Shell.WriteLine("Some features may not function with the French Client. If you would like to help with French effect names goto http://www.lotrointerface.com/downloads/info384-KragenBars.html");
elseif (settings.language == 3) then
self.effectlist["BalladofVigour"] :SetName("Ballade der Lebenskraft");
self.effectlist["BalladofSteel"] :SetName("Ballade des Stahls");
self.effectlist["BalladofResonance"] :SetName("Ballade der Resonanz");
self.effectlist["BalladofSwiftness"] :SetName("Ballade der Schnelligkeit");
self.effectlist["BalladofBalance"] :SetName("Ballade des Gleichgewichts");
self.effectlist["BalladoftheStout"] :SetName("Ballade der Starken");
self.effectlist["BalladofWar"] :SetName("Ballade des Krieges");
self.effectlist["BalladofUnshakeableWill"] :SetName("Ballade der Willenskraft");
self.effectlist["BalladofFlame"] :SetName("Ballade der Flamme");
self.effectlist["AnthemoftheFreePeoples"] :SetName("Hymne der freien V�lker");
self.effectlist["AnthemofCompassion"] :SetName("Hymne des Mitgef�hls");
self.effectlist["BalladTier1"] :SetName("Ballade, Stufe 1");
self.effectlist["BalladTier2"] :SetName("Ballade, Stufe 2");
self.effectlist["BalladTier3"] :SetName("Ballade, Stufe 3");
self.effectlist["Warspeech"] :SetName("Kriegsrede");
self.effectlist["Silenced"] :SetName("Verstummt");
self.effectlist["TaleofHeroism"] :SetName("Heldensage");
self.effectlist["TaleofBattle"] :SetName("Geschichte des Gefechts");
self.effectlist["TaleofWarding"] :SetName("Geschichte der Bewachung");
self.effectlist["TaleofFrostandFlame"] :SetName("Geschichte von Frost- und Flamme");
self.effectlist["TaleofWardingandHeroism"] :SetName("Geschichte der Bewachung und Heldensagen");
self.effectlist["TaleofFrostandFlamesBattle"] :SetName("Geschichte vom Frost-und Flammengefecht");
self.effectlist["LuteStrings"] :SetName("Lauten-Saiten");
end
end
-- BUILD WINDOWS BARS SKILLS AND MULTIS --
-- Build Skills SkillSlot( parent:SkillBar, x:int, y:int, active:Boolean, level:int, hexcode:String );
self.skills["BalladofVigour"] = SkillSlot(self.bars["BalladsT1"], 1, 1, true, 1, "0x70003E7C");
self.skills["BalladofSteel"] = SkillSlot(self.bars["BalladsT1"], 2, 1, true, 4, "0x70003E7E");
self.skills["BalladofResonance"] = SkillSlot(self.bars["BalladsT1"], 3, 1, true, 8, "0x700031A8");
self.skills["BalladofSwiftness"] = SkillSlot(self.bars["BalladsT2"], 1, 1, false, 2, "0x70003E7F");
self.skills["BalladofBalance"] = SkillSlot(self.bars["BalladsT2"], 2, 1, false, 12, "0x70003E83");
self.skills["BalladoftheStout"] = SkillSlot(self.bars["BalladsT2"], 3, 1, false, 36, "0x70003E8F");
self.skills["BalladofWar"] = SkillSlot(self.bars["BalladsT3"], 1, 1, false, 6, "0x7000317F");
self.skills["BalladofUnshakeableWill"] = SkillSlot(self.bars["BalladsT3"], 2, 1, false, 8, "0x70003E80");
self.skills["BalladofFlame"] = SkillSlot(self.bars["BalladsT3"], 3, 1, false, 32, "0x70003E8D");
self.skills["AnthemoftheFreePeoples"] = SkillSlot(self.bars["Anthems"], 1, 1, false, 18, "0x70003E88");
self.skills["AnthemofCompassion"] = SkillSlot(self.bars["Anthems"], 2, 1, false, 24, "0x70003E8A");
self.skills["AnthemoftheValar"] = SkillSlot(self.bars["Anthems"], 3, 1, false, 40, "0x70003184");
self.skills["AnthemoftheWizards"] = SkillSlot(self.bars["Anthems"], 4, 1, false, 41, "0x70001270");
self.skills["Warspeech"] = SkillSlot(self.bars["Warspeech"], 1, 1, true, 10, "0x7000B699");
self.skills["CallofOrome"] = SkillSlot(self.bars["Calls"], 1, 1, false, 14, "0x7000B69A");
self.skills["CalloftheSecondAge"] = SkillSlot(self.bars["Calls"], 2, 1, false, 34, "0x7000B69B");
self.skills["CalltoFate"] = SkillSlot(self.bars["Calls"], 3, 1, false, 56, "0x7000F250");
self.skills["EchoesofBattle"] = SkillSlot(self.bars["Damage"], 1, 1, true, 6, "0x7000B697");
self.skills["PiercingCry"] = SkillSlot(self.bars["Damage"], 2, 1, true, 2, "0x70003E7D");
self.skills["SongofSoothing"] = SkillSlot(self.bars["Dethreat"], 1, 1, true, 28, "0x700031B7");
self.skills["StillasDeath"] = SkillSlot(self.bars["Dethreat"], 2, 1, true, 38, "0x70003E90");
self.skills["NobleCause"] = SkillSlot(self.bars["Melee"], 1, 1, true, 14, "0x70003E84");
self.skills["HeraldsStrike"] = SkillSlot(self.bars["Melee"], 2, 1, true, { 1, 52 }, { "0x70003E7A", "0x70015A3C" });
self.skills["RaisetheSpirit"] = SkillSlot(self.bars["Heals"], 1, 1, true, 1, "0x70003E7B");
self.skills["BolsterCourage"] = SkillSlot(self.bars["Heals"], 2, 1, true, 16, "0x70003E85");
self.skills["InspireFellows"] = SkillSlot(self.bars["Heals"], 3, 1, true, 20, "0x70003E81");
self.skills["TriumphantSpirit"] = SkillSlot(self.bars["Heals"], 4, 1, true, 30, "0x70003E8C");
self.skills["ChordofSalvation"] = SkillSlot(self.bars["Heals"], 5, 1, true, 38, "0x7000BC01");
self.skills["SoliloquyofSpirit"] = SkillSlot(self.bars["Heals"], 6, 1, true, 60, "0x7000F1F4");
self.skills["SongofAid"] = SkillSlot(self.bars["Utility"], 1, 1, true, 30, "0x7000318C");
self.skills["CalltotheFellowship"] = SkillSlot(self.bars["Utility"], 2, 1, true, 46, "0x7000B69D");
self.skills["GiftoftheHammerhand"] = SkillSlot(self.bars["Utility"], 3, 1, true, 48, "0x7000B69E");
self.skills["CalltoGreatness"] = SkillSlot(self.bars["Utility"], 4, 1, true, 50, "0x7000B69C");
self.skills["SongoftheHopefulHeart"] = SkillSlot(self.bars["Utility"], 5, 1, self.settings.traits["SongoftheHopefulHeart"].active, 41, "0x7000125F");
self.skills["SongofRestoration"] = SkillSlot(self.bars["Rez"], 1, 1, true, { 18, 62 }, { "0x70003E86", "0x7000F25F" });
self.skills["EnliveningGrace"] = SkillSlot(self.bars["Rez"], 2, 1, true, 20, "0x700031AD");
self.skills["Rally"] = SkillSlot(self.bars["Rez"], 3, 1, self.settings.traits["Rally"].active, 41, "0x70001251");
self.skills["CryoftheValar"] = SkillSlot(self.bars["CrowdControl"], 1, 1, true, 12, "0x70003E82");
self.skills["SongoftheDead"] = SkillSlot(self.bars["CrowdControl"], 2, 1, true, 16, "0x70003E87");
self.skills["SongofDistraction"] = SkillSlot(self.bars["CrowdControl"], 3, 1, true, 34, "0x70003E8E");
self.skills["LayoftheHammerhand"] = SkillSlot(self.bars["PowerShield"], 1, 1, true, { 42, 64 }, { "0x70003E91", "0x70020DF9" });
self.skills["CryoftheChorus"] = SkillSlot(self.bars["Silenced"], 1, 1, true, { 26, 54 }, { "0x700031B2", "0x7000F260" });
self.skills["CureFear"] = SkillSlot(self.bars["Cure"], 1, 1, true, 26, "0x70003E8B");
self.skills["FellowshipsHeart"] = SkillSlot(self.bars["Cure"], 2, 1, self.settings.traits["FellowshipsHeart"].active, 45, "0x70006CEB");
-- Build Quickslots ItemSlot( parent:SkillBar, x:int, y:int, active:Boolean, type:int, data:String );
self.skills["LuteStrings"] = ItemSlot(self.bars["Consumables"], 1, 1, self.settings.quickslots["LuteStrings"]);
self.skills["SheetMusic"] = ItemSlot(self.bars["Consumables"], 2, 1, self.settings.quickslots["SheetMusic"]);
-- Build MultiSlots SkillMultiSlot( parent:SkillBar, x:int, y:int, active:Boolean );
-- multi:AddShortCut(name:String, level:int, hex:String);
self.multi["TalesSlot"] = SkillMultiSlot(self.bars["Tales"], 1, 1, true);
self.multi["TalesSlot"]:AddShortCut("TaleofHeroism", 22, "0x70003E89");
self.multi["TalesSlot"]:AddShortCut("TaleofBattle", 32, "0x7000B661");
self.multi["TalesSlot"]:AddShortCut("TaleofWarding", 44, "0x7000B660");
self.multi["TalesSlot"]:AddShortCut("TaleofFrostandFlame", 58, "0x7000F216");
if (self.settings.traits["MasterofTales"].active) then self.multi["TalesSlot"]:AddShortCut("TaleofWardingandHeroism", 55, "0x7000F21B"); end
if (self.settings.traits["MasterofTales"].active) then self.multi["TalesSlot"]:AddShortCut("TaleofFrostandFlamesBattle", 55, "0x7000F21C"); end
self.multi["TalesSlot"]:LevelCheck();
self.multi["TalesSlot"]:SetIndex(self.settings.defaults["PrimaryTale"].selected);
-- SET COMBAT STATES
self.skills["SongofSoothing"]:SetCombat(true, false);
self.skills["StillasDeath"]:SetCombat(true, false);
self.skills["SongofRestoration"]:SetCombat(false, true);
self.skills["EnliveningGrace"]:SetCombat(false, true);
self.skills["SheetMusic"]:SetCombat(true, false);
-- CLASS SPECIFIC SETUP/DEFAULT CODE
-- EVENTS
-- Stance Change Event
AddCallback(vars.classattr, "StanceChanged", function(sender, args)
KragenBars:StanceChange(vars.classattr:GetStance());
end);
-- Ballad Tier Change Events
-- AddCallback(vars.classattr, "IsSerenadeTier1AvailableChanged", function(sender, args)
-- KragenBars:BalladT1Change(vars.classattr:IsSerenadeTier1Available());
-- end);
-- AddCallback(vars.classattr, "IsSerenadeTier2Changed", function(sender, args)
-- KragenBars:BalladT2Change(vars.classattr:IsSerenadeTier2Available());
-- end);
-- AddCallback(vars.classattr, "IsSerenadeTier3Changed", function(sender, args)
-- KragenBars:BalladT3Change(vars.classattr:IsSerenadeTier3Available());
-- end);
-- INITIALIZE BARS
self:InitBars();
self:CombatChange(vars.player:IsInCombat());
-- self:StanceChange(vars.classattr:GetStance());
-- self:BalladT1Change(vars.classattr:IsSerenadeTier1Available());
-- self:BalladT2Change(vars.classattr:IsSerenadeTier2Available());
-- self:BalladT2Change(vars.classattr:IsSerenadeTier2Available());
end
-- ADD EFFECT EVENT
function MiniBars:AddEffect( effectIndex )
local effect = vars.player:GetEffects():Get( effectIndex );
local name = effect:GetName();
local id = effect:GetID();
if (name == self.effectlist["BalladofVigour"]:GetName() and self.settings.defaults["ActiveBallad"].selected ~= 1) then
self.skills["BalladofVigour"]:SetState( true , true, id);
if (self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["BalladofVigour"]:SetHover(true);
elseif (self.settings.defaults["ActiveBallad"].selected == 3) then
self.skills["BalladofVigour"]:SetActive(false);
end
elseif (name == self.effectlist["BalladofSteel"]:GetName() and self.settings.defaults["ActiveBallad"].selected ~= 1) then
self.skills["BalladofSteel"]:SetState( true , true, id);
if (self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["BalladofSteel"]:SetHover(true);
elseif (self.settings.defaults["ActiveBallad"].selected == 3) then
self.skills["BalladofSteel"]:SetActive(false);
end
elseif (name == self.effectlist["BalladofResonance"]:GetName() and self.settings.defaults["ActiveBallad"].selected ~= 1) then
self.skills["BalladofResonance"]:SetState( true , true, id);
if (self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["BalladofResonance"]:SetHover(true);
elseif (self.settings.defaults["ActiveBallad"].selected == 3) then
self.skills["BalladofResonance"]:SetActive(false);
end
elseif (name == self.effectlist["BalladofSwiftness"]:GetName() and self.settings.defaults["ActiveBallad"].selected ~= 1) then
self.skills["BalladofSwiftness"]:SetState( true , true, id);
if (self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["BalladofSwiftness"]:SetHover(true);
elseif (self.settings.defaults["ActiveBallad"].selected == 3) then
self.skills["BalladofSwiftness"]:SetActive(false);
end
elseif (name == self.effectlist["BalladofBalance"]:GetName() and self.settings.defaults["ActiveBallad"].selected ~= 1) then
self.skills["BalladofBalance"]:SetState( true , true, id);
if (self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["BalladofBalance"]:SetHover(true);
elseif (self.settings.defaults["ActiveBallad"].selected == 3) then
self.skills["BalladofBalance"]:SetActive(false);
end
elseif (name == self.effectlist["BalladoftheStout"]:GetName() and self.settings.defaults["ActiveBallad"].selected ~= 1) then
self.skills["BalladoftheStout"]:SetState( true , true, id);
if (self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["BalladoftheStout"]:SetHover(true);
elseif (self.settings.defaults["ActiveBallad"].selected == 3) then
self.skills["BalladoftheStout"]:SetActive(false);
end
elseif (name == self.effectlist["BalladofWar"]:GetName() and self.settings.defaults["ActiveBallad"].selected ~= 1) then
self.skills["BalladofWar"]:SetState( true , true, id);
if (self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["BalladofWar"]:SetHover(true);
elseif (self.settings.defaults["ActiveBallad"].selected == 3) then
self.skills["BalladofWar"]:SetActive(false);
end
elseif (name == self.effectlist["BalladofUnshakeableWill"]:GetName() and self.settings.defaults["ActiveBallad"].selected ~= 1) then
self.skills["BalladofUnshakeableWill"]:SetState( true , true, id);
if (self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["BalladofUnshakeableWill"]:SetHover(true);
elseif (self.settings.defaults["ActiveBallad"].selected == 3) then
self.skills["BalladofUnshakeableWill"]:SetActive(false);
end
elseif (name == self.effectlist["BalladofFlame"]:GetName() and self.settings.defaults["ActiveBallad"].selected ~= 1) then
self.skills["BalladofFlame"]:SetState( true , true, id);
if (self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["BalladofFlame"]:SetHover(true);
elseif (self.settings.defaults["ActiveBallad"].selected == 3) then
self.skills["BalladofFlame"]:SetActive(false);
end
elseif (name == self.effectlist["AnthemoftheFreePeoples"]:GetName() and self.settings.defaults["ActiveBallad"].selected ~= 1) then
self.skills["AnthemoftheFreePeoples"]:SetState( true , true, id);
if (self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["AnthemoftheFreePeoples"]:SetHover(true);
elseif (self.settings.defaults["ActiveBallad"].selected == 3) then
self.skills["AnthemoftheFreePeoples"]:SetActive(false);
end
elseif (name == self.effectlist["AnthemofCompassion"]:GetName() and self.settings.defaults["ActiveBallad"].selected ~= 1) then
self.skills["AnthemofCompassion"]:SetState( true , true, id);
if (self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["AnthemofCompassion"]:SetHover(true);
elseif (self.settings.defaults["ActiveBallad"].selected == 3) then
self.skills["AnthemofCompassion"]:SetActive(false);
end
elseif (name == self.effectlist["BalladTier1"]:GetName()) then
self.t1active = { state = true; buffid = id };
if (self.settings.defaults["ActiveBallad"].selected == 1 or self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["BalladofSwiftness"]:SetActive(true);
self.skills["BalladofBalance"]:SetActive(true);
self.skills["BalladoftheStout"]:SetActive(true);
else
self.skills["BalladofSwiftness"]:SetActive(not self.skills["BalladofSwiftness"].state);
self.skills["BalladofBalance"]:SetActive(not self.skills["BalladofBalance"].state);
self.skills["BalladoftheStout"]:SetActive(not self.skills["BalladoftheStout"].state);
end
elseif (name == self.effectlist["BalladTier2"]:GetName()) then
self.t2active = { state = true; buffid = id };
if (self.settings.defaults["ActiveBallad"].selected == 1 or self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["BalladofWar"]:SetActive(true);
self.skills["BalladofUnshakeableWill"]:SetActive(true);
self.skills["BalladofFlame"]:SetActive(true);
else
self.skills["BalladofWar"]:SetActive(not self.skills["BalladofWar"].state);
self.skills["BalladofUnshakeableWill"]:SetActive(not self.skills["BalladofUnshakeableWill"].state);
self.skills["BalladofFlame"]:SetActive(not self.skills["BalladofFlame"].state);
end
elseif (name == self.effectlist["BalladTier3"]:GetName()) then
self.t3active = { state = true; buffid = id };
self.skills["AnthemoftheValar"]:SetActive(true);
self.skills["AnthemoftheWizards"]:SetActive(self.settings.traits["AnthemoftheWizards"].active);
if (self.settings.defaults["ActiveBallad"].selected == 1 or self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["AnthemoftheFreePeoples"]:SetActive(true);
self.skills["AnthemofCompassion"]:SetActive(true);
else
self.skills["AnthemoftheFreePeoples"]:SetActive(not self.skills["AnthemoftheFreePeoples"].state);
self.skills["AnthemofCompassion"]:SetActive(not self.skills["AnthemofCompassion"].state);
end
elseif (name == self.effectlist["Warspeech"]:GetName()) then
self.skills["CallofOrome"]:SetActive(true);
self.skills["CalloftheSecondAge"]:SetActive(true);
self.skills["CalltoFate"]:SetActive(true);
elseif (name == self.effectlist["Silenced"]:GetName()) then
self.skills["CryoftheChorus"]:SetState( true , true, id);
elseif (name == self.effectlist["TaleofHeroism"]:GetName() or name == self.effectlist["TaleofBattle"]:GetName() or name == self.effectlist["TaleofWarding"]:GetName() or name == self.effectlist["TaleofFrostandFlame"]:GetName() or name == self.effectlist["TaleofWardingandHeroism"]:GetName() or name == self.effectlist["TaleofFrostandFlamesBattle"]:GetName()) then
self.multi["TalesSlot"]:SetState( true , true, id);
self.multi["TalesSlot"]:SetHover(true);
elseif (string.find(name, self.effectlist["LuteStrings"]:GetName()) ~= nil) then
self.skills["LuteStrings"]:SetState(true, false, id);
self.skills["LuteStrings"]:SetHover(true);
self.skills["LuteStrings"]:StartTimer(effect:GetDuration() * .85, true);
end
end
-- REMOVE EFFECT EVENT
function MiniBars:RemoveEffect( effect )
local name = effect:GetName();
local id = effect:GetID();
if (name == self.effectlist["BalladofVigour"]:GetName()) then
self.skills["BalladofVigour"]:SetState( false , true, id);
self.skills["BalladofVigour"]:SetHover(false);
elseif (name == self.effectlist["BalladofSteel"]:GetName()) then
self.skills["BalladofSteel"]:SetState( false , true, id);
self.skills["BalladofSteel"]:SetHover(false);
elseif (name == self.effectlist["BalladofResonance"]:GetName()) then
self.skills["BalladofResonance"]:SetState( false , true, id);
self.skills["BalladofResonance"]:SetHover(false);
elseif (name == self.effectlist["BalladofSwiftness"]:GetName()) then
self.skills["BalladofSwiftness"]:SetState( false , self.t1active["state"], id);
self.skills["BalladofSwiftness"]:SetHover(false);
elseif (name == self.effectlist["BalladofBalance"]:GetName()) then
self.skills["BalladofBalance"]:SetState( false , self.t1active["state"], id);
self.skills["BalladofBalance"]:SetHover(false);
elseif (name == self.effectlist["BalladoftheStout"]:GetName()) then
self.skills["BalladoftheStout"]:SetState( false , self.t1active["state"], id);
self.skills["BalladoftheStout"]:SetHover(false);
elseif (name == self.effectlist["BalladofWar"]:GetName()) then
self.skills["BalladofWar"]:SetState( false , self.t2active["state"], id);
self.skills["BalladofWar"]:SetHover(false);
elseif (name == self.effectlist["BalladofUnshakeableWill"]:GetName()) then
self.skills["BalladofUnshakeableWill"]:SetState( false , self.t2active["state"], id);
self.skills["BalladofUnshakeableWill"]:SetHover(false);
elseif (name == self.effectlist["BalladofFlame"]:GetName()) then
self.skills["BalladofFlame"]:SetState( false , self.t2active["state"], id);
self.skills["BalladofFlame"]:SetHover(false);
elseif (name == self.effectlist["AnthemoftheFreePeoples"]:GetName()) then
self.skills["AnthemoftheFreePeoples"]:SetState( false , self.t3active["state"], id);
self.skills["AnthemoftheFreePeoples"]:SetHover(false);
elseif (name == self.effectlist["AnthemofCompassion"]:GetName()) then
self.skills["AnthemofCompassion"]:SetState( false , self.t3active["state"], id);
self.skills["AnthemofCompassion"]:SetHover(false);
elseif (name == self.effectlist["BalladTier1"]:GetName()) then
if (id == self.t1active.buffid) then self.t1active = { state = false, buffid = 0 }; end
if (self.settings.defaults["ActiveBallad"].selected == 1 or self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["BalladofSwiftness"]:SetActive(self.t1active["state"]);
self.skills["BalladofBalance"]:SetActive(self.t1active["state"]);
self.skills["BalladoftheStout"]:SetActive(self.t1active["state"]);
else
self.skills["BalladofSwiftness"]:SetActive(self.t1active["state"] and not self.skills["BalladofSwiftness"].state);
self.skills["BalladofBalance"]:SetActive(self.t1active["state"] and not self.skills["BalladofBalance"].state);
self.skills["BalladoftheStout"]:SetActive(self.t1active["state"] and not self.skills["BalladoftheStout"].state);
end
elseif (name == self.effectlist["BalladTier2"]:GetName()) then
if (id == self.t2active.buffid) then self.t2active = { state = false, buffid = 0 }; end
if (self.settings.defaults["ActiveBallad"].selected == 1 or self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["BalladofWar"]:SetActive(self.t2active["state"]);
self.skills["BalladofUnshakeableWill"]:SetActive(self.t2active["state"]);
self.skills["BalladofFlame"]:SetActive(self.t2active["state"]);
else
self.skills["BalladofWar"]:SetActive(self.t2active["state"] and not self.skills["BalladofWar"].state);
self.skills["BalladofUnshakeableWill"]:SetActive(self.t2active["state"] and not self.skills["BalladofUnshakeableWill"].state);
self.skills["BalladofFlame"]:SetActive(self.t2active["state"] and not self.skills["BalladofFlame"].state);
end
elseif (name == self.effectlist["BalladTier3"]:GetName()) then
if (id == self.t3active.buffid) then self.t3active = { state = false, buffid = 0 }; end
if (self.settings.defaults["ActiveBallad"].selected == 1 or self.settings.defaults["ActiveBallad"].selected == 2) then
self.skills["AnthemoftheFreePeoples"]:SetActive(self.t3active["state"]);
self.skills["AnthemofCompassion"]:SetActive(self.t3active["state"]);
else
self.skills["AnthemoftheFreePeoples"]:SetActive(self.t3active["state"] and not self.skills["AnthemoftheFreePeoples"].state);
self.skills["AnthemofCompassion"]:SetActive(self.t3active["state"] and not self.skills["AnthemofCompassion"].state);
end
self.skills["AnthemoftheValar"]:SetActive(false);
self.skills["AnthemoftheWizards"]:SetActive(false);
elseif (name == self.effectlist["Warspeech"]:GetName()) then
self.skills["CallofOrome"]:SetActive(false);
self.skills["CalloftheSecondAge"]:SetActive(false);
self.skills["CalltoFate"]:SetActive(false);
elseif (name == self.effectlist["Silenced"]:GetName()) then
self.skills["CryoftheChorus"]:SetState( false , false, id);
elseif (name == self.effectlist["TaleofHeroism"]:GetName() or name == self.effectlist["TaleofBattle"]:GetName() or name == self.effectlist["TaleofWarding"]:GetName() or name == self.effectlist["TaleofFrostandFlame"]:GetName() or name == self.effectlist["TaleofWardingandHeroism"]:GetName() or name == self.effectlist["TaleofFrostandFlamesBattle"]:GetName()) then
self.multi["TalesSlot"]:SetState( false , true, id);
self.multi["TalesSlot"]:SetHover(false);
elseif (string.find(name, self.effectlist["LuteStrings"]:GetName()) ~= nil) then
self.skills["LuteStrings"]:SetState(false, true, id);
self.skills["LuteStrings"]:SetHover(false);
end
end
function MiniBars:StanceChange(stance)
-- Turbine.Shell.WriteLine("KragenBars: Stance Change: " ..vars.classattr:GetStance());
-- if (stance == 1) then
-- self.skills["CallofOrome"]:SetActive(true);
-- self.skills["CalloftheSecondAge"]:SetActive(true);
-- self.skills["CalltoFate"]:SetActive(true);
-- else
-- self.skills["CallofOrome"]:SetActive(false);
-- self.skills["CalloftheSecondAge"]:SetActive(false);
-- self.skills["CalltoFate"]:SetActive(false);
-- end
end
function MiniBars:BalladT1Change(bol)
-- if (vars.classattr:IsSerenadeTier1Available()) then
-- Turbine.Shell.WriteLine("KragenBars: BalladT1 Change: true");
-- else
-- Turbine.Shell.WriteLine("KragenBars: BalladT1 Change: false");
-- end
-- if (bol) then
-- if (self.settings["Features"].activeballad == 0 or self.settings["Features"].activeballad == 1) then
-- self.skills["BalladofSwiftness"]:SetActive(true);
-- self.skills["BalladofBalance"]:SetActive(true);
-- self.skills["BalladoftheStout"]:SetActive(true);
-- else
-- self.skills["BalladofSwiftness"]:SetActive(not self.skills["BalladofSwiftness"].state);
-- self.skills["BalladofBalance"]:SetActive(not self.skills["BalladofBalance"].state);
-- self.skills["BalladoftheStout"]:SetActive(not self.skills["BalladoftheStout"].state);
-- end
-- else
-- self.skills["BalladofSwiftness"]:SetActive(false);
-- self.skills["BalladofBalance"]:SetActive(false);
-- self.skills["BalladoftheStout"]:SetActive(false);
-- end
end
function MiniBars:BalladT2Change(bol)
-- if (vars.classattr:IsSerenadeTier2Available()) then
-- Turbine.Shell.WriteLine("KragenBars: BalladT2 Change: true");
-- else
-- Turbine.Shell.WriteLine("KragenBars: BalladT2 Change: false");
-- end
-- if (bol) then
-- if (self.settings["Features"].activeballad == 0 or self.settings["Features"].activeballad == 1) then
-- self.skills["BalladofWar"]:SetActive(true);
-- self.skills["BalladofUnshakeableWill"]:SetActive(true);
-- self.skills["BalladofFlame"]:SetActive(true);
-- else
-- self.skills["BalladofWar"]:SetActive(not self.skills["BalladofWar"].state);
-- self.skills["BalladofUnshakeableWill"]:SetActive(not self.skills["BalladofUnshakeableWill"].state);
-- self.skills["BalladofFlame"]:SetActive(not self.skills["BalladofFlame"].state);
-- end
-- else
-- self.skills["BalladofWar"]:SetActive(false);
-- self.skills["BalladofUnshakeableWill"]:SetActive(false);
-- self.skills["BalladofFlame"]:SetActive(false);
-- end
end
function MiniBars:BalladT3Change(bol)
-- if (vars.classattr:IsSerenadeTier3Available()) then
-- Turbine.Shell.WriteLine("KragenBars: BalladT3 Change: true");
-- else
-- Turbine.Shell.WriteLine("KragenBars: BalladT3 Change: false");
-- end
-- if (bol) then
-- self.skills["AnthemoftheValar"]:SetActive(true);
-- self.skills["AnthemoftheWizards"]:SetActive(self.settings["Features"].wizards);
-- if (self.settings["Features"].activeballad == 0 or self.settings["Features"].activeballad == 1) then
-- self.skills["AnthemoftheFreePeoples"]:SetActive(true);
-- self.skills["AnthemofCompassion"]:SetActive(true);
-- else
-- self.skills["AnthemoftheFreePeoples"]:SetActive(not self.skills["AnthemoftheFreePeoples"].state);
-- self.skills["AnthemofCompassion"]:SetActive(not self.skills["AnthemofCompassion"].state);
-- end
-- else
-- self.skills["AnthemoftheFreePeoples"]:SetActive(false);
-- self.skills["AnthemofCompassion"]:SetActive(false);
-- end
end
function MiniBars:DefaultSettings()
self.settings = { preconf = { }, userconf = { }, traits = { }, features = { }, defaults = { }, quickslots = { } };
self.settings.userconf["BalladsT1"] = { id = 1, name = "Ballads T1", defpos = {1,1}, size={3,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["BalladsT2"] = { id = 2, name = "Ballads T2", defpos = {1,2}, size={3,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["BalladsT3"] = { id = 3, name = "Ballads T3", defpos = {1,3}, size={3,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["Anthems"] = { id = 4, name = "Anthems", defpos = {1,4}, size={4,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["Warspeech"] = { id = 5, name = "Warspeech", defpos = {4,1}, size={1,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["Calls"] = { id = 6, name = "Calls", defpos = {5,1}, size={3,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["Damage"] = { id = 7, name = "Damage", defpos = {8,1}, size={2,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["Dethreat"] = { id = 8, name = "Dethreat", defpos = {10,1}, size={2,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["Melee"] = { id = 9, name = "Melee", defpos = {4,2}, size={2,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["Heals"] = { id = 10, name = "Heals", defpos = {1,5}, size={6,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["Tales"] = { id = 11, name = "Tales", defpos = {6,2}, size={1,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["Utility"] = { id = 12, name = "Utility", defpos = {7,2}, size={5,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["Rez"] = { id = 13, name = "Rez", defpos = {4,3}, size={3,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["CrowdControl"] = { id = 14, name = "Crowd Control", defpos = {8,2}, size={3,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["PowerShield"] = { id = 15, name = "PowerShield", defpos = {5,4}, size={1,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["Silenced"] = { id = 16, name = "Silenced", defpos = {6,4}, size={1,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["Cure"] = { id = 17, name = "Cure", defpos = {7,4}, size={2,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.userconf["Consumables"] = { id = 18, name = "Consumables", defpos = {9,4}, size={2,1}, pos = {0,0}, combat = {true,true}, active = true };
self.settings.traits["SongoftheHopefulHeart"] = { id = 1, name = "Song..Hopeful Heart", active = false };
self.settings.traits["FellowshipsHeart"] = { id = 2, name = "Fellowship's Heart", active = false };
self.settings.traits["Rally"] = { id = 3, name = "Rally", active = false };
self.settings.traits["AnthemoftheWizards"] = { id = 4, name = "Anthem...Wizards", active = false };
self.settings.traits["MasterofTales"] = { id = 5, name = "Master of Tales", active = false };
self.settings.defaults["PrimaryTale"] = { id = 1, name = "Primary Tale", selected = 1, list = { "Tale of Heroism", "Tale of Battle", "Tale of Warding", "Tale of Frost and Flame", "Tale of Warding and Heroism", "Tale of Frost and Flame's Battle" } };
self.settings.defaults["ActiveBallad"] = { id = 2, name = "Active Ballad Effect", selected = 1, list = { "None", "Dim", "Hide" } };
self.settings.quickslots["LuteStrings"] = {id = 1, name = "Lute Strings", active = false, type = 0, data = ""};
self.settings.quickslots["SheetMusic"] = {id = 2, name = "Sheet Music", active = false, type = 0, data = ""};
end
function MiniBars:UpdateSettings()
if (settings.vers < 3.12) then
self.settings["Consumables"] = { active = true, x = 0, y = 0, rotate = 0 };
self.settings["Quickslots"] = { };
self.settings["Quickslots"].lutestrings = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
self.settings["Quickslots"].sheetmusic = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
end
if (settings.vers < 3.21) then
local oldclassinfo = self.settings;
self:DefaultSettings();
for k,v in pairs(oldclassinfo) do
if (k ~= "Features" and k ~= "Quickslots") then
if (self.settings.preconf[k] == nil) then
if (self.settings.userconf[k] ~= nil) then
self.settings.userconf[k].pos = { v.x, v.y };
self.settings.userconf[k].combat = { true, true };
self.settings.userconf[k].active = v.active;
end
else
self.settings.preconf[k].pos = { v.x, v.y };
self.settings.preconf[k].combat = { true, true };
self.settings.preconf[k].active = v.active;
end
elseif (k == "Features") then
for key, value in pairs(v) do
if (key == 'activeballad') then
self.settings.defaults["ActiveBallad"].selected = value;
elseif (key == 'wizards') then
self.settings.traits["AnthemoftheWizards"].active = value;
elseif (key == 'primarytale') then
self.settings.defaults["PrimaryTale"].selected = value;
elseif (key == 'mastertales') then
self.settings.traits["MasterofTales"].active = value;
elseif (key == 'hopefulheart') then
self.settings.traits["SongoftheHopefulHeart"].active = value;
elseif (key == 'rally') then
self.settings.traits["Rally"].active = value;
elseif (key == 'fellowshipsheart') then
self.settings.traits["FellowshipsHeart"].active = value;
end
end
elseif (k == "Quickslots") then
for key, value in pairs(v) do
if (key == 'lutestrings') then
self.settings.quickslots["LuteStrings"].active = value.active;
self.settings.quickslots["LuteStrings"].type = value.type;
self.settings.quickslots["LuteStrings"].data = value.data;
elseif (key == 'sheetmusic') then
self.settings.quickslots["SheetMusic"].active = value.active;
self.settings.quickslots["SheetMusic"].type = value.type;
self.settings.quickslots["SheetMusic"].data = value.data;
end
end
end
end
end
settings.vers = vars.vers;
end
function MiniBars:Refresh()
-- GENERIC REFRESH (Required for all classes)
self:RefreshBars();
-- REDEFINE EFFECTLIST IN CASE OF LANGUAGE CHANGE
self.DefineEffectList();
-- CLASS SPECIFIC REFRESH
-- Setup Features
self.skills["AnthemoftheWizards"]:SetActive(self.settings.traits["AnthemoftheWizards"].active and self.t3active.state);
self.skills["SongoftheHopefulHeart"]:SetActive(self.settings.traits["SongoftheHopefulHeart"].active);
self.skills["Rally"]:SetActive(self.settings.traits["Rally"].active);
self.skills["FellowshipsHeart"]:SetActive(self.settings.traits["FellowshipsHeart"].active);
self.skills["LuteStrings"]:SetQuickslot(self.settings.quickslots["LuteStrings"]);
self.skills["SheetMusic"]:SetQuickslot(self.settings.quickslots["SheetMusic"]);
-- Build Multi Slots
self.multi["TalesSlot"]:Clear();
self.multi["TalesSlot"]:AddShortCut("TaleofHeroism", 22, "0x70003E89");
self.multi["TalesSlot"]:AddShortCut("TaleofBattle", 32, "0x7000B661");
self.multi["TalesSlot"]:AddShortCut("TaleofWarding", 44, "0x7000B660");
self.multi["TalesSlot"]:AddShortCut("TaleofFrostandFlame", 58, "0x7000F216");
if (self.settings.traits["MasterofTales"].active) then self.multi["TalesSlot"]:AddShortCut("TaleofWardingandHeroism", 55, "0x7000F21B"); end
if (self.settings.traits["MasterofTales"].active) then self.multi["TalesSlot"]:AddShortCut("TaleofFrostandFlamesBattle", 55, "0x7000F21C"); end
self.multi["TalesSlot"]:LevelCheck();
self.multi["TalesSlot"]:SetIndex(self.settings.defaults["PrimaryTale"].selected);
if (self.multi["TalesSlot"].effectid ~= 0) then
self.multi["TalesSlot"]:SetHover(true);
end
-- Refresh States
self:CombatChange(vars.player:IsInCombat());
-- self:StanceChange(vars.classattr:GetStance());
-- self:BalladT1Change(vars.classattr:IsSerenadeTier1Available());
-- self:BalladT2Change(vars.classattr:IsSerenadeTier2Available());
-- self:BalladT2Change(vars.classattr:IsSerenadeTier2Available());
Turbine.Shell.WriteLine("KragenBars: Minstrel Bars refresh completed successfully.");
end