annotate SkeenCore3BeastMasteryHunter.lua @ 19:d268dd3509fa v1.5.1

Updated to make use of new SkeenCoreLib function
author Emil Madsen <skeen@cs.au.dk>
date Tue, 07 May 2013 20:52:47 +0200
parents 58086ea2f944
children 39f3f0dbf42e
rev   line source
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)