1 |
6 |
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 |
GuardianBars = class( KragenPlugs.KragenBars.ClassBar ); |
8 |
|
Kragenwar-3044 |
|
9 |
|
Kragenwar-3044 |
function GuardianBars:Constructor() |
10 |
48 |
Kragenwar-3044 |
|
11 |
6 |
Kragenwar-3044 |
KragenPlugs.KragenBars.ClassBar.Constructor( self ); |
12 |
|
Kragenwar-3044 |
|
13 |
48 |
Kragenwar-3044 |
-- CLASS SPECIFIC VARIABLES |
14 |
6 |
Kragenwar-3044 |
self.wound = 0; |
15 |
19 |
Kragenwar-3044 |
|
16 |
60 |
Kragenwar-3044 |
self.effectlist = {}; |
17 |
|
Kragenwar-3044 |
self.effectlist['GuardiansWard'] = Effect(); |
18 |
130 |
Valdacil-446 |
self.effectlist['GuardiansWardTactics'] = Effect(); |
19 |
60 |
Kragenwar-3044 |
self.effectlist['ImprovedGuardiansWard'] = Effect(); |
20 |
130 |
Valdacil-446 |
self.effectlist['ImprovedGuardiansWardTactics'] = Effect(); |
21 |
60 |
Kragenwar-3044 |
self.effectlist['BlockResponse'] = Effect(); |
22 |
|
Kragenwar-3044 |
self.effectlist['ShieldSwipe'] = Effect(); |
23 |
|
Kragenwar-3044 |
self.effectlist['ParryResponse'] = Effect(); |
24 |
|
Kragenwar-3044 |
self.effectlist['Retaliation'] = Effect(); |
25 |
|
Kragenwar-3044 |
self.effectlist['Stunned'] = Effect(); |
26 |
|
Kragenwar-3044 |
self.effectlist['Dazed'] = Effect(); |
27 |
|
Kragenwar-3044 |
self.effectlist['KnockedDown'] = Effect(); |
28 |
|
Kragenwar-3044 |
self.effectlist['Overpower'] = Effect(); |
29 |
|
Kragenwar-3044 |
self.effectlist['Campsite'] = Effect(); |
30 |
|
Kragenwar-3044 |
self.effectlist['ShieldSpikes'] = Effect(); |
31 |
|
Kragenwar-3044 |
|
32 |
48 |
Kragenwar-3044 |
-- DEFINE THE EFFECT LIST BASED ON CLIENT LANGUAGE |
33 |
|
Kragenwar-3044 |
self.DefineEffectList = function() |
34 |
|
Kragenwar-3044 |
-- ENGLISH CLIENT |
35 |
|
Kragenwar-3044 |
if (settings.language == 1) then |
36 |
60 |
Kragenwar-3044 |
self.effectlist['GuardiansWard'] :SetName("Guardian's Ward"); |
37 |
|
Kragenwar-3044 |
self.effectlist['ImprovedGuardiansWard'] :SetName("Improved Guardian's Ward"); |
38 |
130 |
Valdacil-446 |
self.effectlist['GuardiansWardTactics'] :SetName("Guardian's Ward Tactics"); |
39 |
|
Valdacil-446 |
self.effectlist['ImprovedGuardiansWardTactics'] :SetName("Improved Guardian's Ward Tactics"); |
40 |
60 |
Kragenwar-3044 |
self.effectlist['BlockResponse'] :SetName('Block Response'); |
41 |
|
Kragenwar-3044 |
self.effectlist['ShieldSwipe'] :SetName('Shield Swipe'); |
42 |
|
Kragenwar-3044 |
self.effectlist['ParryResponse'] :SetName('Parry Response'); |
43 |
|
Kragenwar-3044 |
self.effectlist['Retaliation'] :SetName('Retaliation'); |
44 |
|
Kragenwar-3044 |
self.effectlist['Stunned'] :SetName('Stunned'); |
45 |
|
Kragenwar-3044 |
self.effectlist['Dazed'] :SetName('Dazed'); |
46 |
|
Kragenwar-3044 |
self.effectlist['KnockedDown'] :SetName('Knocked Down'); |
47 |
|
Kragenwar-3044 |
self.effectlist['Overpower'] :SetName('Overpower'); |
48 |
|
Kragenwar-3044 |
self.effectlist['Campsite'] :SetName('Campsite'); |
49 |
|
Kragenwar-3044 |
self.effectlist['ShieldSpikes'] :SetName(' Spike'); |
50 |
36 |
Kragenwar-3044 |
|
51 |
48 |
Kragenwar-3044 |
-- FRENCH CLIENT |
52 |
82 |
Kragenwar-3044 |
elseif (vars.locale == 'fr') then |
53 |
60 |
Kragenwar-3044 |
self.effectlist['GuardiansWard'] :SetName('Protection de gardien'); |
54 |
82 |
Kragenwar-3044 |
self.effectlist['ImprovedGuardiansWard'] :SetName('Protection de gardien améliorée'); |
55 |
130 |
Valdacil-446 |
self.effectlist['GuardiansWardTactics'] :SetName("Guardian's Ward Tactics"); |
56 |
|
Valdacil-446 |
self.effectlist['ImprovedGuardiansWardTactics'] :SetName("Improved Guardian's Ward Tactics"); |
57 |
60 |
Kragenwar-3044 |
self.effectlist['BlockResponse'] :SetName('Block Response'); |
58 |
|
Kragenwar-3044 |
self.effectlist['ShieldSwipe'] :SetName('Balayage au bouclier'); |
59 |
82 |
Kragenwar-3044 |
self.effectlist['ParryResponse'] :SetName('Réaction de parade'); |
60 |
60 |
Kragenwar-3044 |
self.effectlist['Retaliation'] :SetName('Riposte'); |
61 |
|
Kragenwar-3044 |
self.effectlist['Stunned'] :SetName('Etourdi'); |
62 |
82 |
Kragenwar-3044 |
self.effectlist['Dazed'] :SetName('Hébété'); |
63 |
|
Kragenwar-3044 |
self.effectlist['KnockedDown'] :SetName('Renversé'); |
64 |
60 |
Kragenwar-3044 |
self.effectlist['Overpower'] :SetName('Surpuissance'); |
65 |
|
Kragenwar-3044 |
self.effectlist['Campsite'] :SetName('Campsite'); |
66 |
82 |
Kragenwar-3044 |
self.effectlist['ShieldSpikes'] :SetName(' Spike'); |
67 |
48 |
Kragenwar-3044 |
|
68 |
|
Kragenwar-3044 |
-- GERMAN CLIENT |
69 |
82 |
Kragenwar-3044 |
elseif (vars.locale == 'de') then |
70 |
105 |
Kragenwar-3044 |
self.effectlist['GuardiansWard'] :SetName('Wächterschild'); |
71 |
82 |
Kragenwar-3044 |
self.effectlist['ImprovedGuardiansWard'] :SetName('Verbesserung: Wächterschild'); |
72 |
130 |
Valdacil-446 |
self.effectlist['GuardiansWardTactics'] :SetName("Guardian's Ward Tactics"); |
73 |
|
Valdacil-446 |
self.effectlist['ImprovedGuardiansWardTactics'] :SetName("Improved Guardian's Ward Tactics"); |
74 |
60 |
Kragenwar-3044 |
self.effectlist['BlockResponse'] :SetName('Block Response'); |
75 |
|
Kragenwar-3044 |
self.effectlist['ShieldSwipe'] :SetName('Schildstreich'); |
76 |
|
Kragenwar-3044 |
self.effectlist['ParryResponse'] :SetName('Erwiderung "Parade"'); |
77 |
|
Kragenwar-3044 |
self.effectlist['Retaliation'] :SetName('Vergeltung'); |
78 |
|
Kragenwar-3044 |
self.effectlist['Stunned'] :SetName('Bewusstlos geschlagen'); |
79 |
82 |
Kragenwar-3044 |
self.effectlist['Dazed'] :SetName('Benommenheit'); |
80 |
60 |
Kragenwar-3044 |
self.effectlist['KnockedDown'] :SetName('Zu Boden geschlagen'); |
81 |
82 |
Kragenwar-3044 |
self.effectlist['Overpower'] :SetName('Ãberwältigen'); |
82 |
105 |
Kragenwar-3044 |
self.effectlist['Campsite'] :SetName('Lagerplatz'); |
83 |
82 |
Kragenwar-3044 |
self.effectlist['ShieldSpikes'] :SetName(' Spike'); |
84 |
48 |
Kragenwar-3044 |
end |
85 |
19 |
Kragenwar-3044 |
end |
86 |
6 |
Kragenwar-3044 |
|
87 |
48 |
Kragenwar-3044 |
|
88 |
|
Kragenwar-3044 |
-- BUILD WINDOWS BARS SKILLS AND MULTIS -- |
89 |
|
Kragenwar-3044 |
|
90 |
|
Kragenwar-3044 |
-- Build Bars |
91 |
6 |
Kragenwar-3044 |
self.bars["Overpower"] = SkillBar(self.windows["Overpower"], 1, 1, 3, 1, true, true); |
92 |
|
Kragenwar-3044 |
self.bars["BlockTier1"] = SkillBar(self.windows["Block"], 1, 1, 3, 1, true, true); |
93 |
|
Kragenwar-3044 |
self.bars["BlockTier2"] = SkillBar(self.windows["Block"], 1.5, 1, 2, 1, true, true); |
94 |
|
Kragenwar-3044 |
self.bars["BlockTier3"] = SkillBar(self.windows["Block"], 4, 1, 1, 1, true, true); |
95 |
131 |
Valdacil-446 |
self.bars["ParryTier1"] = SkillBar(self.windows["Parry"], 1, 1, 2, 1, true, true); |
96 |
6 |
Kragenwar-3044 |
self.bars["ParryTier2"] = SkillBar(self.windows["Parry"], 1, 1, 3, 1, true, true); |
97 |
89 |
Kragenwar-3044 |
self.bars["ParryTier3"] = SkillBar(self.windows["Parry"], 4, 1, 1, 1, true, true); |
98 |
6 |
Kragenwar-3044 |
|
99 |
|
Kragenwar-3044 |
|
100 |
48 |
Kragenwar-3044 |
-- Build Skills |
101 |
6 |
Kragenwar-3044 |
self.skills["ShieldSwipe"] = SkillSlot(self.bars["BlockTier1"], 1, 1, false, 2, "0x7000305D"); |
102 |
|
Kragenwar-3044 |
self.skills["CatchABreath"] = SkillSlot(self.bars["BlockTier1"], 2, 1, false, 16, "0x7000307D"); |
103 |
|
Kragenwar-3044 |
self.skills["LitanyOfDefiance"] = SkillSlot(self.bars["BlockTier1"], 3, 1, false, 60, "0x7000F095"); |
104 |
|
Kragenwar-3044 |
|
105 |
|
Kragenwar-3044 |
self.skills["ShieldBash"] = SkillSlot(self.bars["BlockTier2"], 1, 1, false, 10, "0x70003EE1"); |
106 |
|
Kragenwar-3044 |
self.skills["ShieldTaunt"] = SkillSlot(self.bars["BlockTier2"], 2, 1, false, 22, "0x70003EE6"); |
107 |
|
Kragenwar-3044 |
|
108 |
|
Kragenwar-3044 |
self.skills["ShieldSmash"] = SkillSlot(self.bars["BlockTier3"], 1, 1, false, 41, "0x70002EC4"); |
109 |
|
Kragenwar-3044 |
|
110 |
131 |
Valdacil-446 |
if (vars.playerlevel >= 70) then |
111 |
|
Valdacil-446 |
self.skills["WhirlingRetaliation"] = SkillSlot(self.bars["ParryTier1"],1, 1, false, { 14, 70 }, { "0x70003EE4", "0x7002845C" }); |
112 |
|
Valdacil-446 |
end |
113 |
|
Valdacil-446 |
self.skills["Retaliation"] = SkillSlot(self.bars["ParryTier1"], 2, 1, false, 8, "0x70003EE0"); |
114 |
6 |
Kragenwar-3044 |
|
115 |
131 |
Valdacil-446 |
if (vars.playerlevel < 70) then |
116 |
|
Valdacil-446 |
self.skills["WhirlingRetaliation"] = SkillSlot(self.bars["ParryTier2"],1, 1, false, { 14, 70 }, { "0x70003EE4", "0x7002845C" }); |
117 |
|
Valdacil-446 |
end |
118 |
|
Valdacil-446 |
self.skills["Overwhelm"] = SkillSlot(self.bars["ParryTier2"], 2, 1, false, { 8, 68 }, { "0x70003EE2", "0x70028414" }); |
119 |
6 |
Kragenwar-3044 |
self.skills["Thrust"] = SkillSlot(self.bars["ParryTier2"], 3, 1, false, 18, "0x70003EE5"); |
120 |
|
Kragenwar-3044 |
|
121 |
|
Kragenwar-3044 |
self.skills["ToTheKing"] = SkillSlot(self.bars["ParryTier3"], 1, 1, false, 41, "0x70002EA5"); |
122 |
|
Kragenwar-3044 |
|
123 |
127 |
Valdacil-446 |
self.skills["GuardiansWard"] = SkillSlot(self.bars["Ward"], 1, 1, true, { 1, 66 }, { "0x70003066", "0x700283E7" }); |
124 |
89 |
Kragenwar-3044 |
|
125 |
6 |
Kragenwar-3044 |
self.skills["ShieldBlow"] = SkillSlot(self.bars["Melee"], 1, 1, true, { 1, 54 }, { "0x7000306F", "0x7000F1E0" }); |
126 |
|
Kragenwar-3044 |
self.skills["Sting"] = SkillSlot(self.bars["Melee"], 2, 1, true, { 1, 52 }, { "0x70003058", "0x7000F1E1" }); |
127 |
|
Kragenwar-3044 |
self.skills["SweepingCut"] = SkillSlot(self.bars["Melee"], 3, 1, true, 4, "0x70003EDE"); |
128 |
|
Kragenwar-3044 |
self.skills["VexingBlow"] = SkillSlot(self.bars["Melee"], 4, 1, true, 6, "0x7000308A"); |
129 |
89 |
Kragenwar-3044 |
self.skills["SaltTheWound"] = SkillSlot(self.bars["Melee"], 5, 1, true, 22, "0x7000D4AF"); |
130 |
|
Kragenwar-3044 |
self.skills["Stamp"] = SkillSlot(self.bars["Melee"], 6, 1, true, 32, "0x70003EE7"); |
131 |
|
Kragenwar-3044 |
self.skills["TakeToHeart"] = SkillSlot(self.bars["Melee"], 7, 1, true, 58, "0x7000ED87"); |
132 |
6 |
Kragenwar-3044 |
|
133 |
127 |
Valdacil-446 |
self.skills["Challenge"] = SkillSlot(self.bars["Taunt"], 1, 1, true, { 16, 74 }, { "0x70003097", "0x70028B62" }); |
134 |
6 |
Kragenwar-3044 |
self.skills["FrayTheEdge"] = SkillSlot(self.bars["Taunt"], 2, 1, true, 40, "0x7000D4B5"); |
135 |
|
Kragenwar-3044 |
self.skills["Engage"] = SkillSlot(self.bars["Taunt"], 3, 1, true, 42, "0x7000D4B2"); |
136 |
60 |
Kragenwar-3044 |
self.skills["ChallengeTheDarkness"] = SkillSlot(self.bars["Taunt"], 4, 1, self.settings.traits["ChallengeTheDarkness"].active, 41, "0x70002EDF"); |
137 |
6 |
Kragenwar-3044 |
|
138 |
|
Kragenwar-3044 |
self.skills["GuardiansPledge"] = SkillSlot(self.bars["SelfBuffs"], 1, 1, true, 20, "0x700030A4"); |
139 |
|
Kragenwar-3044 |
self.skills["ThrillOfDanger"] = SkillSlot(self.bars["SelfBuffs"], 2, 1, true, 26, "0x700030B4"); |
140 |
|
Kragenwar-3044 |
self.skills["WarriorsHeart"] = SkillSlot(self.bars["SelfBuffs"], 3, 1, true, { 30, 64 }, { "0x700030AC", "0x70020DF5" }); |
141 |
|
Kragenwar-3044 |
self.skills["DeepBreath"] = SkillSlot(self.bars["SelfBuffs"], 4, 1, true, 34, "0x700030A8"); |
142 |
|
Kragenwar-3044 |
self.skills["IgnoreThePain"] = SkillSlot(self.bars["SelfBuffs"], 5, 1, true, 44, "0x70021663"); |
143 |
|
Kragenwar-3044 |
self.skills["Charge"] = SkillSlot(self.bars["SelfBuffs"], 6, 1, true, { 48, 62 }, { "0x7000DD14", "0x7001F4B6" }); |
144 |
|
Kragenwar-3044 |
|
145 |
|
Kragenwar-3044 |
self.skills["Protection"] = SkillSlot(self.bars["Protect"], 1, 1, true, 24, "0x7000309A"); |
146 |
|
Kragenwar-3044 |
self.skills["ShieldWall"] = SkillSlot(self.bars["Protect"], 2, 1, true, 50, "0x7000D4AE"); |
147 |
|
Kragenwar-3044 |
|
148 |
|
Kragenwar-3044 |
self.skills["ForcedOpening"] = SkillSlot(self.bars["Overpower"], 1, 1, false, 30, "0x7000D4B0"); |
149 |
|
Kragenwar-3044 |
self.skills["Stagger"] = SkillSlot(self.bars["Overpower"], 2, 1, false, 46, "0x7000D4B3"); |
150 |
|
Kragenwar-3044 |
self.skills["BrutalAssault"] = SkillSlot(self.bars["Overpower"], 3, 1, false, 56, "0x7000F158"); |
151 |
|
Kragenwar-3044 |
|
152 |
127 |
Valdacil-446 |
self.skills["TurnTheTables"] = SkillSlot(self.bars["Stunned"], 1, 1, false, { 36, 72 }, { "0x70003EE8", "0x70028B82" }); |
153 |
6 |
Kragenwar-3044 |
|
154 |
|
Kragenwar-3044 |
self.skills["SummonTinker"] = SkillSlot(self.bars["Utility"], 1, 1, false, 26, "0x7000D4B4"); |
155 |
|
Kragenwar-3044 |
self.skills["GuardiansPromise"] = SkillSlot(self.bars["Utility"], 2, 1, true, 38, "0x70003EE9"); |
156 |
|
Kragenwar-3044 |
|
157 |
|
Kragenwar-3044 |
self.skills["LetFly"] = SkillSlot(self.bars["Ranged"], 1, 1, true, 30, "0x70003E14"); |
158 |
49 |
Kragenwar-3044 |
|
159 |
78 |
Kragenwar-3044 |
self.skills["OverpowerTactics"] = ItemSlot(self.bars["ClassItems"], 1, 1, false, self.settings.quickslots["Tactics"]); |
160 |
6 |
Kragenwar-3044 |
|
161 |
|
Kragenwar-3044 |
|
162 |
48 |
Kragenwar-3044 |
-- Build Stance Slot |
163 |
6 |
Kragenwar-3044 |
self.multi["StanceSlot"] = SkillMultiSlot(self.bars["Stances"], 1, 1, true); |
164 |
127 |
Valdacil-446 |
if (vars.playerlevel >= 74) then |
165 |
|
Valdacil-446 |
self.multi["StanceSlot"]:AddShortCut("GuardiansDefence", 74, "0x70028510"); |
166 |
|
Valdacil-446 |
else |
167 |
|
Valdacil-446 |
self.multi["StanceSlot"]:AddShortCut("GuardiansDefence", 4, "0x70003EDF"); |
168 |
|
Valdacil-446 |
end |
169 |
6 |
Kragenwar-3044 |
self.multi["StanceSlot"]:AddShortCut("GuardiansParry", 12, "0x70003EE3"); |
170 |
127 |
Valdacil-446 |
self.multi["StanceSlot"]:AddShortCut("Overpower", 10, "0x7000D4B1"); |
171 |
60 |
Kragenwar-3044 |
if (self.settings.traits["ThreatStance"].active) then self.multi["StanceSlot"]:AddShortCut("GuardiansThreat", 41, "0x70002ED4"); end |
172 |
6 |
Kragenwar-3044 |
self.multi["StanceSlot"]:LevelCheck(); |
173 |
|
Kragenwar-3044 |
|
174 |
78 |
Kragenwar-3044 |
-- Build Spike Slot |
175 |
|
Kragenwar-3044 |
self.multi["ShieldSpikes"] = ItemMultiSlot(self.bars["ClassItems"], 1, 1, true); |
176 |
|
Kragenwar-3044 |
self.multi["ShieldSpikes"]:AddShortCut("Spikes1", self.settings.quickslots["Spike1"]); |
177 |
|
Kragenwar-3044 |
self.multi["ShieldSpikes"]:AddShortCut("Spikes2", self.settings.quickslots["Spike2"]); |
178 |
|
Kragenwar-3044 |
self.multi["ShieldSpikes"]:AddShortCut("Spikes3", self.settings.quickslots["Spike3"]); |
179 |
|
Kragenwar-3044 |
self.multi["ShieldSpikes"]:AddShortCut("Spikes4", self.settings.quickslots["Spike4"]); |
180 |
|
Kragenwar-3044 |
self.multi["ShieldSpikes"]:Refresh(true); |
181 |
|
Kragenwar-3044 |
|
182 |
48 |
Kragenwar-3044 |
-- SET COMBAT STATES |
183 |
|
Kragenwar-3044 |
self.skills["ThrillOfDanger"]:SetCombat( true, false ); |
184 |
|
Kragenwar-3044 |
self.skills["GuardiansPromise"]:SetCombat( false, true ); |
185 |
|
Kragenwar-3044 |
self.skills["SummonTinker"]:SetCombat( false, true ); |
186 |
|
Kragenwar-3044 |
|
187 |
66 |
Kragenwar-3044 |
-- ITEM MANAGER |
188 |
73 |
Kragenwar-3044 |
--self.itemmanager = ItemManager(); |
189 |
|
Kragenwar-3044 |
--self.itemmanager:RegisterItem("spike Kit", { "Expert","Resiliant Expert","Artisan","Resiliant Artisan","Master","Resiliant Master","Supreme","Resiliant Supreme","Basic","Resiliant Basic","Improved","Resiliant Improved","Sharp","Resiliant Sharp","Deadly","Resiliant Deadly","Lethal","Resiliant Lethal" }, {"Recipe"}, self.skills["ShieldSpikes"]); |
190 |
|
Kragenwar-3044 |
--self.itemmanager:RegisterItem("Overpower Tactic", { "Journeyman","Skillful Journeyman","Expert","Skillful Expert","Artisan","Skillful Artisan","Master","Skillful Master","Supreme","Skillful Supreme" }, {"Recipe"}, self.skills["OverpowerTactics"]); |
191 |
|
Kragenwar-3044 |
--self.itemmanager:ParseItems(); |
192 |
66 |
Kragenwar-3044 |
|
193 |
48 |
Kragenwar-3044 |
-- CLASS SPECIFIC SETUP/DEFAULT CODE |
194 |
60 |
Kragenwar-3044 |
self.windows["Overpower"]:SetZOrder(-10); |
195 |
92 |
Kragenwar-3044 |
self.windows["Block"]:SetZOrder(0); |
196 |
48 |
Kragenwar-3044 |
|
197 |
|
Kragenwar-3044 |
-- CLASS SPECIFIC EVENTS |
198 |
|
Kragenwar-3044 |
|
199 |
|
Kragenwar-3044 |
-- Stance Changed Event |
200 |
6 |
Kragenwar-3044 |
AddCallback(vars.classattr, "StanceChanged", function(sender, args) |
201 |
|
Kragenwar-3044 |
KragenBars:StanceChange(vars.classattr:GetStance()); |
202 |
|
Kragenwar-3044 |
end); |
203 |
|
Kragenwar-3044 |
|
204 |
48 |
Kragenwar-3044 |
-- Block Changed Event |
205 |
6 |
Kragenwar-3044 |
AddCallback(vars.classattr, "IsBlockTier3AvailableChanged", function(sender, args) |
206 |
|
Kragenwar-3044 |
KragenBars:BlockChange(3, vars.classattr:IsBlockTier3Available()); |
207 |
|
Kragenwar-3044 |
end); |
208 |
48 |
Kragenwar-3044 |
|
209 |
|
Kragenwar-3044 |
-- Parry Changed Event |
210 |
6 |
Kragenwar-3044 |
AddCallback(vars.classattr, "IsParryTier3AvailableChanged", function(sender, args) |
211 |
|
Kragenwar-3044 |
KragenBars:ParryChange(3, vars.classattr:IsParryTier3Available()); |
212 |
|
Kragenwar-3044 |
end); |
213 |
|
Kragenwar-3044 |
|
214 |
131 |
Valdacil-446 |
if (vars.playerlevel >= 70) then |
215 |
132 |
Valdacil-446 |
self.skills["WhirlingRetaliation"]:SetParent(self.bars["ParryTier1"]); |
216 |
|
Valdacil-446 |
self.skills["WhirlingRetaliation"]:SetPosition(0,0); |
217 |
131 |
Valdacil-446 |
else |
218 |
132 |
Valdacil-446 |
self.skills["WhirlingRetaliation"]:SetParent(self.bars["ParryTier2"]); |
219 |
|
Valdacil-446 |
self.skills["WhirlingRetaliation"]:SetPosition(0,0); |
220 |
131 |
Valdacil-446 |
end |
221 |
|
Valdacil-446 |
|
222 |
48 |
Kragenwar-3044 |
-- INITIALIZE BARS |
223 |
6 |
Kragenwar-3044 |
self:InitBars(); |
224 |
|
Kragenwar-3044 |
self:BlockChange(3, vars.classattr:IsBlockTier3Available()); |
225 |
|
Kragenwar-3044 |
self:ParryChange(3, vars.classattr:IsParryTier3Available()); |
226 |
|
Kragenwar-3044 |
self:StanceChange(vars.classattr:GetStance()); |
227 |
|
Kragenwar-3044 |
self:CombatChange(vars.player:IsInCombat()); |
228 |
|
Kragenwar-3044 |
|
229 |
|
Kragenwar-3044 |
|
230 |
|
Kragenwar-3044 |
|
231 |
|
Kragenwar-3044 |
end |
232 |
|
Kragenwar-3044 |
|
233 |
48 |
Kragenwar-3044 |
|
234 |
|
Kragenwar-3044 |
-- ADD EFFECT EVENT |
235 |
6 |
Kragenwar-3044 |
function GuardianBars:AddEffect( effectIndex ) |
236 |
19 |
Kragenwar-3044 |
local effect = vars.player:GetEffects():Get( effectIndex ); |
237 |
61 |
Kragenwar-3044 |
local effectname = effect:GetName(); |
238 |
|
Kragenwar-3044 |
local effectid = effect:GetID(); |
239 |
6 |
Kragenwar-3044 |
|
240 |
|
Kragenwar-3044 |
-- Guardian's Ward |
241 |
130 |
Valdacil-446 |
if (effectname == self.effectlist["GuardiansWard"]:GetName() or effectname == self.effectlist["ImprovedGuardiansWard"]:GetName() or effectname == self.effectlist["GuardiansWardTactics"]:GetName() or effectname == self.effectlist["ImprovedGuardiansWardTactics"]:GetName()) then |
242 |
61 |
Kragenwar-3044 |
if (self.effectlist["GuardiansWard"]:SetState( true , effectid)) then |
243 |
|
Kragenwar-3044 |
self.skills["GuardiansWard"]:SetActive(self.settings.defaults["WardActive"].selected < 3); |
244 |
|
Kragenwar-3044 |
if (self.settings.defaults["WardActive"].selected == 2) then |
245 |
|
Kragenwar-3044 |
self.skills["GuardiansWard"]:SetHover( true ); |
246 |
|
Kragenwar-3044 |
elseif (self.settings.defaults["WardActive"].selected == 4) then |
247 |
|
Kragenwar-3044 |
self.skills["GuardiansWard"]:StartTimer( effect:GetDuration() * .70, true ); |
248 |
|
Kragenwar-3044 |
end |
249 |
6 |
Kragenwar-3044 |
end |
250 |
|
Kragenwar-3044 |
|
251 |
61 |
Kragenwar-3044 |
elseif (effectname == self.effectlist["BlockResponse"]:GetName()) then |
252 |
|
Kragenwar-3044 |
if (self.effectlist["BlockResponse"]:SetState( true, effectid)) then |
253 |
|
Kragenwar-3044 |
if (not self.effectlist["ShieldSwipe"]:GetState()) then |
254 |
|
Kragenwar-3044 |
self.skills["ShieldSwipe"]:SetActive(true); |
255 |
|
Kragenwar-3044 |
self.skills["CatchABreath"]:SetActive(true); |
256 |
|
Kragenwar-3044 |
self.skills["LitanyOfDefiance"]:SetActive(true); |
257 |
|
Kragenwar-3044 |
if (vars.playerlevel >= 10) then |
258 |
|
Kragenwar-3044 |
self.bars["BlockTier1"]:SetZOrder(0); |
259 |
|
Kragenwar-3044 |
self.bars["BlockTier2"]:SetZOrder(-10); |
260 |
|
Kragenwar-3044 |
end |
261 |
10 |
Kragenwar-3044 |
end |
262 |
6 |
Kragenwar-3044 |
end |
263 |
|
Kragenwar-3044 |
|
264 |
61 |
Kragenwar-3044 |
elseif (effectname == self.effectlist["ShieldSwipe"]:GetName()) then |
265 |
|
Kragenwar-3044 |
if (self.effectlist["ShieldSwipe"]:SetState( true, effectid)) then |
266 |
|
Kragenwar-3044 |
self.skills["ShieldSwipe"]:SetActive(false); |
267 |
|
Kragenwar-3044 |
self.skills["CatchABreath"]:SetActive(false); |
268 |
|
Kragenwar-3044 |
self.skills["LitanyOfDefiance"]:SetActive(false); |
269 |
|
Kragenwar-3044 |
self.bars["BlockTier1"]:SetZOrder(-10); |
270 |
|
Kragenwar-3044 |
self.bars["BlockTier2"]:SetZOrder(0); |
271 |
|
Kragenwar-3044 |
self.skills["ShieldTaunt"]:SetActive(true); |
272 |
|
Kragenwar-3044 |
self.skills["ShieldBash"]:SetActive(true); |
273 |
|
Kragenwar-3044 |
end |
274 |
6 |
Kragenwar-3044 |
|
275 |
61 |
Kragenwar-3044 |
elseif (effectname == self.effectlist["ParryResponse"]:GetName()) then |
276 |
|
Kragenwar-3044 |
if (self.effectlist["ParryResponse"]:SetState( true, effectid)) then |
277 |
|
Kragenwar-3044 |
if (not self.effectlist["Retaliation"]:GetState()) then |
278 |
|
Kragenwar-3044 |
self.skills["Retaliation"]:SetActive( true ); |
279 |
133 |
Valdacil-446 |
if (vars.playerlevel >= 70) then |
280 |
|
Valdacil-446 |
self.skills["WhirlingRetaliation"]:SetActive(true); |
281 |
|
Valdacil-446 |
end |
282 |
61 |
Kragenwar-3044 |
self.bars["ParryTier1"]:SetZOrder(0); |
283 |
|
Kragenwar-3044 |
self.bars["ParryTier2"]:SetZOrder(-10); |
284 |
|
Kragenwar-3044 |
end |
285 |
6 |
Kragenwar-3044 |
end |
286 |
|
Kragenwar-3044 |
|
287 |
61 |
Kragenwar-3044 |
elseif (effectname == self.effectlist["Retaliation"]:GetName()) then |
288 |
|
Kragenwar-3044 |
if (self.effectlist["Retaliation"]:SetState( true, effectid)) then |
289 |
|
Kragenwar-3044 |
self.skills["Retaliation"]:SetActive( false ); |
290 |
|
Kragenwar-3044 |
self.bars["ParryTier1"]:SetZOrder(-10); |
291 |
|
Kragenwar-3044 |
self.bars["ParryTier2"]:SetZOrder(0); |
292 |
|
Kragenwar-3044 |
self.skills["Overwhelm"]:SetActive( true ); |
293 |
|
Kragenwar-3044 |
self.skills["Thrust"]:SetActive( true ); |
294 |
133 |
Valdacil-446 |
if (vars.playerlevel < 70) then |
295 |
|
Valdacil-446 |
self.skills["WhirlingRetaliation"]:SetActive( true ); |
296 |
|
Valdacil-446 |
end |
297 |
61 |
Kragenwar-3044 |
end |
298 |
6 |
Kragenwar-3044 |
|
299 |
|
Kragenwar-3044 |
-- Stunned, Dazed, Knocked Down |
300 |
61 |
Kragenwar-3044 |
elseif (effectname == self.effectlist["Stunned"]:GetName() or effectname == self.effectlist["Dazed"]:GetName() or effectname == self.effectlist["KnockedDown"]:GetName()) then |
301 |
|
Kragenwar-3044 |
if (self.effectlist["Stunned"]:SetState( true , effectid)) then |
302 |
|
Kragenwar-3044 |
self.skills["TurnTheTables"]:SetActive( true ); |
303 |
|
Kragenwar-3044 |
end |
304 |
6 |
Kragenwar-3044 |
|
305 |
|
Kragenwar-3044 |
-- Stance Change |
306 |
61 |
Kragenwar-3044 |
elseif (effectname == self.effectlist["Overpower"]:GetName()) then |
307 |
|
Kragenwar-3044 |
if (self.effectlist["Overpower"]:SetState( true, effectid )) then |
308 |
|
Kragenwar-3044 |
self.windows["Overpower"]:SetZOrder(0); |
309 |
|
Kragenwar-3044 |
self.windows["Block"]:SetZOrder(-10); |
310 |
|
Kragenwar-3044 |
self.skills["ForcedOpening"]:SetActive( true ); |
311 |
|
Kragenwar-3044 |
self.skills["Stagger"]:SetActive( true ); |
312 |
|
Kragenwar-3044 |
self.skills["BrutalAssault"]:SetActive( true ); |
313 |
66 |
Kragenwar-3044 |
self.skills["OverpowerTactics"]:SetActive( true ); |
314 |
|
Kragenwar-3044 |
self.skills["OverpowerTactics"]:SetZOrder( 0 ); |
315 |
61 |
Kragenwar-3044 |
self.skills["ShieldBlow"]:SetActive( false ); |
316 |
|
Kragenwar-3044 |
self.skills["ShieldWall"]:SetActive( false ); |
317 |
78 |
Kragenwar-3044 |
self.multi["ShieldSpikes"]:SetActive( false ); |
318 |
|
Kragenwar-3044 |
self.multi["ShieldSpikes"]:SetZOrder( -10 ); |
319 |
61 |
Kragenwar-3044 |
end |
320 |
6 |
Kragenwar-3044 |
|
321 |
61 |
Kragenwar-3044 |
elseif (effectname == self.effectlist["Campsite"]:GetName()) then |
322 |
|
Kragenwar-3044 |
if (self.effectlist["Campsite"]:SetState( true, effectid )) then |
323 |
|
Kragenwar-3044 |
self.skills["SummonTinker"]:SetActive( true ); |
324 |
|
Kragenwar-3044 |
end |
325 |
6 |
Kragenwar-3044 |
|
326 |
61 |
Kragenwar-3044 |
elseif (string.find(effectname, self.effectlist["ShieldSpikes"]:GetName()) ~= nil ) then |
327 |
|
Kragenwar-3044 |
if (self.effectlist["ShieldSpikes"]:SetState( true, effectid )) then |
328 |
127 |
Valdacil-446 |
self.multi["ShieldSpikes"]:SetHover(true); |
329 |
61 |
Kragenwar-3044 |
end |
330 |
6 |
Kragenwar-3044 |
|
331 |
|
Kragenwar-3044 |
-- Wound |
332 |
19 |
Kragenwar-3044 |
elseif (effect:GetCategory() == Turbine.Gameplay.EffectCategory.Wound ) then |
333 |
6 |
Kragenwar-3044 |
self.wound = self.wound + 1; |
334 |
127 |
Valdacil-446 |
if (settings.skilldata["IgnoreThePain"].parent ~= nil and vars.playerlevel >= self.skills["IgnoreThePain"].level[1] and self.settings.features["WoundIndicator"].active) then |
335 |
|
Valdacil-446 |
if (self.settings.userconf[settings.skilldata["IgnoreThePain"].parent].active) then |
336 |
129 |
Valdacil-446 |
self.skills["IgnoreThePain"]:SetColor("red"); |
337 |
127 |
Valdacil-446 |
end |
338 |
6 |
Kragenwar-3044 |
end |
339 |
|
Kragenwar-3044 |
|
340 |
|
Kragenwar-3044 |
end |
341 |
|
Kragenwar-3044 |
end |
342 |
|
Kragenwar-3044 |
|
343 |
48 |
Kragenwar-3044 |
-- REMOVE EFFECT EVENT |
344 |
6 |
Kragenwar-3044 |
function GuardianBars:RemoveEffect( effect ) |
345 |
61 |
Kragenwar-3044 |
local effectname = effect:GetName(); |
346 |
|
Kragenwar-3044 |
local effectid = effect:GetID(); |
347 |
|
Kragenwar-3044 |
|
348 |
6 |
Kragenwar-3044 |
-- Guardian's Ward |
349 |
130 |
Valdacil-446 |
if (effectname == self.effectlist["GuardiansWard"]:GetName() or effectname == self.effectlist["ImprovedGuardiansWard"]:GetName() or effectname == self.effectlist["GuardiansWardTactics"]:GetName() or effectname == self.effectlist["ImprovedGuardiansWardTactics"]:GetName()) then |
350 |
61 |
Kragenwar-3044 |
if (not self.effectlist["GuardiansWard"]:SetState( false, effectid)) then |
351 |
|
Kragenwar-3044 |
self.skills["GuardiansWard"]:SetActive( true ); |
352 |
19 |
Kragenwar-3044 |
self.skills["GuardiansWard"]:SetHover( false ); |
353 |
|
Kragenwar-3044 |
end |
354 |
6 |
Kragenwar-3044 |
|
355 |
61 |
Kragenwar-3044 |
elseif (effectname == self.effectlist["BlockResponse"]:GetName()) then |
356 |
|
Kragenwar-3044 |
if (not self.effectlist["BlockResponse"]:SetState( false, effectid )) then |
357 |
6 |
Kragenwar-3044 |
self.skills["ShieldSwipe"]:SetActive(false); |
358 |
|
Kragenwar-3044 |
self.skills["CatchABreath"]:SetActive(false); |
359 |
|
Kragenwar-3044 |
self.skills["LitanyOfDefiance"]:SetActive(false); |
360 |
|
Kragenwar-3044 |
end |
361 |
|
Kragenwar-3044 |
|
362 |
61 |
Kragenwar-3044 |
elseif (effectname == self.effectlist["ShieldSwipe"]:GetName()) then |
363 |
|
Kragenwar-3044 |
if (not self.effectlist["ShieldSwipe"]:SetState( false, effectid )) then |
364 |
6 |
Kragenwar-3044 |
self.skills["ShieldTaunt"]:SetActive(false); |
365 |
|
Kragenwar-3044 |
self.skills["ShieldBash"]:SetActive(false); |
366 |
61 |
Kragenwar-3044 |
if (self.effectlist["BlockResponse"]:GetState()) then |
367 |
6 |
Kragenwar-3044 |
self.skills["ShieldSwipe"]:SetActive(true); |
368 |
|
Kragenwar-3044 |
self.skills["CatchABreath"]:SetActive(true); |
369 |
|
Kragenwar-3044 |
self.skills["LitanyOfDefiance"]:SetActive(true); |
370 |
|
Kragenwar-3044 |
self.bars["BlockTier1"]:SetZOrder(0); |
371 |
|
Kragenwar-3044 |
self.bars["BlockTier2"]:SetZOrder(-10); |
372 |
|
Kragenwar-3044 |
end |
373 |
|
Kragenwar-3044 |
end |
374 |
|
Kragenwar-3044 |
|
375 |
61 |
Kragenwar-3044 |
elseif (effectname == self.effectlist["ParryResponse"]:GetName()) then |
376 |
|
Kragenwar-3044 |
if (not self.effectlist["ParryResponse"]:SetState( false, effectid )) then |
377 |
6 |
Kragenwar-3044 |
self.skills["Retaliation"]:SetActive(false); |
378 |
133 |
Valdacil-446 |
if (vars.playerlevel >= 70) then |
379 |
|
Valdacil-446 |
self.skills["WhirlingRetaliation"]:SetActive(false); |
380 |
|
Valdacil-446 |
end |
381 |
6 |
Kragenwar-3044 |
end |
382 |
|
Kragenwar-3044 |
|
383 |
61 |
Kragenwar-3044 |
elseif (effectname == self.effectlist["Retaliation"]:GetName()) then |
384 |
|
Kragenwar-3044 |
if (not self.effectlist["Retaliation"]:SetState( false, effectid )) then |
385 |
6 |
Kragenwar-3044 |
self.skills["Overwhelm"]:SetActive(false); |
386 |
|
Kragenwar-3044 |
self.skills["Thrust"]:SetActive(false); |
387 |
133 |
Valdacil-446 |
if (vars.playerlevel < 70) then |
388 |
|
Valdacil-446 |
self.skills["WhirlingRetaliation"]:SetActive(false); |
389 |
|
Valdacil-446 |
end |
390 |
61 |
Kragenwar-3044 |
if (self.effectlist["ParryResponse"]:GetState()) then |
391 |
6 |
Kragenwar-3044 |
self.skills["Retaliation"]:SetActive(true); |
392 |
133 |
Valdacil-446 |
if (vars.playerlevel >= 70) then |
393 |
|
Valdacil-446 |
self.skills["WhirlingRetaliation"]:SetActive(true); |
394 |
|
Valdacil-446 |
end |
395 |
6 |
Kragenwar-3044 |
self.bars["ParryTier1"]:SetZOrder(0); |
396 |
|
Kragenwar-3044 |
self.bars["ParryTier2"]:SetZOrder(-10); |
397 |
|
Kragenwar-3044 |
end |
398 |
|
Kragenwar-3044 |
end |
399 |
|
Kragenwar-3044 |
|
400 |
|
Kragenwar-3044 |
-- Stunned, Dazed or Knocked Down |
401 |
61 |
Kragenwar-3044 |
elseif (effectname == self.effectlist["Stunned"]:GetName() or effectname == self.effectlist["Dazed"]:GetName() or effectname == self.effectlist["KnockedDown"]:GetName()) then |
402 |
|
Kragenwar-3044 |
if (not self.effectlist["Stunned"]:SetState( false , effectid )) then |
403 |
|
Kragenwar-3044 |
self.skills["TurnTheTables"]:SetActive( false ); |
404 |
|
Kragenwar-3044 |
end |
405 |
6 |
Kragenwar-3044 |
|
406 |
48 |
Kragenwar-3044 |
-- Overpower |
407 |
61 |
Kragenwar-3044 |
elseif (effectname == self.effectlist["Overpower"]:GetName()) then |
408 |
|
Kragenwar-3044 |
if (not self.effectlist["Overpower"]:SetState( false, effectid )) then |
409 |
6 |
Kragenwar-3044 |
self.windows["Overpower"]:SetZOrder(-10); |
410 |
|
Kragenwar-3044 |
self.windows["Block"]:SetZOrder(0); |
411 |
|
Kragenwar-3044 |
self.skills["ForcedOpening"]:SetActive( false ); |
412 |
|
Kragenwar-3044 |
self.skills["Stagger"]:SetActive( false ); |
413 |
|
Kragenwar-3044 |
self.skills["BrutalAssault"]:SetActive( false ); |
414 |
66 |
Kragenwar-3044 |
self.skills["OverpowerTactics"]:SetActive( false ); |
415 |
|
Kragenwar-3044 |
self.skills["OverpowerTactics"]:SetZOrder( -10 ); |
416 |
6 |
Kragenwar-3044 |
self.skills["ShieldBlow"]:SetActive( true ); |
417 |
|
Kragenwar-3044 |
self.skills["ShieldWall"]:SetActive( true ); |
418 |
78 |
Kragenwar-3044 |
self.multi["ShieldSpikes"]:SetActive( true ); |
419 |
|
Kragenwar-3044 |
self.multi["ShieldSpikes"]:SetZOrder( 0 ); |
420 |
6 |
Kragenwar-3044 |
end |
421 |
|
Kragenwar-3044 |
|
422 |
48 |
Kragenwar-3044 |
-- Summon Tinker Available |
423 |
61 |
Kragenwar-3044 |
elseif (effectname == self.effectlist["Campsite"]:GetName()) then |
424 |
|
Kragenwar-3044 |
if (not self.effectlist["Campsite"]:SetState(false, effectid )) then |
425 |
|
Kragenwar-3044 |
self.skills["SummonTinker"]:SetActive( false ); |
426 |
|
Kragenwar-3044 |
end |
427 |
48 |
Kragenwar-3044 |
|
428 |
|
Kragenwar-3044 |
-- Shield Spikes Used |
429 |
61 |
Kragenwar-3044 |
elseif (string.find(effectname, self.effectlist["ShieldSpikes"]:GetName()) ~= nil ) then |
430 |
|
Kragenwar-3044 |
if (not self.effectlist["ShieldSpikes"]:SetState(false, effectid )) then |
431 |
127 |
Valdacil-446 |
self.multi["ShieldSpikes"]:SetHover(false); |
432 |
61 |
Kragenwar-3044 |
end |
433 |
6 |
Kragenwar-3044 |
|
434 |
|
Kragenwar-3044 |
-- Wound |
435 |
|
Kragenwar-3044 |
elseif (effect:GetCategory() == Turbine.Gameplay.EffectCategory.Wound ) then |
436 |
|
Kragenwar-3044 |
self.wound = self.wound - 1; |
437 |
|
Kragenwar-3044 |
if (self.wound == 0) then |
438 |
|
Kragenwar-3044 |
self.skills["IgnoreThePain"]:SetColor(); |
439 |
|
Kragenwar-3044 |
end |
440 |
|
Kragenwar-3044 |
|
441 |
|
Kragenwar-3044 |
end |
442 |
|
Kragenwar-3044 |
end |
443 |
|
Kragenwar-3044 |
|
444 |
|
Kragenwar-3044 |
|
445 |
48 |
Kragenwar-3044 |
-- STANCE CHANGED EVENT |
446 |
|
Kragenwar-3044 |
function GuardianBars:StanceChange(stance) |
447 |
6 |
Kragenwar-3044 |
-- PRIMARY STANCE SWITCHING |
448 |
60 |
Kragenwar-3044 |
if (self.settings.features["StancePriority"].active) then |
449 |
127 |
Valdacil-446 |
|
450 |
6 |
Kragenwar-3044 |
local newstance = 0; |
451 |
|
Kragenwar-3044 |
|
452 |
|
Kragenwar-3044 |
if (stance == 3) then |
453 |
|
Kragenwar-3044 |
newstance = 4; |
454 |
|
Kragenwar-3044 |
elseif (stance == 4) then |
455 |
|
Kragenwar-3044 |
newstance = 3; |
456 |
|
Kragenwar-3044 |
else |
457 |
|
Kragenwar-3044 |
newstance = stance; |
458 |
|
Kragenwar-3044 |
end |
459 |
|
Kragenwar-3044 |
|
460 |
60 |
Kragenwar-3044 |
if (newstance == self.settings.defaults["PrimaryStance"].selected) then |
461 |
|
Kragenwar-3044 |
self.multi["StanceSlot"]:SetIndex(self.settings.defaults["SecondaryStance"].selected); |
462 |
6 |
Kragenwar-3044 |
else |
463 |
60 |
Kragenwar-3044 |
self.multi["StanceSlot"]:SetIndex(self.settings.defaults["PrimaryStance"].selected); |
464 |
6 |
Kragenwar-3044 |
end |
465 |
|
Kragenwar-3044 |
end |
466 |
|
Kragenwar-3044 |
|
467 |
|
Kragenwar-3044 |
-- HOVER/DISAPPEAR SWITCHING |
468 |
10 |
Kragenwar-3044 |
if (stance == 0) then |
469 |
|
Kragenwar-3044 |
self.multi["StanceSlot"]:SetHover( false ); |
470 |
|
Kragenwar-3044 |
self.multi["StanceSlot"]:SetActive( true ); |
471 |
|
Kragenwar-3044 |
else |
472 |
60 |
Kragenwar-3044 |
self.multi["StanceSlot"]:SetActive( self.settings.defaults["StanceActive"].selected ~= 3); |
473 |
|
Kragenwar-3044 |
self.multi["StanceSlot"]:SetHover( self.settings.defaults["StanceActive"].selected == 2 ); |
474 |
6 |
Kragenwar-3044 |
end |
475 |
|
Kragenwar-3044 |
end |
476 |
|
Kragenwar-3044 |
|
477 |
48 |
Kragenwar-3044 |
-- BLOCK CHANGED EVENT |
478 |
6 |
Kragenwar-3044 |
function GuardianBars:BlockChange(tier, state) |
479 |
|
Kragenwar-3044 |
if (tier == 3) then |
480 |
60 |
Kragenwar-3044 |
self.skills["ShieldSmash"]:SetActive( state and self.settings.traits["ShieldSmash"].active ); |
481 |
6 |
Kragenwar-3044 |
end |
482 |
|
Kragenwar-3044 |
end |
483 |
|
Kragenwar-3044 |
|
484 |
48 |
Kragenwar-3044 |
-- PARRY CHANGED EVENT |
485 |
6 |
Kragenwar-3044 |
function GuardianBars:ParryChange(tier, state) |
486 |
|
Kragenwar-3044 |
if (tier == 3) then |
487 |
60 |
Kragenwar-3044 |
self.skills["ToTheKing"]:SetActive( state and self.settings.traits["ToTheKing"].active ); |
488 |
6 |
Kragenwar-3044 |
end |
489 |
|
Kragenwar-3044 |
end |
490 |
|
Kragenwar-3044 |
|
491 |
48 |
Kragenwar-3044 |
-- DEFAULT SETTINGS |
492 |
6 |
Kragenwar-3044 |
function GuardianBars:DefaultSettings() |
493 |
60 |
Kragenwar-3044 |
self.settings = { preconf = { }, userconf = { }, traits = { }, features = { }, defaults = { }, quickslots = { } }; |
494 |
6 |
Kragenwar-3044 |
|
495 |
63 |
Kragenwar-3044 |
self.settings.preconf["Block"] = { id = 1, name = "Block Reactives", defpos = {1,3}, size={4,1}, pos = {0,0}, combat = {true,true}, active = true }; |
496 |
89 |
Kragenwar-3044 |
self.settings.preconf["Parry"] = { id = 2, name = "Parry Reactives", defpos = {1,2}, size={4,1}, pos = {0,0}, combat = {true,true}, active = true }; |
497 |
63 |
Kragenwar-3044 |
self.settings.preconf["Overpower"] = { id = 3, name = "Overpower", defpos = {1,3}, size={3,1}, pos = {0,0}, combat = {true,true}, active = true }; |
498 |
6 |
Kragenwar-3044 |
|
499 |
63 |
Kragenwar-3044 |
self.settings.userconf["Ward"] = { id = 4, name = "Ward", defpos = {1,4}, size={1,1}, pos = {0,0}, combat = {true,true}, active = true }; |
500 |
89 |
Kragenwar-3044 |
self.settings.userconf["Melee"] = { id = 5, name = "Melee", defpos = {2,4}, size={7,1}, pos = {0,0}, combat = {true,true}, active = true }; |
501 |
102 |
Kragenwar-3044 |
self.settings.userconf["Taunt"] = { id = 6, name = "Taunt", defpos = {6,3}, size={4,1}, pos = {0,0}, combat = {true,true}, active = true }; |
502 |
89 |
Kragenwar-3044 |
self.settings.userconf["SelfBuffs"] = { id = 7, name = "Self Buffs", defpos = {1,1}, size={6,1}, pos = {0,0}, combat = {true,true}, active = true }; |
503 |
63 |
Kragenwar-3044 |
self.settings.userconf["Protect"] = { id = 8, name = "Protect", defpos = {6,2}, size={2,1}, pos = {0,0}, combat = {true,true}, active = true }; |
504 |
|
Kragenwar-3044 |
self.settings.userconf["Stances"] = { id = 9, name = "Stances", defpos = {12,3}, size={1,1}, pos = {0,0}, combat = {true,true}, active = true }; |
505 |
|
Kragenwar-3044 |
self.settings.userconf["Stunned"] = { id = 10, name = "Stunned", defpos = {12,2}, size={1,1}, pos = {0,0}, combat = {true,true}, active = true }; |
506 |
|
Kragenwar-3044 |
self.settings.userconf["Utility"] = { id = 11, name = "Utility", defpos = {8,1}, size={2,1}, pos = {0,0}, combat = {true,true}, active = true }; |
507 |
|
Kragenwar-3044 |
self.settings.userconf["Ranged"] = { id = 12, name = "Ranged", defpos = {12,4}, size={1,1}, pos = {0,0}, combat = {true,true}, active = true }; |
508 |
66 |
Kragenwar-3044 |
self.settings.userconf["ClassItems"] = { id = 13, name = "Class Items", defpos = {12,1}, size={1,1}, pos = {0,0}, combat = {true,true}, active = true }; |
509 |
60 |
Kragenwar-3044 |
|
510 |
|
Kragenwar-3044 |
self.settings.traits["ToTheKing"] = { id = 1, name = 'To The King', active = false }; |
511 |
|
Kragenwar-3044 |
self.settings.traits["ShieldSmash"] = { id = 2, name = 'Shield Smash', active = false }; |
512 |
|
Kragenwar-3044 |
self.settings.traits["ThreatStance"] = { id = 3, name = 'Threat Stance', active = false }; |
513 |
|
Kragenwar-3044 |
self.settings.traits["ChallengeTheDarkness"] = { id = 4, name = 'Challenge The Darkness', active = false }; |
514 |
6 |
Kragenwar-3044 |
|
515 |
60 |
Kragenwar-3044 |
self.settings.features["StancePriority"] = { id = 1, name = 'Stance Priority', active = true }; |
516 |
|
Kragenwar-3044 |
self.settings.features["WoundIndicator"] = { id = 2, name = 'Wound Indicator', active = true }; |
517 |
6 |
Kragenwar-3044 |
|
518 |
60 |
Kragenwar-3044 |
self.settings.defaults["PrimaryStance"] = { id = 1, name = 'Primary Stance', selected = 1, list = { "Guardian's Defence", "Guardian's Parry", "Overpower", "Threat" } }; |
519 |
|
Kragenwar-3044 |
self.settings.defaults["SecondaryStance"] = { id = 2, name = 'Secondary Stance', selected = 3, list = { "Guardian's Defence", "Guardian's Parry", "Overpower", "Threat" } }; |
520 |
|
Kragenwar-3044 |
self.settings.defaults["StanceActive"] = { id = 3, name = 'Stance Active', selected = 2, list = { "None", "Dim", "Hide" } }; |
521 |
|
Kragenwar-3044 |
self.settings.defaults["WardActive"] = { id = 4, name = 'Guardians Ward Active', selected = 4, list = { "None", "Dim", "Hide", "Early Warning" } }; |
522 |
6 |
Kragenwar-3044 |
|
523 |
60 |
Kragenwar-3044 |
self.settings.quickslots["Spike1"] = {id = 1, name = "Shield Spikes 1", active = false, type = 0, data = ""}; |
524 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike2"] = {id = 2, name = "Shield Spikes 2", active = false, type = 0, data = ""}; |
525 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike3"] = {id = 3, name = "Shield Spikes 3", active = false, type = 0, data = ""}; |
526 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike4"] = {id = 4, name = "Shield Spikes 4", active = false, type = 0, data = ""}; |
527 |
|
Kragenwar-3044 |
self.settings.quickslots["Tactics"] = {id = 5, name = "Overpower Tactics", active = false, type = 0, data = ""}; |
528 |
6 |
Kragenwar-3044 |
|
529 |
|
Kragenwar-3044 |
end |
530 |
|
Kragenwar-3044 |
|
531 |
48 |
Kragenwar-3044 |
-- UPDATE SETTINGS |
532 |
6 |
Kragenwar-3044 |
function GuardianBars:UpdateSettings() |
533 |
10 |
Kragenwar-3044 |
if (settings.vers < 3.01) then |
534 |
|
Kragenwar-3044 |
|
535 |
60 |
Kragenwar-3044 |
if (self.settings["Features"].wardwarning) then self.settings.defaults["WardActive"].selected = 4; else self.settings.defaults["WardActive"].selected = 3; end |
536 |
|
Kragenwar-3044 |
if (self.settings["Features"].stancehover) then self.settings.defaults["StanceActive"].selected = 2; else if (self.settings["Features"].stancedisappear) then self.settings.defaults["StanceActive"].selected = 3; else self.settings.defaults["StanceActive"].selected = 1; end end |
537 |
10 |
Kragenwar-3044 |
|
538 |
|
Kragenwar-3044 |
self.settings["Features"].wardwarning = nil; |
539 |
|
Kragenwar-3044 |
self.settings["Features"].stancehover = nil; |
540 |
|
Kragenwar-3044 |
self.settings["Features"].stancedisappear = nil; |
541 |
|
Kragenwar-3044 |
end |
542 |
49 |
Kragenwar-3044 |
|
543 |
|
Kragenwar-3044 |
if (settings.vers < 3.20) then |
544 |
|
Kragenwar-3044 |
self.settings["Quickslots"].tactics = {active = false, type = 0, data = "" } |
545 |
|
Kragenwar-3044 |
end |
546 |
60 |
Kragenwar-3044 |
|
547 |
113 |
Kragenwar-3044 |
if (settings.vers < 4.00) then |
548 |
60 |
Kragenwar-3044 |
local oldclassinfo = self.settings; |
549 |
|
Kragenwar-3044 |
self:DefaultSettings(); |
550 |
|
Kragenwar-3044 |
for k,v in pairs(oldclassinfo) do |
551 |
|
Kragenwar-3044 |
if (k ~= "Features" and k ~= "Quickslots") then |
552 |
|
Kragenwar-3044 |
if (self.settings.preconf[k] == nil) then |
553 |
|
Kragenwar-3044 |
if (self.settings.userconf[k] ~= nil) then |
554 |
63 |
Kragenwar-3044 |
self.settings.userconf[k].pos = { v.x, v.y }; |
555 |
|
Kragenwar-3044 |
self.settings.userconf[k].combat = { true, true }; |
556 |
60 |
Kragenwar-3044 |
self.settings.userconf[k].active = v.active; |
557 |
|
Kragenwar-3044 |
end |
558 |
|
Kragenwar-3044 |
else |
559 |
63 |
Kragenwar-3044 |
self.settings.preconf[k].pos = { v.x, v.y }; |
560 |
|
Kragenwar-3044 |
self.settings.preconf[k].combat = { true, true }; |
561 |
60 |
Kragenwar-3044 |
self.settings.preconf[k].active = v.active; |
562 |
|
Kragenwar-3044 |
end |
563 |
|
Kragenwar-3044 |
elseif (k == "Features") then |
564 |
|
Kragenwar-3044 |
for key, value in pairs(v) do |
565 |
|
Kragenwar-3044 |
if (key == 'totheking') then |
566 |
|
Kragenwar-3044 |
self.settings.traits["ToTheKing"].active = value; |
567 |
|
Kragenwar-3044 |
elseif (key == 'shieldsmash') then |
568 |
|
Kragenwar-3044 |
self.settings.traits["ShieldSmash"].active = value; |
569 |
|
Kragenwar-3044 |
elseif (key == 'darkness') then |
570 |
|
Kragenwar-3044 |
self.settings.traits["ChallengeTheDarkness"].active = value; |
571 |
|
Kragenwar-3044 |
elseif (key == 'threat') then |
572 |
|
Kragenwar-3044 |
self.settings.traits["ThreatStance"].active = value; |
573 |
|
Kragenwar-3044 |
elseif (key == 'woundindicator') then |
574 |
|
Kragenwar-3044 |
self.settings.features["WoundIndicator"].active = value; |
575 |
|
Kragenwar-3044 |
elseif (key == 'stancepriority') then |
576 |
|
Kragenwar-3044 |
self.settings.features["StancePriority"].active = value; |
577 |
|
Kragenwar-3044 |
elseif (key == 'stanceactive') then |
578 |
|
Kragenwar-3044 |
self.settings.defaults["StanceActive"].selected = value; |
579 |
|
Kragenwar-3044 |
elseif (key == 'wardactive') then |
580 |
|
Kragenwar-3044 |
self.settings.defaults["WardActive"].selected = value; |
581 |
|
Kragenwar-3044 |
elseif (key == 'stanceactive') then |
582 |
|
Kragenwar-3044 |
self.settings.defaults["PrimaryStance"].selected = value; |
583 |
|
Kragenwar-3044 |
elseif (key == 'secondarystance') then |
584 |
|
Kragenwar-3044 |
self.settings.defaults["SecondaryStance"].selected = value; |
585 |
|
Kragenwar-3044 |
end |
586 |
|
Kragenwar-3044 |
end |
587 |
|
Kragenwar-3044 |
elseif (k == "Quickslots") then |
588 |
|
Kragenwar-3044 |
for key, value in pairs(v) do |
589 |
|
Kragenwar-3044 |
if (key == 'spike1') then |
590 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike1"].active = value.active; |
591 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike1"].type = value.type; |
592 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike1"].data = value.data; |
593 |
|
Kragenwar-3044 |
elseif (key == 'spike2') then |
594 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike2"].active = value.active; |
595 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike2"].type = value.type; |
596 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike2"].data = value.data; |
597 |
|
Kragenwar-3044 |
elseif (key == 'spike3') then |
598 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike3"].active = value.active; |
599 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike3"].type = value.type; |
600 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike3"].data = value.data; |
601 |
|
Kragenwar-3044 |
elseif (key == 'spike4') then |
602 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike4"].active = value.active; |
603 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike4"].type = value.type; |
604 |
|
Kragenwar-3044 |
self.settings.quickslots["Spike4"].data = value.data; |
605 |
|
Kragenwar-3044 |
end |
606 |
|
Kragenwar-3044 |
end |
607 |
|
Kragenwar-3044 |
end |
608 |
|
Kragenwar-3044 |
end |
609 |
89 |
Kragenwar-3044 |
if (settings.skilldata["SaltTheWound"] ~= nil) then |
610 |
|
Kragenwar-3044 |
settings.skilldata["SaltTheWound"].parent = "Melee"; |
611 |
|
Kragenwar-3044 |
settings.skilldata["SaltTheWound"].pos = {7, 1}; |
612 |
|
Kragenwar-3044 |
end |
613 |
|
Kragenwar-3044 |
if (settings.multidata["ShieldSpikes"] ~= nil) then |
614 |
|
Kragenwar-3044 |
settings.multidata["ShieldSpikes"].parent = "ClassItems"; |
615 |
|
Kragenwar-3044 |
settings.multidata["ShieldSpikes"].pos = {1, 1}; |
616 |
|
Kragenwar-3044 |
end |
617 |
|
Kragenwar-3044 |
if (settings.skilldata["OverpowerTactics"] ~= nil) then |
618 |
|
Kragenwar-3044 |
settings.skilldata["OverpowerTactics"].parent = "ClassItems"; |
619 |
|
Kragenwar-3044 |
settings.skilldata["OverpowerTactics"].pos = {1, 1}; |
620 |
|
Kragenwar-3044 |
end |
621 |
|
Kragenwar-3044 |
settings.skilldata["SaltTheWound"].parent = "Melee"; |
622 |
|
Kragenwar-3044 |
settings.skilldata["SaltTheWound"].pos = {7, 1}; |
623 |
61 |
Kragenwar-3044 |
if (self.settings.userconf["Taunt"] ~= nil) then self.settings.userconf["Taunt"].defpo = { 8,4 }; end |
624 |
89 |
Kragenwar-3044 |
if (self.settings.userconf["SelfBuffs"] ~= nil) then self.settings.userconf["SelfBuffs"].size = { 6,1 }; end |
625 |
|
Kragenwar-3044 |
if (self.settings.userconf["Melee"] ~= nil) then self.settings.userconf["Melee"].size = { 7,1 }; end |
626 |
|
Kragenwar-3044 |
if (self.settings.preconf["Parry"] ~= nil) then self.settings.preconf["Parry"].size = { 4,1 }; end |
627 |
111 |
Kragenwar-3044 |
if (self.settings.userconf["ClassItems"] ~= nil) then self.settings.userconf["ClassItems"].size = { 1,1 }; end |
628 |
60 |
Kragenwar-3044 |
end |
629 |
89 |
Kragenwar-3044 |
|
630 |
131 |
Valdacil-446 |
if (settings.vers < 5.04) then |
631 |
|
Valdacil-446 |
if (vars.playerlevel >= 70) then |
632 |
|
Valdacil-446 |
settings.skilldata["WhirlingRetaliation"] = { parent = "ParryTier1", pos = { 1, 1 } }; |
633 |
|
Valdacil-446 |
else |
634 |
|
Valdacil-446 |
settings.skilldata["WhirlingRetaliation"] = { parent = "ParryTier2", pos = { 1, 1 } }; |
635 |
|
Valdacil-446 |
end |
636 |
|
Valdacil-446 |
settings.skilldata["Retaliation"] = { parent = "ParryTier1", pos = { 2, 1 } }; |
637 |
|
Valdacil-446 |
settings.skilldata["Overwhelm"] = { parent = "ParryTier2", pos = { 2, 1 } }; |
638 |
|
Valdacil-446 |
end |
639 |
|
Valdacil-446 |
|
640 |
10 |
Kragenwar-3044 |
settings.vers = vars.vers; |
641 |
6 |
Kragenwar-3044 |
|
642 |
|
Kragenwar-3044 |
end |
643 |
|
Kragenwar-3044 |
|
644 |
48 |
Kragenwar-3044 |
-- REFRESH SKILLS AND BARS |
645 |
6 |
Kragenwar-3044 |
function GuardianBars:Refresh() |
646 |
|
Kragenwar-3044 |
|
647 |
48 |
Kragenwar-3044 |
-- GENERIC REFRESH (Required for all classes) |
648 |
6 |
Kragenwar-3044 |
self:RefreshBars(); |
649 |
|
Kragenwar-3044 |
|
650 |
48 |
Kragenwar-3044 |
-- REDEFINE EFFECTLIST IN CASE OF LANGUAGE CHANGE |
651 |
|
Kragenwar-3044 |
self.DefineEffectList(); |
652 |
|
Kragenwar-3044 |
|
653 |
|
Kragenwar-3044 |
-- CLASS SPECIFIC REFRESH |
654 |
|
Kragenwar-3044 |
-- Setup Features |
655 |
10 |
Kragenwar-3044 |
self.skills["GuardiansWard"]:SetActive( true ); |
656 |
60 |
Kragenwar-3044 |
if (self.settings.defaults["WardActive"].selected == 2) then |
657 |
78 |
Kragenwar-3044 |
self.skills["GuardiansWard"]:SetHover( self.effectlist["GuardiansWard"]:GetState() ); |
658 |
60 |
Kragenwar-3044 |
elseif (self.settings.defaults["WardActive"].selected >= 3) then |
659 |
78 |
Kragenwar-3044 |
self.skills["GuardiansWard"]:SetActive( not self.effectlist["GuardiansWard"]:GetState() ); |
660 |
10 |
Kragenwar-3044 |
end |
661 |
78 |
Kragenwar-3044 |
|
662 |
|
Kragenwar-3044 |
-- Reset Quickslots |
663 |
|
Kragenwar-3044 |
self.skills["OverpowerTactics"]:SetQuickslot(self.settings.quickslots["Tactics"]); |
664 |
|
Kragenwar-3044 |
|
665 |
|
Kragenwar-3044 |
self.multi["ShieldSpikes"]:Clear(); |
666 |
|
Kragenwar-3044 |
self.multi["ShieldSpikes"]:AddShortCut("Spikes1", self.settings.quickslots["Spike1"]); |
667 |
|
Kragenwar-3044 |
self.multi["ShieldSpikes"]:AddShortCut("Spikes2", self.settings.quickslots["Spike2"]); |
668 |
|
Kragenwar-3044 |
self.multi["ShieldSpikes"]:AddShortCut("Spikes3", self.settings.quickslots["Spike3"]); |
669 |
|
Kragenwar-3044 |
self.multi["ShieldSpikes"]:AddShortCut("Spikes4", self.settings.quickslots["Spike4"]); |
670 |
|
Kragenwar-3044 |
self.multi["ShieldSpikes"]:Refresh(not self.effectlist["Overpower"]:GetState()); |
671 |
10 |
Kragenwar-3044 |
|
672 |
6 |
Kragenwar-3044 |
-- Set State on Legendary Skills |
673 |
60 |
Kragenwar-3044 |
self.skills["ShieldSmash"]:SetActive(self.settings.traits["ShieldSmash"].active and vars.classattr:IsBlockTier3Available()); |
674 |
|
Kragenwar-3044 |
self.skills["ToTheKing"]:SetActive(self.settings.traits["ToTheKing"].active and vars.classattr:IsParryTier3Available()); |
675 |
|
Kragenwar-3044 |
self.skills["ChallengeTheDarkness"]:SetActive(self.settings.traits["ChallengeTheDarkness"].active); |
676 |
6 |
Kragenwar-3044 |
|
677 |
48 |
Kragenwar-3044 |
-- Rebuild Stance Slot |
678 |
6 |
Kragenwar-3044 |
self.multi["StanceSlot"]:Clear(); |
679 |
|
Kragenwar-3044 |
self.multi["StanceSlot"]:AddShortCut("GuardiansDefence", 4, "0x70003EDF"); |
680 |
|
Kragenwar-3044 |
self.multi["StanceSlot"]:AddShortCut("GuardiansParry", 12, "0x70003EE3"); |
681 |
63 |
Kragenwar-3044 |
self.multi["StanceSlot"]:AddShortCut("Overpower", 12, "0x7000D4B1"); |
682 |
60 |
Kragenwar-3044 |
if (self.settings.traits["ThreatStance"].active) then self.multi["StanceSlot"]:AddShortCut("GuardiansThreat", 41, "0x70002ED4"); end |
683 |
6 |
Kragenwar-3044 |
self.multi["StanceSlot"]:LevelCheck(); |
684 |
|
Kragenwar-3044 |
|
685 |
48 |
Kragenwar-3044 |
-- Set Wound Indicator |
686 |
128 |
Valdacil-446 |
if (settings.skilldata["IgnoreThePain"].parent ~= nil and vars.playerlevel >= self.skills["IgnoreThePain"].level[1] and self.settings.features["WoundIndicator"].active and self.wound > 0) then |
687 |
127 |
Valdacil-446 |
if (self.settings.userconf[settings.skilldata["IgnoreThePain"].parent].active) then |
688 |
|
Valdacil-446 |
self.skills["IgnoreThePain"]:SetColor("green"); |
689 |
|
Valdacil-446 |
end |
690 |
6 |
Kragenwar-3044 |
else |
691 |
|
Kragenwar-3044 |
self.skills["IgnoreThePain"]:SetColor(); |
692 |
|
Kragenwar-3044 |
end |
693 |
|
Kragenwar-3044 |
|
694 |
48 |
Kragenwar-3044 |
-- Refresh States |
695 |
6 |
Kragenwar-3044 |
self:StanceChange(vars.classattr:GetStance()); |
696 |
|
Kragenwar-3044 |
self:CombatChange(vars.player:IsInCombat()); |
697 |
92 |
Kragenwar-3044 |
|
698 |
|
Kragenwar-3044 |
if (self.effectlist["Overpower"]:GetState()) then |
699 |
|
Kragenwar-3044 |
self.windows["Overpower"]:SetZOrder(0); |
700 |
|
Kragenwar-3044 |
self.windows["Block"]:SetZOrder(-10); |
701 |
|
Kragenwar-3044 |
else |
702 |
|
Kragenwar-3044 |
self.windows["Overpower"]:SetZOrder(-10); |
703 |
|
Kragenwar-3044 |
self.windows["Block"]:SetZOrder(0); |
704 |
|
Kragenwar-3044 |
end |
705 |
6 |
Kragenwar-3044 |
|
706 |
60 |
Kragenwar-3044 |
--Turbine.Shell.WriteLine("KragenBars: Guardian Bars refresh completed successfully."); |
707 |
6 |
Kragenwar-3044 |
|
708 |
|
Kragenwar-3044 |
end |