annotate SkeenCore3BeastMasteryHunter.lua @ 9:a6e2ff3a8f61 v1.4.1

Update
author Emil Madsen <skeen@cs.au.dk>
date Sun, 19 Feb 2012 20:42:54 +0100
parents afd83bc06b1e
children 1040ce99b400
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@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