lotrointerface.com
Search Downloads

LoTROInterface SVN KragenBars

[/] [branches/] [3.21/] [KragenBars/] [HunterBars.lua] - Blame information for rev 72

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 72 Kragenwar-3044
import "Turbine.UI";
2 Kragenwar-3044
import "Turbine.UI.Lotro";
3 Kragenwar-3044
import "Turbine.Gameplay";
4 Kragenwar-3044
import "KragenPlugs.Utils";
5 Kragenwar-3044
import "KragenPlugs.KragenBars";
6 Kragenwar-3044
 
7 Kragenwar-3044
HunterBars =  class( KragenPlugs.KragenBars.ClassBar );
8 Kragenwar-3044
 
9 Kragenwar-3044
function HunterBars:Constructor()
10 Kragenwar-3044
 
11 Kragenwar-3044
        KragenPlugs.KragenBars.ClassBar.Constructor( self );
12 Kragenwar-3044
 
13 Kragenwar-3044
    -- SET AND UPDATE DEFAULT SETTINGS
14 Kragenwar-3044
    if (not settings.class) then
15 Kragenwar-3044
        settings.class = vars.playerclass;
16 Kragenwar-3044
        self:DefaultSettings();
17 Kragenwar-3044
        self:ShowSetup();
18 Kragenwar-3044
    else
19 Kragenwar-3044
        self.settings = settings.classinfo;
20 Kragenwar-3044
        if (settings.vers ~= vars.vers) then
21 Kragenwar-3044
                self:UpdateSettings();
22 Kragenwar-3044
        end
23 Kragenwar-3044
    end
24 Kragenwar-3044
 
25 Kragenwar-3044
        -- CLASS SPECIFIC VARIABLES
26 Kragenwar-3044
 
27 Kragenwar-3044
 
28 Kragenwar-3044
        -- DEFINE THE EFFECT LIST BASED ON CLIENT LANGUAGE
29 Kragenwar-3044
        self.DefineEffectList = function()
30 Kragenwar-3044
                self.effectlist = { };
31 Kragenwar-3044
                -- ENGLISH CLIENT
32 Kragenwar-3044
                if (settings.language == 1) then
33 Kragenwar-3044
                        self.effectlist["ParryResponse"]        = "Parry Response";
34 Kragenwar-3044
                        self.effectlist["FindthePath"]          = "Find the Path";
35 Kragenwar-3044
                        self.effectlist["SwiftStroke"]          = "Swift Stroke";
36 Kragenwar-3044
                        self.effectlist["SimpleFireoil"]        = "Simple Fire-oil";
37 Kragenwar-3044
                        self.effectlist["Fireoil"]                      = "Fire-oil";
38 Kragenwar-3044
                        self.effectlist["RefinedFireoil"]       = "Refined Fire-oil";
39 Kragenwar-3044
                        self.effectlist["PureFireoil"]          = "Pure Fire-oil";
40 Kragenwar-3044
                        self.effectlist["SimpleLightoil"]       = "Simple Light-oil";
41 Kragenwar-3044
                        self.effectlist["Lightoil"]                     = "Light-oil";
42 Kragenwar-3044
                        self.effectlist["RefinedLightoil"]      = "Refined Light-oil";
43 Kragenwar-3044
                        self.effectlist["PureLightoil"]         = "Pure Light-oil";
44 Kragenwar-3044
                        self.effectlist["BowChant"]                     = "Bow Chant";
45 Kragenwar-3044
                elseif (settings.language == 2) then
46 Kragenwar-3044
                        self.effectlist["ParryResponse"]        = "Parry Response";
47 Kragenwar-3044
                        self.effectlist["FindthePath"]          = "Find the Path";
48 Kragenwar-3044
                        self.effectlist["SwiftStroke"]          = "Swift Stroke";
49 Kragenwar-3044
                        self.effectlist["SimpleFireoil"]        = "Simple Fire-oil";
50 Kragenwar-3044
                        self.effectlist["Fireoil"]                      = "Fire-oil";
51 Kragenwar-3044
                        self.effectlist["RefinedFireoil"]       = "Refined Fire-oil";
52 Kragenwar-3044
                        self.effectlist["PureFireoil"]          = "Pure Fire-oil";
53 Kragenwar-3044
                        self.effectlist["SimpleLightoil"]       = "Simple Light-oil";
54 Kragenwar-3044
                        self.effectlist["Lightoil"]                     = "Light-oil";
55 Kragenwar-3044
                        self.effectlist["RefinedLightoil"]      = "Refined Light-oil";
56 Kragenwar-3044
                        self.effectlist["PureLightoil"]         = "Pure Light-oil";
57 Kragenwar-3044
                        self.effectlist["BowChant"]                     = "Bow Chant";
58 Kragenwar-3044
                        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");
59 Kragenwar-3044
                elseif (settings.language == 3) then
60 Kragenwar-3044
                        self.effectlist["ParryResponse"]        = "Parry Response";
61 Kragenwar-3044
                        self.effectlist["FindthePath"]          = "Find the Path";
62 Kragenwar-3044
                        self.effectlist["SwiftStroke"]          = "Swift Stroke";
63 Kragenwar-3044
                        self.effectlist["SimpleFireoil"]        = "Simple Fire-oil";
64 Kragenwar-3044
                        self.effectlist["Fireoil"]                      = "Fire-oil";
65 Kragenwar-3044
                        self.effectlist["RefinedFireoil"]       = "Refined Fire-oil";
66 Kragenwar-3044
                        self.effectlist["PureFireoil"]          = "Pure Fire-oil";
67 Kragenwar-3044
                        self.effectlist["SimpleLightoil"]       = "Simple Light-oil";
68 Kragenwar-3044
                        self.effectlist["Lightoil"]                     = "Light-oil";
69 Kragenwar-3044
                        self.effectlist["RefinedLightoil"]      = "Refined Light-oil";
70 Kragenwar-3044
                        self.effectlist["PureLightoil"]         = "Pure Light-oil";
71 Kragenwar-3044
                        self.effectlist["BowChant"]                     = "Bow Chant";
72 Kragenwar-3044
                        Turbine.Shell.WriteLine("Some features may not function with the German Client.  If you would like to help with German effect names goto http://www.lotrointerface.com/downloads/info384-KragenBars.html");
73 Kragenwar-3044
                end
74 Kragenwar-3044
        end
75 Kragenwar-3044
 
76 Kragenwar-3044
    -- BUILD WINDOWS BARS SKILLS AND MULTIS --
77 Kragenwar-3044
 
78 Kragenwar-3044
    -- ALL X, Y, WIDTH, HEIGHT values are in quickslot (ie: 1 width = the width of one quickslot: 35 px);
79 Kragenwar-3044
    -- Build Windows        SkillWindow( name:String, defaultx:int, defaulty:int, width:int, height:int, settings:table);
80 Kragenwar-3044
    self.windows["Parry"]               = SkillWindow("Parry",          1, 1, 1, 1,     self.settings["Parry"]          );
81 Kragenwar-3044
    self.windows["Melee"]               = SkillWindow("Melee",          2, 1, 5, 1,     self.settings["Melee"]          );
82 Kragenwar-3044
    self.windows["BowInduct"]   = SkillWindow("BowInduct",      1, 2, 5, 1,     self.settings["BowInduct"]  );
83 Kragenwar-3044
    self.windows["BowFocus"]    = SkillWindow("BowFocus",       1, 3, 5, 1,     self.settings["BowFocus"]       );
84 Kragenwar-3044
    self.windows["Dethreat"]    = SkillWindow("Dethreat",       7, 2, 1, 1,     self.settings["Dethreat"]       );
85 Kragenwar-3044
        self.windows["Utility"]         = SkillWindow("Utility",        1, 4, 3, 1,     self.settings["Utility"]        );
86 Kragenwar-3044
        self.windows["Tracking"]        = SkillWindow("Tracking",       4, 4, 1, 1,     self.settings["Tracking"]       );
87 Kragenwar-3044
    self.windows["Fear"]                = SkillWindow("Fear",           5, 2, 2, 1,     self.settings["Fear"]           );
88 Kragenwar-3044
    self.windows["Stance"]              = SkillWindow("Stance",         7, 4, 2, 1,     self.settings["Stance"]         );
89 Kragenwar-3044
    self.windows["Focus"]               = SkillWindow("Focus",          1, 5, 4, 1,     self.settings["Focus"]          );
90 Kragenwar-3044
    self.windows["Restoration"] = SkillWindow("Restoration",5, 5, 3, 1,         self.settings["Restoration"]);
91 Kragenwar-3044
    self.windows["Trapping"]    = SkillWindow("Trapping",       5, 4, 2, 1,     self.settings["Trapping"]       );
92 Kragenwar-3044
    self.windows["Oils"]                = SkillWindow("Oils",           9, 4, 3, 1,     self.settings["Oils"]           );
93 Kragenwar-3044
    self.windows["Ports"]               = SkillWindow("Ports",          8, 5, 1, 1,     self.settings["Ports"]          );
94 Kragenwar-3044
 
95 Kragenwar-3044
    -- Build Bars           SkillBar( parent:SkillWindow, x:int, y:int, width:int, height:int, active:Boolean, exclusive:boolean);
96 Kragenwar-3044
    self.bars["Parry"]                  = SkillBar(self.windows["Parry"],               1, 1, 1, 1, true, false);
97 Kragenwar-3044
    self.bars["Melee"]                  = SkillBar(self.windows["Melee"],               1, 1, 5, 1, true, false);
98 Kragenwar-3044
    self.bars["BowInduct"]              = SkillBar(self.windows["BowInduct"],   1, 1, 5, 1, true, false);
99 Kragenwar-3044
    self.bars["BowFocus"]               = SkillBar(self.windows["BowFocus"],    1, 1, 5, 1, true, false);
100 Kragenwar-3044
    self.bars["Dethreat"]               = SkillBar(self.windows["Dethreat"],    1, 1, 1, 1, true, false);
101 Kragenwar-3044
    self.bars["Utility"]                = SkillBar(self.windows["Utility"],     1, 1, 3, 1, true, false);
102 Kragenwar-3044
    self.bars["Tracking"]               = SkillBar(self.windows["Tracking"],    1, 1, 1, 1, true, false);
103 Kragenwar-3044
    self.bars["Fear"]                   = SkillBar(self.windows["Fear"],                1, 1, 2, 1, true, false);
104 Kragenwar-3044
    self.bars["Stance"]                 = SkillBar(self.windows["Stance"],              1, 1, 2, 1, true, false);
105 Kragenwar-3044
    self.bars["Focus"]          = SkillBar(self.windows["Focus"],               1, 1, 4, 1, true, false);
106 Kragenwar-3044
    self.bars["Restoration"]    = SkillBar(self.windows["Restoration"], 1, 1, 3, 1, true, false);
107 Kragenwar-3044
    self.bars["Trapping"]               = SkillBar(self.windows["Trapping"],    1, 1, 2, 1, true, false);
108 Kragenwar-3044
    self.bars["Oils"]                   = SkillBar(self.windows["Oils"],                1, 1, 3, 1, true, false);
109 Kragenwar-3044
    self.bars["Ports"]                  = SkillBar(self.windows["Ports"],               1, 1, 1, 1, true, false);
110 Kragenwar-3044
 
111 Kragenwar-3044
        -- Build Skills         SkillSlot( parent:SkillBar, x:int, y:int, active:Boolean, level:int, hexcode:String );
112 Kragenwar-3044
    self.skills["AgileRejoinder"]                       = SkillSlot(self.bars["Parry"],         1, 1, false, 24, "0x70003F3C");
113 Kragenwar-3044
 
114 Kragenwar-3044
    self.skills["SwiftStroke"]                          = SkillSlot(self.bars["Melee"],         1, 1, true, 1, "0x70003F38");
115 Kragenwar-3044
    self.skills["Blindside"]                            = SkillSlot(self.bars["Melee"],         4, 1, true, 1, "0x70003F3B");
116 Kragenwar-3044
    self.skills["ScourgingBlow"]                        = SkillSlot(self.bars["Melee"],         2, 1, true, 4, "0x70003F3A");
117 Kragenwar-3044
    self.skills["LowCut"]                                       = SkillSlot(self.bars["Melee"],         3, 1, true, 16, "0x70003F39");
118 Kragenwar-3044
    self.skills["DazingBlow"]                           = SkillSlot(self.bars["Melee"],         5, 1, true, { 48, 52 }, { "0x70021D0E", "0x70021D18" });
119 Kragenwar-3044
 
120 Kragenwar-3044
    self.skills["QuickShot"]                            = SkillSlot(self.bars["BowInduct"], 1, 1, true, 1, "0x70003F32");
121 Kragenwar-3044
    self.skills["BarbedArrow"]                          = SkillSlot(self.bars["BowInduct"], 2, 1, true, 4, "0x70003F33");
122 Kragenwar-3044
    self.skills["SwiftBow"]                                     = SkillSlot(self.bars["BowInduct"], 3, 1, true, { 10, 54 }, { "0x70003F34", "0x700153E2" });
123 Kragenwar-3044
    self.skills["HeartSeeker"]                          = SkillSlot(self.bars["BowInduct"], 4, 1, true, 50, "0x7000A2D3");
124 Kragenwar-3044
    self.skills["DistractingShot"]                      = SkillSlot(self.bars["BowInduct"], 5, 1, true, 58, "0x7000F9AB");
125 Kragenwar-3044
 
126 Kragenwar-3044
    self.skills["PenetratingShot"]                      = SkillSlot(self.bars["BowFocus"],      1, 1, true, 2, "0x70003F35");
127 Kragenwar-3044
    self.skills["RainofArrows"]                         = SkillSlot(self.bars["BowFocus"],      2, 1, true, 20, "0x70003F36");
128 Kragenwar-3044
    self.skills["MercifulShot"]                         = SkillSlot(self.bars["BowFocus"],      3, 1, true, { 30, 52 }, { "0x70003F37", "0x700153E5" });
129 Kragenwar-3044
    self.skills["BloodArrow"]                           = SkillSlot(self.bars["BowFocus"],      4, 1, true, 44, "0x70021D0D");
130 Kragenwar-3044
    self.skills["RainofThorns"]                         = SkillSlot(self.bars["BowFocus"],      5, 1, self.settings["Features"].thorns, 41, "0x700010F4");
131 Kragenwar-3044
 
132 Kragenwar-3044
    self.skills["BeneathNotice"]                        = SkillSlot(self.bars["Dethreat"],      1, 1, true, { 38, 64 }, { "0x700030EC", "0x70020DF8" });
133 Kragenwar-3044
 
134 Kragenwar-3044
    self.skills["DesperateFlight"]                      = SkillSlot(self.bars["Utility"],       1, 1, true, 20, "0x70003F40");
135 Kragenwar-3044
    self.skills["BrightCampfire"]                       = SkillSlot(self.bars["Utility"],       2, 1, true, 22, "0x70003F3F");
136 Kragenwar-3044
    self.skills["Camouflage"]                           = SkillSlot(self.bars["Utility"],       3, 1, true, 40, "0x70003F48");
137 Kragenwar-3044
 
138 Kragenwar-3044
    self.skills["CryofthePredator"]                     = SkillSlot(self.bars["Fear"],          1, 1, true, 12, "0x70003F49");
139 Kragenwar-3044
    self.skills["BardsArrow"]                           = SkillSlot(self.bars["Fear"],          2, 1, self.settings["Features"].bards, 41, "0x700010D3");
140 Kragenwar-3044
 
141 Kragenwar-3044
    self.skills["FindthePath"]                          = SkillSlot(self.bars["Stance"],        2, 1, true, 14, "0x70003F3D");
142 Kragenwar-3044
 
143 Kragenwar-3044
    self.skills["Focus"]                                        = SkillSlot(self.bars["Focus"],         1, 1, true, 8, "0x70003F4C");
144 Kragenwar-3044
    self.skills["IntentConcentration"]          = SkillSlot(self.bars["Focus"],         2, 1, true, 20, "0x700030DE");
145 Kragenwar-3044
    self.skills["NeedfulHaste"]                         = SkillSlot(self.bars["Focus"],         3, 1, true, 34, "0x700030F3");
146 Kragenwar-3044
    self.skills["BurnHot"]                                      = SkillSlot(self.bars["Focus"],         4, 1, true, 60, "0x7000F835");
147 Kragenwar-3044
 
148 Kragenwar-3044
    self.skills["PurgePoison"]                          = SkillSlot(self.bars["Restoration"],1, 1, true, 16, "0x70003F3E");
149 Kragenwar-3044
    self.skills["StrengthoftheEarth"]           = SkillSlot(self.bars["Restoration"],2, 1, true, 42, "0x7000A2D4");
150 Kragenwar-3044
    self.skills["PressOnward"]                          = SkillSlot(self.bars["Restoration"],3, 1, self.settings["Features"].pressonward, 41, "0x700010E5");
151 Kragenwar-3044
 
152 Kragenwar-3044
        -- Build Quickslots         ItemSlot( parent:SkillBar, x:int, y:int, active:Boolean, type:int, data:String );
153 Kragenwar-3044
        self.skills["FireOil"]                                  = ItemSlot(self.bars["Oils"],           1, 1, self.settings["Quickslots"].fireoil["active"], self.settings["Quickslots"].fireoil["type"], self.settings["Quickslots"].fireoil["data"]);
154 Kragenwar-3044
        self.skills["LightOil"]                                 = ItemSlot(self.bars["Oils"],           2, 1, self.settings["Quickslots"].lightoil["active"], self.settings["Quickslots"].lightoil["type"], self.settings["Quickslots"].lightoil["data"]);
155 Kragenwar-3044
        self.skills["BowChant"]                                 = ItemSlot(self.bars["Oils"],           3, 1, self.settings["Quickslots"].bowchant["active"], self.settings["Quickslots"].bowchant["type"], self.settings["Quickslots"].bowchant["data"]);
156 Kragenwar-3044
 
157 Kragenwar-3044
    self.multi["TrapsSlot"]                     = ItemMultiSlot(self.bars["Trapping"], 2, 1, true);
158 Kragenwar-3044
        self.multi["TrapsSlot"]:AddShortCut("Trap1",            self.settings["Quickslots"].trap1["active"], self.settings["Quickslots"].trap1["type"], self.settings["Quickslots"].trap1["data"]);
159 Kragenwar-3044
        self.multi["TrapsSlot"]:AddShortCut("Trap2",            self.settings["Quickslots"].trap2["active"], self.settings["Quickslots"].trap2["type"], self.settings["Quickslots"].trap2["data"]);
160 Kragenwar-3044
        self.multi["TrapsSlot"]:AddShortCut("Trap3",            self.settings["Quickslots"].trap3["active"], self.settings["Quickslots"].trap3["type"], self.settings["Quickslots"].trap3["data"]);
161 Kragenwar-3044
 
162 Kragenwar-3044
    -- Build MultiSlots         SkillMultiSlot( parent:SkillBar, x:int, y:int, active:Boolean );
163 Kragenwar-3044
    --                                                  multi:AddShortCut(name:String, level:int, hex:String);
164 Kragenwar-3044
        self.multi["TrackingSlot"]              = SkillMultiSlot(self.bars["Tracking"], 1, 1, true);
165 Kragenwar-3044
        self.multi["TrackingSlot"]:AddShortCut("PassageofNature",       12, "0x70003F45");
166 Kragenwar-3044
    self.multi["TrackingSlot"]:AddShortCut("PassageofFoes",             22, "0x70003F46");
167 Kragenwar-3044
    self.multi["TrackingSlot"]:AddShortCut("PassageofShadow",   32, "0x70003F47");
168 Kragenwar-3044
    self.multi["TrackingSlot"]:LevelCheck();
169 Kragenwar-3044
 
170 Kragenwar-3044
        self.multi["StanceSlot"]                        = SkillMultiSlot(self.bars["Stance"], 1, 1, true);
171 Kragenwar-3044
        self.multi["StanceSlot"]:AddShortCut("StrengthStance",          6, "0x70003F4E");
172 Kragenwar-3044
    self.multi["StanceSlot"]:AddShortCut("PrecisionStance",             18, "0x70003F4D");
173 Kragenwar-3044
    self.multi["StanceSlot"]:AddShortCut("EnduranceStance",             28, "0x70003F4F");
174 Kragenwar-3044
    self.multi["StanceSlot"]:AddShortCut("FleetStance",                 56, "0x70010065");
175 Kragenwar-3044
    self.multi["StanceSlot"]:LevelCheck();
176 Kragenwar-3044
        self.multi["StanceSlot"]:SetIndex(self.settings["Features"].primarystance);
177 Kragenwar-3044
 
178 Kragenwar-3044
        self.multi["TrappingSlot"]              = SkillMultiSlot(self.bars["Trapping"], 1, 1, true);
179 Kragenwar-3044
        self.multi["TrappingSlot"]:AddShortCut("SetTrap",                       6, "0x700030BB");
180 Kragenwar-3044
    self.multi["TrappingSlot"]:AddShortCut("SetSnare",                  36, "0x7000A6B1");
181 Kragenwar-3044
    self.multi["TrappingSlot"]:LevelCheck();
182 Kragenwar-3044
 
183 Kragenwar-3044
        self.multi["PortsSlot"]                 = SkillMultiSlot(self.bars["Ports"], 1, 1, true);
184 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoMichelDelving", 22, "0x7000A2C3");
185 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoThorinsHall",   24, "0x70003F41");
186 Kragenwar-3044
        self.multi["PortsSlot"]:AddShortCut("ReturntoCamp",                     26, "0x7000A2C1");
187 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoOstGuruth",             26, "0x7000A2C2");
188 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoBree",                  32, "0x70003F42");
189 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoEsteldin",              34, "0x70003F43");
190 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoEvendim",               36, "0x7000A2C4");
191 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoWestAngmar",    44, "0x7000A2C5");
192 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoRivendell",             46, "0x70003F44");
193 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoSuriKyla",              48, "0x70017C82");
194 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoEastAngmar",    48, "0x7000A2C6");
195 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoEchadDunann",   50, "0x70017C81");
196 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoTwentyFirstHall",56, "0x70017C7A");
197 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoMirkEaves",             62, "0x7001F459");
198 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoHarndirion",    62, "0x700235EF");
199 Kragenwar-3044
    self.multi["PortsSlot"]:LevelCheck();
200 Kragenwar-3044
 
201 Kragenwar-3044
 
202 Kragenwar-3044
        -- SET COMBAT STATES
203 Kragenwar-3044
        self.skills["StrengthoftheEarth"]:SetCombat(true, false);
204 Kragenwar-3044
        self.skills["PressOnward"]:SetCombat(self.settings["Features"].combatpressonward, self.settings["Features"].pressonward);
205 Kragenwar-3044
        self.skills["Focus"]:SetCombat(false, true);
206 Kragenwar-3044
        self.skills["Camouflage"]:SetCombat(false, true);
207 Kragenwar-3044
        self.skills["BrightCampfire"]:SetCombat(false, true);
208 Kragenwar-3044
        self.multi["TrackingSlot"]:SetCombat(false, true);
209 Kragenwar-3044
        self.multi["TrappingSlot"]:SetCombat(self.settings["Features"].combattraps, true);
210 Kragenwar-3044
 
211 Kragenwar-3044
        -- CLASS SPECIFIC SETUP/DEFAULT CODE
212 Kragenwar-3044
 
213 Kragenwar-3044
 
214 Kragenwar-3044
    -- EVENTS
215 Kragenwar-3044
 
216 Kragenwar-3044
        -- Stance Change Event
217 Kragenwar-3044
        AddCallback(vars.classattr, "StanceChanged", function(sender, args)
218 Kragenwar-3044
                KragenBars:StanceChange(vars.classattr:GetStance());
219 Kragenwar-3044
        end);
220 Kragenwar-3044
 
221 Kragenwar-3044
        -- Focus Change Event
222 Kragenwar-3044
        AddCallback(vars.classattr, "FocusChanged", function(sender, args)
223 Kragenwar-3044
                KragenBars:FocusChange(vars.classattr:GetFocus());
224 Kragenwar-3044
        end);
225 Kragenwar-3044
 
226 Kragenwar-3044
 
227 Kragenwar-3044
         -- INITIALIZE BARS
228 Kragenwar-3044
        self:InitBars();
229 Kragenwar-3044
        self:CombatChange(vars.player:IsInCombat());
230 Kragenwar-3044
        self:StanceChange(vars.classattr:GetStance());
231 Kragenwar-3044
        self:FocusChange(vars.classattr:GetFocus());
232 Kragenwar-3044
 
233 Kragenwar-3044
end
234 Kragenwar-3044
 
235 Kragenwar-3044
 
236 Kragenwar-3044
-- ADD EFFECT EVENT
237 Kragenwar-3044
function HunterBars:AddEffect( effectIndex )
238 Kragenwar-3044
        local effect = vars.player:GetEffects():Get( effectIndex );
239 Kragenwar-3044
 
240 Kragenwar-3044
        if (effect:GetName() == self.effectlist["ParryResponse"]) then
241 Kragenwar-3044
                self.skills["AgileRejoinder"]:SetState( true , true, effect:GetID());
242 Kragenwar-3044
 
243 Kragenwar-3044
        elseif (effect:GetName() == self.effectlist["FindthePath"]) then
244 Kragenwar-3044
                if (self.settings["Features"].findpathactive == 1) then
245 Kragenwar-3044
                        self.skills["FindthePath"]:SetState(true, true, effect:GetID());
246 Kragenwar-3044
                elseif (self.settings["Features"].findpathactive == 2) then
247 Kragenwar-3044
                        self.skills["FindthePath"]:SetState(true, true, effect:GetID());
248 Kragenwar-3044
                        self.skills["FindthePath"]:SetHover(true);
249 Kragenwar-3044
                else
250 Kragenwar-3044
                        self.skills["FindthePath"]:SetState(true, false, effect:GetID());
251 Kragenwar-3044
                end
252 Kragenwar-3044
 
253 Kragenwar-3044
        elseif (string.find(effect:GetName(), self.effectlist["BowChant"]) ~= nil) then
254 Kragenwar-3044
                self.skills["BowChant"]:SetState(true, false, effect:GetID());
255 Kragenwar-3044
                self.skills["BowChant"]:SetHover(true);
256 Kragenwar-3044
                self.skills["BowChant"]:StartTimer(effect:GetDuration() * .85, true);
257 Kragenwar-3044
 
258 Kragenwar-3044
        elseif (effect:GetName() == self.effectlist["SwiftStroke"] and self.settings["Features"].dimswiftstroke) then
259 Kragenwar-3044
                self.skills["SwiftStroke"]:SetState(true, true, effect:GetID());
260 Kragenwar-3044
                self.skills["SwiftStroke"]:SetHover(true);
261 Kragenwar-3044
 
262 Kragenwar-3044
        elseif (effect:GetName() == self.effectlist["SimpleFireoil"] or  effect:GetName() == self.effectlist["Fireoil"] or effect:GetName() == self.effectlist["RefinedFireoil"] or effect:GetName() == self.effectlist["PureFireoil"]) then
263 Kragenwar-3044
                self.skills["FireOil"]:SetState(true, false, effect:GetID());
264 Kragenwar-3044
                self.skills["FireOil"]:SetHover(true);
265 Kragenwar-3044
                self.skills["FireOil"]:StartTimer(effect:GetDuration() * .85, true);
266 Kragenwar-3044
                self.skills["LightOil"]:SetHover(true);
267 Kragenwar-3044
 
268 Kragenwar-3044
        elseif (effect:GetName() == self.effectlist["SimpleLightoil"] or  effect:GetName() == self.effectlist["Lightoil"] or effect:GetName() == self.effectlist["RefinedLightoil"] or effect:GetName() == self.effectlist["PureLightoil"]) then
269 Kragenwar-3044
                self.skills["LightOil"]:SetState(true, false, effect:GetID());
270 Kragenwar-3044
                self.skills["LightOil"]:SetHover(true);
271 Kragenwar-3044
                self.skills["LightOil"]:StartTimer(effect:GetDuration() * .85, true);
272 Kragenwar-3044
                self.skills["FireOil"]:SetHover(true);
273 Kragenwar-3044
 
274 Kragenwar-3044
 
275 Kragenwar-3044
    end
276 Kragenwar-3044
end
277 Kragenwar-3044
 
278 Kragenwar-3044
 
279 Kragenwar-3044
-- REMOVE EFFECT EVENT
280 Kragenwar-3044
function HunterBars:RemoveEffect( effect )
281 Kragenwar-3044
 
282 Kragenwar-3044
        -- SetState can be called on both bars and skills
283 Kragenwar-3044
        -- it will store the incoming effect id and flag the state as well as trigger visibility
284 Kragenwar-3044
        -- SetState(effectstate:Boolean,  visibility:Boolean,  effectid:int);
285 Kragenwar-3044
 
286 Kragenwar-3044
        if (effect:GetName() == self.effectlist["ParryResponse"]) then
287 Kragenwar-3044
        self.skills["AgileRejoinder"]:SetState( false , false, effect:GetID());
288 Kragenwar-3044
 
289 Kragenwar-3044
        elseif (effect:GetName() == self.effectlist["FindthePath"]) then
290 Kragenwar-3044
                self.skills["FindthePath"]:SetState (false, true, effect:GetID());
291 Kragenwar-3044
                self.skills["FindthePath"]:SetHover(self.skills["FindthePath"].state);
292 Kragenwar-3044
 
293 Kragenwar-3044
        elseif (string.find(effect:GetName(), self.effectlist["BowChant"]) ~= nil) then
294 Kragenwar-3044
                self.skills["BowChant"]:SetState(false, true, effect:GetID());
295 Kragenwar-3044
                self.skills["BowChant"]:SetHover(false);
296 Kragenwar-3044
 
297 Kragenwar-3044
        elseif (effect:GetName() == self.effectlist["SwiftStroke"]) then
298 Kragenwar-3044
                self.skills["SwiftStroke"]:SetState(false, true, effect:GetID());
299 Kragenwar-3044
                self.skills["SwiftStroke"]:SetHover(false);
300 Kragenwar-3044
 
301 Kragenwar-3044
        elseif (effect:GetName() == self.effectlist["SimpleFireoil"] or  effect:GetName() == self.effectlist["Fireoil"] or effect:GetName() == self.effectlist["RefinedFireoil"] or effect:GetName() == self.effectlist["PureFireoil"]) then
302 Kragenwar-3044
                self.skills["FireOil"]:SetState(false, true, effect:GetID());
303 Kragenwar-3044
                self.skills["LightOil"]:SetHover(false);
304 Kragenwar-3044
                self.skills["FireOil"]:SetHover(false);
305 Kragenwar-3044
 
306 Kragenwar-3044
        elseif (effect:GetName() == self.effectlist["SimpleLightoil"] or  effect:GetName() == self.effectlist["Lightoil"] or effect:GetName() == self.effectlist["RefinedLightoil"] or effect:GetName() == self.effectlist["PureLightoil"]) then
307 Kragenwar-3044
                self.skills["LightOil"]:SetState(false, true, effect:GetID());
308 Kragenwar-3044
                self.skills["FireOil"]:SetHover(false);
309 Kragenwar-3044
                self.skills["LightOil"]:SetHover(false);
310 Kragenwar-3044
 
311 Kragenwar-3044
        end
312 Kragenwar-3044
end
313 Kragenwar-3044
 
314 Kragenwar-3044
 
315 Kragenwar-3044
function HunterBars:FocusChange(focus)
316 Kragenwar-3044
 
317 Kragenwar-3044
        if (focus == 0) then
318 Kragenwar-3044
                self.skills["PenetratingShot"]:SetActive(false);
319 Kragenwar-3044
                self.skills["BloodArrow"]:SetActive(false);
320 Kragenwar-3044
                self.skills["RainofArrows"]:SetActive(false);
321 Kragenwar-3044
                self.skills["NeedfulHaste"]:SetActive(false);
322 Kragenwar-3044
                self.skills["MercifulShot"]:SetActive(false);
323 Kragenwar-3044
                self.skills["RainofThorns"]:SetActive(false);
324 Kragenwar-3044
        elseif (focus > 0 and focus < 2) then
325 Kragenwar-3044
                self.skills["PenetratingShot"]:SetActive(false);
326 Kragenwar-3044
                self.skills["BloodArrow"]:SetActive(false);
327 Kragenwar-3044
                self.skills["RainofArrows"]:SetActive(false);
328 Kragenwar-3044
                self.skills["NeedfulHaste"]:SetActive(false);
329 Kragenwar-3044
                self.skills["MercifulShot"]:SetActive(false);
330 Kragenwar-3044
                self.skills["RainofThorns"]:SetActive(false);
331 Kragenwar-3044
        elseif (focus >= 2 and focus < 3) then
332 Kragenwar-3044
                self.skills["PenetratingShot"]:SetActive(self.settings["Features"].strongdraw);
333 Kragenwar-3044
                self.skills["BloodArrow"]:SetActive(self.settings["Features"].strongdraw);
334 Kragenwar-3044
                self.skills["RainofArrows"]:SetActive(self.settings["Features"].arrowstorm);
335 Kragenwar-3044
                self.skills["NeedfulHaste"]:SetActive(false);
336 Kragenwar-3044
                self.skills["MercifulShot"]:SetActive(false);
337 Kragenwar-3044
                self.skills["RainofThorns"]:SetActive(false);
338 Kragenwar-3044
        elseif (focus >= 3 and focus < 6) then
339 Kragenwar-3044
                self.skills["PenetratingShot"]:SetActive(true);
340 Kragenwar-3044
                self.skills["BloodArrow"]:SetActive(true);
341 Kragenwar-3044
                self.skills["RainofArrows"]:SetActive(true);
342 Kragenwar-3044
                self.skills["NeedfulHaste"]:SetActive(true);
343 Kragenwar-3044
                self.skills["MercifulShot"]:SetActive(false);
344 Kragenwar-3044
                self.skills["RainofThorns"]:SetActive(false);
345 Kragenwar-3044
        elseif (focus >= 6) then
346 Kragenwar-3044
                self.skills["PenetratingShot"]:SetActive(true);
347 Kragenwar-3044
                self.skills["BloodArrow"]:SetActive(true);
348 Kragenwar-3044
                self.skills["RainofArrows"]:SetActive(true);
349 Kragenwar-3044
                self.skills["NeedfulHaste"]:SetActive(true);
350 Kragenwar-3044
                self.skills["MercifulShot"]:SetActive(true);
351 Kragenwar-3044
                self.skills["RainofThorns"]:SetActive(self.settings["Features"].thorns);
352 Kragenwar-3044
 
353 Kragenwar-3044
        end
354 Kragenwar-3044
end
355 Kragenwar-3044
 
356 Kragenwar-3044
 
357 Kragenwar-3044
function HunterBars:StanceChange(stance)
358 Kragenwar-3044
        local stancenew = 0;
359 Kragenwar-3044
 
360 Kragenwar-3044
        -- Hack because Turbine put the stances in the wrong order
361 Kragenwar-3044
        if (stance == 1) then
362 Kragenwar-3044
                stancenew = 2;
363 Kragenwar-3044
        elseif (stance == 2) then
364 Kragenwar-3044
                stancenew = 1;
365 Kragenwar-3044
        else
366 Kragenwar-3044
                stancenew = stance;
367 Kragenwar-3044
        end
368 Kragenwar-3044
 
369 Kragenwar-3044
        if (stancenew ~= self.settings["Features"].primarystance) then
370 Kragenwar-3044
                self.multi["StanceSlot"]:SetIndex(self.settings["Features"].primarystance);
371 Kragenwar-3044
        else
372 Kragenwar-3044
                self.multi["StanceSlot"]:SetIndex(self.settings["Features"].secondarystance);
373 Kragenwar-3044
        end
374 Kragenwar-3044
 
375 Kragenwar-3044
        if (stance == 0) then
376 Kragenwar-3044
                self.multi["StanceSlot"]:SetHover( false );
377 Kragenwar-3044
                self.multi["StanceSlot"]:SetActive( true );
378 Kragenwar-3044
        else
379 Kragenwar-3044
                self.multi["StanceSlot"]:SetActive( self.settings["Features"].stanceactive ~= 3);
380 Kragenwar-3044
        self.multi["StanceSlot"]:SetHover( self.settings["Features"].stanceactive == 2 );
381 Kragenwar-3044
        end
382 Kragenwar-3044
 
383 Kragenwar-3044
 
384 Kragenwar-3044
end
385 Kragenwar-3044
 
386 Kragenwar-3044
-- DEFAULT SETTINGS
387 Kragenwar-3044
function HunterBars:DefaultSettings()
388 Kragenwar-3044
        self.settings = { };
389 Kragenwar-3044
 
390 Kragenwar-3044
        local windowlist = {"Parry", "Melee", "BowInduct", "BowFocus", "Dethreat", "Utility", "Tracking", "Fear", "Stance", "Focus", "Restoration", "Trapping", "Oils", "Ports"};
391 Kragenwar-3044
        for k,v in pairs(windowlist) do
392 Kragenwar-3044
                self.settings[v] = { active = true, x = 0, y = 0, rotate = 0 };
393 Kragenwar-3044
        end
394 Kragenwar-3044
 
395 Kragenwar-3044
        self.settings["Features"] = { };
396 Kragenwar-3044
        self.settings["Features"].dimswiftstroke = true;
397 Kragenwar-3044
        self.settings["Features"].thorns = false;
398 Kragenwar-3044
        self.settings["Features"].bards = false;
399 Kragenwar-3044
        self.settings["Features"].pressonward = false;
400 Kragenwar-3044
        self.settings["Features"].combattraps = false;
401 Kragenwar-3044
        self.settings["Features"].strongdraw = false;
402 Kragenwar-3044
        self.settings["Features"].arrowstorm = false;
403 Kragenwar-3044
        self.settings["Features"].combatpressonward = false;
404 Kragenwar-3044
        self.settings["Features"].primarystance = 1;
405 Kragenwar-3044
        self.settings["Features"].secondarystance = 2;
406 Kragenwar-3044
        self.settings["Features"].findpathactive = 2;
407 Kragenwar-3044
        self.settings["Features"].stanceactive = 2;
408 Kragenwar-3044
 
409 Kragenwar-3044
        self.settings["Quickslots"] = { };
410 Kragenwar-3044
        self.settings["Quickslots"].fireoil = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
411 Kragenwar-3044
        self.settings["Quickslots"].lightoil = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
412 Kragenwar-3044
        self.settings["Quickslots"].bowchant = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
413 Kragenwar-3044
        self.settings["Quickslots"].trap1 = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
414 Kragenwar-3044
        self.settings["Quickslots"].trap2 = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
415 Kragenwar-3044
        self.settings["Quickslots"].trap3 = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
416 Kragenwar-3044
 
417 Kragenwar-3044
end
418 Kragenwar-3044
 
419 Kragenwar-3044
 
420 Kragenwar-3044
-- UPDATE SETTINGS
421 Kragenwar-3044
function HunterBars:UpdateSettings()
422 Kragenwar-3044
 
423 Kragenwar-3044
        if (settings.vers < 3.10) then
424 Kragenwar-3044
                self.settings["Features"].stanceactive = 2;
425 Kragenwar-3044
                self.settings["Ports"] = { active = true, x = 0, y = 0, rotate = 0 };
426 Kragenwar-3044
                self.settings["Quickslots"].bowchant = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
427 Kragenwar-3044
                self.settings["Quickslots"].trap1 = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
428 Kragenwar-3044
                self.settings["Quickslots"].trap2 = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
429 Kragenwar-3044
                self.settings["Quickslots"].trap3 = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
430 Kragenwar-3044
        elseif (settings.vers < 3.20) then
431 Kragenwar-3044
                self.settings["Quickslots"].bowchant = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
432 Kragenwar-3044
                self.settings["Quickslots"].trap1 = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
433 Kragenwar-3044
                self.settings["Quickslots"].trap2 = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
434 Kragenwar-3044
                self.settings["Quickslots"].trap3 = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
435 Kragenwar-3044
 
436 Kragenwar-3044
 
437 Kragenwar-3044
        end
438 Kragenwar-3044
 
439 Kragenwar-3044
        settings.vers = vars.vers;
440 Kragenwar-3044
 
441 Kragenwar-3044
end
442 Kragenwar-3044
 
443 Kragenwar-3044
 
444 Kragenwar-3044
-- DISPLAY SETUP WINDOW AND SET ALL CHECKBOXES COMBOBOXES SLIDERS AND QUICKSLOTS
445 Kragenwar-3044
function HunterBars:ShowSetup()
446 Kragenwar-3044
        self.setup:SetVisible(true);
447 Kragenwar-3044
 
448 Kragenwar-3044
        self.setupbb.opacityslider:SetValue(settings.opacity * 100);
449 Kragenwar-3044
        self.setupbb.checkboxlock:SetChecked(settings.lockslots);
450 Kragenwar-3044
        self.setupbb.checkboxgrid:SetChecked(settings.snaptogrid);
451 Kragenwar-3044
        self.setupbb.combolangbox:SetSelection(settings.language);
452 Kragenwar-3044
 
453 Kragenwar-3044
        self.setupbb.checkboxbb1:SetText("Parry Response");
454 Kragenwar-3044
        self.setupbb.checkboxbb1:SetChecked (self.settings["Parry"].active);
455 Kragenwar-3044
        self.setupbb.checkboxbb1:SetVisible(true);
456 Kragenwar-3044
        self.setupbb.checkboxbb2:SetText("Melee");
457 Kragenwar-3044
        self.setupbb.checkboxbb2:SetChecked (self.settings["Melee"].active);
458 Kragenwar-3044
        self.setupbb.checkboxbb2:SetVisible(true);
459 Kragenwar-3044
        self.setupbb.checkboxbb3:SetText("Bow: Induction");
460 Kragenwar-3044
        self.setupbb.checkboxbb3:SetChecked (self.settings["BowInduct"].active);
461 Kragenwar-3044
        self.setupbb.checkboxbb3:SetVisible(true);
462 Kragenwar-3044
        self.setupbb.checkboxbb4:SetText("Bow: Focus");
463 Kragenwar-3044
        self.setupbb.checkboxbb4:SetChecked (self.settings["BowFocus"].active);
464 Kragenwar-3044
        self.setupbb.checkboxbb4:SetVisible(true);
465 Kragenwar-3044
        self.setupbb.checkboxbb5:SetText("Dethreat");
466 Kragenwar-3044
        self.setupbb.checkboxbb5:SetChecked (self.settings["Dethreat"].active);
467 Kragenwar-3044
        self.setupbb.checkboxbb5:SetVisible(true);
468 Kragenwar-3044
        self.setupbb.checkboxbb6:SetText("Utility");
469 Kragenwar-3044
        self.setupbb.checkboxbb6:SetChecked (self.settings["Utility"].active);
470 Kragenwar-3044
        self.setupbb.checkboxbb6:SetVisible(true);
471 Kragenwar-3044
        self.setupbb.checkboxbb7:SetText("Tracking");
472 Kragenwar-3044
        self.setupbb.checkboxbb7:SetChecked (self.settings["Tracking"].active);
473 Kragenwar-3044
        self.setupbb.checkboxbb7:SetVisible(true);
474 Kragenwar-3044
        self.setupbb.checkboxbb8:SetText("Fear");
475 Kragenwar-3044
        self.setupbb.checkboxbb8:SetChecked (self.settings["Fear"].active);
476 Kragenwar-3044
        self.setupbb.checkboxbb8:SetVisible(true);
477 Kragenwar-3044
        self.setupbb.checkboxbb9:SetText("Stance");
478 Kragenwar-3044
        self.setupbb.checkboxbb9:SetChecked (self.settings["Stance"].active);
479 Kragenwar-3044
        self.setupbb.checkboxbb9:SetVisible(true);
480 Kragenwar-3044
        self.setupbb.checkboxbb10:SetText("Focus");
481 Kragenwar-3044
        self.setupbb.checkboxbb10:SetChecked (self.settings["Focus"].active);
482 Kragenwar-3044
        self.setupbb.checkboxbb10:SetVisible(true);
483 Kragenwar-3044
        self.setupbb.checkboxbb11:SetText("Restoration");
484 Kragenwar-3044
        self.setupbb.checkboxbb11:SetChecked (self.settings["Restoration"].active);
485 Kragenwar-3044
        self.setupbb.checkboxbb11:SetVisible(true);
486 Kragenwar-3044
        self.setupbb.checkboxbb12:SetText("Trapping");
487 Kragenwar-3044
        self.setupbb.checkboxbb12:SetChecked (self.settings["Trapping"].active);
488 Kragenwar-3044
        self.setupbb.checkboxbb12:SetVisible(true);
489 Kragenwar-3044
        self.setupbb.checkboxbb13:SetText("Oils");
490 Kragenwar-3044
        self.setupbb.checkboxbb13:SetChecked (self.settings["Oils"].active);
491 Kragenwar-3044
        self.setupbb.checkboxbb13:SetVisible(true);
492 Kragenwar-3044
        self.setupbb.checkboxbb14:SetText("Ports");
493 Kragenwar-3044
        self.setupbb.checkboxbb14:SetChecked (self.settings["Ports"].active);
494 Kragenwar-3044
        self.setupbb.checkboxbb14:SetVisible(true);
495 Kragenwar-3044
 
496 Kragenwar-3044
        self.setupf.checkboxf1:SetText("Rain of Thorns");
497 Kragenwar-3044
        self.setupf.checkboxf1:SetChecked (self.settings["Features"].thorns);
498 Kragenwar-3044
        self.setupf.checkboxf1:SetVisible(true);
499 Kragenwar-3044
        self.setupf.checkboxf2:SetText("Bard's Arrow");
500 Kragenwar-3044
        self.setupf.checkboxf2:SetChecked (self.settings["Features"].bards);
501 Kragenwar-3044
        self.setupf.checkboxf2:SetVisible(true);
502 Kragenwar-3044
        self.setupf.checkboxf3:SetText("Press Onward");
503 Kragenwar-3044
        self.setupf.checkboxf3:SetChecked (self.settings["Features"].pressonward);
504 Kragenwar-3044
        self.setupf.checkboxf3:SetVisible(true);
505 Kragenwar-3044
        self.setupf.checkboxf4:SetText("Combat Traps");
506 Kragenwar-3044
        self.setupf.checkboxf4:SetChecked (self.settings["Features"].combattraps);
507 Kragenwar-3044
        self.setupf.checkboxf4:SetVisible(true);
508 Kragenwar-3044
        self.setupf.checkboxf5:SetText("Strong Draw");
509 Kragenwar-3044
        self.setupf.checkboxf5:SetChecked (self.settings["Features"].strongdraw);
510 Kragenwar-3044
        self.setupf.checkboxf5:SetVisible(true);
511 Kragenwar-3044
        self.setupf.checkboxf6:SetText("arrowstorm");
512 Kragenwar-3044
        self.setupf.checkboxf6:SetChecked (self.settings["Features"].arrowstorm);
513 Kragenwar-3044
        self.setupf.checkboxf6:SetVisible(true);
514 Kragenwar-3044
        self.setupf.checkboxf7:SetText("Combat Press Onward");
515 Kragenwar-3044
        self.setupf.checkboxf7:SetChecked (self.settings["Features"].combatpressonward);
516 Kragenwar-3044
        self.setupf.checkboxf7:SetVisible(true);
517 Kragenwar-3044
 
518 Kragenwar-3044
        self.setupf.checkboxf10:SetText("Dim Swift Stroke");
519 Kragenwar-3044
        self.setupf.checkboxf10:SetChecked (self.settings["Features"].dimswiftstroke);
520 Kragenwar-3044
        self.setupf.checkboxf10:SetVisible(true);
521 Kragenwar-3044
 
522 Kragenwar-3044
        self.setupf.combo1box.listBox:ClearItems();
523 Kragenwar-3044
        self.setupf.combo1Label:SetText("Primary Stance");
524 Kragenwar-3044
        self.setupf.combo1Label:SetVisible(true);
525 Kragenwar-3044
        local combolist = {"Strength", "Precision", "Endurance", "Fleet"}
526 Kragenwar-3044
        for k,v in pairs(combolist) do
527 Kragenwar-3044
                self.setupf.combo1box:AddItem(v, k);
528 Kragenwar-3044
        end
529 Kragenwar-3044
        self.setupf.combo1box:SetVisible(true);
530 Kragenwar-3044
        self.setupf.combo1box:SetSelection(self.settings["Features"].primarystance);
531 Kragenwar-3044
 
532 Kragenwar-3044
        self.setupf.combo2box.listBox:ClearItems();
533 Kragenwar-3044
        self.setupf.combo2Label:SetText("Secondary Stance");
534 Kragenwar-3044
        self.setupf.combo2Label:SetVisible(true);
535 Kragenwar-3044
        combolist = {"Strength", "Precision", "Endurance", "Fleet"}
536 Kragenwar-3044
        for k,v in pairs(combolist) do
537 Kragenwar-3044
            self.setupf.combo2box:AddItem(v, k);
538 Kragenwar-3044
        end
539 Kragenwar-3044
        self.setupf.combo2box:SetVisible(true);
540 Kragenwar-3044
        self.setupf.combo2box:SetSelection(self.settings["Features"].secondarystance);
541 Kragenwar-3044
 
542 Kragenwar-3044
        self.setupf.combo3box.listBox:ClearItems();
543 Kragenwar-3044
        self.setupf.combo3Label:SetText("Find Path Active");
544 Kragenwar-3044
        self.setupf.combo3Label:SetVisible(true);
545 Kragenwar-3044
        combolist = {"None", "Dim", "Hide"}
546 Kragenwar-3044
        for k,v in pairs(combolist) do
547 Kragenwar-3044
            self.setupf.combo3box:AddItem(v, k);
548 Kragenwar-3044
        end
549 Kragenwar-3044
        self.setupf.combo3box:SetVisible(true);
550 Kragenwar-3044
    self.setupf.combo3box:SetSelection(self.settings["Features"].findpathactive);
551 Kragenwar-3044
 
552 Kragenwar-3044
        self.setupf.combo4box.listBox:ClearItems();
553 Kragenwar-3044
        self.setupf.combo4Label:SetText("Stance Active");
554 Kragenwar-3044
        self.setupf.combo4Label:SetVisible(true);
555 Kragenwar-3044
        combolist = {"None", "Dim", "Hide"}
556 Kragenwar-3044
        for k,v in pairs(combolist) do
557 Kragenwar-3044
                self.setupf.combo4box:AddItem(v, k);
558 Kragenwar-3044
        end
559 Kragenwar-3044
        self.setupf.combo4box:SetVisible(true);
560 Kragenwar-3044
        self.setupf.combo4box:SetSelection(self.settings["Features"].stanceactive);
561 Kragenwar-3044
 
562 Kragenwar-3044
        pcall(function() self.setupqs.quickslot1:SetShortcut(Turbine.UI.Lotro.Shortcut( self.settings["Quickslots"].fireoil["type"], self.settings["Quickslots"].fireoil["data"] ) ); end);
563 Kragenwar-3044
        self.setupqs.quickslot1:SetVisible(true);
564 Kragenwar-3044
        self.setupqs.quickslot1cb:SetText("Fire Oil");
565 Kragenwar-3044
        self.setupqs.quickslot1cb:SetChecked(self.settings["Quickslots"].fireoil["active"]);
566 Kragenwar-3044
        self.setupqs.quickslot1cb:SetVisible(true);
567 Kragenwar-3044
 
568 Kragenwar-3044
        pcall(function() self.setupqs.quickslot2:SetShortcut(Turbine.UI.Lotro.Shortcut( self.settings["Quickslots"].lightoil["type"], self.settings["Quickslots"].lightoil["data"] ) ); end);
569 Kragenwar-3044
        self.setupqs.quickslot2:SetVisible(true);
570 Kragenwar-3044
        self.setupqs.quickslot2cb:SetText("Light Oil");
571 Kragenwar-3044
        self.setupqs.quickslot2cb:SetChecked(self.settings["Quickslots"].lightoil["active"]);
572 Kragenwar-3044
        self.setupqs.quickslot2cb:SetVisible(true);
573 Kragenwar-3044
 
574 Kragenwar-3044
        pcall(function() self.setupqs.quickslot3:SetShortcut(Turbine.UI.Lotro.Shortcut( self.settings["Quickslots"].bowchant["type"], self.settings["Quickslots"].bowchant["data"] ) ); end);
575 Kragenwar-3044
        self.setupqs.quickslot3:SetVisible(true);
576 Kragenwar-3044
        self.setupqs.quickslot3cb:SetText("Bow Chant");
577 Kragenwar-3044
        self.setupqs.quickslot3cb:SetChecked(self.settings["Quickslots"].bowchant["active"]);
578 Kragenwar-3044
        self.setupqs.quickslot3cb:SetVisible(true);
579 Kragenwar-3044
 
580 Kragenwar-3044
    pcall(function() self.setupqs.quickslot4:SetShortcut(Turbine.UI.Lotro.Shortcut( self.settings["Quickslots"].trap1["type"], self.settings["Quickslots"].trap1["data"] ) ); end);
581 Kragenwar-3044
        self.setupqs.quickslot4:SetVisible(true);
582 Kragenwar-3044
        self.setupqs.quickslot4cb:SetText("Crafted Traps");
583 Kragenwar-3044
        self.setupqs.quickslot4cb:SetChecked(self.settings["Quickslots"].trap1["active"]);
584 Kragenwar-3044
        self.setupqs.quickslot4cb:SetVisible(true);
585 Kragenwar-3044
 
586 Kragenwar-3044
        pcall(function() self.setupqs.quickslot5:SetShortcut(Turbine.UI.Lotro.Shortcut( self.settings["Quickslots"].trap2["type"], self.settings["Quickslots"].trap2["data"] ) ); end);
587 Kragenwar-3044
        self.setupqs.quickslot5:SetVisible(true);
588 Kragenwar-3044
        self.setupqs.quickslot5cb:SetText("Crafted Traps");
589 Kragenwar-3044
        self.setupqs.quickslot5cb:SetChecked(self.settings["Quickslots"].trap2["active"]);
590 Kragenwar-3044
        self.setupqs.quickslot5cb:SetVisible(true);
591 Kragenwar-3044
 
592 Kragenwar-3044
        pcall(function() self.setupqs.quickslot6:SetShortcut(Turbine.UI.Lotro.Shortcut( self.settings["Quickslots"].trap3["type"], self.settings["Quickslots"].trap3["data"] ) ); end);
593 Kragenwar-3044
        self.setupqs.quickslot6:SetVisible(true);
594 Kragenwar-3044
        self.setupqs.quickslot6cb:SetText("Crafted Traps");
595 Kragenwar-3044
        self.setupqs.quickslot6cb:SetChecked(self.settings["Quickslots"].trap3["active"]);
596 Kragenwar-3044
        self.setupqs.quickslot6cb:SetVisible(true);
597 Kragenwar-3044
 
598 Kragenwar-3044
 
599 Kragenwar-3044
end
600 Kragenwar-3044
 
601 Kragenwar-3044
 
602 Kragenwar-3044
-- SET ALL VARIABLES OFF OF SETUP WINDOW
603 Kragenwar-3044
function HunterBars:SetupClosing()
604 Kragenwar-3044
        self.settings["Parry"].active = self.setupbb.checkboxbb1:IsChecked();
605 Kragenwar-3044
    self.settings["Melee"].active = self.setupbb.checkboxbb2:IsChecked();
606 Kragenwar-3044
    self.settings["BowInduct"].active = self.setupbb.checkboxbb3:IsChecked();
607 Kragenwar-3044
    self.settings["BowFocus"].active = self.setupbb.checkboxbb4:IsChecked();
608 Kragenwar-3044
    self.settings["Dethreat"].active = self.setupbb.checkboxbb5:IsChecked();
609 Kragenwar-3044
    self.settings["Utility"].active = self.setupbb.checkboxbb6:IsChecked();
610 Kragenwar-3044
    self.settings["Tracking"].active = self.setupbb.checkboxbb7:IsChecked();
611 Kragenwar-3044
    self.settings["Fear"].active = self.setupbb.checkboxbb8:IsChecked();
612 Kragenwar-3044
    self.settings["Stance"].active = self.setupbb.checkboxbb9:IsChecked();
613 Kragenwar-3044
    self.settings["Focus"].active = self.setupbb.checkboxbb10:IsChecked();
614 Kragenwar-3044
    self.settings["Restoration"].active = self.setupbb.checkboxbb11:IsChecked();
615 Kragenwar-3044
    self.settings["Trapping"].active = self.setupbb.checkboxbb12:IsChecked();
616 Kragenwar-3044
    self.settings["Oils"].active = self.setupbb.checkboxbb13:IsChecked();
617 Kragenwar-3044
    self.settings["Ports"].active = self.setupbb.checkboxbb14:IsChecked();
618 Kragenwar-3044
 
619 Kragenwar-3044
        self.settings["Features"].thorns = self.setupf.checkboxf1:IsChecked();
620 Kragenwar-3044
    self.settings["Features"].bards = self.setupf.checkboxf2:IsChecked();
621 Kragenwar-3044
    self.settings["Features"].pressonward = self.setupf.checkboxf3:IsChecked();
622 Kragenwar-3044
    self.settings["Features"].combattraps = self.setupf.checkboxf4:IsChecked();
623 Kragenwar-3044
    self.settings["Features"].strongdraw = self.setupf.checkboxf5:IsChecked();
624 Kragenwar-3044
    self.settings["Features"].arrowstorm = self.setupf.checkboxf6:IsChecked();
625 Kragenwar-3044
    self.settings["Features"].combatpressonward = self.setupf.checkboxf7:IsChecked();
626 Kragenwar-3044
 
627 Kragenwar-3044
    self.settings["Features"].dimswiftstroke = self.setupf.checkboxf10:IsChecked();
628 Kragenwar-3044
 
629 Kragenwar-3044
    self.settings["Features"].primarystance = self.setupf.combo1box:GetSelection();
630 Kragenwar-3044
    self.settings["Features"].secondarystance = self.setupf.combo2box:GetSelection();
631 Kragenwar-3044
    self.settings["Features"].findpathactive = self.setupf.combo3box:GetSelection();
632 Kragenwar-3044
    self.settings["Features"].stanceactive = self.setupf.combo4box:GetSelection();
633 Kragenwar-3044
 
634 Kragenwar-3044
        if (self.setupqs.quickslot1:GetShortcut():GetData() ~= "" ) then
635 Kragenwar-3044
                self.settings["Quickslots"].fireoil = { active = self.setupqs.quickslot1cb:IsChecked(), type = self.setupqs.quickslot1:GetShortcut():GetType(), data = self.setupqs.quickslot1:GetShortcut():GetData() };
636 Kragenwar-3044
        else
637 Kragenwar-3044
                self.settings["Quickslots"].fireoil = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
638 Kragenwar-3044
        end
639 Kragenwar-3044
        if (self.setupqs.quickslot2:GetShortcut():GetData() ~= "" ) then
640 Kragenwar-3044
                self.settings["Quickslots"].lightoil = { active = self.setupqs.quickslot2cb:IsChecked(), type = self.setupqs.quickslot2:GetShortcut():GetType(), data = self.setupqs.quickslot2:GetShortcut():GetData() };
641 Kragenwar-3044
        else
642 Kragenwar-3044
                self.settings["Quickslots"].lightoil = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
643 Kragenwar-3044
        end
644 Kragenwar-3044
        if (self.setupqs.quickslot3:GetShortcut():GetData() ~= "" ) then
645 Kragenwar-3044
                self.settings["Quickslots"].bowchant = { active = self.setupqs.quickslot3cb:IsChecked(), type = self.setupqs.quickslot3:GetShortcut():GetType(), data = self.setupqs.quickslot3:GetShortcut():GetData() };
646 Kragenwar-3044
        else
647 Kragenwar-3044
                self.settings["Quickslots"].bowchant = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
648 Kragenwar-3044
        end
649 Kragenwar-3044
        if (self.setupqs.quickslot4:GetShortcut():GetData() ~= "" ) then
650 Kragenwar-3044
                self.settings["Quickslots"].trap1 = { active = self.setupqs.quickslot4cb:IsChecked(), type = self.setupqs.quickslot4:GetShortcut():GetType(), data = self.setupqs.quickslot4:GetShortcut():GetData() };
651 Kragenwar-3044
        else
652 Kragenwar-3044
                self.settings["Quickslots"].trap1 = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
653 Kragenwar-3044
        end
654 Kragenwar-3044
        if (self.setupqs.quickslot5:GetShortcut():GetData() ~= "" ) then
655 Kragenwar-3044
                self.settings["Quickslots"].trap2 = { active = self.setupqs.quickslot5cb:IsChecked(), type = self.setupqs.quickslot5:GetShortcut():GetType(), data = self.setupqs.quickslot5:GetShortcut():GetData() };
656 Kragenwar-3044
        else
657 Kragenwar-3044
                self.settings["Quickslots"].trap2 = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
658 Kragenwar-3044
        end
659 Kragenwar-3044
        if (self.setupqs.quickslot6:GetShortcut():GetData() ~= "" ) then
660 Kragenwar-3044
                self.settings["Quickslots"].trap3 = { active = self.setupqs.quickslot6cb:IsChecked(), type = self.setupqs.quickslot6:GetShortcut():GetType(), data = self.setupqs.quickslot6:GetShortcut():GetData() };
661 Kragenwar-3044
        else
662 Kragenwar-3044
                self.settings["Quickslots"].trap3 = { active = false, type = Turbine.UI.Lotro.ShortcutType.Undefined, data = "" };
663 Kragenwar-3044
        end
664 Kragenwar-3044
 
665 Kragenwar-3044
        settings.opacity = (self.setupbb.opacityslider:GetValue() / 100);
666 Kragenwar-3044
        settings.lockslots = self.setupbb.checkboxlock:IsChecked();
667 Kragenwar-3044
        settings.snaptogrid = self.setupbb.checkboxgrid:IsChecked();
668 Kragenwar-3044
    settings.language = self.setupbb.combolangbox:GetSelection();
669 Kragenwar-3044
 
670 Kragenwar-3044
        self:SaveSettings();
671 Kragenwar-3044
        self:Refresh();
672 Kragenwar-3044
 
673 Kragenwar-3044
end
674 Kragenwar-3044
 
675 Kragenwar-3044
 
676 Kragenwar-3044
-- REFRESH SKILLS AND BARS
677 Kragenwar-3044
function HunterBars:Refresh()
678 Kragenwar-3044
 
679 Kragenwar-3044
        -- GENERIC REFRESH (Required for all classes)
680 Kragenwar-3044
        self:RefreshBars();
681 Kragenwar-3044
 
682 Kragenwar-3044
        -- REDEFINE EFFECTLIST IN CASE OF LANGUAGE CHANGE
683 Kragenwar-3044
        self.DefineEffectList();
684 Kragenwar-3044
 
685 Kragenwar-3044
    -- CLASS SPECIFIC REFRESH
686 Kragenwar-3044
    -- Setup Features
687 Kragenwar-3044
        self.skills["RainofThorns"]:SetActive(self.settings["Features"].thorns);
688 Kragenwar-3044
        self.skills["BardsArrow"]:SetActive(self.settings["Features"].bards);
689 Kragenwar-3044
        self.skills["PressOnward"]:SetActive(self.settings["Features"].pressonward);
690 Kragenwar-3044
 
691 Kragenwar-3044
        self.skills["FireOil"]:SetQuickslot(self.settings["Quickslots"].fireoil["active"], self.settings["Quickslots"].fireoil["type"], self.settings["Quickslots"].fireoil["data"]);
692 Kragenwar-3044
        self.skills["LightOil"]:SetQuickslot(self.settings["Quickslots"].lightoil["active"], self.settings["Quickslots"].lightoil["type"], self.settings["Quickslots"].lightoil["data"]);
693 Kragenwar-3044
        self.skills["BowChant"]:SetQuickslot(self.settings["Quickslots"].bowchant["active"], self.settings["Quickslots"].bowchant["type"], self.settings["Quickslots"].bowchant["data"]);
694 Kragenwar-3044
 
695 Kragenwar-3044
    self.multi["TrapsSlot"]:Clear();
696 Kragenwar-3044
        self.multi["TrapsSlot"]:AddShortCut("Trap1",            self.settings["Quickslots"].trap1["active"], self.settings["Quickslots"].trap1["type"], self.settings["Quickslots"].trap1["data"]);
697 Kragenwar-3044
        self.multi["TrapsSlot"]:AddShortCut("Trap2",            self.settings["Quickslots"].trap2["active"], self.settings["Quickslots"].trap2["type"], self.settings["Quickslots"].trap2["data"]);
698 Kragenwar-3044
        self.multi["TrapsSlot"]:AddShortCut("Trap3",            self.settings["Quickslots"].trap3["active"], self.settings["Quickslots"].trap3["type"], self.settings["Quickslots"].trap3["data"]);
699 Kragenwar-3044
    self.multi["TrapsSlot"]:Refresh(true);
700 Kragenwar-3044
 
701 Kragenwar-3044
        self.multi["TrackingSlot"]:Clear();
702 Kragenwar-3044
        self.multi["TrackingSlot"]:AddShortCut("PassageofNature",       12, "0x70003F45");
703 Kragenwar-3044
    self.multi["TrackingSlot"]:AddShortCut("PassageofFoes",             22, "0x70003F46");
704 Kragenwar-3044
    self.multi["TrackingSlot"]:AddShortCut("PassageofShadow",   32, "0x70003F47");
705 Kragenwar-3044
    self.multi["TrackingSlot"]:LevelCheck();
706 Kragenwar-3044
 
707 Kragenwar-3044
        self.multi["StanceSlot"]:Clear();
708 Kragenwar-3044
        self.multi["StanceSlot"]:AddShortCut("StrengthStance",          6, "0x70003F4E");
709 Kragenwar-3044
    self.multi["StanceSlot"]:AddShortCut("PrecisionStance",             18, "0x70003F4D");
710 Kragenwar-3044
    self.multi["StanceSlot"]:AddShortCut("EnduranceStance",             28, "0x70003F4F");
711 Kragenwar-3044
    self.multi["StanceSlot"]:AddShortCut("FleetStance",                 56, "0x70010065");
712 Kragenwar-3044
    self.multi["StanceSlot"]:LevelCheck();
713 Kragenwar-3044
 
714 Kragenwar-3044
        self.multi["TrappingSlot"]:Clear();
715 Kragenwar-3044
        self.multi["TrappingSlot"]:AddShortCut("SetTrap",                       6, "0x700030BB");
716 Kragenwar-3044
    self.multi["TrappingSlot"]:AddShortCut("SetSnare",                  36, "0x7000A6B1");
717 Kragenwar-3044
    self.multi["TrappingSlot"]:LevelCheck();
718 Kragenwar-3044
 
719 Kragenwar-3044
        self.multi["PortsSlot"]:Clear();
720 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoMichelDelving", 22, "0x7000A2C3");
721 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoThorinsHall",   24, "0x70003F41");
722 Kragenwar-3044
        self.multi["PortsSlot"]:AddShortCut("ReturntoCamp",                     26, "0x7000A2C1");
723 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoOstGuruth",             26, "0x7000A2C2");
724 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoBree",                  32, "0x70003F42");
725 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoEsteldin",              34, "0x70003F43");
726 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoEvendim",               36, "0x7000A2C4");
727 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoWestAngmar",    44, "0x7000A2C5");
728 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoRivendell",             46, "0x70003F44");
729 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoSuriKyla",              48, "0x70017C82");
730 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoEastAngmar",    48, "0x7000A2C6");
731 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoEchadDunann",   50, "0x70017C81");
732 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoTwentyFirstHall",56, "0x70017C7A");
733 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoMirkEaves",             62, "0x7001F459");
734 Kragenwar-3044
    self.multi["PortsSlot"]:AddShortCut("GuidetoHarndirion",    62, "0x700235EF");
735 Kragenwar-3044
    self.multi["PortsSlot"]:LevelCheck();
736 Kragenwar-3044
 
737 Kragenwar-3044
        if (self.settings["Features"].findpathactive == 1) then
738 Kragenwar-3044
                self.skills["FindthePath"]:SetActive(true);
739 Kragenwar-3044
                self.skills["FindthePath"]:SetHover(false);
740 Kragenwar-3044
        elseif (self.settings["Features"].findpathactive == 2) then
741 Kragenwar-3044
                self.skills["FindthePath"]:SetActive(true);
742 Kragenwar-3044
                self.skills["FindthePath"]:SetHover(self.skills["FindthePath"].state);
743 Kragenwar-3044
        else
744 Kragenwar-3044
                self.skills["FindthePath"]:SetActive(not self.skills["FindthePath"].state);
745 Kragenwar-3044
        end
746 Kragenwar-3044
        self.skills["PressOnward"]:SetCombat(self.settings["Features"].combatpressonward, self.settings["Features"].pressonward);
747 Kragenwar-3044
        self.multi["TrappingSlot"]:SetCombat(self.settings["Features"].combattraps, true);
748 Kragenwar-3044
 
749 Kragenwar-3044
    -- Refresh States
750 Kragenwar-3044
    self:CombatChange(vars.player:IsInCombat());
751 Kragenwar-3044
        self:StanceChange(vars.classattr:GetStance());
752 Kragenwar-3044
        self:FocusChange(vars.classattr:GetFocus());
753 Kragenwar-3044
 
754 Kragenwar-3044
        Turbine.Shell.WriteLine("KragenBars: Hunter Bars refresh completed successfully.");
755 Kragenwar-3044
 
756 Kragenwar-3044
end

All times are GMT -5. The time now is 02:50 PM.


Our Network
EQInterface | EQ2Interface | Minion | WoWInterface | ESOUI | LoTROInterface | MMOUI | Swtorui