Mercurial > wow > turok
diff Equip.lua @ 1:766d8a40a1d6
first commit?
author | Nenue |
---|---|
date | Tue, 15 Dec 2015 08:07:21 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Equip.lua Tue Dec 15 08:07:21 2015 -0500 @@ -0,0 +1,94 @@ +-- User: Krakyn +-- Created: 12/4/2015 11:20 PM +-- Equipment, spec, etc. +local T = LibStub("AceAddon-3.0"):GetAddon("Turok") +local mod = T:NewModule("Equip", "AceEvent-3.0") +--setprinthandler(function (...) T:debug('Equip', nil, ...) end) + +local t18_slots = { + [INVSLOT_HEAD] = 124296, -- head + [INVSLOT_SHOULDER] = 124307, -- shoulders + [INVSLOT_CHEST] = 124284, -- chest + [INVSLOT_LEGS] = 124301, -- legs + [INVSLOT_HAND] = 124292, -- hands +} + + +local use_slots = { + [INVSLOT_FINGER1] = 1, + [INVSLOT_FINGER2] = 2, + [INVSLOT_TRINKET1] = 3, + [INVSLOT_TRINKET2] = 4, + +} +function mod:OnEnable() + self.equipped = {} + self:RegisterEvent('COMBAT_RATING_UPDATE', 'UpdateCombatRatings') + self:RegisterEvent('PLAYER_EQUIPMENT_CHANGED', 'UpdateEquipment') + self:RegisterEvent('PLAYER_SPECIALIZATION_CHANGED', 'UpdateSpec') +end + +function mod:UpdateEquipment (_, slot, hasItem) + -- ratings event will handle the rest + if not t18_slots[slot] or use_slots[slot] then + return + end + -- debug + local link = GetInventoryItemID('player', slot) + print('|cFF00FFFFequipment ', slot, hasItem, link) + -- /debug + + if t18_slots[slot] then + t18_count = 0 + for slot, itemID in pairs(t18_slots) do + if GetInventoryItemID(slot) == itemID then + t18_count = t18_count + 1 + end + end + if t18 >= 4 then + T.stats.aimedshot = s.gcd + else + T.stats.aimedshot = 2 * T.stats.castingmod + end + T.statstext =string.format('%.2f', s.aimedshot) + end + + if use_slots[slot] then + if hasItem then + local itemID = GetInventoryItemID('player', slot) + self.equipped[slot] = itemID + T:GetModule("Spirit").item_watch[itemID] = {GetInventoryItemCooldown('player', slot) } + else + if self.equipped[slot] then + self.equipped[slot] = nil + end + + end + end + +end + + +function mod:UpdateCombatRatings() + local s = T.stats + s.haste = UnitSpellHaste('player') + s.focusregen = 4 * (1 + s.haste/100) + s.castingmod = 1+ s.haste/1000 + s.gcd = 1.5 * s.castingmod + T.statstext = { + haste = string.format('%.2f', s.haste), + focusregen = string.format('%.2f', s.focusregen), + castingmod = string.format('%.2f', s.castingmod), + } + local t = T.statstext + + print('|cFF00FFFFCOMBAT_RATING_UPDATE:|r', 'haste:', t.haste, 'regen:', t.focusregen) +end + +function mod:UpdateSpec (e, unit) + if unit ~= 'player' then + return + end + + T.stats.focusmax = UnitPowerMax('player') +end \ No newline at end of file