annotate SkeenCore3BeastMasteryHunter.lua @ 18:3efd2090d824

Added tag v1.5.0 for changeset 58086ea2f944
author Emil Madsen <skeen@cs.au.dk>
date Sat, 27 Apr 2013 19:49:53 +0200
parents 58086ea2f944
children d268dd3509fa
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@17 15 local _, _, _, _, selected, _ = GetTalentInfo(13)
skeen@17 16 local a_murder_of_crows_chosen = selected
skeen@17 17
skeen@17 18 local _, _, _, _, selected, _ = GetTalentInfo(14)
skeen@17 19 local blink_strike_chosen = selected
skeen@17 20
skeen@17 21 local _, _, _, _, selected, _ = GetTalentInfo(15)
skeen@17 22 local lynx_rush_chosen = selected
skeen@17 23
skeen@17 24 local _, _, _, _, selected, _ = GetTalentInfo(16)
skeen@17 25 local glaive_toss_chosen = selected
skeen@17 26
skeen@17 27 local _, _, _, _, selected, _ = GetTalentInfo(17)
skeen@17 28 local powershot_chosen = selected
skeen@17 29
skeen@17 30 local _, _, _, _, selected, _ = GetTalentInfo(18)
skeen@17 31 local barrage_chosen = selected
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 RapidFireID = 3045
skeen@17 46 local FocusFireID = 82692
skeen@17 47 local FervorID = 82726
skeen@17 48 local BestialWrathID = 19574
skeen@17 49 local SerpentStingID = 1978
skeen@17 50 local ArcaneShotID = 3044
skeen@17 51 local CobraShotID = 77767
skeen@17 52 local HuntersMarkID = 1130
skeen@17 53 local ReadinessID = 23989
skeen@17 54 local AMurderOfCrowsID = 131894
skeen@17 55 local BlinkStrikeID = 130392
skeen@17 56 local LynxRushID = 120697
skeen@17 57 local GlaiveTossID = 117050
skeen@17 58 local PowershotID = 109259
skeen@17 59 local BarrageID = 120360
skeen@17 60 local StampedeID = 121818
skeen@17 61 local FrenzyID = 19615
skeen@9 62
skeen@17 63 local focus = UnitPower("player")
skeen@0 64
skeen@0 65 --Cooldowns
skeen@17 66 local kill_command_cooldown = LibSkeenCore:GetCooldown(KillCommandID) --"Kill Command"
skeen@17 67 local kill_shot_cooldown = LibSkeenCore:GetCooldown(KillShotID) --"Kill Shot"
skeen@17 68 local rapid_fire_cooldown = LibSkeenCore:GetCooldown(RapidFireID) --"Rapid Fire"
skeen@17 69 local focus_fire_cooldown = LibSkeenCore:GetCooldown(FocusFireID) --"Focus Fire"
skeen@17 70 local fervor_cooldown = LibSkeenCore:GetCooldown(FervorID) --"Fervor"
skeen@17 71 local bestial_wrath_cooldown = LibSkeenCore:GetCooldown(BestialWrathID) --"Bestial Wrath"
skeen@17 72 local Readiness_cooldown = LibSkeenCore:GetCooldown(ReadinessID) --"Readiness"
skeen@17 73 local a_murder_of_crows_cooldown = LibSkeenCore:GetCooldown(AMurderOfCrowsID) --"A Murder of Crows"
skeen@17 74 local blink_strike_cooldown = LibSkeenCore:GetCooldown(BlinkStrikeID) --"Blink Strike"
skeen@17 75 local lynx_rush_cooldown = LibSkeenCore:GetCooldown(LynxRushID) --"Lynx Rush"
skeen@17 76 local glaive_toss_cooldown = LibSkeenCore:GetCooldown(GlaiveTossID) --"Glaive Toss"
skeen@17 77 local powershot_cooldown = LibSkeenCore:GetCooldown(PowershotID) --"Powershot"
skeen@17 78 local barrage_cooldown = LibSkeenCore:GetCooldown(BarrageID) --"Barrage"
skeen@17 79 local stampede_cooldown = LibSkeenCore:GetCooldown(StampedeID) --"Stampede"
skeen@13 80
skeen@0 81 --Debuff
skeen@9 82 local serpent_sting_duration = LibSkeenCore:GetDebuffDuration(SerpentStingID) --"Serpent Sting"
skeen@17 83 local HuntersMark_duration = LibSkeenCore:GetDebuffDuration(HuntersMarkID) --"Hunters Mark"
skeen@17 84
skeen@17 85 --BuffStacks
skeen@17 86 local frenzy_stacks = LibSkeenCore:GetBuffCount(FrenzyID)
skeen@0 87
skeen@0 88 -- Get the target's health percentage
skeen@17 89 local TargetsPercentOfHealth = (UnitHealth("target") / UnitHealthMax("target") * 100);
skeen@0 90
skeen@13 91 if(HuntersMark_duration < 1) then
skeen@13 92 spell.current = HuntersMarkID
skeen@13 93 elseif (serpent_sting_duration < 1) then
skeen@13 94 if (focus >= 25) then
skeen@17 95 spell.current = SerpentStingID
skeen@13 96 else
skeen@17 97 spell.next = SerpentStingID
skeen@13 98 end
skeen@17 99 elseif (frenzy_stacks == 5) then
skeen@17 100 spell.current = FocusFireID
skeen@17 101 elseif (glaive_toss_chosen == true) and (glaive_toss_cooldown < 1) and (focus >= 15) then
skeen@17 102 spell.current = GlaiveTossID
skeen@17 103 elseif (powershot_chosen == true) and (powershot_cooldown < 1) and (focus >= 20) then
skeen@17 104 spell.current = PowershotID
skeen@17 105 elseif (barrage_chosen == true) and (barrage_cooldown < 1) and (focus >= 30) then
skeen@17 106 spell.current = BarrageID
skeen@17 107 elseif (a_murder_of_crows_chosen == true) and (a_murder_of_crows_cooldown < 1) then
skeen@17 108 spell.current = AMurderOfCrowsID
skeen@17 109 elseif (blink_strike_chosen == true) and (blink_strike_cooldown < 1) then
skeen@17 110 spell.current = BlinkStrikeID
skeen@17 111 elseif (lynx_rush_chosen == true) and (lynx_rush_cooldown < 1) then
skeen@17 112 spell.current = LynxRushID
skeen@15 113 elseif (kill_command_cooldown < 1) then
skeen@0 114 if (focus >= 40) then
skeen@17 115 spell.current = KillCommandID
skeen@0 116 else
skeen@17 117 spell.next = KillCommandID
skeen@0 118 end
skeen@0 119 elseif ((TargetsPercentOfHealth < 20) and (kill_shot_cooldown<1)) then
skeen@17 120 spell.current = KillShotID
skeen@13 121 elseif (focus >= 60) then
skeen@17 122 spell.current = ArcaneShotID
skeen@0 123 else
skeen@17 124 spell.current = CobraShotID
skeen@0 125 end
skeen@17 126
skeen@17 127 if (rapid_fire_cooldown < 1) then
skeen@17 128 spell.cd1 = RapidFireID
skeen@17 129 end
skeen@17 130
skeen@17 131 if (stampede_cooldown < 1) then
skeen@17 132 spell.cd2 = StampedeID
skeen@17 133 end
skeen@17 134
skeen@13 135 if (Readiness_cooldown < 1) then
skeen@17 136 spell.cd3 = ReadinessID
skeen@17 137 end
skeen@17 138
skeen@17 139 if (bestial_wrath_cooldown < 1) then
skeen@17 140 spell.cd4 = BestialWrathID
skeen@17 141 end
skeen@0 142
skeen@0 143 return spell
skeen@0 144 end
skeen@0 145
skeen@0 146 local SkeenPlugin = {}
skeen@9 147 SkeenPlugin.Name = "Hunter: Beast Mastery"
skeen@0 148 SkeenPlugin.Class = "HUNTER"
skeen@0 149 SkeenPlugin.Spec = 1
skeen@17 150 SkeenPlugin.Version = "5.2.0"
skeen@0 151 SkeenPlugin.Rotation = Rotation
skeen@0 152
skeen@9 153 local SkeenCore3 = _G["SkeenCore3"]
skeen@0 154 SkeenCore3:RegisterPlugin(SkeenPlugin)