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