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