wow 30402 update libs + fix taint issue
This commit is contained in:
parent
8f4f153011
commit
117888cdb0
1
.gitignore
vendored
1
.gitignore
vendored
@ -6,5 +6,6 @@ BuffLib
|
|||||||
Ace-Libs
|
Ace-Libs
|
||||||
Images_Raw
|
Images_Raw
|
||||||
Gladdy_old
|
Gladdy_old
|
||||||
|
DoNotCommit
|
||||||
untracked
|
untracked
|
||||||
Gladdy_TW
|
Gladdy_TW
|
52
Gladdy.lua
52
Gladdy.lua
@ -13,7 +13,6 @@ local CreateFrame = CreateFrame
|
|||||||
local DEFAULT_CHAT_FRAME = DEFAULT_CHAT_FRAME
|
local DEFAULT_CHAT_FRAME = DEFAULT_CHAT_FRAME
|
||||||
local IsAddOnLoaded = IsAddOnLoaded
|
local IsAddOnLoaded = IsAddOnLoaded
|
||||||
local GetBattlefieldStatus = GetBattlefieldStatus
|
local GetBattlefieldStatus = GetBattlefieldStatus
|
||||||
local IsActiveBattlefieldArena = IsActiveBattlefieldArena
|
|
||||||
local IsInInstance = IsInInstance
|
local IsInInstance = IsInInstance
|
||||||
local GetNumArenaOpponents = GetNumArenaOpponents
|
local GetNumArenaOpponents = GetNumArenaOpponents
|
||||||
local RELEASE_TYPES = { alpha = "Alpha", beta = "Beta", release = "Release"}
|
local RELEASE_TYPES = { alpha = "Alpha", beta = "Beta", release = "Release"}
|
||||||
@ -433,23 +432,22 @@ end
|
|||||||
function Gladdy:UPDATE_BATTLEFIELD_STATUS(_, index)
|
function Gladdy:UPDATE_BATTLEFIELD_STATUS(_, index)
|
||||||
local status, mapName, instanceID, levelRangeMin, levelRangeMax, teamSize, isRankedArena, suspendedQueue, bool, queueType = GetBattlefieldStatus(index)
|
local status, mapName, instanceID, levelRangeMin, levelRangeMax, teamSize, isRankedArena, suspendedQueue, bool, queueType = GetBattlefieldStatus(index)
|
||||||
local instanceType = select(2, IsInInstance())
|
local instanceType = select(2, IsInInstance())
|
||||||
Gladdy:Debug("INFO", "UPDATE_BATTLEFIELD_STATUS", instanceType, status, teamSize)
|
self:Debug("INFO", "UPDATE_BATTLEFIELD_STATUS", instanceType, status, teamSize)
|
||||||
if ((instanceType == "arena" or GetNumArenaOpponents() > 0) and status == "active" and teamSize > 0) then
|
if ((instanceType == "arena" or GetNumArenaOpponents() > 0) and status == "active" and teamSize > 0) then
|
||||||
self.curBracket = teamSize
|
self.curBracket = teamSize
|
||||||
self:JoinedArena()
|
self:JoinedArena()
|
||||||
|
elseif status == "active" then
|
||||||
|
if self.db.hideBlizzard == "always" then
|
||||||
|
self:BlizzArenaSetAlpha(0)
|
||||||
|
else
|
||||||
|
self:BlizzArenaSetAlpha(1)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function Gladdy:PLAYER_REGEN_ENABLED()
|
function Gladdy:PLAYER_REGEN_ENABLED()
|
||||||
if self.showFrame then
|
if self.showFrame then
|
||||||
self:UpdateFrame()
|
self:InitFrames()
|
||||||
if self.startTest then
|
|
||||||
self:Test()
|
|
||||||
self.startTest = nil
|
|
||||||
end
|
|
||||||
self.frame:Show()
|
|
||||||
self:SendMessage("JOINED_ARENA")
|
|
||||||
self.showFrame = nil
|
|
||||||
end
|
end
|
||||||
if self.hideFrame then
|
if self.hideFrame then
|
||||||
self:Reset()
|
self:Reset()
|
||||||
@ -481,8 +479,8 @@ function Gladdy:Reset()
|
|||||||
for unit in pairs(self.buttons) do
|
for unit in pairs(self.buttons) do
|
||||||
self:ResetUnit(unit)
|
self:ResetUnit(unit)
|
||||||
end
|
end
|
||||||
if Gladdy.db.hideBlizzard == "never" or Gladdy.db.hideBlizzard == "arena" then
|
if self.db.hideBlizzard == "never" or self.db.hideBlizzard == "arena" then
|
||||||
Gladdy:BlizzArenaSetAlpha(1)
|
self:BlizzArenaSetAlpha(1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -525,6 +523,16 @@ end
|
|||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
function Gladdy:JoinedArena()
|
function Gladdy:JoinedArena()
|
||||||
|
if InCombatLockdown() then
|
||||||
|
self:Print("Gladdy frames show as soon as you leave combat")
|
||||||
|
self.showFrame = true
|
||||||
|
else
|
||||||
|
self:InitFrames()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function Gladdy:InitFrames()
|
||||||
|
self.showFrame = nil
|
||||||
if not self.curBracket then
|
if not self.curBracket then
|
||||||
self.curBracket = 2
|
self.curBracket = 2
|
||||||
end
|
end
|
||||||
@ -535,19 +543,21 @@ function Gladdy:JoinedArena()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if InCombatLockdown() then
|
self:UpdateFrame()
|
||||||
Gladdy:Print("Gladdy frames show as soon as you leave combat")
|
if self.startTest then
|
||||||
self.showFrame = true
|
self:Test()
|
||||||
else
|
self.startTest = nil
|
||||||
self:UpdateFrame()
|
|
||||||
self.frame:Show()
|
|
||||||
self:SendMessage("JOINED_ARENA")
|
|
||||||
end
|
end
|
||||||
|
self.frame:Show()
|
||||||
|
self:SendMessage("JOINED_ARENA")
|
||||||
|
|
||||||
for i=1, self.curBracket do
|
for i=1, self.curBracket do
|
||||||
self.buttons["arena" .. i]:SetAlpha(1)
|
self.buttons["arena" .. i]:SetAlpha(1)
|
||||||
end
|
end
|
||||||
if Gladdy.db.hideBlizzard == "arena" or Gladdy.db.hideBlizzard == "always" then
|
if self.db.hideBlizzard == "arena" or self.db.hideBlizzard == "always" then
|
||||||
Gladdy:BlizzArenaSetAlpha(0)
|
self:BlizzArenaSetAlpha(0)
|
||||||
|
else
|
||||||
|
self:BlizzArenaSetAlpha(1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
## Title: Gladdy |cFFFF0000 game client not supported|r
|
## Title: Gladdy |cFFFF0000 game client not supported|r
|
||||||
## Version: 2.23-Release
|
## Version: 2.24-Release
|
||||||
## Notes: The most powerful arena AddOn for WoW Classic TBC/WotLK
|
## Notes: The most powerful arena AddOn for WoW Classic TBC/WotLK
|
||||||
## Author: XiconQoo, DnB_Junkee, Knall
|
## Author: XiconQoo, DnB_Junkee, Knall
|
||||||
## X-Email: contact me on discord Knall#1751
|
## X-Email: contact me on discord Knall#1751
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
## Interface: 20504
|
## Interface: 20504
|
||||||
## Title: Gladdy - TBC
|
## Title: Gladdy - TBC
|
||||||
## Version: 2.23-Release
|
## Version: 2.24-Release
|
||||||
## Notes: The most powerful arena AddOn for WoW 2.5.4
|
## Notes: The most powerful arena AddOn for WoW 2.5.4
|
||||||
## Author: XiconQoo, DnB_Junkee, Knall
|
## Author: XiconQoo, DnB_Junkee, Knall
|
||||||
## X-Email: contact me on discord Knall#1751
|
## X-Email: contact me on discord Knall#1751
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
## Interface: 30401
|
## Interface: 30402
|
||||||
## Title: Gladdy - WotLK
|
## Title: Gladdy - WotLK
|
||||||
## Version: 2.23-Release
|
## Version: 2.24-Release
|
||||||
## Notes: The most powerful arena AddOn for WoW 3.4.0
|
## Notes: The most powerful arena AddOn for WoW 3.4.2
|
||||||
## Author: XiconQoo, DnB_Junkee, Knall
|
## Author: XiconQoo, DnB_Junkee, Knall
|
||||||
## X-Email: contact me on discord Knall#1751
|
## X-Email: contact me on discord Knall#1751
|
||||||
## X-Curse-Project-ID: 482332
|
## X-Curse-Project-ID: 482332
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
--- AceConfigDialog-3.0 generates AceGUI-3.0 based windows based on option tables.
|
--- AceConfigDialog-3.0 generates AceGUI-3.0 based windows based on option tables.
|
||||||
-- @class file
|
-- @class file
|
||||||
-- @name AceConfigDialog-3.0
|
-- @name AceConfigDialog-3.0
|
||||||
-- @release $Id: AceConfigDialog-3.0.lua 1292 2022-09-29 08:00:11Z nevcairiel $
|
-- @release $Id: AceConfigDialog-3.0.lua 1296 2022-11-04 18:50:10Z nevcairiel $
|
||||||
|
|
||||||
local LibStub = LibStub
|
local LibStub = LibStub
|
||||||
local gui = LibStub("AceGUI-3.0")
|
local gui = LibStub("AceGUI-3.0")
|
||||||
local reg = LibStub("AceConfigRegistry-3.0")
|
local reg = LibStub("AceConfigRegistry-3.0")
|
||||||
|
|
||||||
local MAJOR, MINOR = "AceConfigDialog-3.0", 85
|
local MAJOR, MINOR = "AceConfigDialog-3.0", 86
|
||||||
local AceConfigDialog, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
|
local AceConfigDialog, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
|
||||||
|
|
||||||
if not AceConfigDialog then return end
|
if not AceConfigDialog then return end
|
||||||
@ -147,6 +147,7 @@ local stringIsLiteral = {
|
|||||||
width = true,
|
width = true,
|
||||||
image = true,
|
image = true,
|
||||||
fontSize = true,
|
fontSize = true,
|
||||||
|
tooltipHyperlink = true
|
||||||
}
|
}
|
||||||
|
|
||||||
--Is Never a function or method
|
--Is Never a function or method
|
||||||
@ -501,6 +502,14 @@ local function OptionOnMouseOver(widget, event)
|
|||||||
local tooltip = AceConfigDialog.tooltip
|
local tooltip = AceConfigDialog.tooltip
|
||||||
|
|
||||||
tooltip:SetOwner(widget.frame, "ANCHOR_TOPRIGHT")
|
tooltip:SetOwner(widget.frame, "ANCHOR_TOPRIGHT")
|
||||||
|
|
||||||
|
local tooltipHyperlink = GetOptionsMemberValue("tooltipHyperlink", opt, options, path, appName)
|
||||||
|
if tooltipHyperlink then
|
||||||
|
tooltip:SetHyperlink(tooltipHyperlink)
|
||||||
|
tooltip:Show()
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
local name = GetOptionsMemberValue("name", opt, options, path, appName)
|
local name = GetOptionsMemberValue("name", opt, options, path, appName)
|
||||||
local desc = GetOptionsMemberValue("desc", opt, options, path, appName)
|
local desc = GetOptionsMemberValue("desc", opt, options, path, appName)
|
||||||
local usage = GetOptionsMemberValue("usage", opt, options, path, appName)
|
local usage = GetOptionsMemberValue("usage", opt, options, path, appName)
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
-- :IterateOptionsTables() (and :GetOptionsTable() if only given one argument) return a function reference that the requesting config handling addon must call with valid "uiType", "uiName".
|
-- :IterateOptionsTables() (and :GetOptionsTable() if only given one argument) return a function reference that the requesting config handling addon must call with valid "uiType", "uiName".
|
||||||
-- @class file
|
-- @class file
|
||||||
-- @name AceConfigRegistry-3.0
|
-- @name AceConfigRegistry-3.0
|
||||||
-- @release $Id: AceConfigRegistry-3.0.lua 1207 2019-06-23 12:08:33Z nevcairiel $
|
-- @release $Id: AceConfigRegistry-3.0.lua 1296 2022-11-04 18:50:10Z nevcairiel $
|
||||||
local CallbackHandler = LibStub("CallbackHandler-1.0")
|
local CallbackHandler = LibStub("CallbackHandler-1.0")
|
||||||
|
|
||||||
local MAJOR, MINOR = "AceConfigRegistry-3.0", 20
|
local MAJOR, MINOR = "AceConfigRegistry-3.0", 21
|
||||||
local AceConfigRegistry = LibStub:NewLibrary(MAJOR, MINOR)
|
local AceConfigRegistry = LibStub:NewLibrary(MAJOR, MINOR)
|
||||||
|
|
||||||
if not AceConfigRegistry then return end
|
if not AceConfigRegistry then return end
|
||||||
@ -83,6 +83,7 @@ local basekeys={
|
|||||||
dialogHidden=optmethodbool,
|
dialogHidden=optmethodbool,
|
||||||
dropdownHidden=optmethodbool,
|
dropdownHidden=optmethodbool,
|
||||||
cmdHidden=optmethodbool,
|
cmdHidden=optmethodbool,
|
||||||
|
tooltipHyperlink=optstringfunc,
|
||||||
icon=optstringnumberfunc,
|
icon=optstringnumberfunc,
|
||||||
iconCoords=optmethodtable,
|
iconCoords=optmethodtable,
|
||||||
handler=opttable,
|
handler=opttable,
|
||||||
|
@ -40,8 +40,8 @@
|
|||||||
-- end
|
-- end
|
||||||
-- @class file
|
-- @class file
|
||||||
-- @name AceDB-3.0.lua
|
-- @name AceDB-3.0.lua
|
||||||
-- @release $Id: AceDB-3.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $
|
-- @release $Id: AceDB-3.0.lua 1306 2023-06-23 14:55:09Z nevcairiel $
|
||||||
local ACEDB_MAJOR, ACEDB_MINOR = "AceDB-3.0", 27
|
local ACEDB_MAJOR, ACEDB_MINOR = "AceDB-3.0", 28
|
||||||
local AceDB = LibStub:NewLibrary(ACEDB_MAJOR, ACEDB_MINOR)
|
local AceDB = LibStub:NewLibrary(ACEDB_MAJOR, ACEDB_MINOR)
|
||||||
|
|
||||||
if not AceDB then return end -- No upgrade needed
|
if not AceDB then return end -- No upgrade needed
|
||||||
@ -260,7 +260,7 @@ local factionrealmKey = factionKey .. " - " .. realmKey
|
|||||||
local localeKey = GetLocale():lower()
|
local localeKey = GetLocale():lower()
|
||||||
|
|
||||||
local regionTable = { "US", "KR", "EU", "TW", "CN" }
|
local regionTable = { "US", "KR", "EU", "TW", "CN" }
|
||||||
local regionKey = regionTable[GetCurrentRegion()]
|
local regionKey = regionTable[GetCurrentRegion()] or GetCurrentRegionName() or "TR"
|
||||||
local factionrealmregionKey = factionrealmKey .. " - " .. regionKey
|
local factionrealmregionKey = factionrealmKey .. " - " .. regionKey
|
||||||
|
|
||||||
-- Actual database initialization function
|
-- Actual database initialization function
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
--- AceDBOptions-3.0 provides a universal AceConfig options screen for managing AceDB-3.0 profiles.
|
--- AceDBOptions-3.0 provides a universal AceConfig options screen for managing AceDB-3.0 profiles.
|
||||||
-- @class file
|
-- @class file
|
||||||
-- @name AceDBOptions-3.0
|
-- @name AceDBOptions-3.0
|
||||||
-- @release $Id: AceDBOptions-3.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $
|
-- @release $Id: AceDBOptions-3.0.lua 1304 2023-05-19 19:50:10Z nevcairiel $
|
||||||
local ACEDBO_MAJOR, ACEDBO_MINOR = "AceDBOptions-3.0", 15
|
local ACEDBO_MAJOR, ACEDBO_MINOR = "AceDBOptions-3.0", 15
|
||||||
local AceDBOptions = LibStub:NewLibrary(ACEDBO_MAJOR, ACEDBO_MINOR)
|
local AceDBOptions = LibStub:NewLibrary(ACEDBO_MAJOR, ACEDBO_MINOR)
|
||||||
|
|
||||||
@ -84,25 +84,25 @@ elseif LOCALE == "frFR" then
|
|||||||
L["reset_desc"] = "Réinitialise le profil actuel au cas où votre configuration est corrompue ou si vous voulez tout simplement faire table rase."
|
L["reset_desc"] = "Réinitialise le profil actuel au cas où votre configuration est corrompue ou si vous voulez tout simplement faire table rase."
|
||||||
L["reset_sub"] = "Réinitialise le profil actuel avec les paramètres par défaut."
|
L["reset_sub"] = "Réinitialise le profil actuel avec les paramètres par défaut."
|
||||||
elseif LOCALE == "koKR" then
|
elseif LOCALE == "koKR" then
|
||||||
L["choose"] = "저장 중인 프로필"
|
L["choose"] = "기존 프로필"
|
||||||
L["choose_desc"] = "입력창에 새로운 이름을 입력하거나 저장 중인 프로필 중 하나를 선택하여 새로운 프로필을 만들 수 있습니다."
|
L["choose_desc"] = "편집 상자에 이름을 입력하여 새로운 프로필을 만들거나 이미 존재하는 프로필 중 하나를 선택할 수 있습니다."
|
||||||
L["choose_sub"] = "현재 이용할 수 있는 프로필 중 하나를 선택합니다."
|
L["choose_sub"] = "현재 이용할 수 있는 프로필 중 하나를 선택합니다."
|
||||||
L["copy"] = "복사해오기"
|
L["copy"] = "복사해 올 프로필"
|
||||||
L["copy_desc"] = "현재 사용 중인 프로필에 선택한 프로필의 설정을 복사합니다."
|
L["copy_desc"] = "기존 프로필의 설정을 현재 활성화된 프로필로 복사합니다."
|
||||||
L["current"] = "현재 프로필:"
|
L["current"] = "현재 프로필:"
|
||||||
L["default"] = "기본값"
|
L["default"] = "기본값"
|
||||||
L["delete"] = "프로필 삭제"
|
L["delete"] = "프로필 삭제"
|
||||||
L["delete_confirm"] = "정말로 선택한 프로필을 삭제할까요?"
|
L["delete_confirm"] = "선택한 프로필을 삭제하시겠습니까?"
|
||||||
L["delete_desc"] = "저장 공간 절약과 SavedVariables 파일의 정리를 위해 데이터베이스에서 사용하지 않는 프로필을 삭제하세요."
|
L["delete_desc"] = "데이터베이스에서 기존 프로필과 사용하지 않는 프로필을 삭제하여 공간을 절약하고 SavedVariables 파일을 정리합니다."
|
||||||
L["delete_sub"] = "데이터베이스의 프로필을 삭제합니다."
|
L["delete_sub"] = "데이터베이스에서 프로필을 삭제합니다."
|
||||||
L["intro"] = "활성 데이터베이스 프로필을 변경할 수 있고, 각 캐릭터 별로 다른 설정을 할 수 있습니다."
|
L["intro"] = "활성 데이터베이스 프로필을 변경할 수 있으며, 모든 캐릭터마다 서로 다른 설정을 지정할 수 있습니다."
|
||||||
L["new"] = "새로운 프로필"
|
L["new"] = "새로운 프로필"
|
||||||
L["new_sub"] = "새로운 프로필을 만듭니다."
|
L["new_sub"] = "비어 있는 프로필을 새로 만듭니다."
|
||||||
L["profiles"] = "프로필"
|
L["profiles"] = "프로필"
|
||||||
L["profiles_sub"] = "프로필 관리"
|
L["profiles_sub"] = "프로필 관리"
|
||||||
L["reset"] = "프로필 초기화"
|
L["reset"] = "프로필 재설정"
|
||||||
L["reset_desc"] = "설정이 깨졌거나 처음부터 다시 설정을 원하는 경우, 현재 프로필을 기본값으로 초기화하세요."
|
L["reset_desc"] = "구성이 손상되었거나 처음부터 다시 시작하고 싶은 경우 현재 프로필을 기본값으로 재설정하세요."
|
||||||
L["reset_sub"] = "현재 프로필을 기본값으로 초기화합니다"
|
L["reset_sub"] = "현재 프로필을 기본값으로 재설정합니다"
|
||||||
elseif LOCALE == "esES" or LOCALE == "esMX" then
|
elseif LOCALE == "esES" or LOCALE == "esMX" then
|
||||||
L["choose"] = "Perfiles existentes"
|
L["choose"] = "Perfiles existentes"
|
||||||
L["choose_desc"] = "Puedes crear un nuevo perfil introduciendo un nombre en el recuadro o puedes seleccionar un perfil de los ya existentes."
|
L["choose_desc"] = "Puedes crear un nuevo perfil introduciendo un nombre en el recuadro o puedes seleccionar un perfil de los ya existentes."
|
||||||
@ -166,31 +166,31 @@ elseif LOCALE == "zhCN" then
|
|||||||
elseif LOCALE == "ruRU" then
|
elseif LOCALE == "ruRU" then
|
||||||
L["choose"] = "Существующие профили"
|
L["choose"] = "Существующие профили"
|
||||||
L["choose_desc"] = "Вы можете создать новый профиль, введя название в поле ввода, или выбрать один из уже существующих профилей."
|
L["choose_desc"] = "Вы можете создать новый профиль, введя название в поле ввода, или выбрать один из уже существующих профилей."
|
||||||
L["choose_sub"] = "Выбор одиного из уже доступных профилей"
|
L["choose_sub"] = "Выбор одного из уже доступных профилей."
|
||||||
L["copy"] = "Скопировать из"
|
L["copy"] = "Скопировать из"
|
||||||
L["copy_desc"] = "Скопировать настройки из выбранного профиля в активный."
|
L["copy_desc"] = "Копирование настроек из выбранного профиля в активный."
|
||||||
L["current"] = "Текущий профиль:"
|
L["current"] = "Текущий профиль:"
|
||||||
L["default"] = "По умолчанию"
|
L["default"] = "По умолчанию"
|
||||||
L["delete"] = "Удалить профиль"
|
L["delete"] = "Удалить профиль"
|
||||||
L["delete_confirm"] = "Вы уверены, что вы хотите удалить выбранный профиль?"
|
L["delete_confirm"] = "Вы уверены, что хотите удалить выбранный профиль?"
|
||||||
L["delete_desc"] = "Удалить существующий и неиспользуемый профиль из БД для сохранения места, и очистить SavedVariables файл."
|
L["delete_desc"] = "Удаление существующего и неиспользуемого профиля из базы данных для сохранения места, и очистка файла SavedVariables."
|
||||||
L["delete_sub"] = "Удаление профиля из БД"
|
L["delete_sub"] = "Удаление профиля из базы данных."
|
||||||
L["intro"] = "Изменяя активный профиль, вы можете задать различные настройки модификаций для каждого персонажа."
|
L["intro"] = "Изменяя активный профиль, Вы можете задать разные настройки для каждого персонажа."
|
||||||
L["new"] = "Новый"
|
L["new"] = "Новый"
|
||||||
L["new_sub"] = "Создать новый чистый профиль"
|
L["new_sub"] = "Создание нового чистого профиля."
|
||||||
L["profiles"] = "Профили"
|
L["profiles"] = "Профили"
|
||||||
L["profiles_sub"] = "Управление профилями"
|
L["profiles_sub"] = "Управление профилями"
|
||||||
L["reset"] = "Сброс профиля"
|
L["reset"] = "Сбросить профиль"
|
||||||
L["reset_desc"] = "Сбросить текущий профиль к стандартным настройкам, если ваша конфигурация испорчена или вы хотите настроить всё заново."
|
L["reset_desc"] = "Сброс текущего профиля к стандартным настройкам, если Ваша конфигурация испорчена или Вы хотите настроить все заново."
|
||||||
L["reset_sub"] = "Сброс текущего профиля на стандартный"
|
L["reset_sub"] = "Сброс текущего профиля на стандартный"
|
||||||
elseif LOCALE == "itIT" then
|
elseif LOCALE == "itIT" then
|
||||||
L["choose"] = "Profili Esistenti"
|
L["choose"] = "Profili Esistenti"
|
||||||
L["choose_desc"] = "Puoi creare un nuovo profilo digitando il nome della casella di testo, oppure scegliendone uno tra i profili già esistenti."
|
L["choose_desc"] = "Puoi creare un nuovo profilo digitando il nome della casella di testo, oppure scegliendone uno tra i profili già esistenti."
|
||||||
L["choose_sub"] = "Seleziona uno dei profili attualmente disponibili."
|
L["choose_sub"] = "Seleziona uno dei profili attualmente disponibili."
|
||||||
L["copy"] = "Copia Da"
|
L["copy"] = "Copia Da"
|
||||||
L["copy_desc"] = "Copia le impostazioni da un profilo esistente, nel profilo attivo in questo momento."
|
L["copy_desc"] = "Copia le impostazioni da un profilo esistente nel profilo attivo in questo momento."
|
||||||
L["current"] = "Profilo Attivo:"
|
L["current"] = "Profilo Attivo:"
|
||||||
L["default"] = "Standard"
|
L["default"] = "Predefinito"
|
||||||
L["delete"] = "Cancella un Profilo"
|
L["delete"] = "Cancella un Profilo"
|
||||||
L["delete_confirm"] = "Sei sicuro di voler cancellare il profilo selezionato?"
|
L["delete_confirm"] = "Sei sicuro di voler cancellare il profilo selezionato?"
|
||||||
L["delete_desc"] = "Cancella i profili non utilizzati dal database per risparmiare spazio e mantenere puliti i file di configurazione SavedVariables."
|
L["delete_desc"] = "Cancella i profili non utilizzati dal database per risparmiare spazio e mantenere puliti i file di configurazione SavedVariables."
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
--[[ $Id: CallbackHandler-1.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $ ]]
|
--[[ $Id: CallbackHandler-1.0.lua 1298 2022-12-12 15:10:10Z nevcairiel $ ]]
|
||||||
local MAJOR, MINOR = "CallbackHandler-1.0", 7
|
local MAJOR, MINOR = "CallbackHandler-1.0", 8
|
||||||
local CallbackHandler = LibStub:NewLibrary(MAJOR, MINOR)
|
local CallbackHandler = LibStub:NewLibrary(MAJOR, MINOR)
|
||||||
|
|
||||||
if not CallbackHandler then return end -- No upgrade needed
|
if not CallbackHandler then return end -- No upgrade needed
|
||||||
@ -7,21 +7,16 @@ if not CallbackHandler then return end -- No upgrade needed
|
|||||||
local meta = {__index = function(tbl, key) tbl[key] = {} return tbl[key] end}
|
local meta = {__index = function(tbl, key) tbl[key] = {} return tbl[key] end}
|
||||||
|
|
||||||
-- Lua APIs
|
-- Lua APIs
|
||||||
local error = error
|
local securecallfunction, error = securecallfunction, error
|
||||||
local setmetatable, rawget = setmetatable, rawget
|
local setmetatable, rawget = setmetatable, rawget
|
||||||
local next, select, pairs, type, tostring = next, select, pairs, type, tostring
|
local next, select, pairs, type, tostring = next, select, pairs, type, tostring
|
||||||
|
|
||||||
local xpcall = xpcall
|
|
||||||
|
|
||||||
local function errorhandler(err)
|
|
||||||
return geterrorhandler()(err)
|
|
||||||
end
|
|
||||||
|
|
||||||
local function Dispatch(handlers, ...)
|
local function Dispatch(handlers, ...)
|
||||||
local index, method = next(handlers)
|
local index, method = next(handlers)
|
||||||
if not method then return end
|
if not method then return end
|
||||||
repeat
|
repeat
|
||||||
xpcall(method, errorhandler, ...)
|
securecallfunction(method, ...)
|
||||||
index, method = next(handlers, index)
|
index, method = next(handlers, index)
|
||||||
until not method
|
until not method
|
||||||
end
|
end
|
||||||
|
@ -9,7 +9,7 @@ License: MIT
|
|||||||
|
|
||||||
--- DRList-1.0
|
--- DRList-1.0
|
||||||
-- @module DRList-1.0
|
-- @module DRList-1.0
|
||||||
local MAJOR, MINOR = "DRList-1.0", 49 -- Don't forget to change this in Spells.lua aswell!
|
local MAJOR, MINOR = "DRList-1.0", 54 -- Don't forget to change this in Spells.lua aswell!
|
||||||
local Lib = assert(LibStub, MAJOR .. " requires LibStub."):NewLibrary(MAJOR, MINOR)
|
local Lib = assert(LibStub, MAJOR .. " requires LibStub."):NewLibrary(MAJOR, MINOR)
|
||||||
if not Lib then return end -- already loaded
|
if not Lib then return end -- already loaded
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ L["TAUNTS"] = "Taunts"
|
|||||||
L["FEARS"] = "Fears"
|
L["FEARS"] = "Fears"
|
||||||
L["RANDOM_ROOTS"] = "Random roots"
|
L["RANDOM_ROOTS"] = "Random roots"
|
||||||
L["RANDOM_STUNS"] = "Random stuns"
|
L["RANDOM_STUNS"] = "Random stuns"
|
||||||
L["OPENER_STUN"] = "Opener Stuns"
|
L["OPENER_STUN"] = "Opener stuns"
|
||||||
L["HORROR"] = "Horrors"
|
L["HORROR"] = "Horrors"
|
||||||
L["SCATTERS"] = "Scatters"
|
L["SCATTERS"] = "Scatters"
|
||||||
L["SLEEPS"] = GetSpellInfo(1090) or "Sleep"
|
L["SLEEPS"] = GetSpellInfo(1090) or "Sleep"
|
||||||
@ -62,8 +62,7 @@ elseif locale == "frFR" then
|
|||||||
L["STUNS"] = "Etourdissements"
|
L["STUNS"] = "Etourdissements"
|
||||||
L["TAUNTS"] = "Provocations"
|
L["TAUNTS"] = "Provocations"
|
||||||
elseif locale == "itIT" then
|
elseif locale == "itIT" then
|
||||||
-- Categories
|
--@localization(locale="itIT", namespace="Categories", format="lua_additive_table", handle-unlocalized="ignore")@
|
||||||
|
|
||||||
elseif locale == "koKR" then
|
elseif locale == "koKR" then
|
||||||
L["DISORIENTS"] = "방향 감각 상실"
|
L["DISORIENTS"] = "방향 감각 상실"
|
||||||
L["INCAPACITATES"] = "행동 불가"
|
L["INCAPACITATES"] = "행동 불가"
|
||||||
@ -72,8 +71,7 @@ elseif locale == "koKR" then
|
|||||||
L["SILENCES"] = "침묵"
|
L["SILENCES"] = "침묵"
|
||||||
L["STUNS"] = "기절"
|
L["STUNS"] = "기절"
|
||||||
elseif locale == "ptBR" then
|
elseif locale == "ptBR" then
|
||||||
-- Categories
|
--@localization(locale="ptBR", namespace="Categories", format="lua_additive_table", handle-unlocalized="ignore")@
|
||||||
|
|
||||||
elseif locale == "ruRU" then
|
elseif locale == "ruRU" then
|
||||||
L["DISARMS"] = "Разоружение"
|
L["DISARMS"] = "Разоружение"
|
||||||
L["DISORIENTS"] = "Дезориентация"
|
L["DISORIENTS"] = "Дезориентация"
|
||||||
@ -137,24 +135,24 @@ Lib.gameExpansion = ({
|
|||||||
-- How long it takes for a DR to expire, in seconds.
|
-- How long it takes for a DR to expire, in seconds.
|
||||||
Lib.resetTimes = {
|
Lib.resetTimes = {
|
||||||
retail = {
|
retail = {
|
||||||
["default"] = 18.5, -- 18 sec + 0.5 latency
|
["default"] = 18.5, -- static 18 sec + 0.5 latency
|
||||||
["npc"] = 23, -- Against mobs it seems to last slightly longer, depending on server load
|
["npc"] = 21, -- Against mobs it seems to last slightly longer, depending on server load
|
||||||
["knockback"] = 10.5, -- Knockbacks are immediately immune and only DRs for 10s
|
["knockback"] = 10.5, -- Knockbacks are immediately immune and only DRs for 10s
|
||||||
},
|
},
|
||||||
|
|
||||||
classic = {
|
classic = {
|
||||||
["default"] = 20, -- dynamic between 15 and 20s
|
["default"] = 20, -- dynamic between 15 and 20s
|
||||||
["npc"] = 23,
|
["npc"] = 21,
|
||||||
},
|
},
|
||||||
|
|
||||||
tbc = {
|
tbc = {
|
||||||
["default"] = 20, -- dynamic between 15 and 20s
|
["default"] = 20, -- dynamic between 15 and 20s
|
||||||
["npc"] = 23,
|
["npc"] = 21,
|
||||||
},
|
},
|
||||||
|
|
||||||
wotlk = {
|
wotlk = {
|
||||||
["default"] = 20, -- dynamic between 15 and 20s
|
["default"] = 20, -- dynamic between 15 and 20s
|
||||||
["npc"] = 23,
|
["npc"] = 21,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,13 +219,12 @@ Lib.categoryNames = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
-- Categories that have DR against normal mobs.
|
-- Categories that have DR against normal mobs.
|
||||||
-- Note that this is only for normal mobs on retail. Special mobs or pets have DR on all categories,
|
-- Note that for retail some special mobs have DR on all categories,
|
||||||
-- see UnitClassification() and UnitIsQuestBoss().
|
-- see UnitClassification() and UnitIsQuestBoss().
|
||||||
Lib.categoriesPvE = {
|
Lib.categoriesPvE = {
|
||||||
retail = {
|
retail = {
|
||||||
["taunt"] = L.TAUNTS, -- Lib.categoryNames.retail.taunt
|
["taunt"] = L.TAUNTS,
|
||||||
["stun"] = L.STUNS,
|
["stun"] = L.STUNS,
|
||||||
["root"] = L.ROOTS,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
classic = {
|
classic = {
|
||||||
@ -294,9 +291,9 @@ function Lib:GetCategories()
|
|||||||
return Lib.categoryNames[Lib.gameExpansion]
|
return Lib.categoryNames[Lib.gameExpansion]
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Get table of all categories that DRs in PvE only.
|
--- Get table of all categories that DRs in PvE.
|
||||||
-- Key is unlocalized name used for API functions, value is localized name used for UI.
|
-- Key is unlocalized name used for API functions, value is localized name used for UI.
|
||||||
-- Note that this is only for normal mobs on retail. Special mobs or pets have DR on all categories,
|
-- Note that for retail some special mobs have DR on all categories,
|
||||||
-- see UnitClassification() and UnitIsQuestBoss().
|
-- see UnitClassification() and UnitIsQuestBoss().
|
||||||
-- Tip: you can combine :GetPvECategories() and :IterateSpellsByCategory() to get spellIDs only for PvE aswell.
|
-- Tip: you can combine :GetPvECategories() and :IterateSpellsByCategory() to get spellIDs only for PvE aswell.
|
||||||
-- @treturn table {string=string}
|
-- @treturn table {string=string}
|
||||||
@ -339,7 +336,7 @@ function Lib:GetCategoryLocalization(category)
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- Check if a category has DR against mobs.
|
--- Check if a category has DR against mobs.
|
||||||
-- Note that this is only for normal mobs on retail. Special mobs or pets have DR on all categories,
|
-- Note that for retail some special mobs have DR on all categories, you need to check for this yourself;
|
||||||
-- see UnitClassification() and UnitIsQuestBoss().
|
-- see UnitClassification() and UnitIsQuestBoss().
|
||||||
-- @tparam string category Unlocalized category name
|
-- @tparam string category Unlocalized category name
|
||||||
-- @treturn bool
|
-- @treturn bool
|
||||||
@ -380,7 +377,6 @@ do
|
|||||||
--- Iterate through the spells of a given category.
|
--- Iterate through the spells of a given category.
|
||||||
-- @tparam string category Unlocalized category name
|
-- @tparam string category Unlocalized category name
|
||||||
-- @usage for spellID in DRList:IterateSpellsByCategory("root") do print(spellID) end
|
-- @usage for spellID in DRList:IterateSpellsByCategory("root") do print(spellID) end
|
||||||
-- @warning Slow function, do not use for frequent combat related stuff unless you cache results.
|
|
||||||
-- @return Iterator function
|
-- @return Iterator function
|
||||||
function Lib:IterateSpellsByCategory(category)
|
function Lib:IterateSpellsByCategory(category)
|
||||||
assert(Lib.categoryNames[Lib.gameExpansion][category], "invalid category")
|
assert(Lib.categoryNames[Lib.gameExpansion][category], "invalid category")
|
||||||
@ -393,6 +389,6 @@ Lib.GetCategoryName = Lib.GetCategoryLocalization
|
|||||||
Lib.IsPVE = Lib.IsPvECategory
|
Lib.IsPVE = Lib.IsPvECategory
|
||||||
Lib.NextDR = Lib.GetNextDR
|
Lib.NextDR = Lib.GetNextDR
|
||||||
Lib.GetSpellCategory = Lib.GetCategoryBySpellID
|
Lib.GetSpellCategory = Lib.GetCategoryBySpellID
|
||||||
Lib.IterateSpells = Lib.IterateSpellsByCategory
|
|
||||||
Lib.RESET_TIME = Lib.resetTimes[Lib.gameExpansion].default
|
Lib.RESET_TIME = Lib.resetTimes[Lib.gameExpansion].default
|
||||||
Lib.pveDR = Lib.categoriesPvE
|
Lib.pveDR = Lib.categoriesPvE
|
||||||
|
Lib.IterateSpells = function(cat) if cat then return Lib.IterateSpellsByCategory(cat) else return next, Lib.spellList end end
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
## Interface: 100002
|
## Interface: 100105
|
||||||
|
## Interface-Classic: 11403
|
||||||
|
## Interface-BCC: 20504
|
||||||
|
## Interface-Wrath: 30402
|
||||||
|
## IconTexture: Interface\Icons\Spell_nature_heavypolymorph1
|
||||||
## Title: Lib: DRList-1.0
|
## Title: Lib: DRList-1.0
|
||||||
## Version: v1.3.8
|
## Version: @project-version@
|
||||||
## X-Category: Library
|
## X-Category: Library
|
||||||
## X-License: MIT
|
## X-License: MIT
|
||||||
## X-Curse-Project-ID: 315757
|
## X-Curse-Project-ID: 315757
|
||||||
@ -11,3 +15,11 @@ libs\LibStub\LibStub.lua
|
|||||||
#@end-no-lib-strip@
|
#@end-no-lib-strip@
|
||||||
|
|
||||||
DRList-1.0.xml
|
DRList-1.0.xml
|
||||||
|
|
||||||
|
#@do-not-package@
|
||||||
|
tests\engine.lua
|
||||||
|
tests\test-retail.lua
|
||||||
|
tests\test-classic.lua
|
||||||
|
tests\test-tbc.lua
|
||||||
|
tests\test-wotlk.lua
|
||||||
|
#@end-do-not-package@
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
local MAJOR, MINOR = "DRList-1.0", 49 -- Don't forget to change this in DRList-1.0.lua aswell!
|
local MAJOR, MINOR = "DRList-1.0", 54 -- Don't forget to change this in DRList-1.0.lua aswell!
|
||||||
local Lib = LibStub(MAJOR)
|
local Lib = LibStub(MAJOR)
|
||||||
if Lib.spellListVersion and Lib.spellListVersion >= MINOR then
|
if Lib.spellListVersion and Lib.spellListVersion >= MINOR then
|
||||||
return
|
return
|
||||||
@ -17,7 +17,7 @@ if Lib.gameExpansion == "retail" then
|
|||||||
[1513] = "disorient", -- Scare Beast
|
[1513] = "disorient", -- Scare Beast
|
||||||
[31661] = "disorient", -- Dragon's Breath
|
[31661] = "disorient", -- Dragon's Breath
|
||||||
[198909] = "disorient", -- Song of Chi-ji
|
[198909] = "disorient", -- Song of Chi-ji
|
||||||
[202274] = "disorient", -- Incendiary Brew
|
[202274] = "disorient", -- Hot Trub
|
||||||
[105421] = "disorient", -- Blinding Light
|
[105421] = "disorient", -- Blinding Light
|
||||||
[10326] = "disorient", -- Turn Evil
|
[10326] = "disorient", -- Turn Evil
|
||||||
[205364] = "disorient", -- Dominate Mind
|
[205364] = "disorient", -- Dominate Mind
|
||||||
@ -26,6 +26,7 @@ if Lib.gameExpansion == "retail" then
|
|||||||
[226943] = "disorient", -- Mind Bomb
|
[226943] = "disorient", -- Mind Bomb
|
||||||
[2094] = "disorient", -- Blind
|
[2094] = "disorient", -- Blind
|
||||||
[118699] = "disorient", -- Fear
|
[118699] = "disorient", -- Fear
|
||||||
|
[130616] = "disorient", -- Fear (Horrify)
|
||||||
[5484] = "disorient", -- Howl of Terror
|
[5484] = "disorient", -- Howl of Terror
|
||||||
[261589] = "disorient", -- Seduction (Grimoire of Sacrifice)
|
[261589] = "disorient", -- Seduction (Grimoire of Sacrifice)
|
||||||
[6358] = "disorient", -- Seduction (Succubus)
|
[6358] = "disorient", -- Seduction (Succubus)
|
||||||
@ -85,6 +86,7 @@ if Lib.gameExpansion == "retail" then
|
|||||||
[47476] = "silence", -- Strangulate
|
[47476] = "silence", -- Strangulate
|
||||||
[204490] = "silence", -- Sigil of Silence
|
[204490] = "silence", -- Sigil of Silence
|
||||||
-- [78675] = "silence", -- Solar Beam (has no DR)
|
-- [78675] = "silence", -- Solar Beam (has no DR)
|
||||||
|
[410065] = "silence", -- Reactive Resin
|
||||||
[202933] = "silence", -- Spider Sting
|
[202933] = "silence", -- Spider Sting
|
||||||
[356727] = "silence", -- Spider Venom
|
[356727] = "silence", -- Spider Venom
|
||||||
[354831] = "silence", -- Wailing Arrow 1
|
[354831] = "silence", -- Wailing Arrow 1
|
||||||
@ -169,6 +171,7 @@ if Lib.gameExpansion == "retail" then
|
|||||||
[64695] = "root", -- Earthgrab (Totem effect)
|
[64695] = "root", -- Earthgrab (Totem effect)
|
||||||
-- [356738] = "root", -- Earth Unleashed (doesn't seem to DR)
|
-- [356738] = "root", -- Earth Unleashed (doesn't seem to DR)
|
||||||
[285515] = "root", -- Surge of Power
|
[285515] = "root", -- Surge of Power
|
||||||
|
[199042] = "root", -- Thunderstruck (Protection PvP Talent)
|
||||||
--[356356] = "root", -- Warbringer TODO: has DR?
|
--[356356] = "root", -- Warbringer TODO: has DR?
|
||||||
[39965] = "root", -- Frost Grenade (Item)
|
[39965] = "root", -- Frost Grenade (Item)
|
||||||
[75148] = "root", -- Embersilk Net (Item)
|
[75148] = "root", -- Embersilk Net (Item)
|
||||||
@ -176,6 +179,8 @@ if Lib.gameExpansion == "retail" then
|
|||||||
[268966] = "root", -- Hooked Deep Sea Net (Item)
|
[268966] = "root", -- Hooked Deep Sea Net (Item)
|
||||||
|
|
||||||
[209749] = "disarm", -- Faerie Swarm (Balance Honor Talent)
|
[209749] = "disarm", -- Faerie Swarm (Balance Honor Talent)
|
||||||
|
[407032] = "disarm", -- Sticky Tar Bomb 1
|
||||||
|
[407031] = "disarm", -- Sticky Tar Bomb 2
|
||||||
[207777] = "disarm", -- Dismantle
|
[207777] = "disarm", -- Dismantle
|
||||||
[233759] = "disarm", -- Grapple Weapon
|
[233759] = "disarm", -- Grapple Weapon
|
||||||
[236077] = "disarm", -- Disarm
|
[236077] = "disarm", -- Disarm
|
||||||
@ -528,6 +533,7 @@ elseif Lib.gameExpansion == "wotlk" then
|
|||||||
[9853] = "root", -- Entangling Roots (Rank 6)
|
[9853] = "root", -- Entangling Roots (Rank 6)
|
||||||
[26989] = "root", -- Entangling Roots (Rank 7)
|
[26989] = "root", -- Entangling Roots (Rank 7)
|
||||||
[53308] = "root", -- Entangling Roots (Rank 8)
|
[53308] = "root", -- Entangling Roots (Rank 8)
|
||||||
|
[65857] = "root", -- Entangling Roots (Rank 8) (TODO: Not sure which ID is correct)
|
||||||
[19975] = "root", -- Nature's Grasp (Rank 1)
|
[19975] = "root", -- Nature's Grasp (Rank 1)
|
||||||
[19974] = "root", -- Nature's Grasp (Rank 2)
|
[19974] = "root", -- Nature's Grasp (Rank 2)
|
||||||
[19973] = "root", -- Nature's Grasp (Rank 3)
|
[19973] = "root", -- Nature's Grasp (Rank 3)
|
||||||
@ -535,7 +541,8 @@ elseif Lib.gameExpansion == "wotlk" then
|
|||||||
[19971] = "root", -- Nature's Grasp (Rank 5)
|
[19971] = "root", -- Nature's Grasp (Rank 5)
|
||||||
[19970] = "root", -- Nature's Grasp (Rank 6)
|
[19970] = "root", -- Nature's Grasp (Rank 6)
|
||||||
[27010] = "root", -- Nature's Grasp (Rank 7)
|
[27010] = "root", -- Nature's Grasp (Rank 7)
|
||||||
[53312] = "root", -- Nature's Grasp (Rank 8)
|
[53313] = "root", -- Nature's Grasp (Rank 8)
|
||||||
|
[66070] = "root", -- Nature's Grasp (Rank 8) (TODO: Not sure which ID is correct)
|
||||||
[50245] = "root", -- Pin (Rank 1)
|
[50245] = "root", -- Pin (Rank 1)
|
||||||
[53544] = "root", -- Pin (Rank 2)
|
[53544] = "root", -- Pin (Rank 2)
|
||||||
[53545] = "root", -- Pin (Rank 3)
|
[53545] = "root", -- Pin (Rank 3)
|
||||||
@ -549,6 +556,7 @@ elseif Lib.gameExpansion == "wotlk" then
|
|||||||
[10230] = "root", -- Frost Nova (Rank 4)
|
[10230] = "root", -- Frost Nova (Rank 4)
|
||||||
[27088] = "root", -- Frost Nova (Rank 5)
|
[27088] = "root", -- Frost Nova (Rank 5)
|
||||||
[42917] = "root", -- Frost Nova (Rank 6)
|
[42917] = "root", -- Frost Nova (Rank 6)
|
||||||
|
[64695] = "root", -- Earthgrab
|
||||||
[39965] = "root", -- Frost Grenade (Item)
|
[39965] = "root", -- Frost Grenade (Item)
|
||||||
[63685] = "root", -- Freeze (Frost Shock)
|
[63685] = "root", -- Freeze (Frost Shock)
|
||||||
[55536] = "root", -- Frostweave Net (Item)
|
[55536] = "root", -- Frostweave Net (Item)
|
||||||
@ -626,7 +634,6 @@ elseif Lib.gameExpansion == "wotlk" then
|
|||||||
[27067] = "counterattack", -- Counterattack 4
|
[27067] = "counterattack", -- Counterattack 4
|
||||||
[48998] = "counterattack", -- Counterattack 5
|
[48998] = "counterattack", -- Counterattack 5
|
||||||
[48999] = "counterattack", -- Counterattack 6
|
[48999] = "counterattack", -- Counterattack 6
|
||||||
--Storm, Earth and Fire has no DR
|
|
||||||
}
|
}
|
||||||
|
|
||||||
elseif Lib.gameExpansion == "classic" then
|
elseif Lib.gameExpansion == "classic" then
|
||||||
|
Loading…
Reference in New Issue
Block a user