annotate SkeenCore3BeastMasteryHunter.lua @ 15:6ac320834be1 v1.4.5

Issue fixed
author Emil Madsen <skeen@cs.au.dk>
date Thu, 06 Sep 2012 21:56:35 +0200
parents 1040ce99b400
children 58086ea2f944
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@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@15 61 elseif (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