|
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@0
|
9 if UnitName("target") == nil or UnitIsFriend("player","target") ~= nil or UnitHealth("target") == 0 then
|
|
skeen@9
|
10 return nil
|
|
skeen@0
|
11 end
|
|
skeen@0
|
12
|
|
skeen@9
|
13 -- The table used for spell information (returned to the callee)
|
|
skeen@9
|
14 local spell = {}
|
|
skeen@0
|
15 spell.current = nil
|
|
skeen@0
|
16 spell.next = nil
|
|
skeen@0
|
17 spell.cd1 = nil
|
|
skeen@0
|
18 spell.cd2 = nil
|
|
skeen@0
|
19 spell.cd3 = nil
|
|
skeen@0
|
20 spell.cd4 = nil
|
|
skeen@0
|
21
|
|
skeen@9
|
22 -- Ability SpellID
|
|
skeen@9
|
23 local KillCommandID = 34026
|
|
skeen@9
|
24 local KillShotID = 53351
|
|
skeen@9
|
25 local RapidFireID = 3045
|
|
skeen@9
|
26 local FocusFireID = 82692
|
|
skeen@9
|
27 local FervorID = 82726
|
|
skeen@9
|
28 local BestialWrathID = 19574
|
|
skeen@9
|
29 local SerpentStingID = 1978
|
|
skeen@9
|
30 local ArcaneShotID = 3044
|
|
skeen@9
|
31 local CobraShotID = 77767
|
|
skeen@9
|
32
|
|
skeen@9
|
33
|
|
skeen@0
|
34 local focus = UnitPower("player")
|
|
skeen@0
|
35
|
|
skeen@0
|
36 --Cooldowns
|
|
skeen@9
|
37 local kill_command_cooldown = LibSkeenCore:GetCooldown(KillCommandID) --"Kill Command"
|
|
skeen@9
|
38 local kill_shot_cooldown = LibSkeenCore:GetCooldown(KillShotID) --"Kill Shot"
|
|
skeen@9
|
39 local rapid_fire_cooldown = LibSkeenCore:GetCooldown(RapidFireID) --"Rapid Fire"
|
|
skeen@9
|
40 local focus_fire_cooldown = LibSkeenCore:GetCooldown(FocusFireID) --"Focus Fire"
|
|
skeen@9
|
41 local fervor_cooldown = LibSkeenCore:GetCooldown(FervorID) --"Fervor"
|
|
skeen@9
|
42 local bestial_wrath_cooldown= LibSkeenCore:GetCooldown(BestialWrathID) --"Bestial Wrath"
|
|
skeen@0
|
43
|
|
skeen@0
|
44 --Debuff
|
|
skeen@9
|
45 local serpent_sting_duration = LibSkeenCore:GetDebuffDuration(SerpentStingID) --"Serpent Sting"
|
|
skeen@0
|
46
|
|
skeen@0
|
47 -- Get the target's health percentage
|
|
skeen@0
|
48 local TargetsPercentOfHealth = (UnitHealth("target") / UnitHealthMax("target") * 100);
|
|
skeen@0
|
49
|
|
skeen@0
|
50 if (kill_command_cooldown < 1) then
|
|
skeen@0
|
51 if (focus >= 40) then
|
|
skeen@9
|
52 spell.current = KillCommandID --KC
|
|
skeen@0
|
53 else
|
|
skeen@9
|
54 spell.next = KillCommandID --KC
|
|
skeen@0
|
55 end
|
|
skeen@0
|
56 elseif (serpent_sting_duration < 1) then
|
|
skeen@0
|
57 if (focus >= 25) then
|
|
skeen@9
|
58 spell.current = SerpentStingID --SS;
|
|
skeen@0
|
59 else
|
|
skeen@9
|
60 spell.next = SerpentStingID --SS;
|
|
skeen@0
|
61 end
|
|
skeen@0
|
62 elseif ((TargetsPercentOfHealth < 20) and (kill_shot_cooldown<1)) then
|
|
skeen@9
|
63 spell.current = KillShotID --Kill Shot
|
|
skeen@0
|
64 elseif (focus >= 25) then
|
|
skeen@9
|
65 spell.current = ArcaneShotID --Arcane Shot
|
|
skeen@0
|
66 else
|
|
skeen@9
|
67 spell.current = CobraShotID --Cobra Shot
|
|
skeen@0
|
68 end
|
|
skeen@0
|
69
|
|
skeen@0
|
70 if (rapid_fire_cooldown < 1) then
|
|
skeen@9
|
71 spell.cd1 = RapidFireID --Rapid fire
|
|
skeen@0
|
72 end
|
|
skeen@0
|
73
|
|
skeen@0
|
74 if (focus_fire_cooldown < 1) then
|
|
skeen@9
|
75 spell.cd2 = FocusFireID --Focus fire
|
|
skeen@0
|
76 end
|
|
skeen@0
|
77
|
|
skeen@0
|
78 if (fervor_cooldown < 1) then
|
|
skeen@9
|
79 spell.cd3 = FervorID --Fervor
|
|
skeen@0
|
80 end
|
|
skeen@0
|
81
|
|
skeen@0
|
82 if (bestial_wrath_cooldown < 1) then
|
|
skeen@9
|
83 spell.cd4 = BestialWrathID --Bestial Wrath
|
|
skeen@0
|
84 end
|
|
skeen@0
|
85
|
|
skeen@0
|
86 return spell
|
|
skeen@0
|
87 end
|
|
skeen@0
|
88
|
|
skeen@0
|
89 local SkeenPlugin = {}
|
|
skeen@9
|
90 SkeenPlugin.Name = "Hunter: Beast Mastery"
|
|
skeen@0
|
91 SkeenPlugin.Class = "HUNTER"
|
|
skeen@0
|
92 SkeenPlugin.Spec = 1
|
|
skeen@9
|
93 SkeenPlugin.Version = "4.3.0"
|
|
skeen@0
|
94 SkeenPlugin.Rotation = Rotation
|
|
skeen@0
|
95
|
|
skeen@9
|
96 local SkeenCore3 = _G["SkeenCore3"]
|
|
skeen@0
|
97 SkeenCore3:RegisterPlugin(SkeenPlugin)
|
|
skeen@0
|
98
|