-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathConstants.lua
More file actions
298 lines (264 loc) · 10.7 KB
/
Copy pathConstants.lua
File metadata and controls
298 lines (264 loc) · 10.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
-- Enhanced Cooldown Manager addon for World of Warcraft
-- Author: Argium
-- Licensed under the GNU General Public License v3.0
local _, ns = ...
local constants = {
-- Addon metadata
ADDON_ICON_TEXTURE = "Interface\\AddOns\\EnhancedCooldownManager\\Media\\icon",
ADDON_METADATA_VERSION_KEY = "Version",
DEBUG_COLOR = "F17934",
ERROR_COLOR = "ff4040",
WARNING_COLOR = "ffd100",
RELEASE_POPUP_VERSION = "v0.8.3",
VERSION_TAG_BETA = "beta",
-- Module identifiers
BUFFBARS = "BuffBars",
EXTERNALBARS = "ExternalBars",
EXTRAICONS = "ExtraIcons",
POWERBAR = "PowerBar",
RESOURCEBAR = "ResourceBar",
RUNEBAR = "RuneBar",
-- Shared configuration values
ANCHORMODE_CHAIN = "chain",
ANCHORMODE_DETACHED = "detached",
ANCHORMODE_FREE = "free",
CONFIG_SECTION_GLOBAL = "global",
EDIT_MODE_DEFAULT_POINT = "CENTER",
GROW_DIRECTION_DOWN = "down",
GROW_DIRECTION_UP = "up",
SCOPE_BUFFBARS = "buffBars",
SCOPE_EXTERNALBARS = "externalBars",
-- Shared visuals and defaults
COLOR_BLACK = { r = 0, g = 0, b = 0, a = 1 },
COLOR_WHITE = { r = 1, g = 1, b = 1, a = 1 },
COLOR_WHITE_HEX = "FFFFFF",
DEFAULT_BAR_HEIGHT = 20,
DEFAULT_BAR_WIDTH = 250,
DEFAULT_BG_COLOR = { r = 0.08, g = 0.08, b = 0.08, a = 0.65 },
DEFAULT_BORDER_COLOR = { r = 0.15, g = 0.15, b = 0.15, a = 0.5 },
DEFAULT_BORDER_THICKNESS = 4,
DEFAULT_FONT = "Interface\\AddOns\\EnhancedCooldownManager\\media\\Fonts\\Expressway.ttf",
DEFAULT_FONT_SIZE = 11,
DEFAULT_POWERBAR_TICK_COLOR = { r = 1, g = 1, b = 1, a = 0.8 },
DEFAULT_REFRESH_FREQUENCY = 0.066,
DEFAULT_STATUSBAR_TEXTURE = "Interface\\TARGETINGFRAME\\UI-StatusBar",
FALLBACK_TEXTURE = "Interface\\Buttons\\WHITE8X8",
-- Power bar
POWERBAR_SHOW_MANABAR = { MAGE = true, WARLOCK = true, DRUID = true },
-- Resource bar identifiers
RESOURCEBAR_TYPE_DEVOURER_META = "devourerMeta",
RESOURCEBAR_TYPE_DEVOURER_NORMAL = "devourerNormal",
RESOURCEBAR_TYPE_ICICLES = "icicles",
RESOURCEBAR_TYPE_MAELSTROM_WEAPON = "maelstromWeapon",
RESOURCEBAR_TYPE_VENGEANCE_SOULS = "souls",
-- Resource bar spell IDs
RESOURCEBAR_ICICLES_SPELLID = 205473,
RESOURCEBAR_RAGING_MAELSTROM_SPELLID = 384143,
RESOURCEBAR_SPIRIT_BOMB_SPELLID = 247454,
-- Resource bar limits
RESOURCEBAR_COLLAPSING_STAR_MAX = 30,
RESOURCEBAR_DEVOURER_SOUL_FRAGMENTS_MAX = 50,
RESOURCEBAR_ICICLES_MAX = 5,
RESOURCEBAR_MAELSTROM_WEAPON_MAX_BASE = 5,
RESOURCEBAR_MAELSTROM_WEAPON_MAX_TALENTED = 10,
RESOURCEBAR_VENGEANCE_SOULS_MAX = 6,
-- Resource bar related spell IDs
SPELLID_COLLAPSING_STAR = 1227702, -- when in void meta, tracks progress towards collapsing star (30 stacks)
SPELLID_MAELSTROM_WEAPON = 344179,
SPELLID_DEVOURER_SOUL_FRAGMENTS = 1225789, -- tracks progress towards void meta form (50 soul fragments)
SPELLID_DEVOURER_SOUL_FRAGMENTS_ALT = 1245577, -- alternate aura for void meta soul fragments
SPELLID_SOUL_GLUTTEN = 1247534, -- reduces the number of souls needed for void meta by 15
SPELLID_VOID_META = 1217607, -- void meta
-- Buff bars
BUFFBARS_DEFAULT_COLOR = { r = 228 / 255, g = 233 / 255, b = 235 / 255, a = 1 },
BUFFBARS_ICON_TEXTURE_REGION_INDEX = 1,
BUFFBARS_ICON_OVERLAY_REGION_INDEX = 3,
BUFFBARS_TEXT_PADDING = 4,
-- Rune bar
RUNEBAR_CD_DIM_FACTOR = 0.5,
RUNEBAR_MAX_RUNES = 6,
-- Class and specialization identifiers
DEATHKNIGHT_FROST_SPEC_INDEX = 2,
DEATHKNIGHT_UNHOLY_SPEC_INDEX = 3,
DEMONHUNTER_CLASS_ID = 12,
DEMONHUNTER_DEVOURER_SPEC_INDEX = 3,
DEMONHUNTER_VENGEANCE_SPEC_INDEX = 2,
DRUID_CAT_FORM_INDEX = 2,
MAGE_ARCANE_SPEC_INDEX = 1,
MAGE_FROST_SPEC_INDEX = 3,
MONK_BREWMASTER_SPEC_INDEX = 1,
MONK_MISTWEAVER_SPEC_INDEX = 2,
MONK_WINDWALKER_SPEC_INDEX = 3,
SHAMAN_ELEMENTAL_SPEC_INDEX = 1,
SHAMAN_ENHANCEMENT_SPEC_INDEX = 2,
SHAMAN_RESTORATION_SPEC_INDEX = 3,
-- Extra icons
DEFAULT_EXTRA_ICON_SIZE = 32,
EXTRA_ICON_MAIN_BORDER_SCALE = 1.35,
EXTRA_ICON_UTILITY_BORDER_SCALE = 1.4,
-- Saved variables and migration
ACTIVE_SV_KEY = "_ECM_DB",
CURRENT_SCHEMA_VERSION = 13,
SV_NAME = "EnhancedCooldownManagerDB",
-- Import and export
EXPORT_PREFIX = "EnhancedCooldownManager",
EXPORT_VERSION = 1,
-- Runtime timing and debug limits
LAYOUT_COMBAT_END_DELAY = 0.1,
LAYOUT_ENTERING_WORLD_DELAY = 0.4,
LAYOUT_STORM_COUNT = 60,
LAYOUT_STORM_WINDOW = 2,
LAYOUT_ZONE_CHANGE_DELAY = 0.1,
LIFECYCLE_SECOND_PASS_DELAY = 0.05,
TOSTRING_MAX_DEPTH = 3,
TOSTRING_MAX_ITEMS = 25,
WATCHDOG_INTERVAL = 0.5,
-- Dialogs and popups
DIALOG_BACKDROP = {
bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
tile = true,
tileSize = 16,
edgeSize = 16,
insets = { left = 4, right = 4, top = 4, bottom = 4 },
},
DIALOG_FRAME_HEIGHT = 360,
DIALOG_FRAME_HEIGHT_SMALL = 160,
DIALOG_FRAME_WIDTH = 480,
DIALOG_FRAME_WIDTH_SMALL = 400,
POPUP_CONFIRM_RELOAD_UI = "ECM_CONFIRM_RELOAD_UI",
POPUP_PREFERRED_INDEX = 3,
WHATS_NEW_BUTTON_BOTTOM_OFFSET = 16,
WHATS_NEW_BUTTON_HEIGHT = 24,
WHATS_NEW_BUTTON_SPACING = 8,
WHATS_NEW_BODY_SPACING = 12,
WHATS_NEW_CLOSE_BUTTON_WIDTH = 120,
WHATS_NEW_FRAME_HEIGHT = 480,
WHATS_NEW_FRAME_NAME = "ECMWhatsNewFrame",
WHATS_NEW_FRAME_OFFSET_Y = 20,
WHATS_NEW_FRAME_PADDING = 18,
WHATS_NEW_FRAME_WIDTH = 520,
WHATS_NEW_HEADER_COLOR = "FFD100",
WHATS_NEW_LIST_BULLET = "\194\183",
WHATS_NEW_SETTINGS_BUTTON_WIDTH = 140,
WHATS_NEW_SUBTITLE_SPACING = 8,
-- UI dimension constants
POSITION_MODE_EXPLAINER_HEIGHT = 150,
VALUE_SLIDER_TIERS = {
{ ceiling = 200, step = 1 },
{ ceiling = 1000, step = 5 },
{ ceiling = 5000, step = 25 },
{ ceiling = 10000, step = 50 },
{ ceiling = 50000, step = 250 },
{ ceiling = 100000, step = 500 },
{ ceiling = 500000, step = 2500 },
},
}
--- Predefined icon stacks resolved at runtime by stackKey.
--- Each entry defines an icon kind and its candidate sources.
constants.BUILTIN_STACKS = {
trinket1 = { kind = "equipSlot", slotId = 13, label = "Trinket 1" },
trinket2 = { kind = "equipSlot", slotId = 14, label = "Trinket 2" },
}
--- Default display order for builtin stack keys (matches default viewers.utility order).
constants.BUILTIN_STACK_ORDER = { "trinket1", "trinket2" }
local dracthyrWingBuffetIds = { 357214, 368970 } -- Base and enhanced evoker variants.
--- Racial ability lookup keyed by UnitRace("player") raceFileName.
--- One primary active racial per race.
constants.RACIAL_ABILITIES = {
Human = { spellId = 59752 }, -- Every Man for Himself
Orc = { spellId = 33697 }, -- Blood Fury
Dwarf = { spellId = 20594 }, -- Stoneform
NightElf = { spellId = 58984 }, -- Shadowmeld
Scourge = { spellId = 7744 }, -- Will of the Forsaken
Tauren = { spellId = 20549 }, -- War Stomp
Gnome = { spellId = 20589 }, -- Escape Artist
Troll = { spellId = 26297 }, -- Berserking
Goblin = { spellId = 69070 }, -- Rocket Barrage
BloodElf = { spellId = 28730 }, -- Arcane Torrent
Draenei = { spellId = 59542 }, -- Gift of the Naaru
Worgen = { spellId = 68992 }, -- Darkflight
Pandaren = { spellId = 107079 }, -- Quaking Palm
Nightborne = { spellId = 260364 }, -- Arcane Pulse
HighmountainTauren = { spellId = 255654 }, -- Bull Rush
VoidElf = { spellId = 256948 }, -- Spatial Rift
LightforgedDraenei = { spellId = 255647 }, -- Light's Judgment
ZandalariTroll = { spellId = 291944 }, -- Regeneratin'
KulTiran = { spellId = 287712 }, -- Haymaker
DarkIronDwarf = { spellId = 265221 }, -- Fireblood
Vulpera = { spellId = 312411 }, -- Bag of Tricks
MagharOrc = { spellId = 274738 }, -- Ancestral Call
Mechagnome = { spellId = 312924 }, -- Hyper Organic Light Originator
Dracthyr = { spellIds = dracthyrWingBuffetIds }, -- Wing Buffet
EarthenDwarf = { spellId = 436717 }, -- Azerite Surge
}
--- Some racial abilities have different spell IDs. For example, Dracthyr evokers
--- have a more potent wing buffet compared to other classes.
constants.RACIAL_SPELL_ALIASES = {
[357214] = dracthyrWingBuffetIds,
[368970] = dracthyrWingBuffetIds,
}
constants.BLIZZARD_FRAMES = {
"EssentialCooldownViewer",
"UtilityCooldownViewer",
"BuffIconCooldownViewer",
"BuffBarCooldownViewer",
}
constants.CLASS_COLORS = {
DEATHKNIGHT = "C41F3B",
DEMONHUNTER = "A330C9",
DRUID = "FF7D0A",
EVOKER = "33937F",
HUNTER = "ABD473",
MAGE = "69CCF0",
MONK = "00FF96",
PALADIN = "F58CBA",
PRIEST = "FFFFFF",
ROGUE = "FFF569",
SHAMAN = "0070DE",
WARLOCK = "9482C9",
WARRIOR = "C79C6E",
}
-- Resource types that support a separate color when at maximum value.
-- Code-level gate; user toggle is stored in the profile (maxColorsEnabled).
constants.RESOURCEBAR_MAX_COLOR_TYPES = {
[constants.RESOURCEBAR_TYPE_ICICLES] = true,
[constants.RESOURCEBAR_TYPE_DEVOURER_META] = true,
[constants.RESOURCEBAR_TYPE_DEVOURER_NORMAL] = true,
}
constants.RESOURCEBAR_CASTABLE_MAX_COLOR_SPELLS = {
[constants.RESOURCEBAR_TYPE_DEVOURER_META] = constants.SPELLID_COLLAPSING_STAR,
[constants.RESOURCEBAR_TYPE_DEVOURER_NORMAL] = constants.SPELLID_VOID_META,
}
--- Maps modules to their respective profile config key.
constants.MODULE_CONFIG_KEYS = {
[constants.POWERBAR] = "powerBar",
[constants.RESOURCEBAR] = "resourceBar",
[constants.RUNEBAR] = "runeBar",
[constants.BUFFBARS] = constants.SCOPE_BUFFBARS,
[constants.EXTERNALBARS] = constants.SCOPE_EXTERNALBARS,
[constants.EXTRAICONS] = "extraIcons",
}
--- Returns the profile config key for a module name.
--- Uses the authoritative lookup; falls back to lowercasing the first character.
function constants.ConfigKeyForModule(name)
return constants.MODULE_CONFIG_KEYS[name] or (name:sub(1, 1):lower() .. name:sub(2))
end
-- Defines the ordering of modules for chained anchoring.
constants.CHAIN_ORDER = {
constants.POWERBAR,
constants.RESOURCEBAR,
constants.RUNEBAR,
constants.BUFFBARS,
constants.EXTERNALBARS,
}
-- Controls the order that modules are loaded in.
constants.MODULE_LOAD_ORDER = {
constants.POWERBAR,
constants.RESOURCEBAR,
constants.RUNEBAR,
constants.BUFFBARS,
constants.EXTERNALBARS,
constants.EXTRAICONS,
}
ns.Constants = constants