annotate SkeenCore3BeastMasteryHunter.lua @ 22:9ed2a02621f3

Added tag v1.5.2 for changeset 39f3f0dbf42e
author Emil Madsen <skeen@cs.au.dk>
date Wed, 08 May 2013 00:08:25 +0200
parents 39f3f0dbf42e
children a03c3c813e3e
rev   line source
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)