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