|
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@13
|
32 local HuntersMarkID = 1130
|
|
skeen@13
|
33 local ReadinessID = 23989
|
|
skeen@9
|
34
|
|
skeen@0
|
35 local focus = UnitPower("player")
|
|
skeen@0
|
36
|
|
skeen@0
|
37 --Cooldowns
|
|
skeen@9
|
38 local kill_command_cooldown = LibSkeenCore:GetCooldown(KillCommandID) --"Kill Command"
|
|
skeen@9
|
39 local kill_shot_cooldown = LibSkeenCore:GetCooldown(KillShotID) --"Kill Shot"
|
|
skeen@9
|
40 local rapid_fire_cooldown = LibSkeenCore:GetCooldown(RapidFireID) --"Rapid Fire"
|
|
skeen@9
|
41 local focus_fire_cooldown = LibSkeenCore:GetCooldown(FocusFireID) --"Focus Fire"
|
|
skeen@9
|
42 local fervor_cooldown = LibSkeenCore:GetCooldown(FervorID) --"Fervor"
|
|
skeen@9
|
43 local bestial_wrath_cooldown= LibSkeenCore:GetCooldown(BestialWrathID) --"Bestial Wrath"
|
|
skeen@13
|
44 local Readiness_cooldown = LibSkeenCore:GetCooldown(ReadinessID)
|
|
skeen@13
|
45
|
|
skeen@0
|
46 --Debuff
|
|
skeen@9
|
47 local serpent_sting_duration = LibSkeenCore:GetDebuffDuration(SerpentStingID) --"Serpent Sting"
|
|
skeen@13
|
48 local HuntersMark_duration = LibSkeenCore:GetDebuffDuration(HuntersMarkID)
|
|
skeen@0
|
49
|
|
skeen@0
|
50 -- Get the target's health percentage
|
|
skeen@0
|
51 local TargetsPercentOfHealth = (UnitHealth("target") / UnitHealthMax("target") * 100);
|
|
skeen@0
|
52
|
|
skeen@13
|
53 if(HuntersMark_duration < 1) then
|
|
skeen@13
|
54 spell.current = HuntersMarkID
|
|
skeen@13
|
55 elseif (serpent_sting_duration < 1) then
|
|
skeen@13
|
56 if (focus >= 25) then
|
|
skeen@13
|
57 spell.current = SerpentStingID --SS;
|
|
skeen@13
|
58 else
|
|
skeen@13
|
59 spell.next = SerpentStingID --SS;
|
|
skeen@13
|
60 end
|
|
skeen@0
|
61 if (kill_command_cooldown < 1) then
|
|
skeen@0
|
62 if (focus >= 40) then
|
|
skeen@9
|
63 spell.current = KillCommandID --KC
|
|
skeen@0
|
64 else
|
|
skeen@9
|
65 spell.next = KillCommandID --KC
|
|
skeen@0
|
66 end
|
|
skeen@0
|
67 elseif ((TargetsPercentOfHealth < 20) and (kill_shot_cooldown<1)) then
|
|
skeen@9
|
68 spell.current = KillShotID --Kill Shot
|
|
skeen@13
|
69 --TODO: FOCUS FIRE
|
|
skeen@13
|
70 elseif (focus >= 60) then
|
|
skeen@9
|
71 spell.current = ArcaneShotID --Arcane Shot
|
|
skeen@0
|
72 else
|
|
skeen@9
|
73 spell.current = CobraShotID --Cobra Shot
|
|
skeen@0
|
74 end
|
|
skeen@0
|
75
|
|
skeen@0
|
76 if (rapid_fire_cooldown < 1) then
|
|
skeen@9
|
77 spell.cd1 = RapidFireID --Rapid fire
|
|
skeen@0
|
78 end
|
|
skeen@0
|
79
|
|
skeen@0
|
80 if (focus_fire_cooldown < 1) then
|
|
skeen@9
|
81 spell.cd2 = FocusFireID --Focus fire
|
|
skeen@0
|
82 end
|
|
skeen@0
|
83
|
|
skeen@13
|
84 if (Readiness_cooldown < 1) then
|
|
skeen@13
|
85 spell.cd3 = ReadinessID --Readiness
|
|
skeen@0
|
86 end
|
|
skeen@0
|
87
|
|
skeen@0
|
88 if (bestial_wrath_cooldown < 1) then
|
|
skeen@9
|
89 spell.cd4 = BestialWrathID --Bestial Wrath
|
|
skeen@0
|
90 end
|
|
skeen@0
|
91
|
|
skeen@0
|
92 return spell
|
|
skeen@0
|
93 end
|
|
skeen@0
|
94
|
|
skeen@0
|
95 local SkeenPlugin = {}
|
|
skeen@9
|
96 SkeenPlugin.Name = "Hunter: Beast Mastery"
|
|
skeen@0
|
97 SkeenPlugin.Class = "HUNTER"
|
|
skeen@0
|
98 SkeenPlugin.Spec = 1
|
|
skeen@9
|
99 SkeenPlugin.Version = "4.3.0"
|
|
skeen@0
|
100 SkeenPlugin.Rotation = Rotation
|
|
skeen@0
|
101
|
|
skeen@9
|
102 local SkeenCore3 = _G["SkeenCore3"]
|
|
skeen@0
|
103 SkeenCore3:RegisterPlugin(SkeenPlugin)
|
|
skeen@0
|
104
|