WoWInterface SVN KharthussHunterTimers

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /trunk
    from Rev 50 to Rev 51
    Reverse comparison

Rev 50 → Rev 51

KHunterTimers/version history.txt
1,5 → 1,9
Version History
 
v4.0.0
- Legion updates
- Major revamp of spells
- Removed gear and trinkets
v3.7.8
- Added Skull of War
v3.7.7
KHunterTimers/KHunterTimers.toc
1,7 → 1,7
## Interface: 60200
## Interface: 70000
## Title: Kharthus's Hunter Timers
## Notes: Times hunter buffs/debuffs
## Version: 3.7.8
## Version: 4.0.0
## DefaultState: Enabled
## LoadOnDemand: 0
## SavedVariables: KHTvars
KHunterTimers/localization.lua
1,205 → 1,98
KHT_VERSION = "v"..GetAddOnMetadata("KHunterTimers", "Version");
local _;
KHT_VERSION = "v"..GetAddOnMetadata("KHunterTimers", "Version")
local _
 
--Abilities-----------------------------------------
--Shots
KHT_AUTO_SHOT = GetSpellInfo(75); -- Auto Shot
KHT_CONC_SHOT = GetSpellInfo(5116); -- Concussive Shot
KHT_BLACK_ARROW = GetSpellInfo(3674); -- Black Arrow
KHT_CHIMERA = GetSpellInfo(53209); -- Chimera Shot
KHT_MULTI = GetSpellInfo(2643); -- Multi-Shot
KHT_COBRA = GetSpellInfo(77767); -- Cobra Shot
KHT_EXPL_SHOT = GetSpellInfo(53301); -- Explosive Shot
-- Specializations
KHT_SPECIAL = "Enable 'Specialization' Timers"
KHT_ASPECT_EAGLE = GetSpellInfo(186289) -- Aspect of the Eagle
KHT_ASPECT_WILD = GetSpellInfo(193530) -- Aspect of the Wild
KHT_BEAST_CLEAVE = GetSpellInfo(115939) -- Beast Cleave
KHT_BESTIAL_WRATH = GetSpellInfo(19574) -- Bestial Wrath
KHT_BOMBARDMENT = GetSpellInfo(35110) -- Bombardment
KHT_BURST_SHOT = GetSpellInfo(186387) -- Bursting Shot
KHT_CONCUSS_SHOT = GetSpellInfo(5116) -- Concussive Shot
KHT_COUNTER_SHOT = GetSpellInfo(147362) -- Counter Shot
KHT_DIRE_BEAST = GetSpellInfo(120679) -- Dire Beast
KHT_EXPLOSIVE_TRAP = GetSpellInfo(191433) -- Explosive Trap
KHT_FREEZING_TRAP = GetSpellInfo(187650) -- Freezing Trap
KHT_HARPOON = GetSpellInfo(190925) -- Harpoon
KHT_HUNTERS_MARK = GetSpellInfo(185987) -- Hunter's Mark
KHT_LACERATE = GetSpellInfo(185855) -- Lacerate
KHT_MARKING = GetSpellInfo(223138) -- Marking Targets
KHT_MISDIRECTION = GetSpellInfo(34477) -- Misdirection
KHT_MONGOOSE_FURY = GetSpellInfo(190931) -- Mongoose Fury
KHT_MUZZLE = GetSpellInfo(187707) -- Muzzle
KHT_SURVIVALIST = GetSpellInfo(164856) -- Survivalist
KHT_TAR_TRAP = GetSpellInfo(187698) -- Tar Trap
KHT_TRUESHOT = GetSpellInfo(193526) -- Trueshot
KHT_VULNERABLE = GetSpellInfo(187131) -- Vulnerable
KHT_WING_CLIP = GetSpellInfo(195645) -- Wing Clip
 
--Buffs
KHT_MISDIRECTION = GetSpellInfo(34477); -- Misdirection
KHT_RAPID_FIRE = GetSpellInfo(3045); -- Rapid Fire
KHT_CAMO = GetSpellInfo(51753); -- Camouflage
-- Talents
KHT_TALENT = "Enable 'Talent' Timers"
KHT_MURDER_CROWS = GetSpellInfo(131894) -- A Murder of Crows
KHT_BESTIAL_CUNNING = GetSpellInfo(191397) -- Bestial Cunning
KHT_BESTIAL_FEROCITY = GetSpellInfo(191413) -- Bestial Ferocity
KHT_BESTIAL_TENACITY = GetSpellInfo(191414) -- Bestial Tenacity
KHT_BINDING_SHOT = GetSpellInfo(109248) -- Binding Shot
KHT_BLACK_ARROW = GetSpellInfo(194599) -- Black Arrow
KHT_CALTROPS = GetSpellInfo(194277) -- Caltrops
KHT_CAMO = GetSpellInfo(199483) -- Camouflage
KHT_CAREFUL_AIM = GetSpellInfo(53238) -- Careful Aim
KHT_CARVE = GetSpellInfo(187708) -- Carve
KHT_DIRE_FRENZY = GetSpellInfo(217200) -- Dire Frenzy
KHT_DRAGON_GRENADE = GetSpellInfo(194855) -- Dragonsfire Grenade
KHT_INSTINCT_CHEETAH = GetSpellInfo(204324) -- Instincts of the Cheetah
KHT_INSTINCT_MONGOOSE = GetSpellInfo(204333) -- Instincts of the Mongoose
KHT_INSTINCT_RAPTOR = GetSpellInfo(204321) -- Instincts of the Raptor
KHT_INTIM = GetSpellInfo(24394) -- Intimidation
KHT_LOCK_LOAD = GetSpellInfo(194595) -- Lock and Load
KHT_MOKNATHAL = GetSpellInfo(201081) -- Mok'Nathal Tactics
KHT_PET_INTIM = "Pet "..GetSpellInfo(19577) -- Pet Intimidation
KHT_POSTHASTE = GetSpellInfo(118922) -- Posthaste
KHT_RANGERS_NET = GetSpellInfo(200108) -- Ranger's Net
KHT_SERPENT_STING = GetSpellInfo(118253) -- Serpent Sting
KHT_SPITTING_COBRA = GetSpellInfo(194407) -- Spitting Cobra
KHT_STAMPEDE = GetSpellInfo(201430) -- Stampede
KHT_STEADY_FOCUS = GetSpellInfo(193533) -- Steady Focus
KHT_STEEL_TRAP = GetSpellInfo(162488) -- Steel Trap
KHT_STICKY_BOMB = GetSpellInfo(191241) -- Sticky Bomb
KHT_TRUE_AIM = GetSpellInfo(199527) -- True Aim
KHT_WYVERN = GetSpellInfo(19386) -- Wyvern Sting
 
--Pet Skills
KHT_STAND = GetSpellInfo(53478); -- Last Stand
KHT_ROAR = GetSpellInfo(53480); -- Roar of Sacrifice
KHT_BITE = GetSpellInfo(54680); -- Monstrous Bite
KHT_BITE_PROC = GetSpellInfo(54681); -- Monstrous Strength
KHT_DASH = GetSpellInfo(1850); -- Dash
KHT_FURIOUS = GetSpellInfo(24604); -- Furious Howl
KHT_WARP = GetSpellInfo(35346); -- Time Warp
KHT_SHIELD = GetSpellInfo(26064); -- Shell Shield
KHT_ANKLE = GetSpellInfo(50433); -- Ankle Crack
KHT_SPIRIT_MEND = GetSpellInfo(90361); -- Spirit Mend
KHT_COURAGE = GetSpellInfo(93435); -- Roar of Courage
KHT_CLEAVE = GetSpellInfo(118455); -- Beast Cleave
-- Common
KHT_COMMON = "Enable 'Common' Timers"
KHT_AUTO_SHOT = GetSpellInfo(75) -- Auto Shot
KHT_ARCANE_TORRENT = GetSpellInfo(25046) -- Arcane Torrent
KHT_ASPECT_CHEETAH = GetSpellInfo(186257) -- Aspect of the Cheetah
KHT_ASPECT_TURTLE = GetSpellInfo(186265) -- Aspect of the Turtle
KHT_BERSERKING = GetSpellInfo(26297) -- Berserking
KHT_BLOOD_FURY = GetSpellInfo(20572) -- Blood Fury
KHT_BLOODLUST = GetSpellInfo(2825) -- Bloodlust
KHT_FLARE = GetSpellInfo(1543) -- Flare
KHT_HEROISM = GetSpellInfo(32182) -- Heroism
KHT_MEND_PET = GetSpellInfo(136) -- Mend Pet
KHT_STONEFORM = GetSpellInfo(20594) -- Stoneform
KHT_TIME_WARP = GetSpellInfo(80353) -- Time Warp
KHT_WAR_STOMP = GetSpellInfo(20549) -- War Stomp
 
--Racials
KHT_ARCANE = GetSpellInfo(25046); -- Arcane Torrent
KHT_BERSERKING = GetSpellInfo(26297); -- Berserking
KHT_BLOOD_FURY = GetSpellInfo(20572); -- Blood Fury
KHT_STONEFORM = GetSpellInfo(20594); -- Stoneform
KHT_WAR_STOMP = GetSpellInfo(20549); -- War Stomp
KHT_HEROISM, _, KHT_HEROISM_ICON = GetSpellInfo(32182); -- Heroism
KHT_BLOODLUST, _, KHT_BLOODLUST_ICON = GetSpellInfo(2825); -- Bloodlust
KHT_TIME_WARP, _, KHT_TIME_WARP_ICON = GetSpellInfo(80353); -- Time Warp
-- Pets
KHT_PETS = "Enable 'Pet' Timers"
KHT_ANKLE_CRACK = GetSpellInfo(50433) -- Ankle Crack
KHT_DASH = GetSpellInfo(61684) -- Dash
KHT_LAST_STAND = GetSpellInfo(53478) -- Last Stand
KHT_MONSTROUS_BITE = GetSpellInfo(54680) -- Monstrous Bite
KHT_ROAR_SACRIFICE = GetSpellInfo(53480) -- Roar of Sacrifice
KHT_SHELL_SHIELD = GetSpellInfo(26064) -- Shell Shield
KHT_SPIRIT_MEND = GetSpellInfo(90361) -- Spirit Mend
KHT_WARP_TIME = GetSpellInfo(35346) -- Warp Time
 
--Set/Item Procs
KHT_CHAMPION, _, KHT_CHAMPION_ICON = GetSpellInfo(35081); -- Band of the Eternal Champion
KHT_BEASTLORD, _, KHT_BEASTLORD_ICON = GetSpellInfo(37482); -- Beast Lord 4-piece bonus
KHT_BEAST_4PC = "Beast Lord 4-piece bonus";
KHT_EXPOSE_DS, _, KHT_EXPOSE_DS_ICON = GetSpellInfo(23577); -- Dragonstalker 8-piece bonus
KHT_DRAGON_8PC = "Dragonstalker 8-piece bonus";
KHT_HEROIC, _, KHT_HEROIC_ICON = GetSpellInfo(37612); -- Desolation 4-piece bonus
KHT_DESOLATION_4PC = "Desolation 4-piece bonus";
KHT_PRIMAL, _, KHT_PRIMAL_ICON = GetSpellInfo(24255); -- ZG fist weapons
KHT_ZG = "ZG fist weapons"
KHT_SANTOS, _, KHT_SANTOS_ICON = GetSpellInfo(38293); -- Don Santos' Famous Hunting Rifle
KHT_DON_SANTOS = "Don Santos' Famous Hunting Rifle";
KHT_SKYFIRE, _, KHT_SKYFIRE_ICON = GetSpellInfo(39959); -- Thundering Skyfire Diamond
KHT_THUNDER = "Thundering Skyfire Diamond";
KHT_PRECISION, _, KHT_PRECISION_ICON = GetSpellInfo(64861); -- Scourgestalker 4-piece bonus
KHT_SCOURGE = "Scourgestalker 4-piece bonus";
KHT_ASHEN_VERDICT, _, KHT_ASHEN_VERDICT_ICON = GetSpellInfo(72412); -- Ashen Verdict ring
KHT_ASHEN = "Ashen Band of Vengeance";
KHT_BLOOD_HUNT_2PC, _, KHT_BLOOD_HUNT_2PC_ICON = GetSpellInfo(70728); -- Blood Hunter 2-piece bonus
KHT_BLOOD_HUNT_4PC, _, KHT_BLOOD_HUNT_4PC_ICON = GetSpellInfo(71007); -- Blood Hunter 4-piece bonus
KHT_BLOOD_HUNTER = "Blood Hunter 2/4-piece bonuses";
KHT_WINDRUNNER_4PC, _, KHT_WINDRUNNER_4PC_ICON = GetSpellInfo(68130); -- Windrunner 4-piece bonus
KHT_WINDRUNNER = "Windrunner 4-piece bonus";
KHT_FLAMEWAKER_4PC, _, KHT_FLAMEWAKER_4PC_ICON = GetSpellInfo(99060); -- Flamewaker 4-piece bonus
KHT_FLAMEWAKER = "Flamewaker 4-piece bonus";
KHT_WYRMSTALKER_4PC, _, KHT_WYRMSTALKER_4PC_ICON = GetSpellInfo(105919); -- Wyrmstalker 4-piece bonus
KHT_WYRMSTALKER = "Wyrmstalker 4-piece bonus";
KHT_SAUROK_2PC, _, KHT_SAUROK_2PC_ICON = GetSpellInfo(138363); -- Saurok Stalker 2-piece bonus
KHT_SAUROK = "Saurok Stalker 2-piece bonus";
KHT_MISC = "Enable 'Miscellaneous' Timers";
KHT_TRINKETS = "Enable 'Trinket' Timers";
 
--Talent Procs
KHT_COBRA_STRIKES, _, KHT_COBRA_STRIKES_ICON = GetSpellInfo(53257); -- Cobra Strikes
KHT_LOCK_LOAD, _, KHT_LOCK_LOAD_ICON = GetSpellInfo(168980); -- Lock and Load
KHT_FOCUS_FIRE = GetSpellInfo(82692); -- Focus Fire
KHT_SNIPER, _, KHT_SNIPER_ICON = GetSpellInfo(168811); -- Sniper Training
KHT_SNIPER_MOVE, _, KHT_SNIPER_MOVE_ICON = GetSpellInfo(168809); -- Sniper Training: Recently Moved
KHT_THRILL = GetSpellInfo(34720); -- Thrill of the Hunt
KHT_GLAIVE, _, KHT_GLAIVE_ICON = GetSpellInfo(117050); -- Glaive Toss
KHT_STAMPEDE = GetSpellInfo(121818); -- Stampede
KHT_DIRE = GetSpellInfo(120679); -- Dire Beast
KHT_CROWS = GetSpellInfo(131894); -- A Murder of Crows
KHT_STEADY_FOCUS = GetSpellInfo(177668); -- Steady Focus
 
--Trinket Spells
KHT_ABACUS, _, KHT_ABACUS_ICON = GetSpellInfo(33807); -- Abacus of Violent Odds
KHT_ADWT = "Ancient Draenei War Talisman";
KHT_FEROCITY, _, KHT_FEROCITY_ICON = GetSpellInfo(33667); -- Ancient Draenei War Talisman and Bladefist's Breath
KHT_ANVIL = "Anvil of Titans";
KHT_TORMENT, _, KHT_TORMENT_ICON = GetSpellInfo(60065); -- Anvil of Titans and Mirror of Truth
KHT_ATOS = "Ashtongue Talisman of Swiftness";
KHT_ASHTONGUE, _, KHT_ASHTONGUE_ICON = GetSpellInfo(40487); -- Ashtongue Talisman of Swiftness
KHT_SWARMGUARD, _, KHT_SWARMGUARD_ICON = GetSpellInfo(26480); -- Badge of the Swarmguard
KHT_BERSERK_CALL = "Berserker's Call";
KHT_BERSERKER, _, KHT_BERSERKER_ICON = GetSpellInfo(43716); -- Berserker's Call
KHT_BLADEFIST = "Bladefist's Breath";
KHT_BLOODLUST_BROOCH = "Bloodlust Brooch";
KHT_LUST, _, KHT_LUST_ICON = GetSpellInfo(35166); -- Bloodlust Brooch
KHT_ARKELOS = "Core of Ar'kelos";
KHT_ANCIENT_POWER, _, KHT_ANCIENT_POWER_ICON = GetSpellInfo(35733); -- Core of Ar'kelos
KHT_DARK_GREAT = "Darkmoon Card: Greatness";
KHT_GREATNESS, _, KHT_GREATNESS_ICON = GetSpellInfo(60233); -- Darkmoon Card: Greatness
KHT_DARK_MAD = "Darkmoon Card: Madness";
KHT_DELUSIONAL, _, KHT_DELUSIONAL_ICON = GetSpellInfo(40997); -- Darkmoon Card: Madness
KHT_KLEPTOMANIA, _, KHT_KLEPTOMANIA_ICON = GetSpellInfo(40998); -- Darkmoon Card: Madness
KHT_MANIC, _, KHT_MANIC_ICON = GetSpellInfo(41005); -- Darkmoon Card: Madness
KHT_MARTYR, _, KHT_MARTYR_ICON = GetSpellInfo(41011); -- Darkmoon Card: Madness
KHT_NARCISSISM, _, KHT_NARCISSIM_ICON = GetSpellInfo(41009); -- Darkmoon Card: Madness
KHT_PARANOIA, _, KHT_PARANOIA_ICON = GetSpellInfo(41002); -- Darkmoon Card: Madness
KHT_DARK_WRATH = "Darkmoon Card: Wrath";
KHT_WRATH, _, KHT_WRATH_ICON = GetSpellInfo(39443); -- Darkmoon Card: Wrath
KHT_VERDICT = "Death's Verdict";
KHT_PARAGON, _, KHT_PARAGON_ICON = GetSpellInfo(67703); -- Death's Verdict
KHT_DEVIL_EYE = "Devilsaur Eye";
KHT_DEVILSAUR, _, KHT_DEVILSAUR_ICON = GetSpellInfo(24352); -- Devilsaur Eye
KHT_DST = "Dragonspine Trophy";
KHT_DRAGON, _, KHT_DRAGON_ICON = GetSpellInfo(34775); -- Dragonspine Trophy
KHT_EARTHSTRIKE, _, KHT_EARTHSTRIKE_ICON = GetSpellInfo(25891); -- Earthstrike
KHT_EMPTY_MUG = "Empty Mug of Direbrew";
KHT_DIREBREW, _, KHT_DIREBREW_ICON = GetSpellInfo(51955); -- Empty Mug of Direbrew
KHT_GRIM_TOLL, _, KHT_GRIM_TOLL_ICON = GetSpellInfo(60437); -- Grim Toll
KHT_HOURGLASS = "Hourglass of the Unraveller";
KHT_UNRAVELLER, _, KHT_UNRAVELLER_ICON = GetSpellInfo(33649); -- Hourglass of the Unraveller
KHT_INCISOR, _, KHT_INCISOR_ICON = GetSpellInfo(60299); -- Incisor Fragment
KHT_JOM_GABBAR, _, KHT_JOM_GABBAR_ICON = GetSpellInfo(29604); -- Jom Gabbar
KHT_KISS_SPIDER, _, KHT_KISS_SPIDER_ICON = GetSpellInfo(28866); -- Kiss of the Spider
KHT_LOATHEB, _, KHT_LOATHEB_ICON = GetSpellInfo(60439); -- Loatheb's Shadow
KHT_MOTB = "Madness of the Betrayer";
KHT_MADNESS, _, KHT_MADNESS_ICON = GetSpellInfo(40477); -- Madness of the Betrayer
KHT_METEORITE, _, KHT_METEORITE_ICON = GetSpellInfo(60302); -- Meteorite Whetstone
KHT_MIRROR = "Mirror of Truth";
KHT_MJOLNIR, _, KHT_MJOLNIR_ICON = GetSpellInfo(65019); -- Mjolnir Runestone
KHT_NIGHTSEYE, _, KHT_NIGHTSEYE_ICON = GetSpellInfo(31047); -- Nightseye Panther
KHT_OGRE = "Ogre Mauler's Badge";
KHT_BURNING_HATRED, _, KHT_BURNING_HATRED_ICON = GetSpellInfo(32362); -- Ogre Mauler's Badge and Uniting Charm
KHT_PYRITE_INFUSER = "Pyrite Infuser";
KHT_PYRITE, _, KHT_PYRITE_ICON = GetSpellInfo(65014); -- Pyrite Infuser
KHT_SIGNET_EDWARD = "Signet of Edward the Odd";
KHT_EDWARD, _, KHT_EDWARD_ICON = GetSpellInfo(60318); -- Signet of Edward the Odd
KHT_SKY_CROSS = "Skyguard Silver Cross";
KHT_SKYGUARD, _, KHT_SKYGUARD_ICON = GetSpellInfo(41261); -- Skyguard Silver Cross
KHT_TALON_ALAR = "Talon of Al'ar";
KHT_TALON, _, KHT_TALON_ICON = GetSpellInfo(37508); -- Talon of Al'ar
KHT_TTP = "Terokkar Tablet of Precision";
--KHT_HEROISM, _, KHT_HEROISM_ICON = GetSpellInfo(39200); -- Terokkar Tablet of Precision
KHT_TSUNAMI_TALISMAN = "Tsunami Talisman";
KHT_TSUNAMI, _, KHT_TSUNAMI_ICON = GetSpellInfo(42084); -- Tsunami Talisman
KHT_UNITING = "Uniting Charm";
KHT_HERO_MEDALLION = "Zandalarian Hero Medallion";
KHT_ZHM, _, KHT_ZHM_ICON = GetSpellInfo(24661); -- Zandalarian Hero Medallion
KHT_NEEDLE = "Needle-Encrusted Scorpion";
KHT_NES, _, KHT_NES_ICON = GetSpellInfo(71403); -- Needle-Encrusted Scorpion
KHT_DEATHBRINGER = "Deathbringer's Will";
KHT_DEATH_AGI, _, KHT_DEATH_AGI_ICON = GetSpellInfo(71485); -- Deathbringer's Will
KHT_DEATH_AP, _, KHT_DEATH_AP_ICON = GetSpellInfo(71486); -- Deathbringer's Will
KHT_DEATH_CRIT, _, KHT_DEATH_CRIT_ICON = GetSpellInfo(71491); -- Deathbringer's Will
KHT_FANGED_SKULL = "Whispering Fanged Skull";
KHT_FANGED, _, KHT_FANGED_ICON = GetSpellInfo(71401); -- Whispering Fanged Skull
KHT_SHARP_SCALE = "Sharpened Twilight Scale";
KHT_STS, _, KHT_STS_ICON = GetSpellInfo(75458); -- Sharpened Twilight Scale
KHT_HUNGERER = "The Hungerer";
KHT_HUNGER, _, KHT_HUNGER_ICON = GetSpellInfo(96911); -- The Hungerer
KHT_RELICXUEN = "Relic of Xuen";
KHT_XUEN, _, KHT_XUEN_ICON = GetSpellInfo(128984); -- Relic of Xuen
KHT_SCALES = "Scales of Doom";
KHT_SCALESDOOM, _, KHT_SCALES_ICON = GetSpellInfo(177038); -- Scales of Doom
KHT_BEATING_HEART = "Beating Heart of the Mountain";
KHT_BEATING, _, KHT_BEATING_ICON = GetSpellInfo(176878); -- Beating Heart of the Mountain
KHT_SKULL_WAR = "Skull of War";
KHT_SKULL, _, KHT_SKULL_ICON = GetSpellInfo(162915); -- Skull of War
 
--Pet Abilities
KHT_PET_INTIM = "Pet "..GetSpellInfo(19577); -- Pet Intimidation
KHT_INTIM = GetSpellInfo(24394); -- Intimidation
KHT_BW = GetSpellInfo(19574); -- Bestial Wrath
KHT_FEED_PET = GetSpellInfo(6991); -- Feed Pet
KHT_MEND_PET = GetSpellInfo(136); -- Mend Pet
KHT_PET_FRENZY, _, KHT_PET_FRENZY_ICON = GetSpellInfo(19615); -- Frenzy
 
--Traps
KHT_FROST_TRAP = GetSpellInfo(13809); -- Frost Trap
KHT_EXPL_TRAP = GetSpellInfo(13813); -- Explosive Trap
KHT_FREEZING_TRAP = GetSpellInfo(1499); -- Freezing Trap
KHT_SNAKE_TRAP = GetSpellInfo(34600); -- Snake Trap
KHT_VENOMOUS = "Venomous Snake";
KHT_ENTRAPMENT, _, KHT_ENTRAPMENT_ICON = GetSpellInfo(19387); -- Entrapment
--Other
KHT_STING = "Sting";
KHT_AURA = "aura";
KHT_PRIMED = "primed";
 
--Melee Abilities
KHT_DETERRENCE = GetSpellInfo(19263); -- Deterrence
 
--Stings
KHT_STING = "Sting";
KHT_WYVERN = GetSpellInfo(19386); -- Wyvern Sting
KHT_WYVERN_TEXT = GetSpellInfo(19386).." (Sleep)"; -- Wyvern Sting (Sleep)
KHT_SERPENT = GetSpellInfo(87935); -- Serpent Sting
KHT_BINDING, _, KHT_BINDING_ICON = GetSpellInfo(109248); -- Binding Shot
 
--Other
KHT_FLARE = GetSpellInfo(1543); -- Flare
KHT_DONE = "Done!"
 
--Status Text---------------------------------------
268,11 → 161,4
KHT_OPTIONS_DOWN = "Cascade Bars Down";
KHT_OPTIONS_TEXTURE = "Bar Texture";
 
KHT_BEAST = "Enable 'Beast Mastery' Timers";
KHT_MARKS = "Enable 'Marksmanship' Timers";
KHT_SURV = "Enable 'Survival' Timers";
KHT_PETS = "Enable 'Pet' Timers";
KHT_MISC = "Enable 'Miscellaneous' Timers";
KHT_TRINKETS = "Enable 'Trinket' Timers";
 
--Options moved to globals because they dealt with other variables
KHunterTimers/KHunterTimers.xml
710,7 → 710,7
<Scripts>
<OnLoad>
self.elapsed = 0;
PanelTemplates_SetNumTabs(KHunterTimersOptionsTimers, 6);
PanelTemplates_SetNumTabs(KHunterTimersOptionsTimers, 5);
PanelTemplates_SetTab(KHunterTimersOptionsTimers, 1);
</OnLoad>
<OnShow>
721,7 → 721,7
KHunterTimersOptionsTimers3:Hide();
KHunterTimersOptionsTimers4:Hide();
KHunterTimersOptionsTimers5:Hide();
KHunterTimersOptionsTimers6:Hide();
<!-- KHunterTimersOptionsTimers6:Hide(); -->
</OnShow>
<OnHide>
PlaySound("UChatScrollButton");
1394,16 → 1394,16
</CheckButton>
</Frames>
</Frame>
<Button name="$parentTab1" inherits="KHunterTimersFrameTabTemplate" id="1" text="Beast">
<Button name="$parentTab1" inherits="KHunterTimersFrameTabTemplate" id="1" text="Specialization">
<Anchors>
<Anchor point="CENTER" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="37" y="-16"/>
<AbsDimension x="55" y="-16"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="$parentTab2" inherits="KHunterTimersFrameTabTemplate" id="2" text="Marks">
<Button name="$parentTab2" inherits="KHunterTimersFrameTabTemplate" id="2" text="Talent">
<Anchors>
<Anchor point="LEFT" relativeTo="$parentTab1" relativePoint="RIGHT">
<Offset>
1412,7 → 1412,7
</Anchor>
</Anchors>
</Button>
<Button name="$parentTab3" inherits="KHunterTimersFrameTabTemplate" id="3" text="Survival">
<Button name="$parentTab3" inherits="KHunterTimersFrameTabTemplate" id="3" text="Common">
<Anchors>
<Anchor point="LEFT" relativeTo="$parentTab2" relativePoint="RIGHT">
<Offset>
1439,7 → 1439,7
</Anchor>
</Anchors>
</Button>
<Button name="$parentTab6" inherits="KHunterTimersFrameTabTemplate" id="6" text="Trinkets">
<!-- <Button name="$parentTab6" inherits="KHunterTimersFrameTabTemplate" id="6" text="Trinkets">
<Anchors>
<Anchor point="LEFT" relativeTo="$parentTab5" relativePoint="RIGHT">
<Offset>
1448,6 → 1448,7
</Anchor>
</Anchors>
</Button>
-->
</Frames>
</Frame>
 
KHunterTimers/globals.lua
4,145 → 4,120
KHT_NUM_OPTIONS = 11;
KHT_NUM_LABELS = 11;
KHT_NUM_SLIDERS = 7;
KHT_NUM_TABS = 5;
 
KHT_NUM_TIMERS = {
[1] = 12, -- Beast
[2] = 9, -- Marks
[3] = 15, -- Surv
[4] = 11, -- Pets
[5] = 23, -- Misc
[6] = 47 -- Trinkets
[1] = 24, -- Specializations
[2] = 28, -- Talents
[3] = 14, -- Common
[4] = 9, -- Pets
[5] = 1, -- Misc
[6] = 1 -- Trinkets (removed)
};
 
KHT_OPTIONS_TIMERS = {
[1] = { -- Beast
[1] = KHT_BEAST,
[2] = KHT_CLEAVE,
[3] = KHT_BW,
[4] = KHT_COBRA_STRIKES,
[5] = KHT_DIRE,
[6] = KHT_FEED_PET,
[7] = KHT_FOCUS_FIRE,
[8] = KHT_PET_FRENZY,
[9] = KHT_INTIM,
[10] = KHT_MEND_PET,
[11] = KHT_CROWS,
[12] = KHT_STAMPEDE
[1] = { -- Specializations
[1] = KHT_SPECIAL,
[2] = KHT_ASPECT_EAGLE,
[3] = KHT_ASPECT_WILD,
[4] = KHT_BEAST_CLEAVE,
[5] = KHT_BESTIAL_WRATH,
[6] = KHT_BOMBARDMENT,
[7] = KHT_BURST_SHOT,
[8] = KHT_CONCUSS_SHOT,
[9] = KHT_COUNTER_SHOT,
[10] = KHT_DIRE_BEAST,
[11] = KHT_EXPLOSIVE_TRAP,
[12] = KHT_FREEZING_TRAP,
[13] = KHT_HARPOON,
[14] = KHT_HUNTERS_MARK,
[15] = KHT_LACERATE,
[16] = KHT_MARKING,
[17] = KHT_MISDIRECTION,
[18] = KHT_MONGOOSE_FURY,
[19] = KHT_MUZZLE,
[20] = KHT_SURVIVALIST,
[21] = KHT_TAR_TRAP,
[22] = KHT_TRUESHOT,
[23] = KHT_VULNERABLE,
[24] = KHT_WING_CLIP
},
[2] = { -- Marks
[1] = KHT_MARKS,
[2] = { -- Talents
[1] = KHT_TALENT,
[2] = KHT_MURDER_CROWS,
[3] = KHT_BESTIAL_CUNNING,
[4] = KHT_BESTIAL_FEROCITY,
[5] = KHT_BESTIAL_TENACITY,
[6] = KHT_BINDING_SHOT,
[7] = KHT_BLACK_ARROW,
[8] = KHT_CALTROPS,
[9] = KHT_CAMO,
[10] = KHT_CAREFUL_AIM,
[11] = KHT_DIRE_FRENZY,
[12] = KHT_DRAGON_GRENADE,
[13] = KHT_INSTINCT_CHEETAH,
[14] = KHT_INSTINCT_MONGOOSE,
[15] = KHT_INSTINCT_RAPTOR,
[16] = KHT_INTIM,
[17] = KHT_LOCK_LOAD,
[18] = KHT_MOKNATHAL,
[19] = KHT_POSTHASTE,
[20] = KHT_RANGERS_NET,
[21] = KHT_SERPENT_STING,
[22] = KHT_SPITTING_COBRA,
[23] = KHT_STAMPEDE,
[24] = KHT_STEADY_FOCUS,
[25] = KHT_STEEL_TRAP,
[26] = KHT_STICKY_BOMB,
[27] = KHT_TRUE_AIM,
[28] = KHT_WYVERN,
[29] = KHT_OFF,
[30] = KHT_OFF,
[31] = KHT_OFF,
[32] = KHT_OFF,
[33] = KHT_OFF,
[34] = KHT_OFF,
[35] = KHT_OFF,
[36] = KHT_OFF,
[37] = KHT_OFF,
[38] = KHT_OFF,
[39] = KHT_OFF,
[40] = KHT_OFF
},
[3] = { -- Common
[1] = KHT_COMMON,
[2] = KHT_AUTO_SHOT,
[3] = KHT_CONC_SHOT,
[4] = KHT_FLARE,
[5] = KHT_GLAIVE,
[6] = KHT_RAPID_FIRE,
[7] = KHT_SNIPER,
[8] = KHT_STEADY_FOCUS,
[9] = KHT_THRILL
[3] = KHT_ARCANE_TORRENT,
[4] = KHT_ASPECT_CHEETAH,
[5] = KHT_ASPECT_TURTLE,
[6] = KHT_BERSERKING,
[7] = KHT_BLOOD_FURY,
[8] = KHT_BLOODLUST,
[9] = KHT_FLARE,
[10] = KHT_HEROISM,
[11] = KHT_MEND_PET,
[12] = KHT_STONEFORM,
[13] = KHT_TIME_WARP,
[14] = KHT_WAR_STOMP
},
[3] = { -- Surv
[1] = KHT_SURV,
[2] = KHT_BINDING,
[3] = KHT_BLACK_ARROW,
[4] = KHT_CAMO,
[5] = KHT_DETERRENCE,
[6] = KHT_ENTRAPMENT,
[7] = KHT_EXPL_SHOT,
[8] = KHT_EXPL_TRAP,
[9] = KHT_FREEZING_TRAP,
[10] = KHT_FROST_TRAP,
[11] = KHT_LOCK_LOAD,
[12] = KHT_MISDIRECTION,
[13] = KHT_SERPENT,
[14] = KHT_SNAKE_TRAP,
[15] = KHT_WYVERN
},
[4] = { -- Pets
[1] = KHT_PETS,
[2] = KHT_ANKLE,
[2] = KHT_ANKLE_CRACK,
[3] = KHT_DASH,
[4] = KHT_FURIOUS,
[5] = KHT_STAND,
[6] = KHT_BITE,
[7] = KHT_COURAGE,
[8] = KHT_ROAR,
[9] = KHT_SHIELD,
[10] = KHT_SPIRIT_MEND,
[11] = KHT_WARP
[4] = KHT_LAST_STAND,
[5] = KHT_MONSTROUS_BITE,
[6] = KHT_ROAR_SACRIFICE,
[7] = KHT_SHELL_SHIELD,
[8] = KHT_SPIRIT_MEND,
[9] = KHT_WARP_TIME
},
[5] = { -- Misc
[1] = KHT_MISC,
[2] = KHT_ARCANE,
[3] = KHT_ASHEN,
[4] = KHT_CHAMPION,
[5] = KHT_BEAST_4PC,
[6] = KHT_BERSERKING,
[7] = KHT_BLOOD_FURY,
[8] = KHT_BLOOD_HUNTER,
[9] = KHT_BLOODLUST,
[10] = KHT_DESOLATION_4PC,
[11] = KHT_DON_SANTOS,
[12] = KHT_DRAGON_8PC,
[13] = KHT_FLAMEWAKER,
[14] = KHT_HEROISM,
[15] = KHT_SAUROK,
[16] = KHT_SCOURGE,
[17] = KHT_STONEFORM,
[18] = KHT_THUNDER,
[19] = KHT_TIME_WARP,
[20] = KHT_WAR_STOMP,
[21] = KHT_WINDRUNNER,
[22] = KHT_WYRMSTALKER,
[23] = KHT_ZG
[2] = KHT_OFF
},
[6] = { -- Trinkets
[1] = KHT_TRINKETS,
[2] = KHT_ABACUS,
[3] = KHT_ADWT,
[4] = KHT_ANVIL,
[5] = KHT_ATOS,
[6] = KHT_SWARMGUARD,
[7] = KHT_BEATING_HEART,
[8] = KHT_BERSERK_CALL,
[9] = KHT_BLADEFIST,
[10] = KHT_BLOODLUST_BROOCH,
[11] = KHT_ARKELOS,
[12] = KHT_DARK_GREAT,
[13] = KHT_DARK_MAD,
[14] = KHT_DARK_WRATH,
[15] = KHT_DEATHBRINGER,
[16] = KHT_VERDICT,
[17] = KHT_DEVIL_EYE,
[18] = KHT_DST,
[19] = KHT_EARTHSTRIKE,
[20] = KHT_EMPTY_MUG,
[21] = KHT_GRIM_TOLL,
[22] = KHT_HOURGLASS,
[23] = KHT_HUNGERER,
[24] = KHT_INCISOR,
[25] = KHT_JOM_GABBAR,
[26] = KHT_KISS_SPIDER,
[27] = KHT_LOATHEB,
[28] = KHT_MOTB,
[29] = KHT_METEORITE,
[30] = KHT_MIRROR,
[31] = KHT_MJOLNIR,
[32] = KHT_NEEDLE,
[33] = KHT_NIGHTSEYE,
[34] = KHT_OGRE,
[35] = KHT_PYRITE_INFUSER,
[36] = KHT_RELICXUEN,
[37] = KHT_SCALES,
[38] = KHT_SHARP_SCALE,
[39] = KHT_SIGNET_EDWARD,
[40] = KHT_SKULL_WAR,
[41] = KHT_SKY_CROSS,
[42] = KHT_TALON_ALAR,
[43] = KHT_TTP,
[44] = KHT_TSUNAMI_TALISMAN,
[45] = KHT_UNITING,
[46] = KHT_FANGED_SKULL,
[47] = KHT_HERO_MEDALLION
[2] = KHT_OFF
}
};
 
KHunterTimers/KHunterTimers.lua
3,26 → 3,24
 
]]
 
local fireTrapTimer = false;
local frostTrapTimer = false;
local natureTrapTimer = false;
local frostTrapTimer = false
local fireTrapTimer = false
local natureTrapTimer = false
local steelTrapTimer = false
 
local khtAutoShot = false;
local khtAutoShot = false
local khtCarve = false;
local khtPetIntim = false;
local khtMulti = false;
local khtSerpentAoE = false;
local khtDireFrenzy = 0;
local khtLacerate = 0
local khtLockLoad = 0;
local khtRapidFire = 0;
local khtImpSteady = 0;
local khtMokNathal = 0
local khtMongoose = 0
local khtSerpent = 0;
local khtSerpentAoE = false;
local khtSniper = 0;
local khtSniperMove = 0;
local khtFrenzy = 0;
local khtMark = 0;
local khtExplosive = 0;
local khtBestialWrath = 0;
local khtThrill = 0;
local khtCobra = 0;
local khtSurvivalist = 0
local khtTrueAim = 0
local khtVulnerable = 0
 
local khtTimeLeft = nil;
 
284,10 → 282,6
local allReadyActive = false;
local bar;
 
if( KHT_sfind( spellName, KHT_STING ) and spellName ~= KHT_BLOOD_HUNT_4PC or string.find( spellName, KHT_CONC_SHOT ) ) then
spellDuration = spellDuration + KHTvars["shotdelay"];
end
 
if( spellName == KHT_INTIM ) then
--DEFAULT_CHAT_FRAME:AddMessage("Intim", 1, 1, 0 );
if( khtPetIntim ) then
302,34 → 296,43
end
end
end
elseif( spellName == KHT_FROST_TRAP.." "..KHT_PRIMED or spellName == KHT_FREEZING_TRAP.." "..KHT_PRIMED and frostTrapTimer ) then
elseif( spellName == KHT_FREEZING_TRAP.." "..KHT_PRIMED and frostTrapTimer ) then
for num = 1, KHTvars["numBars"], 1 do
local barframe = _G["KHunterTimersStatus"..num];
if( barframe.spell == KHT_FROST_TRAP.." "..KHT_PRIMED or barframe.spell == KHT_FREEZING_TRAP.." "..KHT_PRIMED ) then
if( barframe.spell == KHT_FREEZING_TRAP.." "..KHT_PRIMED ) then
allReadyActive = true;
bar = num;
break;
end
end
elseif( spellName == KHT_EXPL_TRAP.." "..KHT_PRIMED and fireTrapTimer ) then
elseif( spellName == KHT_EXPLOSIVE_TRAP.." "..KHT_PRIMED and fireTrapTimer ) then
for num = 1, KHTvars["numBars"], 1 do
local barframe = _G["KHunterTimersStatus"..num];
if( barframe.spell == KHT_EXPL_TRAP.." "..KHT_PRIMED ) then
if( barframe.spell == KHT_EXPLOSIVE_TRAP.." "..KHT_PRIMED ) then
allReadyActive = true;
bar = num;
break;
end
end
elseif( spellName == KHT_SNAKE_TRAP.." "..KHT_PRIMED and natureTrapTimer ) then
elseif( spellName == KHT_TAR_TRAP.." "..KHT_PRIMED and natureTrapTimer ) then
for num = 1, KHTvars["numBars"], 1 do
local barframe = _G["KHunterTimersStatus"..num];
if( barframe.spell == KHT_SNAKE_TRAP.." "..KHT_PRIMED ) then
if( barframe.spell == KHT_TAR_TRAP.." "..KHT_PRIMED ) then
allReadyActive = true;
bar = num;
break;
end
end
elseif( KHT_sfind( spellName, KHT_STING ) and spellName ~= KHT_BLOOD_HUNT_4PC ) then
elseif( spellName == KHT_STEEL_TRAP.." "..KHT_PRIMED and steelTrapTimer ) then
for num = 1, KHTvars["numBars"], 1 do
local barframe = _G["KHunterTimersStatus"..num];
if( barframe.spell == KHT_STEEL_TRAP.." "..KHT_PRIMED ) then
allReadyActive = true;
bar = num;
break;
end
end
elseif( KHT_sfind( spellName, KHT_STING ) ) then
for num = 1, KHTvars["numBars"] do
local barframe = _G["KHunterTimersStatus"..num];
if( KHT_sfind( barframe.spell, KHT_STING ) and ( barframe.GUID == GUID ) ) then
351,7 → 354,7
KHTvars["numBars"] = KHTvars["numBars"] + 1;
bar = 1;
end
elseif( not string.find( spellName, KHT_FLARE ) ) then
else
for num = 1, KHTvars["numBars"], 1 do
local barframe = _G["KHunterTimersStatus"..num];
if( barframe.spell == spellName ) and ( barframe.GUID == GUID ) and ( barframe.spellId == spellId ) then
385,27 → 388,10
--DEFAULT_CHAT_FRAME:AddMessage("WTFBBQ line 214");
return;
end
local texture;
if( string.find( spellName, KHT_FREEZING_TRAP ) )then
texture = KHTvars["textures"][KHT_FREEZING_TRAP]
elseif( string.find( spellName, KHT_FROST_TRAP ) ) then
texture = KHTvars["textures"][KHT_FROST_TRAP]
elseif( string.find( spellName, KHT_EXPL_TRAP ) ) then
texture = KHTvars["textures"][KHT_EXPL_TRAP]
elseif( string.find( spellName, KHT_SNAKE_TRAP ) ) then
texture = KHTvars["textures"][KHT_SNAKE_TRAP]
elseif( string.find( spellName, KHT_PET_INTIM ) ) then
texture = KHTvars["textures"][KHT_INTIM];
elseif( spellName == KHT_WYVERN_TEXT ) then
texture = KHTvars["textures"][KHT_WYVERN];
elseif( spellName == KHT_SERPENT.." (AoE)" ) then
texture = KHTvars["textures"][KHT_SERPENT];
elseif( spellName == KHT_AUTO_SHOT ) then
texture = GetInventoryItemTexture("player", 16);
else
texture = KHTvars["textures"][spellName];
end
icon:SetTexture(texture);
 
local texture = GetSpellTexture(spellId)
 
icon:SetTexture(texture)
barframe.spell = spellName;
barframe.spellId = spellId;
barframe.texture = texture;
419,7 → 405,7
 
-- Add support for adding stack count to bar label (for Frenzy)
local baseLeftText = KHTColor(unpack(KHTvars["skillcolor"]))..spellName;
if count then
if count and count > 0 then
baseLeftText = baseLeftText.." x"..count;
end
 
545,13 → 531,14
bartext:SetText( KHT_DONE );
if( khtPetIntim ) and ( text == KHT_PET_INTIM ) then
khtPetIntim = false;
elseif( frostTrapTimer ) and ( text == KHT_FROST_TRAP.." "..KHT_PRIMED or
text == KHT_FREEZING_TRAP.." "..KHT_PRIMED ) then
elseif( frostTrapTimer ) and ( text == KHT_FREEZING_TRAP.." "..KHT_PRIMED ) then
frostTrapTimer = false;
elseif( fireTrapTimer ) and ( text == KHT_EXPL_TRAP.." "..KHT_PRIMED ) then
elseif( fireTrapTimer ) and ( text == KHT_EXPLOSIVE_TRAP.." "..KHT_PRIMED ) then
fireTrapTimer = false;
elseif( natureTrapTimer ) and ( text == KHT_SNAKE_TRAP.." "..KHT_PRIMED ) then
elseif( natureTrapTimer ) and ( text == KHT_TAR_TRAP.." "..KHT_PRIMED ) then
natureTrapTimer = false;
elseif( steelTrapTimer ) and ( text == KHT_STEEL_TRAP.." "..KHT_PRIMED ) then
steelTrapTimer = false;
end
return;
end
629,7 → 616,7
end
 
function KHunterTimersTab_OnClick(self)
for i=1,6 do
for i=1,KHT_NUM_TABS do
if ( self:GetID() == i ) then
_G["KHunterTimersOptionsTimers"..i]:Show();
else
815,6 → 802,7
end
end
 
 
function KHunterTimers6ScrollBar_OnClick()
local line; -- 1 through 13 of our window to scroll
local lineplusoffset; -- an index into our data calculated from the scroll offset
874,12 → 862,13
KHTvars["skills"] = {};
end
 
if( KHTvars["version"] == nil or KHTvars["version"] < 2.9 ) then
if( KHTvars["version"] == nil or KHTvars["version"] < 3.8 ) then
KHTvars["skills"] = {};
KHTvars["version"] = 3.0;
KHTvars["textures"] = {};
KHTvars["version"] = 3.8;
end
 
for i=1, 6 do
for i=1, KHT_NUM_TABS do
for j=1, KHT_NUM_TIMERS[i] do
if ( KHTvars["skills"][KHT_OPTIONS_TIMERS[i][j]] == nil ) then
KHTvars["skills"][KHT_OPTIONS_TIMERS[i][j]] = true;
1033,18 → 1022,14
KHTvars["sticky"] = true;
end
 
if( KHTvars["traptimemult"] == nil ) then
KHTvars["traptimemult"] = 1;
if( KHTvars["cheetahtimeadd"] == nil ) then
KHTvars["cheetahtimeadd"] = 0;
end
 
if( KHTvars["entrampentmult"] == nil ) then
KHTvars["entrapmentmult"] = 0;
if( KHTvars["serpentsting"] == nil ) then
KHTvars["serpentsting"] = false;
end
 
if( KHTvars["impconc"] == nil ) then
KHTvars["impconc"] = 0;
end
 
if( KHTvars["bartexture"] == nil ) then
KHTvars["bartexture"] = "Interface\\TargetingFrame\\UI-TargetingFrame-BarFill";
end
1090,7 → 1075,6
end
if( event == "PLAYER_LOGIN" ) then
KHunterTimers_SetSettings();
KHunterTimers_UpdateSpells();
KHunterTimers_UpdateTalents();
 
KHunterTimersOptions:SetScale(UIParent:GetScale());
1098,7 → 1082,7
if( KHTvars["KHunterTimersAnchor"] == nil ) then
KHTvars["KHunterTimersAnchor"] = {};
KHunterTimers_SavePos( _G["KHunterTimersAnchor"] );
KHTvars["version"] = 3.0;
KHTvars["version"] = 3.8;
end
 
KHunterTimers_ResetPos( _G["KHunterTimersAnchor"] );
1106,7 → 1090,7
if( KHTvars["KHunterTimersOptions"] == nil ) then
KHTvars["KHunterTimersOptions"] = {};
KHunterTimers_SavePos( _G["KHunterTimersOptions"] );
KHTvars["version"] = 3.0;
KHTvars["version"] = 3.8;
end
 
KHunterTimers_ResetPos( _G["KHunterTimersOptions"] );
1115,7 → 1099,6
end
if( event == "PLAYER_TALENT_UPDATE" or event == "UNIT_INVENTORY_CHANGED" ) then
-- DEFAULT_CHAT_FRAME:AddMessage(event.." spell update")
KHunterTimers_UpdateSpells();
KHunterTimers_UpdateTalents();
return;
end
1166,53 → 1149,41
if( combatEvent == "PARTY_KILL" or combatEvent == "UNIT_DIED" or combatEvent == "UNIT_DESTROYED" ) then
if( KHTvars["numBars"] > 0 ) then
for num = 1, KHTvars["numBars"], 1 do
local barframe = _G["KHunterTimersStatus"..num];
local barframe = _G["KHunterTimersStatus"..num]
if( barframe.GUID ~= nil ) then
if ( barframe.GUID == destGUID ) then
barframe.endTime = 0;
barframe.endTime = 0
end
end
end
end
elseif( combatEvent == "SPELL_CAST_SUCCESS" and fromPlayer ) then
if( KHTvars["skills"][KHT_BEAST] ) then
if( KHTvars["skills"][KHT_INTIM] and spellName == KHT_INTIM and spellId == 19577 ) then
khtPetIntim = true;
KHunterTimersFrame_add( 15000, KHT_PET_INTIM );
elseif( KHTvars["skills"][KHT_FEED_PET] and spellName == KHT_FEED_PET ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_MEND_PET] and spellName == KHT_MEND_PET ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_STAMPEDE] and spellName == KHT_STAMPEDE ) then
KHunterTimersFrame_add( 40000, spellName, spellId );
elseif( KHTvars["skills"][KHT_CROWS] and spellName == KHT_CROWS ) then
KHunterTimersFrame_add( 15000, spellName, spellId, destName, destGUID );
end
end
if( KHTvars["skills"][KHT_MARKS] ) then
if( KHTvars["skills"][KHT_CONC_SHOT] and spellName == KHT_CONC_SHOT ) then
KHunterTimersFrame_add( 6000 + KHTvars["impconc"], spellName, spellId, destName, destGUID );
if( KHTvars["skills"][KHT_COMMON] ) then
if( KHTvars["skills"][KHT_ARCANE_TORRENT] and spellName == KHT_ARCANE_TORRENT ) then
KHunterTimersFrame_add( 2000, spellName, spellId );
elseif( KHTvars["skills"][KHT_FLARE] and spellName == KHT_FLARE ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
KHunterTimersFrame_add( 20000, spellName, spellId )
elseif( KHTvars["skills"][KHT_WAR_STOMP] and spellName == KHT_WAR_STOMP ) then
KHunterTimersFrame_add( 2000, spellName, spellId );
end
end
if( KHTvars["skills"][KHT_SURV] ) then
if( KHTvars["skills"][KHT_DETERRENCE] and spellName == KHT_DETERRENCE ) then
KHunterTimersFrame_add( 5000, spellName, spellId );
elseif( KHTvars["skills"][KHT_SERPENT] and spellName == KHT_SERPENT ) then
if( KHTvars["skills"][KHT_TALENT] ) then
if( KHTvars["skills"][KHT_MURDER_CROWS] and spellName == KHT_MURDER_CROWS ) then
KHunterTimersFrame_add( 15000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_CALTROPS] and spellName == KHT_CALTROPS and spellId == 194277 ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_INTIM] and spellName == KHT_INTIM and spellId == 19577 ) then
khtPetIntim = true;
KHunterTimersFrame_add( 15000, KHT_PET_INTIM, spellId );
elseif( KHTvars["skills"][KHT_SERPENT_STING] and spellName == KHT_SERPENT_STING ) then
KHunterTimersFrame_add( 15000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_STAMPEDE] and spellName == KHT_STAMPEDE ) then
KHunterTimersFrame_add( 12000, spellName, spellId );
end
end
if( KHTvars["skills"][KHT_MISC] ) then
if( KHTvars["skills"][KHT_WAR_STOMP] and spellName == KHT_WAR_STOMP ) then
KHunterTimersFrame_add( 2000, spellName, spellId );
elseif( KHTvars["skills"][KHT_ARCANE] and spellName == KHT_ARCANE ) then
KHunterTimersFrame_add( 2000, spellName, spellId );
end
if( spellName == KHT_CARVE ) then
khtCarve = true;
end
if( spellName == KHT_MULTI ) then
khtMulti = true;
end
elseif( combatEvent == "SPELL_MISSED" and ( fromPlayer or fromPet ) ) then
if( frostTrapTimer and string.find( spellName, KHT_FREEZING_TRAP ) ) then
for i=1, KHTvars["numBars"] do
1229,482 → 1200,298
end
end
end
elseif( combatEvent == "SPELL_SUMMON" ) then
if( fromPlayer or fromPet ) then
if( KHTvars["skills"][KHT_MISC] ) then
if( KHTvars["skills"][KHT_SAUROK] and spellName == KHT_SAUROK_2PC ) then
KHunterTimersFrame_add( 10000, spellName, spellId, destName, destGUID );
end
end
end
elseif( combatEvent == "SPELL_AURA_APPLIED" ) then
if( toPlayer or toPet ) then
if( KHTvars["skills"][KHT_BEAST] ) then
if( KHTvars["skills"][KHT_FOCUS_FIRE] and spellName == KHT_FOCUS_FIRE ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
elseif( KHTvars["skills"][KHT_CLEAVE] and spellName == KHT_CLEAVE ) then
KHunterTimersFrame_add( 4000, spellName, spellId );
end
end
if( KHTvars["skills"][KHT_MARKS] ) then
if( KHTvars["skills"][KHT_STEADY_FOCUS] and spellName == KHT_STEADY_FOCUS ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
end
end
if( KHTvars["skills"][KHT_SURV] ) then
if( KHTvars["skills"][KHT_MISDIRECTION] and spellName == KHT_MISDIRECTION and spellId == 35079 ) then
if( KHTvars["skills"][KHT_SPECIAL] ) then
if( KHTvars["skills"][KHT_ASPECT_EAGLE] and spellName == KHT_ASPECT_EAGLE ) then
KHunterTimersFrame_add( 10000, spellName, spellId )
elseif( KHTvars["skills"][KHT_ASPECT_WILD] and spellName == KHT_ASPECT_WILD ) then
KHunterTimersFrame_add( 10000, spellName, spellId )
elseif( KHTvars["skills"][KHT_BEAST_CLEAVE] and spellName == KHT_BEAST_CLEAVE ) then
KHunterTimersFrame_add( 4000, spellName, spellId )
elseif( KHTvars["skills"][KHT_BESTIAL_WRATH] and spellName == KHT_BESTIAL_WRATH and spellId == 19574 ) then
KHunterTimersFrame_add( 15000, spellName, spellId )
elseif( KHTvars["skills"][KHT_BOMBARDMENT] and spellName == KHT_BOMBARDMENT ) then
KHunterTimersFrame_add( 5000, spellName, spellId )
elseif( KHTvars["skills"][KHT_DIRE_BEAST] and spellName == KHT_DIRE_BEAST ) then
KHunterTimersFrame_add( 8000, spellName, spellId )
elseif( KHTvars["skills"][KHT_MARKING] and spellName == KHT_MARKING ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_MISDIRECTION] and spellName == KHT_MISDIRECTION and spellId == 35079 ) then
KHunterTimersFrame_add( 8000, spellName, spellId );
elseif( KHTvars["skills"][KHT_CAMO] and spellName == KHT_CAMO ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
elseif( KHTvars["skills"][KHT_TRUESHOT] and spellName == KHT_TRUESHOT ) then
KHunterTimersFrame_add( 15000, spellName, spellId )
end
end
if( KHTvars["skills"][KHT_PETS] ) then
if( KHTvars["skills"][KHT_STAND] and spellName == KHT_STAND ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
elseif( KHTvars["skills"][KHT_BITE] and spellName == KHT_BITE_PROC ) then
KHunterTimersFrame_add( 12000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DASH] and spellName == KHT_DASH ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_FURIOUS] and spellName == KHT_FURIOUS ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
elseif( KHTvars["skills"][KHT_WARP] and spellName == KHT_WARP and spellId == 35346 ) then
if( KHTvars["skills"][KHT_TALENT] ) then
if( KHTvars["skills"][KHT_BESTIAL_TENACITY] and spellName == KHT_BESTIAL_TENACITY ) then
KHunterTimersFrame_add( 6000, spellName, spellId );
elseif( KHTvars["skills"][KHT_SHIELD] and spellName == KHT_SHIELD ) then
KHunterTimersFrame_add( 12000, spellName, spellId );
elseif( KHTvars["skills"][KHT_ANKLE] and spellName == KHT_ANKLE ) then
KHunterTimersFrame_add( 6000, spellName, spellId );
elseif( KHTvars["skills"][KHT_COURAGE] and spellName == KHT_COURAGE ) then
elseif( KHTvars["skills"][KHT_CAMO] and spellName == KHT_CAMO ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
elseif( KHTvars["skills"][KHT_INSTINCT_CHEETAH] and spellName == KHT_INSTINCT_CHEETAH ) then
KHunterTimersFrame_add( 7000, spellName, spellId );
elseif( KHTvars["skills"][KHT_INSTINCT_MONGOOSE] and spellName == KHT_INSTINCT_MONGOOSE ) then
KHunterTimersFrame_add( 7000, spellName, spellId );
elseif( KHTvars["skills"][KHT_INSTINCT_RAPTOR] and spellName == KHT_INSTINCT_RAPTOR ) then
KHunterTimersFrame_add( 7000, spellName, spellId );
elseif( KHTvars["skills"][KHT_POSTHASTE] and spellName == KHT_POSTHASTE ) then
KHunterTimersFrame_add( 8000, spellName, spellId );
elseif( KHTvars["skills"][KHT_SPITTING_COBRA] and spellName == KHT_SPITTING_COBRA ) then
KHunterTimersFrame_add( 30000, spellName, spellId );
elseif( KHTvars["skills"][KHT_STEADY_FOCUS] and spellName == KHT_STEADY_FOCUS ) then
KHunterTimersFrame_add( 12000, spellName, spellId );
end
end
if( KHTvars["skills"][KHT_MISC] ) then
if( KHTvars["skills"][KHT_BERSERKING] and spellName == KHT_BERSERKING ) then
if( KHTvars["skills"][KHT_COMMON] ) then
if( KHTvars["skills"][KHT_ASPECT_CHEETAH] and spellName == KHT_ASPECT_CHEETAH and spellId == 186257 ) then
KHunterTimersFrame_add( 3000+KHTvars["cheetahtimeadd"], spellName, spellId )
elseif( KHTvars["skills"][KHT_ASPECT_CHEETAH] and spellName == KHT_ASPECT_CHEETAH and spellId == 186258 ) then
KHunterTimersFrame_add( 9000+KHTvars["cheetahtimeadd"], spellName, spellId )
elseif( KHTvars["skills"][KHT_ASPECT_TURTLE] and spellName == KHT_ASPECT_TURTLE ) then
KHunterTimersFrame_add( 8000, spellName, spellId )
elseif( KHTvars["skills"][KHT_BERSERKING] and spellName == KHT_BERSERKING ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_BLOOD_FURY] and spellName == KHT_BLOOD_FURY ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_STONEFORM] and spellName == KHT_STONEFORM ) then
KHunterTimersFrame_add( 8000, spellName, spellId );
elseif( KHTvars["skills"][KHT_ZG] and spellName == KHT_PRIMAL ) then
KHunterTimersFrame_add( 12000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DON_SANTOS] and spellName == KHT_SANTOS ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DESOLATION_4PC] and spellName == KHT_HEROIC ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_THUNDER] and spellName == KHT_SKYFIRE ) then
KHunterTimersFrame_add( 6000, spellName, spellId );
elseif( KHTvars["skills"][KHT_BEAST_4PC] and spellName == KHT_BEASTLORD ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_CHAMPION] and spellName == KHT_CHAMPION ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_SCOURGE] and spellName == KHT_PRECISION ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_HEROISM] and spellName == KHT_HEROISM and spellId == 32182 ) then
KHunterTimersFrame_add( 40000, spellName, spellId );
elseif( KHTvars["skills"][KHT_BLOODLUST] and spellName == KHT_BLOODLUST ) then
KHunterTimersFrame_add( 40000, spellName, spellId );
elseif( KHTvars["skills"][KHT_ASHEN] and spellName == KHT_ASHEN_VERDICT ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_BLOOD_HUNTER] and spellName == KHT_BLOOD_HUNT_2PC ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_BLOOD_HUNTER] and spellName == KHT_BLOOD_HUNT_4PC ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_WINDRUNNER] and spellName == KHT_WINDRUNNER_4PC and spellId == 68130 ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_FLAMEWAKER] and spellName == KHT_FLAMEWAKER_4PC and spellId == 99060 ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_HEROISM] and spellName == KHT_HEROISM and spellId == 32182 ) then
KHunterTimersFrame_add( 40000, spellName, spellId );
elseif( KHTvars["skills"][KHT_MEND_PET] and spellName == KHT_MEND_PET ) then
KHunterTimersFrame_add( 10000, spellName, spellId )
elseif( KHTvars["skills"][KHT_STONEFORM] and spellName == KHT_STONEFORM ) then
KHunterTimersFrame_add( 8000, spellName, spellId );
elseif( KHTvars["skills"][KHT_TIME_WARP] and spellName == KHT_TIME_WARP and spellId == 80353 ) then
KHunterTimersFrame_add( 40000, spellName, spellId );
elseif( KHTvars["skills"][KHT_WYRMSTALKER] and spellName == KHT_WYRMSTALKER_4PC ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
end
end
if( KHTvars["skills"][KHT_TRINKETS] ) then
if( KHTvars["skills"][KHT_DEVIL_EYE] and spellName == KHT_DEVILSAUR ) then
if( KHTvars["skills"][KHT_PETS] ) then
if( KHTvars["skills"][KHT_DASH] and spellName == KHT_DASH ) then
KHunterTimersFrame_add( 16000, spellName, spellId );
elseif( KHTvars["skills"][KHT_LAST_STAND] and spellName == KHT_LAST_STAND ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
elseif( KHTvars["skills"][KHT_HERO_MEDALLION] and spellName == KHT_ZHM ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
elseif( KHTvars["skills"][KHT_EARTHSTRIKE] and spellName == KHT_EARTHSTRIKE ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
elseif( KHTvars["skills"][KHT_SWARMGUARD] and spellName == KHT_SWARMGUARD ) then
KHunterTimersFrame_add( 30000, spellName, spellId );
elseif( KHTvars["skills"][KHT_JOM_GABBAR] and spellName == KHT_JOM_GABBAR ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
elseif( KHTvars["skills"][KHT_KISS_SPIDER] and spellName == KHT_KISS_SPIDER ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( ( KHTvars["skills"][KHT_ADWT] or KHTvars["skills"][KHT_BLADEFIST] ) and spellName == KHT_FEROCITY ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( ( KHTvars["skills"][KHT_OGRE] or KHTvars["skills"][KHT_UNITING] ) and spellName == KHT_BURNING_HATRED ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_ARKELOS] and spellName == KHT_ANCIENT_POWER ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
elseif( KHTvars["skills"][KHT_NIGHTSEYE] and spellName == KHT_NIGHTSEYE ) then
elseif( KHTvars["skills"][KHT_SHELL_SHIELD] and spellName == KHT_SHELL_SHIELD ) then
KHunterTimersFrame_add( 12000, spellName, spellId );
elseif( KHTvars["skills"][KHT_HOURGLASS] and spellName == KHT_UNRAVELLER ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_BLOODLUST_BROOCH] and spellName == KHT_LUST ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
elseif( KHTvars["skills"][KHT_ABACUS] and spellName == KHT_ABACUS ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DST] and spellName == KHT_DRAGON ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_TTP] and spellName == KHT_HEROISM and spellId == 39200 ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_TSUNAMI_TALISMAN] and spellName == KHT_TSUNAMI ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_ATOS] and spellName == KHT_ASHTONGUE ) then
KHunterTimersFrame_add( 8000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_WRATH] and spellName == KHT_WRATH ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_MAD] and spellName == KHT_DELUSIONAL ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_MAD] and spellName == KHT_KLEPTOMANIA ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_MAD] and spellName == KHT_MANIC ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_MAD] and spellName == KHT_MARTYR ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_MAD] and spellName == KHT_NARCISSISM ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_MAD] and spellName == KHT_PARANOIA ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
elseif( KHTvars["skills"][KHT_TALON_ALAR] and spellName == KHT_TALON ) then
KHunterTimersFrame_add( 6000, spellName, spellId );
elseif( KHTvars["skills"][KHT_SKY_CROSS] and spellName == KHT_SKYGUARD ) then
KHunterTimersFrame_add( 30000, spellName, spellId );
elseif( KHTvars["skills"][KHT_MOTB] and spellName == KHT_MADNESS ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_BERSERK_CALL] and spellName == KHT_BERSERKER ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
elseif( KHTvars["skills"][KHT_EMPTY_MUG] and spellName == KHT_DIREBREW ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
elseif( KHTvars["skills"][KHT_INCISOR] and spellName == KHT_INCISOR ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
elseif( ( KHTvars["skills"][KHT_ANVIL] or KHTvars["skills"][KHT_MIRROR] ) and spellName == KHT_TORMENT ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_GREAT] and spellName == KHT_GREATNESS and spellId == 60233 ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_LOATHEB] and spellName == KHT_LOATHEB ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
elseif( KHTvars["skills"][KHT_SIGNET_EDWARD] and spellName == KHT_EDWARD ) then
KHunterTimersFrame_add( 13000, spellName, spellId );
elseif( KHTvars["skills"][KHT_METEORITE] and spellName == KHT_METEORITE ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_PYRITE_INFUSER] and spellName == KHT_PYRITE ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_VERDICT] and spellName == KHT_PARAGON and spellId == 67703 ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_VERDICT] and spellName == KHT_PARAGON and spellId == 67772 ) then
KHunterTimersFrame_add( 15000, spellName.." (H)", spellId );
elseif( KHTvars["skills"][KHT_MJOLNIR] and spellName == KHT_MJOLNIR ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_GRIM_TOLL] and spellName == KHT_GRIM_TOLL ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_NEEDLE] and spellName == KHT_NES ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DEATHBRINGER] and spellName == KHT_DEATH_AGI and spellId == 71485 ) then
KHunterTimersFrame_add( 30000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DEATHBRINGER] and spellName == KHT_DEATH_AGI and spellId == 71556 ) then
KHunterTimersFrame_add( 30000, spellName.." (H)", spellId );
elseif( KHTvars["skills"][KHT_DEATHBRINGER] and spellName == KHT_DEATH_AP and spellId == 71486 ) then
KHunterTimersFrame_add( 30000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DEATHBRINGER] and spellName == KHT_DEATH_AP and spellId == 71558 ) then
KHunterTimersFrame_add( 30000, spellName.." (H)", spellId );
elseif( KHTvars["skills"][KHT_DEATHBRINGER] and spellName == KHT_DEATH_CRIT and spellId == 71491 ) then
KHunterTimersFrame_add( 30000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DEATHBRINGER] and spellName == KHT_DEATH_CRIT and spellId == 71559 ) then
KHunterTimersFrame_add( 30000, spellName.." (H)", spellId );
elseif( KHTvars["skills"][KHT_FANGED_SKULL] and spellName == KHT_FANGED and spellId == 71401 ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_FANGED_SKULL] and spellName == KHT_FANGED and spellId == 71541 ) then
KHunterTimersFrame_add( 15000, spellName.." (H)", spellId );
elseif( KHTvars["skills"][KHT_SHARP_SCALE] and spellName == KHT_STS and spellId == 75458 ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_SHARP_SCALE] and spellName == KHT_STS and spellId == 75456 ) then
KHunterTimersFrame_add( 15000, spellName.." (H)", spellId );
elseif( KHTvars["skills"][KHT_HUNGERER] and spellName == KHT_HUNGER and spellId == 96911 ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_HUNGERER] and spellName == KHT_HUNGER and spellId == 97125 ) then
KHunterTimersFrame_add( 15000, spellName.." (H)", spellId );
elseif( KHTvars["skills"][KHT_RELICXUEN] and spellName == KHT_XUEN and spellId == 128984 ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_SCALES] and spellName == KHT_SCALESDOOM ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_BEATING_HEART] and spellName == KHT_BEATING ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
elseif( KHTvars["skills"][KHT_SKULL_WAR] and spellName == KHT_SKULL ) then
KHunterTimersFrame_add( 20000, spellName, spellId );
end
end
end
if( fromPlayer or fromPet ) then
if( KHTvars["skills"][KHT_BEAST] ) then
if( KHTvars["skills"][KHT_INTIM] and spellName == KHT_INTIM and spellId == 24394 ) then
KHunterTimersFrame_add( 3000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_DIRE] and spellName == KHT_DIRE ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
if( KHTvars["skills"][KHT_SPECIAL] ) then
if( KHTvars["skills"][KHT_BURST_SHOT] and spellName == KHT_BURST_SHOT ) then
KHunterTimersFrame_add( 4000, spellName, spellId )
elseif( KHTvars["skills"][KHT_CONCUSS_SHOT] and spellName == KHT_CONCUSS_SHOT ) then
KHunterTimersFrame_add( 6000, spellName, spellId, destName, destGUID )
elseif( KHTvars["skills"][KHT_COUNTER_SHOT] and spellName == KHT_COUNTER_SHOT ) then
KHunterTimersFrame_add( 3000, spellName, spellId, destName, destGUID )
elseif( string.find( spellName, KHT_EXPLOSIVE_TRAP ) ) then
if( fireTrapTimer ) then
for num = 1, KHTvars["numBars"] do
local barframe = _G[ "KHunterTimersStatus"..num];
if( barframe.spell == KHT_EXPLOSIVE_TRAP.." "..KHT_PRIMED ) then
barframe.endTime = 0;
end
end
if( KHTvars["skills"][KHT_EXPLOSIVE_TRAP] and string.find( spellName, KHT_EXPLOSIVE_TRAP ) ) then
KHunterTimersFrame_add( 10000, KHT_EXPLOSIVE_TRAP.." "..KHT_AURA, spellId );
end
end
elseif( string.find( spellName, KHT_FREEZING_TRAP ) ) then
if( frostTrapTimer ) then
for num = 1, KHTvars["numBars"] do
local barframe = _G[ "KHunterTimersStatus"..num];
if( barframe.spell == KHT_FREEZING_TRAP.." "..KHT_PRIMED ) then
barframe.endTime = 0;
end
end
if( KHTvars["skills"][KHT_FREEZING_TRAP] and string.find( spellName, KHT_FREEZING_TRAP ) ) then
KHunterTimersFrame_add( 60000, KHT_FREEZING_TRAP, spellId, destName, destGUID );
end
end
elseif( string.find( spellName, KHT_TAR_TRAP ) ) then
if( natureTrapTimer ) then
for num = 1, KHTvars["numBars"] do
local barframe = _G[ "KHunterTimersStatus"..num];
if( barframe.spell == KHT_TAR_TRAP.." "..KHT_PRIMED ) then
barframe.endTime = 0;
end
end
if( KHTvars["skills"][KHT_TAR_TRAP] and string.find( spellName, KHT_TAR_TRAP ) ) then
KHunterTimersFrame_add( 30000, KHT_TAR_TRAP.." "..KHT_AURA, spellId );
end
end
elseif( KHTvars["skills"][KHT_HARPOON] and spellName == KHT_HARPOON ) then
KHunterTimersFrame_add( 3000, spellName, spellId, destName, destGUID )
elseif( KHTvars["skills"][KHT_HUNTERS_MARK] and spellName == KHT_HUNTERS_MARK ) then
KHunterTimersFrame_add( 12000, spellName, spellId, destName, destGUID )
elseif( KHTvars["skills"][KHT_MUZZLE] and spellName == KHT_MUZZLE ) then
KHunterTimersFrame_add( 3000, spellName, spellId, destName, destGUID )
elseif( KHTvars["skills"][KHT_WING_CLIP] and spellName == KHT_WING_CLIP ) then
KHunterTimersFrame_add( 15000, spellName, spellId, destName, destGUID )
end
end
if( KHTvars["skills"][KHT_MARKS] ) then
if( KHTvars["skills"][KHT_GLAIVE] and spellName == KHT_GLAIVE ) then
KHunterTimersFrame_add( 3000, spellName );
end
end
if( KHTvars["skills"][KHT_SURV] ) then
if( KHTvars["skills"][KHT_SERPENT] and spellName == KHT_SERPENT and spellId == 118253 and khtMulti ) then
if (GetSpecialization() == 3) then
khtSerpentAoE = true;
end
khtMulti = false;
elseif( KHTvars["skills"][KHT_WYVERN] and spellName == KHT_WYVERN and spellId == 24131 ) then
if( KHTvars["skills"][KHT_TALENT] ) then
if( KHTvars["skills"][KHT_BESTIAL_CUNNING] and spellName == KHT_BESTIAL_CUNNING ) then
KHunterTimersFrame_add( 4000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_BESTIAL_FEROCITY] and spellName == KHT_BESTIAL_FEROCITY ) then
KHunterTimersFrame_add( 6000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_WYVERN] and spellName == KHT_WYVERN and spellId == 19386 ) then
KHunterTimersFrame_add( 30000, KHT_WYVERN_TEXT, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_ENTRAPMENT] and spellName == KHT_ENTRAPMENT ) then
KHunterTimersFrame_add( KHTvars["entrapmentmult"], spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_BLACK_ARROW] and spellName == KHT_BLACK_ARROW ) then
KHunterTimersFrame_add( 20000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_BINDING] and spellName == KHT_BINDING ) then
elseif( KHTvars["skills"][KHT_BINDING_SHOT] and spellName == KHT_BINDING_SHOT ) then
KHunterTimersFrame_add( 10000, spellName, spellId, destName, destGUID );
elseif( string.find( spellName, KHT_FROST_TRAP ) or string.find( spellName, KHT_FREEZING_TRAP ) ) then
if( frostTrapTimer ) then
for num = 1, KHTvars["numBars"] do
local barframe = _G[ "KHunterTimersStatus"..num];
if( barframe.spell == KHT_FROST_TRAP.." "..KHT_PRIMED or
barframe.spell == KHT_FREEZING_TRAP.." "..KHT_PRIMED ) then
barframe.endTime = 0;
end
end
if( KHTvars["skills"][KHT_FREEZING_TRAP] and string.find( spellName, KHT_FREEZING_TRAP ) ) then
local duration = 60000*KHTvars["traptimemult"];
KHunterTimersFrame_add( duration, KHT_FREEZING_TRAP, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_FROST_TRAP] and string.find( spellName, KHT_FROST_TRAP ) ) then
KHunterTimersFrame_add( 30000*KHTvars["traptimemult"], KHT_FROST_TRAP.." "..KHT_AURA, spellId );
end
end
elseif( string.find( spellName, KHT_EXPL_TRAP ) ) then
if( fireTrapTimer ) then
for num = 1, KHTvars["numBars"] do
local barframe = _G[ "KHunterTimersStatus"..num];
if( barframe.spell == KHT_EXPL_TRAP.." "..KHT_PRIMED ) then
barframe.endTime = 0;
end
end
if( KHTvars["skills"][KHT_EXPL_TRAP] and string.find( spellName, KHT_EXPL_TRAP ) ) then
KHunterTimersFrame_add( 20000, KHT_EXPL_TRAP.." "..KHT_AURA, spellId );
end
end
elseif( KHTvars["skills"][KHT_BLACK_ARROW] and spellName == KHT_BLACK_ARROW ) then
KHunterTimersFrame_add( 8000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_CAREFUL_AIM] and spellName == KHT_CAREFUL_AIM ) then
KHunterTimersFrame_add( 8000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_DRAGON_GRENADE] and spellName == KHT_DRAGON_GRENADE ) then
KHunterTimersFrame_add( 8000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_INTIM] and spellName == KHT_INTIM and spellId == 24394 ) then
KHunterTimersFrame_add( 5000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_RANGERS_NET] and spellName == KHT_RANGERS_NET and spellId == 200108 ) then
KHunterTimersFrame_add( 3000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_RANGERS_NET] and spellName == KHT_RANGERS_NET and spellId == 206755 ) then
KHunterTimersFrame_add( 15000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_SERPENT_STING] and spellName == KHT_SERPENT_STING and spellId == 118253 and khtCarve ) then
if( KHTvars["serpentsting"] ) then
khtSerpentAoE = true;
end
khtCarve = false;
elseif( string.find( spellName, KHT_STEEL_TRAP ) and spellId == 162480 ) then
if( steelTrapTimer ) then
for num = 1, KHTvars["numBars"] do
local barframe = _G[ "KHunterTimersStatus"..num];
if( barframe.spell == KHT_STEEL_TRAP.." "..KHT_PRIMED ) then
barframe.endTime = 0;
end
end
if( KHTvars["skills"][KHT_STEEL_TRAP] and string.find( spellName, KHT_STEEL_TRAP ) ) then
KHunterTimersFrame_add( 30000, KHT_STEEL_TRAP, spellId, destName, destGUID );
end
end
elseif( KHTvars["skills"][KHT_STICKY_BOMB] and spellName == KHT_STICKY_BOMB and spellId == 191241 ) then
KHunterTimersFrame_add( 3000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_WYVERN] and spellName == KHT_WYVERN ) then
KHunterTimersFrame_add( 30000, KHT_WYVERN, spellId, destName, destGUID );
end
end
end
if( KHTvars["skills"][KHT_PETS] ) then
if( KHTvars["skills"][KHT_ROAR] and spellName == KHT_ROAR ) then
if( KHTvars["skills"][KHT_ANKLE_CRACK] and spellName == KHT_ANKLE_CRACK ) then
KHunterTimersFrame_add( 6000, spellName, spellId );
elseif( KHTvars["skills"][KHT_MONSTROUS_BITE] and spellName == KHT_MONSTROUS_BITE ) then
KHunterTimersFrame_add( 10000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_ROAR_SACRIFICE] and spellName == KHT_ROAR_SACRIFICE ) then
KHunterTimersFrame_add( 12000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_SPIRIT_MEND] and spellName == KHT_SPIRIT_MEND ) then
KHunterTimersFrame_add( 10000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_WARP_TIME] and spellName == KHT_WARP_TIME and spellId == 35346 ) then
KHunterTimersFrame_add( 6000, spellName, spellId );
end
end
if( KHTvars["skills"][KHT_MISC] ) then
if( KHTvars["skills"][KHT_DRAGON_8PC] and spellName == KHT_EXPOSE_DS and spellId == 23577 ) then
KHunterTimersFrame_add( 7000, spellName, spellId, destName, destGUID );
end
end
end
elseif( combatEvent == "SPELL_AURA_APPLIED_DOSE" ) then
if( toPlayer or toPet ) then
if( KHTvars["skills"][KHT_PETS] ) then
if( KHTvars["skills"][KHT_BITE] and spellName == KHT_BITE_PROC ) then
KHunterTimersFrame_add( 12000, spellName, spellId );
end
end
end
elseif( combatEvent == "SPELL_AURA_REFRESH" ) then
if ( toPlayer or toPet ) then
if( KHTvars["skills"][KHT_BEAST] ) then
if( KHTvars["skills"][KHT_CLEAVE] and spellName == KHT_CLEAVE ) then
KHunterTimersFrame_add( 4000, spellName, spellId );
end
end
if( KHTvars["skills"][KHT_MARKS] ) then
if( KHTvars["skills"][KHT_STEADY_FOCUS] and spellName == KHT_STEADY_FOCUS ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
end
end
if( KHTvars["skills"][KHT_SURV] ) then
if( KHTvars["skills"][KHT_MISDIRECTION] and spellName == KHT_MISDIRECTION and spellId == 35079 ) then
if( KHTvars["skills"][KHT_SPECIAL] ) then
if( KHTvars["skills"][KHT_BEAST_CLEAVE] and spellName == KHT_BEAST_CLEAVE ) then
KHunterTimersFrame_add( 4000, spellName, spellId )
elseif( KHTvars["skills"][KHT_BOMBARDMENT] and spellName == KHT_BOMBARDMENT ) then
KHunterTimersFrame_add( 5000, spellName, spellId )
elseif( KHTvars["skills"][KHT_MARKING] and spellName == KHT_MARKING ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_MISDIRECTION] and spellName == KHT_MISDIRECTION and spellId == 35079 ) then
KHunterTimersFrame_add( 8000, spellName, spellId );
end
end
if( KHTvars["skills"][KHT_PETS] ) then
if( KHTvars["skills"][KHT_COURAGE] and spellName == KHT_COURAGE ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
end
end
if( KHTvars["skills"][KHT_MISC] ) then
if( KHTvars["skills"][KHT_ZG] and spellName == KHT_PRIMAL ) then
if( KHTvars["skills"][KHT_TALENT] ) then
if( KHTvars["skills"][KHT_INSTINCT_CHEETAH] and spellName == KHT_INSTINCT_CHEETAH ) then
KHunterTimersFrame_add( 7000, spellName, spellId );
elseif( KHTvars["skills"][KHT_INSTINCT_MONGOOSE] and spellName == KHT_INSTINCT_MONGOOSE ) then
KHunterTimersFrame_add( 7000, spellName, spellId );
elseif( KHTvars["skills"][KHT_INSTINCT_RAPTOR] and spellName == KHT_INSTINCT_RAPTOR ) then
KHunterTimersFrame_add( 7000, spellName, spellId );
elseif( KHTvars["skills"][KHT_STEADY_FOCUS] and spellName == KHT_STEADY_FOCUS ) then
KHunterTimersFrame_add( 12000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DON_SANTOS] and spellName == KHT_SANTOS ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DESOLATION_4PC] and spellName == KHT_HEROIC ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
elseif( KHTvars["skills"][KHT_THUNDER] and spellName == KHT_SKYFIRE ) then
KHunterTimersFrame_add( 6000, spellName, spellId );
elseif( KHTvars["skills"][KHT_CHAMPION] and spellName == KHT_CHAMPION ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_BLOOD_HUNTER] and spellName == KHT_BLOOD_HUNT_2PC ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_BLOOD_HUNTER] and spellName == KHT_BLOOD_HUNT_4PC ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_FLAMEWAKER] and spellName == KHT_FLAMEWAKER_4PC and spellId == 99060 ) then
KHunterTimersFrame_add( 15000, spellName, spellId );
end
end
if( KHTvars["skills"][KHT_TRINKETS] ) then
if( KHTvars["skills"][KHT_HOURGLASS] and spellName == KHT_UNRAVELLER ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DST] and spellName == KHT_DRAGON ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_TSUNAMI_TALISMAN] and spellName == KHT_TSUNAMI ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_ATOS] and spellName == KHT_ASHTONGUE ) then
KHunterTimersFrame_add( 8000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_WRATH] and spellName == KHT_WRATH ) then
KHunterTimersFrame_add( 10000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_MAD] and spellName == KHT_DELUSIONAL ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_MAD] and spellName == KHT_KLEPTOMANIA ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_MAD] and spellName == KHT_MANIC ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_MAD] and spellName == KHT_MARTYR ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_MAD] and spellName == KHT_NARCISSISM ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
elseif( KHTvars["skills"][KHT_DARK_MAD] and spellName == KHT_PARANOIA ) then
KHunterTimersFrame_add( 60000, spellName, spellId );
elseif( KHTvars["skills"][KHT_SKY_CROSS] and spellName == KHT_SKYGUARD ) then
KHunterTimersFrame_add( 30000, spellName, spellId );
end
end
end
if( fromPlayer or fromPet ) then
if( KHTvars["skills"][KHT_MARKS] ) then
if( KHTvars["skills"][KHT_GLAIVE] and spellName == KHT_GLAIVE ) then
KHunterTimersFrame_add( 3000, spellName );
if( KHTvars["skills"][KHT_SPECIAL] ) then
if( KHTvars["skills"][KHT_CONCUSS_SHOT] and spellName == KHT_CONCUSS_SHOT ) then
KHunterTimersFrame_add( 6000, spellName, spellId, destName, destGUID )
elseif( KHTvars["skills"][KHT_HUNTERS_MARK] and spellName == KHT_HUNTERS_MARK ) then
KHunterTimersFrame_add( 12000, spellName, spellId, destName, destGUID )
elseif( KHTvars["skills"][KHT_WING_CLIP] and spellName == KHT_WING_CLIP ) then
KHunterTimersFrame_add( 15000, spellName, spellId, destName, destGUID )
end
end
if( KHTvars["skills"][KHT_SURV] ) then
if( KHTvars["skills"][KHT_SERPENT] and spellName == KHT_SERPENT and spellId == 118253 and khtMulti ) then
if (GetSpecialization() == 3) then
if( KHTvars["skills"][KHT_TALENT] ) then
if( KHTvars["skills"][KHT_CAREFUL_AIM] and spellName == KHT_CAREFUL_AIM ) then
KHunterTimersFrame_add( 8000, spellName, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_SERPENT_STING] and spellName == KHT_SERPENT_STING and spellId == 118253 and khtCarve ) then
if( KHTvars["serpentsting"] ) then
khtSerpentAoE = true;
end
khtMulti = false;
elseif( string.find( spellName, KHT_FROST_TRAP ) or string.find( spellName, KHT_FREEZING_TRAP ) ) then
if( frostTrapTimer ) then
for num = 1, KHTvars["numBars"] do
local barframe = _G[ "KHunterTimersStatus"..num];
if( barframe.spell == KHT_FROST_TRAP.." "..KHT_PRIMED or
barframe.spell == KHT_FREEZING_TRAP.." "..KHT_PRIMED ) then
barframe.endTime = 0;
end
end
if( KHTvars["skills"][KHT_FREEZING_TRAP] and string.find( spellName, KHT_FREEZING_TRAP ) ) then
local duration = 60000*KHTvars["traptimemult"];
KHunterTimersFrame_add( duration, KHT_FREEZING_TRAP, spellId, destName, destGUID );
elseif( KHTvars["skills"][KHT_FROST_TRAP] and string.find( spellName, KHT_FROST_TRAP ) ) then
KHunterTimersFrame_add( 30000*KHTvars["traptimemult"], KHT_FROST_TRAP.." "..KHT_AURA, spellId );
end
end
elseif( string.find( spellName, KHT_EXPL_TRAP ) ) then
if( fireTrapTimer ) then
for num = 1, KHTvars["numBars"] do
local barframe = _G[ "KHunterTimersStatus"..num];
if( barframe.spell == KHT_EXPL_TRAP.." "..KHT_PRIMED ) then
barframe.endTime = 0;
end
end
if( KHTvars["skills"][KHT_EXPL_TRAP] and string.find( spellName, KHT_EXPL_TRAP ) ) then
KHunterTimersFrame_add( 20000, KHT_EXPL_TRAP.." "..KHT_AURA, spellId );
end
end
khtCarve = false;
end
end
if( KHTvars["skills"][KHT_MISC] ) then
if( KHTvars["skills"][KHT_DRAGON_8PC] and spellName == KHT_EXPOSE_DS and spellId == 23577 ) then
KHunterTimersFrame_add( 7000, spellName, spellId, destName, destGUID );
end
elseif( combatEvent == "SPELL_INTERRUPT" ) then
if( fromPlayer or fromPet ) then
if( KHTvars["skills"][KHT_SPECIAL] ) then
if( KHTvars["skills"][KHT_COUNTER_SHOT] and spellName == KHT_COUNTER_SHOT ) then
KHunterTimersFrame_add( 3000, spellName, spellId, destName, destGUID )
elseif( KHTvars["skills"][KHT_MUZZLE] and spellName == KHT_MUZZLE ) then
KHunterTimersFrame_add( 3000, spellName, spellId, destName, destGUID )
end
end
end
elseif( combatEvent == "SWING_DAMAGE" and fromPet ) then
if( sourceName == KHT_VENOMOUS and natureTrapTimer ) then
for num = 1, KHTvars["numBars"] do
local barframe = _G[ "KHunterTimersStatus"..num];
if( barframe.spell == KHT_SNAKE_TRAP.." "..KHT_PRIMED ) then
barframe.endTime = 0;
elseif( combatEvent == "SPELL_AURA_REMOVED" ) then
if( toPlayer or toPet ) then
for i=1, KHTvars["numBars"] do
local barframe = _G[ "KHunterTimersStatus"..i];
if( string.find( barframe.spell, spellName ) and barframe.spellId == spellId ) then
if( spellName ~= KHT_DIRE_BEAST ) then
barframe.endTime = 0
end
end
end
if( KHTvars["skills"][KHT_SURV] and KHTvars["skills"][KHT_SNAKE_TRAP] ) then
KHunterTimersFrame_add( 15000, KHT_SNAKE_TRAP.." "..KHT_AURA );
end
end
elseif( combatEvent == "SPELL_AURA_REMOVED" and ( toPlayer or toPet ) ) then
for i=1, KHTvars["numBars"] do
local barframe = _G[ "KHunterTimersStatus"..i];
if( string.find( barframe.spell, spellName ) and barframe.spellId == spellId ) then
barframe.endTime = 0;
if( fromPlayer or fromPet ) then
if( string.find( spellName, KHT_FREEZING_TRAP ) ) then
spellName = KHT_FREEZING_TRAP;
end
end
elseif( combatEvent == "SPELL_AURA_REMOVED" and ( fromPlayer or fromPet ) ) then
if( string.find( spellName, KHT_FREEZING_TRAP ) ) then
spellName = KHT_FREEZING_TRAP;
end
for i=1, KHTvars["numBars"] do
local barframe = _G[ "KHunterTimersStatus"..i];
if( string.find( barframe.spell, spellName ) and barframe.spellId == spellId and barframe.GUID == destGUID ) then
barframe.endTime = 0;
for i=1, KHTvars["numBars"] do
local barframe = _G[ "KHunterTimersStatus"..i];
if( string.find( barframe.spell, spellName ) and barframe.spellId == spellId and barframe.GUID == destGUID ) then
barframe.endTime = 0;
end
end
end
end
elseif( event == "UNIT_AURA" and firstArg == "player" ) then
if( KHTvars["skills"][KHT_MARKS] ) then
if( KHTvars["skills"][KHT_RAPID_FIRE] ) then
local spellName, _, _, _, _, duration, timeLeft, _, _, _, spellId = UnitBuff("player", KHT_RAPID_FIRE, nil );
if( spellName and timeLeft ~= khtRapidFire ) then
if( KHTvars["skills"][KHT_SPECIAL] ) then
if( KHTvars["skills"][KHT_MONGOOSE_FURY] ) then
local spellName, _, _, count, _, duration, timeLeft, _, _, _, spellId = UnitBuff("player", KHT_MONGOOSE_FURY, nil );
if( spellName and timeLeft ~= khtMongoose ) then
duration = timeLeft - GetTime();
KHunterTimersFrame_add( duration*1000, spellName, spellId );
khtRapidFire = timeLeft;
KHunterTimersFrame_add( duration*1000, spellName, spellId, nil, nil, count );
khtMongoose = timeLeft;
end
end
if( KHTvars["skills"][KHT_SNIPER] ) then
local spellName, _, _, _, _, duration, timeLeft, _, _, _, spellId = UnitBuff("player", KHT_SNIPER, nil );
if( spellName and timeLeft ~= khtSniper ) then
if( KHTvars["skills"][KHT_SURVIVALIST] ) then
local spellName, _, _, _, _, duration, timeLeft, _, _, _, spellId = UnitBuff("player", KHT_SURVIVALIST, nil );
if( spellName and timeLeft ~= khtSurvivalist ) then
duration = timeLeft - GetTime();
KHunterTimersFrame_add( duration*1000, spellName, spellId );
khtSniper = timeLeft;
khtSurvivalist = timeLeft;
end
local spellName, _, _, _, _, duration, timeLeft, _, _, _, spellId = UnitBuff("player", KHT_SNIPER_MOVE, nil );
if( spellName and timeLeft ~= khtSniperMove ) then
duration = timeLeft - GetTime();
KHunterTimersFrame_add( duration*1000, spellName, spellId );
khtSniperMove = timeLeft;
elseif spellName == nil then
khtSniperMove = 0;
for i=1, KHTvars["numBars"] do
local barframe = _G[ "KHunterTimersStatus"..i];
if string.find( barframe.spell, KHT_SNIPER_MOVE ) then
barframe.endTime = 0;
end
end
end
end
if( KHTvars["skills"][KHT_THRILL] ) then
local spellName, _, _, count, _, duration, timeLeft, _, _, _, spellId = UnitBuff("player", KHT_THRILL, nil );
if( spellName and timeLeft ~= khtThrill ) then
end
if( KHTvars["skills"][KHT_TALENT] ) then
if( KHTvars["skills"][KHT_MOKNATHAL] ) then
local spellName, _, _, count, _, duration, timeLeft, _, _, _, spellId = UnitBuff("player", KHT_MOKNATHAL, nil );
if( spellName and timeLeft ~= khtMokNathal ) then
duration = timeLeft - GetTime();
KHunterTimersFrame_add( duration*1000, spellName, spellId, nil, nil, count );
khtThrill = timeLeft;
khtMokNathal = timeLeft;
end
end
end
if( KHTvars["skills"][KHT_SURV] ) then
if( KHTvars["skills"][KHT_LOCK_LOAD] ) then
local spellName, _, _, count, _, duration, timeLeft, _, _, _, spellId = UnitBuff("player", KHT_LOCK_LOAD, nil );
if( spellName and timeLeft ~= khtLockLoad ) then
1715,36 → 1502,38
end
end
elseif( event == "UNIT_AURA" and firstArg == "pet" ) then
if( KHTvars["skills"][KHT_BEAST] ) then
if( KHTvars["skills"][KHT_BW] ) then
local spellName, _, _, _, _, duration, timeLeft, _, _, _, spellId = UnitBuff("pet", KHT_BW, nil );
if( spellName and timeLeft ~= khtBestialWrath ) then
if( KHTvars["skills"][KHT_TALENT] ) then
if( KHTvars["skills"][KHT_DIRE_FRENZY] ) then
local spellName, _, _, count, _, duration, timeLeft, _, _, _, spellId = UnitBuff("pet", KHT_DIRE_FRENZY, nil );
if( spellName and timeLeft ~= khtDireFrenzy ) then
duration = timeLeft - GetTime();
KHunterTimersFrame_add( duration*1000, spellName, spellId );
khtBestialWrath = timeLeft;
KHunterTimersFrame_add( duration*1000, spellName, spellId, nil, nil, count );
khtDireFrenzy = timeLeft;
end
end
if( KHTvars["skills"][KHT_PET_FRENZY] ) then
local spellName, _, _, count, _, duration, timeLeft, _, _, _, spellId = UnitBuff("pet", KHT_PET_FRENZY, nil );
if( spellName and timeLeft ~= khtFrenzy ) then
end
elseif( event == "UNIT_AURA" and firstArg == "target" ) then
if( KHTvars["skills"][KHT_SPECIAL] ) then
if( KHTvars["skills"][KHT_LACERATE] ) then
local spellName, _, _, _, _, duration, timeLeft, unitCaster, _, _, spellId = UnitDebuff("target", KHT_LACERATE, nil );
if( spellName and unitCaster == "player" and timeLeft ~= khtLacerate ) then
duration = timeLeft - GetTime();
KHunterTimersFrame_add( duration*1000, spellName, spellId, nil, nil, count );
khtFrenzy = timeLeft;
KHunterTimersFrame_add( duration*1000, spellName, spellId, UnitName("target"), UnitGUID("target") );
khtLacerate = timeLeft;
end
end
if( KHTvars["skills"][KHT_COBRA_STRIKES] ) then
local spellName, _, _, count, _, duration, timeLeft, _, _, _, spellId = UnitBuff("pet", KHT_COBRA_STRIKES, nil );
if( spellName and timeLeft ~= khtCobra ) then
if( KHTvars["skills"][KHT_VULNERABLE] ) then
local spellName, _, _, count, _, duration, timeLeft, unitCaster, _, _, spellId = UnitDebuff("target", KHT_VULNERABLE, nil );
if( spellName and unitCaster == "player" and timeLeft ~= khtVulnerable ) then
duration = timeLeft - GetTime();
KHunterTimersFrame_add( duration*1000, spellName, spellId, nil, nil, count );
khtCobra = timeLeft;
KHunterTimersFrame_add( duration*1000, spellName, spellId, UnitName("target"), UnitGUID("target"), count );
khtVulnerable = timeLeft;
end
end
end
elseif( event == "UNIT_AURA" and firstArg == "target" ) then
if( KHTvars["skills"][KHT_SURV] ) then
if( KHTvars["skills"][KHT_SERPENT] ) then
local spellName, _, _, _, _, duration, timeLeft, unitCaster, _, _, spellId = UnitDebuff("target", KHT_SERPENT, nil );
if( KHTvars["skills"][KHT_TALENT] ) then
if( KHTvars["skills"][KHT_SERPENT_STING] ) then
local spellName, _, _, _, _, duration, timeLeft, unitCaster, _, _, spellId = UnitDebuff("target", KHT_SERPENT_STING, nil );
if( spellName and unitCaster == "player" and timeLeft ~= khtSerpent ) then
duration = timeLeft - GetTime();
KHunterTimersFrame_add( duration*1000, spellName, spellId, UnitName("target"), UnitGUID("target") );
1755,38 → 1544,50
end
end
end
if( KHTvars["skills"][KHT_EXPL_SHOT] ) then
local spellName, _, _, _, _, duration, timeLeft, unitCaster, _, _, spellId = UnitDebuff("target", KHT_EXPL_SHOT, nil );
if( spellName and unitCaster == "player" and timeLeft ~= khtExplosive ) then
if( KHTvars["skills"][KHT_TRUE_AIM] ) then
local spellName, _, _, count, _, duration, timeLeft, unitCaster, _, _, spellId = UnitDebuff("target", KHT_TRUE_AIM, nil );
if( spellName and unitCaster == "player" and timeLeft ~= khtTrueAim ) then
duration = timeLeft - GetTime();
KHunterTimersFrame_add( duration*1000, spellName, spellId, UnitName("target"), UnitGUID("target") );
khtExplosive = timeLeft;
KHunterTimersFrame_add( duration*1000, spellName, spellId, UnitName("target"), UnitGUID("target"), count );
khtTrueAim = timeLeft;
end
end
end
elseif( event == "UNIT_SPELLCAST_SUCCEEDED" and firstArg == "player" ) then
if( secondArg == KHT_FROST_TRAP or secondArg == KHT_FREEZING_TRAP ) then
if( KHTvars["skills"][KHT_SURV] and KHTvars["skills"][secondArg] ) then
frostTrapTimer = true;
KHunterTimersFrame_add( 60000, secondArg.." "..KHT_PRIMED );
if( KHTvars["skills"][KHT_SPECIAL] ) then
if( secondArg == KHT_FREEZING_TRAP ) then
if( KHTvars["skills"][secondArg] ) then
frostTrapTimer = true;
KHunterTimersFrame_add( 60000, secondArg.." "..KHT_PRIMED, 187650 );
end
elseif( secondArg == KHT_EXPLOSIVE_TRAP ) then
if( KHTvars["skills"][secondArg] ) then
fireTrapTimer = true;
KHunterTimersFrame_add( 60000, secondArg.." "..KHT_PRIMED, 191433 );
end
elseif( secondArg == KHT_TAR_TRAP ) then
if( KHTvars["skills"][secondArg] ) then
natureTrapTimer = true;
KHunterTimersFrame_add( 60000, secondArg.." "..KHT_PRIMED, 187698 );
end
end
elseif( secondArg == KHT_EXPL_TRAP ) then
if( KHTvars["skills"][KHT_SURV] and KHTvars["skills"][secondArg] ) then
fireTrapTimer = true;
KHunterTimersFrame_add( 60000, secondArg.." "..KHT_PRIMED );
end
if( KHTvars["skills"][KHT_TALENT] ) then
if( secondArg == KHT_STEEL_TRAP ) then
if( KHTvars["skills"][secondArg] ) then
steelTrapTimer = true;
KHunterTimersFrame_add( 60000, secondArg.." "..KHT_PRIMED, 162488 );
end
end
elseif( secondArg == KHT_SNAKE_TRAP ) then
if( KHTvars["skills"][KHT_SURV] and KHTvars["skills"][secondArg] ) then
natureTrapTimer = true;
KHunterTimersFrame_add( 60000, secondArg.." "..KHT_PRIMED );
end
if( KHTvars["skills"][KHT_COMMON] ) then
if( KHTvars["skills"][KHT_AUTO_SHOT] and secondArg == KHT_AUTO_SHOT ) then
khtAutoShot = true;
khtTimeLeft = UnitRangedDamage("player");
KHunterTimersFrame_add( khtTimeLeft*1000, KHT_AUTO_SHOT, 75 );
end
elseif( KHTvars["skills"][KHT_MARKS] and KHTvars["skills"][KHT_AUTO_SHOT] and secondArg == KHT_AUTO_SHOT ) then
khtAutoShot = true;
khtTimeLeft = UnitRangedDamage("player");
KHunterTimersFrame_add( khtTimeLeft*1000, KHT_AUTO_SHOT );
end
end
 
end
 
function KHunterTimers_cascadeBar( id )
2165,7 → 1966,7
 
KHTvars = {};
 
KHTvars["version"] = 3.0;
KHTvars["version"] = 3.8;
 
KHTvars["bg"] = { r=0, g=0, b=0, a=7 };
 
2184,7 → 1985,7
 
KHTvars["skills"] = {};
 
for i=1, 6 do
for i=1, KHT_NUM_TABS do
for j=1, KHT_NUM_TIMERS[i] do
if ( KHTvars["skills"][KHT_OPTIONS_TIMERS[i][j]] == nil ) then
KHTvars["skills"][KHT_OPTIONS_TIMERS[i][j]] = true;
2265,7 → 2066,6
end
 
KHTvars["textures"] = {};
KHunterTimers_UpdateSpells();
 
KHTvars["showtex"] = true;
 
2438,152 → 2238,41
 
function KHunterTimers_UpdateTalents()
 
if GetSpecialization() == 3 then --Trap Mastery
KHTvars["traptimemult"] = 1.3;
local _, _, _, talentActive = GetTalentInfoByID(22318,1) --Dash
if talentActive then
KHTvars["cheetahtimeadd"] = 3000;
else
KHTvars["traptimemult"] = 1;
KHTvars["cheetahtimeadd"] = 0;
end
 
if GetSpecialization() == 3 then --Entrapment
KHTvars["entrapmentmult"] = 4000;
local _, _, _, talentActive = GetTalentInfoByID(22271,1) --Serpent Sting
if talentActive then
KHTvars["serpentsting"] = true;
else
KHTvars["entrapmentmult"] = 0;
KHTvars["serpentsting"] = false;
end
 
KHTvars["impconc"] = 0;
 
end
 
function KHunterTimers_UpdateSpells()
 
for key,val in pairs(KHTvars["skills"]) do
local spellTexture = GetSpellBookItemTexture(key);
if( spellTexture ) then
KHTvars["textures"][key] = spellTexture;
end
end
 
-- Support for glyphs
--[[ for i = 1, 6 do
local enabled, glyphType, glyphSpellID, icon = GetGlyphSocketInfo(i);
if ( enabled and glyphSpellID == 56832 ) then
KHTvars["serpentglyph"] = 6000;
end
end]]
 
-- Set/Item Procs
KHTvars["textures"][KHT_CHAMPION] = KHT_CHAMPION_ICON;
KHTvars["textures"][KHT_BEASTLORD] = KHT_BEASTLORD_ICON;
KHTvars["textures"][KHT_EXPOSE_DS] = KHT_EXPOSE_DS_ICON;
KHTvars["textures"][KHT_HEROIC] = KHT_HEROIC_ICON;
KHTvars["textures"][KHT_PRIMAL] = KHT_PRIMAL_ICON;
KHTvars["textures"][KHT_SANTOS] = KHT_SANTOS_ICON;
KHTvars["textures"][KHT_SKYFIRE] = KHT_SKYFIRE_ICON;
KHTvars["textures"][KHT_PRECISION] = KHT_PRECISION_ICON;
KHTvars["textures"][KHT_ASHEN_VERDICT] = KHT_ASHEN_VERDICT_ICON;
KHTvars["textures"][KHT_BLOOD_HUNT_2PC] = KHT_BLOOD_HUNT_2PC_ICON;
KHTvars["textures"][KHT_BLOOD_HUNT_4PC] = KHT_BLOOD_HUNT_4PC_ICON;
KHTvars["textures"][KHT_WINDRUNNER_4PC] = KHT_WINDRUNNER_4PC_ICON;
KHTvars["textures"][KHT_FLAMEWAKER_4PC] = KHT_FLAMEWAKER_4PC_ICON;
KHTvars["textures"][KHT_WYRMSTALKER_4PC] = KHT_WYRMSTALKER_4PC_ICON;
KHTvars["textures"][KHT_SAUROK_2PC] = KHT_SAUROK_2PC_ICON;
 
-- Talent Procs
KHTvars["textures"][KHT_COBRA_STRIKES] = KHT_COBRA_STRIKES_ICON;
KHTvars["textures"][KHT_PET_FRENZY] = KHT_PET_FRENZY_ICON;
KHTvars["textures"][KHT_LOCK_LOAD] = KHT_LOCK_LOAD_ICON;
KHTvars["textures"][KHT_SNIPER] = KHT_SNIPER_ICON;
KHTvars["textures"][KHT_SNIPER_MOVE] = KHT_SNIPER_MOVE_ICON;
KHTvars["textures"][KHT_BINDING] = KHT_BINDING_ICON;
KHTvars["textures"][KHT_GLAIVE] = KHT_GLAIVE_ICON;
 
-- Trinkets
KHTvars["textures"][KHT_ABACUS] = KHT_ABACUS_ICON;
KHTvars["textures"][KHT_FEROCITY] = KHT_FEROCITY_ICON;
KHTvars["textures"][KHT_TORMENT] = KHT_TORMENT_ICON;
KHTvars["textures"][KHT_ASHTONGUE] = KHT_ASHTONGUE_ICON;
KHTvars["textures"][KHT_SWARMGUARD] = KHT_SWARMGUARD_ICON;
KHTvars["textures"][KHT_BERSERKER] = KHT_BERSERKER_ICON;
KHTvars["textures"][KHT_LUST] = KHT_LUST_ICON;
KHTvars["textures"][KHT_ANCIENT_POWER] = KHT_ANCIENT_POWER_ICON;
KHTvars["textures"][KHT_GREATNESS] = KHT_GREATNESS_ICON;
KHTvars["textures"][KHT_DELUSIONAL] = KHT_DELUSIONAL_ICON;
KHTvars["textures"][KHT_KLEPTOMANIA] = KHT_KLEPTOMANIA_ICON;
KHTvars["textures"][KHT_MANIC] = KHT_MANIC_ICON;
KHTvars["textures"][KHT_MARTYR] = KHT_MARTYR_ICON;
KHTvars["textures"][KHT_NARCISSISM] = KHT_NARCISSISM_ICON;
KHTvars["textures"][KHT_PARANOIA] = KHT_PARANOIA_ICON;
KHTvars["textures"][KHT_WRATH] = KHT_WRATH_ICON;
KHTvars["textures"][KHT_DEVILSAUR] = KHT_DEVILSAUR_ICON;
KHTvars["textures"][KHT_DRAGON] = KHT_DRAGON_ICON;
KHTvars["textures"][KHT_EARTHSTRIKE] = KHT_EARTHSTRIKE_ICON;
KHTvars["textures"][KHT_DIREBREW] = KHT_DIREBREW_ICON;
KHTvars["textures"][KHT_UNRAVELLER] = KHT_UNRAVELLER_ICON;
KHTvars["textures"][KHT_INCISOR] = KHT_INCISOR_ICON;
KHTvars["textures"][KHT_JOM_GABBAR] = KHT_JOM_GABBAR_ICON;
KHTvars["textures"][KHT_KISS_SPIDER] = KHT_KISS_SPIDER_ICON;
KHTvars["textures"][KHT_LOATHEB] = KHT_LOATHEB_ICON;
KHTvars["textures"][KHT_MADNESS] = KHT_MADNESS_ICON;
KHTvars["textures"][KHT_METEORITE] = KHT_METEORITE_ICON;
KHTvars["textures"][KHT_NIGHTSEYE] = KHT_NIGHTSEYE_ICON;
KHTvars["textures"][KHT_BURNING_HATRED] = KHT_BURNING_HATRED_ICON;
KHTvars["textures"][KHT_PYRITE] = KHT_PYRITE_ICON;
KHTvars["textures"][KHT_EDWARD] = KHT_EDWARD_ICON;
KHTvars["textures"][KHT_SKYGUARD] = KHT_SKYGUARD_ICON;
KHTvars["textures"][KHT_TALON] = KHT_TALON_ICON;
KHTvars["textures"][KHT_HEROISM] = KHT_HEROISM_ICON;
KHTvars["textures"][KHT_TSUNAMI] = KHT_TSUNAMI_ICON;
KHTvars["textures"][KHT_ZHM] = KHT_ZHM_ICON;
KHTvars["textures"][KHT_PARAGON] = KHT_PARAGON_ICON;
KHTvars["textures"][KHT_PARAGON.." (H)"] = KHT_PARAGON_ICON;
KHTvars["textures"][KHT_MJOLNIR] = KHT_MJOLNIR_ICON;
KHTvars["textures"][KHT_GRIM_TOLL] = KHT_GRIM_TOLL_ICON;
KHTvars["textures"][KHT_NES] = KHT_NES_ICON;
KHTvars["textures"][KHT_DEATH_AGI] = KHT_DEATH_AGI_ICON;
KHTvars["textures"][KHT_DEATH_AGI.." (H)"] = KHT_DEATH_AGI_ICON;
KHTvars["textures"][KHT_DEATH_AP] = KHT_DEATH_AP_ICON;
KHTvars["textures"][KHT_DEATH_AP.." (H)"] = KHT_DEATH_AP_ICON;
KHTvars["textures"][KHT_DEATH_CRIT] = KHT_DEATH_CRIT_ICON;
KHTvars["textures"][KHT_DEATH_CRIT.." (H)"] = KHT_DEATH_CRIT_ICON;
KHTvars["textures"][KHT_FANGED] = KHT_FANGED_ICON;
KHTvars["textures"][KHT_FANGED.." (H)"] = KHT_FANGED_ICON;
KHTvars["textures"][KHT_STS] = KHT_STS_ICON;
KHTvars["textures"][KHT_STS.." (H)"] = KHT_STS_ICON;
KHTvars["textures"][KHT_HUNGER] = KHT_HUNGER_ICON;
KHTvars["textures"][KHT_HUNGER.." (H)"] = KHT_HUNGER_ICON;
KHTvars["textures"][KHT_XUEN] = KHT_XUEN_ICON;
KHTvars["textures"][KHT_SCALESDOOM] = KHT_SCALES_ICON;
KHTvars["textures"][KHT_BEATING] = KHT_BEATING_ICON;
KHTvars["textures"][KHT_SKULL] = KHT_SKULL_ICON;
 
-- Other
KHTvars["textures"][KHT_ENTRAPMENT] = KHT_ENTRAPMENT_ICON;
KHTvars["textures"][KHT_BLOODLUST] = KHT_BLOODLUST_ICON;
KHTvars["textures"][KHT_TIME_WARP] = KHT_TIME_WARP_ICON;
 
end
 
function KHunterTimers_ClearActiveSpells()
 
khtAutoShot = false;
frostTrapTimer = false
fireTrapTimer = false
natureTrapTimer = false
steelTrapTimer = false
 
khtAutoShot = false
khtCarve = false;
khtPetIntim = false;
khtMulti = false;
fireTrapTimer = false;
frostTrapTimer = false;
natureTrapTimer = false;
khtSerpentAoE = false;
khtDireFrenzy = 0;
khtLacerate = 0
khtLockLoad = 0;
khtRapidFire = 0;
khtImpSteady = 0;
khtMokNathal = 0;
khtMongoose = 0
khtSerpent = 0;
khtSerpentAoE = false;
khtSniper = 0;
khtSniperMove = 0;
khtFrenzy = 0;
khtMark = 0;
khtExplosive = 0;
khtBestialWrath = 0;
khtThrill = 0;
khtCobra = 0;
khtSurvivalist = 0
khtTrueAim = 0
khtVulnerable = 0
 
end