|
skeen@0
|
1 --
|
|
skeen@0
|
2 -- SkeenCore3BeastMasteryHunter
|
|
skeen@0
|
3 --
|
|
skeen@5
|
4 local LibSkeenCore = LibStub("LibSkeenCore");
|
|
skeen@0
|
5
|
|
skeen@0
|
6 local function Rotation()
|
|
skeen@0
|
7
|
|
skeen@9
|
8 -- Hide the frame, if the target is dead, non existing or friendly.
|
|
skeen@17
|
9 if UnitName("target") == nil or UnitIsFriend("player","target") ~= nil or UnitHealth("target") == 0 then
|
|
skeen@17
|
10 return nil
|
|
skeen@17
|
11 end
|
|
skeen@17
|
12
|
|
skeen@17
|
13 --Information from;
|
|
skeen@17
|
14 --http://www.wowpedia.org/API_GetTalentInfo_(Mists)
|
|
skeen@17
|
15 local _, _, _, _, selected, _ = GetTalentInfo(13)
|
|
skeen@17
|
16 local a_murder_of_crows_chosen = selected
|
|
skeen@17
|
17
|
|
skeen@17
|
18 local _, _, _, _, selected, _ = GetTalentInfo(14)
|
|
skeen@17
|
19 local blink_strike_chosen = selected
|
|
skeen@17
|
20
|
|
skeen@17
|
21 local _, _, _, _, selected, _ = GetTalentInfo(15)
|
|
skeen@17
|
22 local lynx_rush_chosen = selected
|
|
skeen@17
|
23
|
|
skeen@17
|
24 local _, _, _, _, selected, _ = GetTalentInfo(16)
|
|
skeen@17
|
25 local glaive_toss_chosen = selected
|
|
skeen@17
|
26
|
|
skeen@17
|
27 local _, _, _, _, selected, _ = GetTalentInfo(17)
|
|
skeen@17
|
28 local powershot_chosen = selected
|
|
skeen@17
|
29
|
|
skeen@17
|
30 local _, _, _, _, selected, _ = GetTalentInfo(18)
|
|
skeen@17
|
31 local barrage_chosen = selected
|
|
skeen@17
|
32
|
|
skeen@9
|
33 -- The table used for spell information (returned to the callee)
|
|
skeen@9
|
34 local spell = {}
|
|
skeen@0
|
35 spell.current = nil
|
|
skeen@0
|
36 spell.next = nil
|
|
skeen@0
|
37 spell.cd1 = nil
|
|
skeen@0
|
38 spell.cd2 = nil
|
|
skeen@0
|
39 spell.cd3 = nil
|
|
skeen@0
|
40 spell.cd4 = nil
|
|
skeen@17
|
41
|
|
skeen@9
|
42 -- Ability SpellID
|
|
skeen@17
|
43 local KillCommandID = 34026
|
|
skeen@17
|
44 local KillShotID = 53351
|
|
skeen@17
|
45 local RapidFireID = 3045
|
|
skeen@17
|
46 local FocusFireID = 82692
|
|
skeen@17
|
47 local FervorID = 82726
|
|
skeen@17
|
48 local BestialWrathID = 19574
|
|
skeen@17
|
49 local SerpentStingID = 1978
|
|
skeen@17
|
50 local ArcaneShotID = 3044
|
|
skeen@17
|
51 local CobraShotID = 77767
|
|
skeen@17
|
52 local HuntersMarkID = 1130
|
|
skeen@17
|
53 local ReadinessID = 23989
|
|
skeen@17
|
54 local AMurderOfCrowsID = 131894
|
|
skeen@17
|
55 local BlinkStrikeID = 130392
|
|
skeen@17
|
56 local LynxRushID = 120697
|
|
skeen@17
|
57 local GlaiveTossID = 117050
|
|
skeen@17
|
58 local PowershotID = 109259
|
|
skeen@17
|
59 local BarrageID = 120360
|
|
skeen@17
|
60 local StampedeID = 121818
|
|
skeen@17
|
61 local FrenzyID = 19615
|
|
skeen@9
|
62
|
|
skeen@17
|
63 local focus = UnitPower("player")
|
|
skeen@0
|
64
|
|
skeen@0
|
65 --Cooldowns
|
|
skeen@17
|
66 local kill_command_cooldown = LibSkeenCore:GetCooldown(KillCommandID) --"Kill Command"
|
|
skeen@17
|
67 local kill_shot_cooldown = LibSkeenCore:GetCooldown(KillShotID) --"Kill Shot"
|
|
skeen@17
|
68 local rapid_fire_cooldown = LibSkeenCore:GetCooldown(RapidFireID) --"Rapid Fire"
|
|
skeen@17
|
69 local focus_fire_cooldown = LibSkeenCore:GetCooldown(FocusFireID) --"Focus Fire"
|
|
skeen@17
|
70 local fervor_cooldown = LibSkeenCore:GetCooldown(FervorID) --"Fervor"
|
|
skeen@17
|
71 local bestial_wrath_cooldown = LibSkeenCore:GetCooldown(BestialWrathID) --"Bestial Wrath"
|
|
skeen@17
|
72 local Readiness_cooldown = LibSkeenCore:GetCooldown(ReadinessID) --"Readiness"
|
|
skeen@17
|
73 local a_murder_of_crows_cooldown = LibSkeenCore:GetCooldown(AMurderOfCrowsID) --"A Murder of Crows"
|
|
skeen@17
|
74 local blink_strike_cooldown = LibSkeenCore:GetCooldown(BlinkStrikeID) --"Blink Strike"
|
|
skeen@17
|
75 local lynx_rush_cooldown = LibSkeenCore:GetCooldown(LynxRushID) --"Lynx Rush"
|
|
skeen@17
|
76 local glaive_toss_cooldown = LibSkeenCore:GetCooldown(GlaiveTossID) --"Glaive Toss"
|
|
skeen@17
|
77 local powershot_cooldown = LibSkeenCore:GetCooldown(PowershotID) --"Powershot"
|
|
skeen@17
|
78 local barrage_cooldown = LibSkeenCore:GetCooldown(BarrageID) --"Barrage"
|
|
skeen@17
|
79 local stampede_cooldown = LibSkeenCore:GetCooldown(StampedeID) --"Stampede"
|
|
skeen@13
|
80
|
|
skeen@0
|
81 --Debuff
|
|
skeen@9
|
82 local serpent_sting_duration = LibSkeenCore:GetDebuffDuration(SerpentStingID) --"Serpent Sting"
|
|
skeen@17
|
83 local HuntersMark_duration = LibSkeenCore:GetDebuffDuration(HuntersMarkID) --"Hunters Mark"
|
|
skeen@17
|
84
|
|
skeen@17
|
85 --BuffStacks
|
|
skeen@17
|
86 local frenzy_stacks = LibSkeenCore:GetBuffCount(FrenzyID)
|
|
skeen@0
|
87
|
|
skeen@0
|
88 -- Get the target's health percentage
|
|
skeen@17
|
89 local TargetsPercentOfHealth = (UnitHealth("target") / UnitHealthMax("target") * 100);
|
|
skeen@0
|
90
|
|
skeen@13
|
91 if(HuntersMark_duration < 1) then
|
|
skeen@13
|
92 spell.current = HuntersMarkID
|
|
skeen@13
|
93 elseif (serpent_sting_duration < 1) then
|
|
skeen@13
|
94 if (focus >= 25) then
|
|
skeen@17
|
95 spell.current = SerpentStingID
|
|
skeen@13
|
96 else
|
|
skeen@17
|
97 spell.next = SerpentStingID
|
|
skeen@13
|
98 end
|
|
skeen@17
|
99 elseif (frenzy_stacks == 5) then
|
|
skeen@17
|
100 spell.current = FocusFireID
|
|
skeen@17
|
101 elseif (glaive_toss_chosen == true) and (glaive_toss_cooldown < 1) and (focus >= 15) then
|
|
skeen@17
|
102 spell.current = GlaiveTossID
|
|
skeen@17
|
103 elseif (powershot_chosen == true) and (powershot_cooldown < 1) and (focus >= 20) then
|
|
skeen@17
|
104 spell.current = PowershotID
|
|
skeen@17
|
105 elseif (barrage_chosen == true) and (barrage_cooldown < 1) and (focus >= 30) then
|
|
skeen@17
|
106 spell.current = BarrageID
|
|
skeen@17
|
107 elseif (a_murder_of_crows_chosen == true) and (a_murder_of_crows_cooldown < 1) then
|
|
skeen@17
|
108 spell.current = AMurderOfCrowsID
|
|
skeen@17
|
109 elseif (blink_strike_chosen == true) and (blink_strike_cooldown < 1) then
|
|
skeen@17
|
110 spell.current = BlinkStrikeID
|
|
skeen@17
|
111 elseif (lynx_rush_chosen == true) and (lynx_rush_cooldown < 1) then
|
|
skeen@17
|
112 spell.current = LynxRushID
|
|
skeen@15
|
113 elseif (kill_command_cooldown < 1) then
|
|
skeen@0
|
114 if (focus >= 40) then
|
|
skeen@17
|
115 spell.current = KillCommandID
|
|
skeen@0
|
116 else
|
|
skeen@17
|
117 spell.next = KillCommandID
|
|
skeen@0
|
118 end
|
|
skeen@0
|
119 elseif ((TargetsPercentOfHealth < 20) and (kill_shot_cooldown<1)) then
|
|
skeen@17
|
120 spell.current = KillShotID
|
|
skeen@13
|
121 elseif (focus >= 60) then
|
|
skeen@17
|
122 spell.current = ArcaneShotID
|
|
skeen@0
|
123 else
|
|
skeen@17
|
124 spell.current = CobraShotID
|
|
skeen@0
|
125 end
|
|
skeen@17
|
126
|
|
skeen@17
|
127 if (rapid_fire_cooldown < 1) then
|
|
skeen@17
|
128 spell.cd1 = RapidFireID
|
|
skeen@17
|
129 end
|
|
skeen@17
|
130
|
|
skeen@17
|
131 if (stampede_cooldown < 1) then
|
|
skeen@17
|
132 spell.cd2 = StampedeID
|
|
skeen@17
|
133 end
|
|
skeen@17
|
134
|
|
skeen@13
|
135 if (Readiness_cooldown < 1) then
|
|
skeen@17
|
136 spell.cd3 = ReadinessID
|
|
skeen@17
|
137 end
|
|
skeen@17
|
138
|
|
skeen@17
|
139 if (bestial_wrath_cooldown < 1) then
|
|
skeen@17
|
140 spell.cd4 = BestialWrathID
|
|
skeen@17
|
141 end
|
|
skeen@0
|
142
|
|
skeen@0
|
143 return spell
|
|
skeen@0
|
144 end
|
|
skeen@0
|
145
|
|
skeen@0
|
146 local SkeenPlugin = {}
|
|
skeen@9
|
147 SkeenPlugin.Name = "Hunter: Beast Mastery"
|
|
skeen@0
|
148 SkeenPlugin.Class = "HUNTER"
|
|
skeen@0
|
149 SkeenPlugin.Spec = 1
|
|
skeen@17
|
150 SkeenPlugin.Version = "5.2.0"
|
|
skeen@0
|
151 SkeenPlugin.Rotation = Rotation
|
|
skeen@0
|
152
|
|
skeen@9
|
153 local SkeenCore3 = _G["SkeenCore3"]
|
|
skeen@0
|
154 SkeenCore3:RegisterPlugin(SkeenPlugin)
|