local _, Cell = ... local L = Cell.L local F = Cell.funcs local GetSpellInfo = GetSpellInfo ------------------------------------------------- -- click-castings ------------------------------------------------- local defaultSpells = { ["DEATHKNIGHT"] = { ["common"] = { 61999, -- 复活盟友 47541, -- 凋零缠绕 "49016T", -- 邪恶狂热 }, }, ["DRUID"] = { ["common"] = { -- Balance 29166, -- 激活 -- Restoration 774, -- 回春术 8936, -- 愈合 5185, -- 治疗之触 33763, -- 生命绽放 50464, -- 滋养 "18562T", -- 迅捷治愈 "48438T", -- 野性成长 -- dispel 2782, -- 净化腐蚀 -- resurrect 20484, -- 复生 50769, -- 起死回生 450759, -- 新生 -- buff 467, -- 荆棘术 1126, -- 野性印记 }, }, ["HUNTER"] = { ["common"] = { 34477, -- 误导 53271, -- 主人的召唤 }, }, ["MAGE"] = { ["common"] = { -- dispel 475, -- 解除诅咒 -- buff 130, -- 缓落术 1459, -- 奥术光辉 }, }, ["PALADIN"] = { ["common"] = { -- Holy 635, -- 圣光术 19750, -- 圣光闪现 82326, -- 神圣之光 633, -- 圣疗术 85673, -- 荣耀圣令 "20473T", -- 神圣震击 "53563T", -- 圣光道标 -- Protection 31789, -- 正义防御 1044, -- 自由之手 1038, -- 拯救之手 6940, -- 牺牲之手 1022, -- 保护之手 -- dispel 4987, -- 清洁术 -- resurrect 7328, -- 救赎 450761, -- 赦免 -- buff 20217, -- 王者祝福 19740, -- 力量祝福 }, }, ["PRIEST"] = { ["common"] = { -- Discipline 17, -- 真言术:盾 "47540T", -- 苦修 -- Holy 2061, -- 快速治疗 2050, -- 治疗术 2060, -- 强效治疗术 32546, -- 联结治疗 139, -- 恢复 33076, -- 愈合祷言 596, -- 治疗祷言 "34861T", -- 治疗之环 "47788T", -- 守护之魂 73325, -- 信仰飞跃 -- dispel 527, -- 驱散魔法 528, -- 祛病术 -- resurrect 2006, -- 复活术 83968, -- 群体复活 -- buff "10060T", -- 能量灌注 "33206T", -- 痛苦压制 1706, -- 漂浮术 6346, -- 防护恐惧结界 21562, -- 真言术:韧 27683, -- 暗影防护 -- other 2096, -- 心灵视界 }, }, ["ROGUE"] = { ["common"] = { 57934, -- 嫁祸诀窍 }, }, ["SHAMAN"] = { ["common"] = { -- Restoration 8004, -- 治疗之涌 331, -- 治疗波 77472, -- 强效治疗波 1064, -- 治疗链 "974T", -- 大地之盾 "61295T", -- 激流 -- dispel 51886, -- 净化灵魂 -- resurrect 2008, -- 先祖之魂 450762, -- 先祖视界 -- buff 546, -- 水上行走 131, -- 水下呼吸 }, }, ["WARLOCK"] = { ["common"] = { -- buff 5697, -- 无尽呼吸 80398, -- 黑暗意图 }, }, ["WARRIOR"] = { ["common"] = { 3411, -- 援护 "50720T", -- 警戒 }, }, } function F:GetClickCastingSpellList(class) local spells = defaultSpells[class]["common"] and F:Copy(defaultSpells[class]["common"]) or {} -- fill data for i, v in pairs(spells) do local spellId, spellType if type(v) == "number" then spellId = v else -- string spellId, spellType = strmatch(v, "(%d+)(%a)") spellType = L[spellType] end local name, _, icon = GetSpellInfo(spellId) spells[i] = {icon, name, spellType, spellId} end -- texplore(spells) return spells end ------------------------------------------------- -- resurrections ------------------------------------------------- local resurrections_for_dead = { -- DEATHKNIGHT 61999, -- 复活盟友 -- DRUID 20484, -- 复生 50769, -- 起死回生 -- PALADIN 7328, -- 救赎 -- PRIEST 2006, -- 复活术 -- SHAMAN 2008, -- 先祖之魂 } do local temp = {} for _, id in pairs(resurrections_for_dead) do temp[GetSpellInfo(id)] = true end resurrections_for_dead = temp end function F:IsSoulstone() return false end function F:IsResurrectionForDead(spellId) return resurrections_for_dead[spellId] end local resurrection_click_castings = { ["DEATHKNIGHT"] = { {"type-R", "spell", 61999}, }, ["DRUID"] = { {"type-R", "spell", 20484}, {"type-shiftR", "spell", 50769}, }, ["PALADIN"] = { {"type-shiftR", "spell", 7328}, }, ["PRIEST"] = { {"type-shiftR", "spell", 2006}, }, ["SHAMAN"] = { {"type-shiftR", "spell", 2008}, }, } -- do -- for class, t in pairs(resurrection_click_castings) do -- for _, clickCasting in pairs(t) do -- clickCasting[3] = GetSpellInfo(clickCasting[3]) -- end -- end -- end function F:GetResurrectionClickCastings(class) return resurrection_click_castings[class] or {} end ------------------------------------------------- -- smart resurrection ------------------------------------------------- local normalResurrection = { ["DRUID"] = 50769, ["PALADIN"] = 7328, ["PRIEST"] = 2006, ["SHAMAN"] = 2008, } do for class, spell in pairs(normalResurrection) do normalResurrection[class] = GetSpellInfo(spell) end end function F:GetNormalResurrection(class) return normalResurrection[class] end local combatResurrection = { ["DEATHKNIGHT"] = 61999, ["DRUID"] = 20484, } do for class, spell in pairs(combatResurrection) do combatResurrection[class] = GetSpellInfo(spell) end end function F:GetCombatResurrection(class) return combatResurrection[class] end