Mercurial > wow > turok
comparison Equip.lua @ 1:766d8a40a1d6
first commit?
author | Nenue |
---|---|
date | Tue, 15 Dec 2015 08:07:21 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:ebbcc148a407 | 1:766d8a40a1d6 |
---|---|
1 -- User: Krakyn | |
2 -- Created: 12/4/2015 11:20 PM | |
3 -- Equipment, spec, etc. | |
4 local T = LibStub("AceAddon-3.0"):GetAddon("Turok") | |
5 local mod = T:NewModule("Equip", "AceEvent-3.0") | |
6 --setprinthandler(function (...) T:debug('Equip', nil, ...) end) | |
7 | |
8 local t18_slots = { | |
9 [INVSLOT_HEAD] = 124296, -- head | |
10 [INVSLOT_SHOULDER] = 124307, -- shoulders | |
11 [INVSLOT_CHEST] = 124284, -- chest | |
12 [INVSLOT_LEGS] = 124301, -- legs | |
13 [INVSLOT_HAND] = 124292, -- hands | |
14 } | |
15 | |
16 | |
17 local use_slots = { | |
18 [INVSLOT_FINGER1] = 1, | |
19 [INVSLOT_FINGER2] = 2, | |
20 [INVSLOT_TRINKET1] = 3, | |
21 [INVSLOT_TRINKET2] = 4, | |
22 | |
23 } | |
24 function mod:OnEnable() | |
25 self.equipped = {} | |
26 self:RegisterEvent('COMBAT_RATING_UPDATE', 'UpdateCombatRatings') | |
27 self:RegisterEvent('PLAYER_EQUIPMENT_CHANGED', 'UpdateEquipment') | |
28 self:RegisterEvent('PLAYER_SPECIALIZATION_CHANGED', 'UpdateSpec') | |
29 end | |
30 | |
31 function mod:UpdateEquipment (_, slot, hasItem) | |
32 -- ratings event will handle the rest | |
33 if not t18_slots[slot] or use_slots[slot] then | |
34 return | |
35 end | |
36 -- debug | |
37 local link = GetInventoryItemID('player', slot) | |
38 print('|cFF00FFFFequipment ', slot, hasItem, link) | |
39 -- /debug | |
40 | |
41 if t18_slots[slot] then | |
42 t18_count = 0 | |
43 for slot, itemID in pairs(t18_slots) do | |
44 if GetInventoryItemID(slot) == itemID then | |
45 t18_count = t18_count + 1 | |
46 end | |
47 end | |
48 if t18 >= 4 then | |
49 T.stats.aimedshot = s.gcd | |
50 else | |
51 T.stats.aimedshot = 2 * T.stats.castingmod | |
52 end | |
53 T.statstext =string.format('%.2f', s.aimedshot) | |
54 end | |
55 | |
56 if use_slots[slot] then | |
57 if hasItem then | |
58 local itemID = GetInventoryItemID('player', slot) | |
59 self.equipped[slot] = itemID | |
60 T:GetModule("Spirit").item_watch[itemID] = {GetInventoryItemCooldown('player', slot) } | |
61 else | |
62 if self.equipped[slot] then | |
63 self.equipped[slot] = nil | |
64 end | |
65 | |
66 end | |
67 end | |
68 | |
69 end | |
70 | |
71 | |
72 function mod:UpdateCombatRatings() | |
73 local s = T.stats | |
74 s.haste = UnitSpellHaste('player') | |
75 s.focusregen = 4 * (1 + s.haste/100) | |
76 s.castingmod = 1+ s.haste/1000 | |
77 s.gcd = 1.5 * s.castingmod | |
78 T.statstext = { | |
79 haste = string.format('%.2f', s.haste), | |
80 focusregen = string.format('%.2f', s.focusregen), | |
81 castingmod = string.format('%.2f', s.castingmod), | |
82 } | |
83 local t = T.statstext | |
84 | |
85 print('|cFF00FFFFCOMBAT_RATING_UPDATE:|r', 'haste:', t.haste, 'regen:', t.focusregen) | |
86 end | |
87 | |
88 function mod:UpdateSpec (e, unit) | |
89 if unit ~= 'player' then | |
90 return | |
91 end | |
92 | |
93 T.stats.focusmax = UnitPowerMax('player') | |
94 end |