initial commit
This commit is contained in:
@@ -0,0 +1,391 @@
|
||||
-- Core/GroupCooldownSpellDatabase.lua
|
||||
-- Group cooldown database.
|
||||
|
||||
HMGT_SpellData = HMGT_SpellData or {}
|
||||
local Spell = HMGT_SpellData.Spell
|
||||
local Relation = HMGT_SpellData.Relation
|
||||
if not Spell then return end
|
||||
|
||||
HMGT_SpellData.GroupCooldowns = {
|
||||
-- WARRIOR
|
||||
-- Arms Spec
|
||||
Spell(118038, "Die by the Sword", {
|
||||
classes = {"WARRIOR"},
|
||||
specs = {1},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 120 },
|
||||
}),
|
||||
Spell(167105, "Colossus Smash", {
|
||||
classes = {"WARRIOR"},
|
||||
specs = {1},
|
||||
category = "offensive",
|
||||
state = { kind = "cooldown", cooldown = 45 },
|
||||
}),
|
||||
|
||||
-- Fury Spec
|
||||
Spell(184364, "Enraged Regeneration", {
|
||||
classes = {"WARRIOR"},
|
||||
specs = {2},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 120 },
|
||||
}),
|
||||
Spell(1719, "Recklessness", {
|
||||
classes = {"WARRIOR"},
|
||||
specs = {2},
|
||||
category = "offensive",
|
||||
state = { kind = "cooldown", cooldown = 90 },
|
||||
}),
|
||||
|
||||
-- Protection Spec
|
||||
Spell(871, "Shield Wall", {
|
||||
classes = {"WARRIOR"},
|
||||
specs = {3},
|
||||
category = "tank",
|
||||
state = { kind = "cooldown", cooldown = 108, charges = 1 },
|
||||
mods = {
|
||||
{ talentSpellId = 391271, value = 10, op = "reduceByPercent", target = "cooldown" }, -- Honed Reflexes
|
||||
{ talentSpellId = 397103, value = 2, op = "set", target = "charges" },
|
||||
},
|
||||
}),
|
||||
Spell(385952, "Shield Charge", {
|
||||
classes = {"WARRIOR"},
|
||||
specs = {3},
|
||||
category = "cc",
|
||||
state = { kind = "cooldown", cooldown = 45 },
|
||||
}),
|
||||
Spell(46968, "Shockwave", {
|
||||
classes = {"WARRIOR"},
|
||||
specs = {3},
|
||||
category = "cc",
|
||||
state = { kind = "cooldown", cooldown = 40 },
|
||||
}),
|
||||
Spell(3411, "Intervene", {
|
||||
classes = {"WARRIOR"},
|
||||
specs = {3},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 27 },
|
||||
}),
|
||||
|
||||
-- All Specs
|
||||
Spell(107574, "Avatar", {
|
||||
classes = {"WARRIOR"},
|
||||
category = "offensive",
|
||||
state = { kind = "cooldown", cooldown = 90 },
|
||||
}),
|
||||
Spell(107570, "Storm Bolt", {
|
||||
classes = {"WARRIOR"},
|
||||
category = "cc",
|
||||
state = { kind = "cooldown", cooldown = 36 },
|
||||
}),
|
||||
|
||||
-- PALADIN
|
||||
Spell(498, "Divine Protection", {
|
||||
classes = {"PALADIN"},
|
||||
specs = {1, 2},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 60 },
|
||||
}),
|
||||
Spell(642, "Divine Shield", {
|
||||
classes = {"PALADIN"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 300 },
|
||||
}),
|
||||
Spell(31884, "Avenging Wrath", {
|
||||
classes = {"PALADIN"},
|
||||
specs = {1, 3},
|
||||
category = "offensive",
|
||||
state = { kind = "cooldown", cooldown = 120 },
|
||||
}),
|
||||
Spell(86659, "Guardian of Ancient Kings", {
|
||||
classes = {"PALADIN"},
|
||||
specs = {2},
|
||||
category = "tank",
|
||||
state = { kind = "cooldown", cooldown = 300 },
|
||||
}),
|
||||
|
||||
-- HUNTER
|
||||
Spell(264735, "Survival of the Fittest", {
|
||||
classes = {"HUNTER"},
|
||||
specs = {1},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 180 },
|
||||
}),
|
||||
Spell(109304, "Exhilaration", {
|
||||
classes = {"HUNTER"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 120 },
|
||||
}),
|
||||
|
||||
-- ROGUE
|
||||
Spell(31224, "Cloak of Shadows", {
|
||||
classes = {"ROGUE"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 60 },
|
||||
}),
|
||||
Spell(5277, "Evasion", {
|
||||
classes = {"ROGUE"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 120 },
|
||||
}),
|
||||
Spell(2094, "Blind", {
|
||||
classes = {"ROGUE"},
|
||||
category = "cc",
|
||||
state = { kind = "cooldown", cooldown = 120 },
|
||||
}),
|
||||
Spell(1856, "Vanish", {
|
||||
classes = {"ROGUE"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 120 },
|
||||
}),
|
||||
|
||||
-- DEATH KNIGHT
|
||||
Spell(55233, "Vampiric Blood", {
|
||||
classes = {"DEATHKNIGHT"},
|
||||
specs = {1},
|
||||
category = "tank",
|
||||
state = { kind = "cooldown", cooldown = 180 },
|
||||
mods = {
|
||||
{ talentSpellId = 374200, value = 150, op = "set", target = "cooldown" },
|
||||
},
|
||||
}),
|
||||
Spell(49028, "Dancing Rune Weapon", {
|
||||
classes = {"DEATHKNIGHT"},
|
||||
specs = {1},
|
||||
category = "tank",
|
||||
state = { kind = "cooldown", cooldown = 120 },
|
||||
mods = {
|
||||
{ talentSpellId = 377584, value = 60, op = "set", target = "cooldown" },
|
||||
},
|
||||
}),
|
||||
Spell(48707, "Anti-Magic Shell", {
|
||||
classes = {"DEATHKNIGHT"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 60 },
|
||||
}),
|
||||
Spell(48792, "Icebound Fortitude", {
|
||||
classes = {"DEATHKNIGHT"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 180 },
|
||||
}),
|
||||
Spell(42650, "Army of the Dead", {
|
||||
classes = {"DEATHKNIGHT"},
|
||||
category = "offensive",
|
||||
state = { kind = "cooldown", cooldown = 480 },
|
||||
}),
|
||||
Spell(49206, "Summon Gargoyle", {
|
||||
classes = {"DEATHKNIGHT"},
|
||||
specs = {3},
|
||||
category = "offensive",
|
||||
state = { kind = "cooldown", cooldown = 180 },
|
||||
}),
|
||||
|
||||
-- SHAMAN
|
||||
Spell(204336, "Grounding Totem", {
|
||||
classes = {"SHAMAN"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 30 },
|
||||
}),
|
||||
Spell(51490, "Thunderstorm", {
|
||||
classes = {"SHAMAN"},
|
||||
specs = {1},
|
||||
category = "cc",
|
||||
state = { kind = "cooldown", cooldown = 45 },
|
||||
}),
|
||||
|
||||
-- MAGE
|
||||
Spell(45438, "Ice Block", {
|
||||
classes = {"MAGE"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 240 },
|
||||
}),
|
||||
Spell(110959, "Greater Invisibility", {
|
||||
classes = {"MAGE"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 120 },
|
||||
}),
|
||||
Spell(235450, "Prismatic Barrier", {
|
||||
classes = {"MAGE"},
|
||||
specs = {3},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 25 },
|
||||
}),
|
||||
|
||||
-- WARLOCK
|
||||
Spell(104773, "Unending Resolve", {
|
||||
classes = {"WARLOCK"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 180 },
|
||||
}),
|
||||
Spell(6229, "Twilight Ward", {
|
||||
classes = {"WARLOCK"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 0 },
|
||||
}),
|
||||
Spell(212295, "Nether Ward", {
|
||||
classes = {"WARLOCK"},
|
||||
specs = {3},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 45 },
|
||||
}),
|
||||
|
||||
-- MONK
|
||||
Spell(122783, "Diffuse Magic", {
|
||||
classes = {"MONK"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 90 },
|
||||
}),
|
||||
Spell(122278, "Dampen Harm", {
|
||||
classes = {"MONK"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 120 },
|
||||
}),
|
||||
Spell(120954, "Fortifying Brew", {
|
||||
classes = {"MONK"},
|
||||
specs = {1},
|
||||
category = "tank",
|
||||
state = { kind = "cooldown", cooldown = 420 },
|
||||
}),
|
||||
Spell(115176, "Zen Meditation", {
|
||||
classes = {"MONK"},
|
||||
specs = {2},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 300 },
|
||||
}),
|
||||
Spell(322118, "Invoke Niuzao", {
|
||||
classes = {"MONK"},
|
||||
specs = {1},
|
||||
category = "tank",
|
||||
state = { kind = "cooldown", cooldown = 180 },
|
||||
}),
|
||||
|
||||
-- DRUID
|
||||
Spell(22812, "Barkskin", {
|
||||
classes = {"DRUID"},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 60 },
|
||||
}),
|
||||
Spell(61336, "Survival Instincts", {
|
||||
classes = {"DRUID"},
|
||||
specs = {2, 3},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 180 },
|
||||
}),
|
||||
|
||||
-- DEMON HUNTER
|
||||
Spell(187827, "Metamorphosis", {
|
||||
classes = {"DEMONHUNTER"},
|
||||
specs = {1},
|
||||
category = "offensive",
|
||||
state = { kind = "cooldown", cooldown = 180 },
|
||||
}),
|
||||
Spell(162264, "Metamorphosis", {
|
||||
classes = {"DEMONHUNTER"},
|
||||
specs = {2},
|
||||
category = "tank",
|
||||
state = { kind = "cooldown", cooldown = 180 },
|
||||
}),
|
||||
Spell(1217605, "Metamorphosis", {
|
||||
classes = {"DEMONHUNTER"},
|
||||
specs = {3},
|
||||
category = "offensive",
|
||||
state = {
|
||||
kind = "availability",
|
||||
required = 50,
|
||||
source = {
|
||||
type = "auraStacks",
|
||||
auraSpellId = 1225789,
|
||||
fallbackSpellCountId = 1217605,
|
||||
},
|
||||
},
|
||||
}),
|
||||
Spell(203819, "Demon Spikes", {
|
||||
classes = {"DEMONHUNTER"},
|
||||
specs = {2},
|
||||
category = "tank",
|
||||
state = { kind = "cooldown", cooldown = 20 },
|
||||
}),
|
||||
Spell(212800, "Blur", {
|
||||
classes = {"DEMONHUNTER"},
|
||||
specs = {1},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 60 },
|
||||
}),
|
||||
Spell(196555, "Netherwalk", {
|
||||
classes = {"DEMONHUNTER"},
|
||||
specs = {1},
|
||||
category = "defensive",
|
||||
state = { kind = "cooldown", cooldown = 180 },
|
||||
}),
|
||||
|
||||
-- EVOKER
|
||||
Spell(357214, "Time Stop", {
|
||||
classes = {"EVOKER"},
|
||||
specs = {2},
|
||||
category = "cc",
|
||||
state = { kind = "cooldown", cooldown = 120 },
|
||||
}),
|
||||
Spell(375087, "Tempest", {
|
||||
classes = {"EVOKER"},
|
||||
specs = {3},
|
||||
category = "offensive",
|
||||
state = { kind = "cooldown", cooldown = 30 },
|
||||
}),
|
||||
}
|
||||
|
||||
HMGT_SpellData.Relations = HMGT_SpellData.Relations or {}
|
||||
local hasShieldSlamShieldWallRelation = false
|
||||
local hasAngerManagementRelation = false
|
||||
for _, relation in ipairs(HMGT_SpellData.Relations) do
|
||||
local firstEffect = relation.effects and relation.effects[1]
|
||||
if tonumber(relation.triggerSpellId) == 23922 and tonumber(firstEffect and firstEffect.targetSpellId) == 871 then
|
||||
hasShieldSlamShieldWallRelation = true
|
||||
end
|
||||
if tostring(relation.when) == "powerSpent"
|
||||
and tonumber(relation.talentRequired) == 152278
|
||||
and tostring(relation.powerType) == "RAGE"
|
||||
then
|
||||
hasAngerManagementRelation = true
|
||||
end
|
||||
end
|
||||
if not hasShieldSlamShieldWallRelation and Relation then
|
||||
HMGT_SpellData.Relations[#HMGT_SpellData.Relations + 1] = Relation({
|
||||
triggerSpellId = 23922, -- Shield Slam
|
||||
classes = {"WARRIOR"},
|
||||
specs = {3}, -- Protection
|
||||
when = "cast",
|
||||
talentRequired = 384072, -- Impenetrable Wall
|
||||
effects = {
|
||||
{
|
||||
type = "reduceCooldown",
|
||||
targetSpellId = 871, -- Shield Wall
|
||||
amount = 6,
|
||||
},
|
||||
},
|
||||
})
|
||||
end
|
||||
if not hasAngerManagementRelation and Relation then
|
||||
HMGT_SpellData.Relations[#HMGT_SpellData.Relations + 1] = Relation({
|
||||
classes = {"WARRIOR"},
|
||||
specs = {3}, -- Protection
|
||||
when = "powerSpent",
|
||||
powerType = "RAGE",
|
||||
amountPerTrigger = 20,
|
||||
talentRequired = 152278, -- Anger Management
|
||||
effects = {
|
||||
{
|
||||
type = "reduceCooldown",
|
||||
targetSpellId = 107574, -- Avatar
|
||||
amount = 1,
|
||||
},
|
||||
{
|
||||
type = "reduceCooldown",
|
||||
targetSpellId = 871, -- Shield Wall
|
||||
amount = 1,
|
||||
},
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
if HMGT_SpellData.RebuildLookups then
|
||||
HMGT_SpellData.RebuildLookups()
|
||||
end
|
||||
Reference in New Issue
Block a user